Commit 280f47b807a7b34d50c32c134885238ac01c6a4a

Authored by 娄高锋
2 parents 4b26b53a 51aae339

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

Too many changes to show.

To preserve performance only 11 of 29 files are displayed.

src/main/java/com/bsth/controller/DeviceGpsController.java
1 package com.bsth.controller; 1 package com.bsth.controller;
2 2
3 -import java.io.BufferedOutputStream;  
4 -import java.io.BufferedReader;  
5 -import java.io.File;  
6 -import java.io.FileInputStream;  
7 -import java.io.IOException;  
8 -import java.io.InputStreamReader;  
9 -import java.io.OutputStream;  
10 -import java.text.SimpleDateFormat;  
11 -import java.util.ArrayList;  
12 -import java.util.Date;  
13 -import java.util.HashMap;  
14 -import java.util.List;  
15 -import java.util.Map;  
16 -  
17 -import javax.servlet.http.HttpServletRequest;  
18 -import javax.servlet.http.HttpServletResponse;  
19 -  
20 -import org.apache.commons.lang.StringEscapeUtils;  
21 -import org.apache.poi.hssf.usermodel.HSSFCell;  
22 -import org.apache.poi.hssf.usermodel.HSSFRichTextString;  
23 -import org.apache.poi.hssf.usermodel.HSSFRow;  
24 -import org.apache.poi.hssf.usermodel.HSSFSheet;  
25 -import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
26 -import org.springframework.beans.BeanUtils;  
27 -import org.springframework.beans.factory.annotation.Autowired;  
28 -import org.springframework.util.StringUtils;  
29 -import org.springframework.web.bind.annotation.PathVariable;  
30 -import org.springframework.web.bind.annotation.RequestMapping;  
31 -import org.springframework.web.bind.annotation.RequestMethod;  
32 -import org.springframework.web.bind.annotation.RequestParam;  
33 -import org.springframework.web.bind.annotation.RestController;  
34 -import org.springframework.web.multipart.MultipartFile;  
35 -  
36 import com.bsth.data.gpsdata.GpsEntity; 3 import com.bsth.data.gpsdata.GpsEntity;
37 import com.bsth.data.gpsdata.GpsRealData; 4 import com.bsth.data.gpsdata.GpsRealData;
38 import com.fasterxml.jackson.core.JsonParseException; 5 import com.fasterxml.jackson.core.JsonParseException;
39 import com.fasterxml.jackson.databind.JsonMappingException; 6 import com.fasterxml.jackson.databind.JsonMappingException;
40 import com.fasterxml.jackson.databind.ObjectMapper; 7 import com.fasterxml.jackson.databind.ObjectMapper;
41 -import com.fasterxml.jackson.databind.util.BeanUtil; 8 +import org.apache.commons.lang.StringEscapeUtils;
  9 +import org.apache.poi.hssf.usermodel.*;
  10 +import org.springframework.beans.factory.annotation.Autowired;
  11 +import org.springframework.util.StringUtils;
  12 +import org.springframework.web.bind.annotation.*;
  13 +import org.springframework.web.multipart.MultipartFile;
  14 +
  15 +import javax.servlet.http.HttpServletRequest;
  16 +import javax.servlet.http.HttpServletResponse;
  17 +import java.io.*;
  18 +import java.text.SimpleDateFormat;
  19 +import java.util.*;
42 20
43 @RestController 21 @RestController
44 @RequestMapping("devicegps") 22 @RequestMapping("devicegps")
@@ -121,7 +99,7 @@ public class DeviceGpsController { @@ -121,7 +99,7 @@ public class DeviceGpsController {
121 try { 99 try {
122 data = new ObjectMapper().readValue(json, List.class); 100 data = new ObjectMapper().readValue(json, List.class);
123 for (Map<String, Object> info : data) { 101 for (Map<String, Object> info : data) {
124 - info.put("detail", gpsRealData.findByDeviceId((String)info.get("deviceId"))); 102 + info.put("detail", gpsRealData.get((String)info.get("deviceId")));
125 } 103 }
126 104
127 res.put("errCode", 0); 105 res.put("errCode", 0);
src/main/java/com/bsth/controller/DownloadController.java
1 package com.bsth.controller; 1 package com.bsth.controller;
2 2
3 -import java.io.File;  
4 -import java.io.IOException; 3 +import java.io.BufferedInputStream;
  4 +import java.io.BufferedOutputStream;
  5 +import java.io.File;
  6 +import java.io.FileInputStream;
  7 +import java.io.IOException;
  8 +import java.io.InputStream;
  9 +import java.io.OutputStream;
5 import java.net.URLDecoder; 10 import java.net.URLDecoder;
6 11
  12 +import javax.servlet.http.HttpServletResponse;
  13 +
7 import org.apache.commons.io.FileUtils; 14 import org.apache.commons.io.FileUtils;
8 import org.springframework.context.annotation.Scope; 15 import org.springframework.context.annotation.Scope;
9 import org.springframework.http.HttpHeaders; 16 import org.springframework.http.HttpHeaders;
@@ -11,7 +18,9 @@ import org.springframework.http.HttpStatus; @@ -11,7 +18,9 @@ import org.springframework.http.HttpStatus;
11 import org.springframework.http.MediaType; 18 import org.springframework.http.MediaType;
12 import org.springframework.http.ResponseEntity; 19 import org.springframework.http.ResponseEntity;
13 import org.springframework.stereotype.Component; 20 import org.springframework.stereotype.Component;
14 -import org.springframework.web.bind.annotation.RequestMapping; 21 +import org.springframework.web.bind.annotation.RequestMapping;
  22 +
  23 +import com.mysql.fabric.Response;
15 24
16 /** 25 /**
17 * <一句话功能简述> 26 * <一句话功能简述>
@@ -28,19 +37,43 @@ import org.springframework.web.bind.annotation.RequestMapping; @@ -28,19 +37,43 @@ import org.springframework.web.bind.annotation.RequestMapping;
28 public class DownloadController 37 public class DownloadController
29 { 38 {
30 39
31 - @RequestMapping("download")  
32 - public ResponseEntity<byte[]> download(String fileName) throws IOException {  
33 - fileName = fileName+".xls";  
34 - String moudelPath = this.getClass().getResource("/").getPath()+ "static/pages/forms/export/"+fileName; 40 + @RequestMapping("download2")
  41 + public ResponseEntity<byte[]> download2(String fileName) throws IOException {
  42 +// fileName = fileName+".xls";
  43 + String fileNames=URLDecoder.decode(fileName,"UTF-8");
  44 + fileNames =fileNames + ".xls";
  45 + String moudelPath = this.getClass().getResource("/").getPath()+ "static/pages/forms/export/"+fileNames;
35 System.out.println(moudelPath); 46 System.out.println(moudelPath);
36 // String path="D:\\export\\target\\"+jName+".xls"; 47 // String path="D:\\export\\target\\"+jName+".xls";
37 File file=new File(moudelPath); 48 File file=new File(moudelPath);
38 HttpHeaders headers = new HttpHeaders(); 49 HttpHeaders headers = new HttpHeaders();
39 String realFileName=new String(fileName.getBytes("UTF-8"),"iso-8859-1");//为了解决中文名称乱码问题 50 String realFileName=new String(fileName.getBytes("UTF-8"),"iso-8859-1");//为了解决中文名称乱码问题
40 - headers.setContentDispositionFormData("attachment", fileName); 51 + headers.setContentDispositionFormData("attachment", fileNames);
41 System.out.println( URLDecoder.decode(realFileName,"utf-8")); 52 System.out.println( URLDecoder.decode(realFileName,"utf-8"));
42 headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); 53 headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
43 return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), 54 return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),
44 headers, HttpStatus.CREATED); 55 headers, HttpStatus.CREATED);
45 - } 56 + }
  57 +
  58 + @RequestMapping("download")
  59 + public void download(HttpServletResponse response,String fileName)
  60 + throws IOException {
  61 +// String fileNames=URLDecoder.decode(fileName,"UTF-8");
  62 + fileName =fileName + ".xls";
  63 + String moudelPath = this.getClass().getResource("/").getPath()+ "static/pages/forms/export/"+fileName;
  64 + File file = new File(moudelPath);// path是根据日志路径和文件名拼接出来的
  65 +// String filename = file.getName();// 获取日志文件名称
  66 + InputStream fis = new BufferedInputStream(new FileInputStream(moudelPath));
  67 + byte[] buffer = new byte[fis.available()];
  68 + fis.read(buffer);
  69 + fis.close();
  70 + response.reset();
  71 + response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.replaceAll(" ", "").getBytes("utf-8"),"iso8859-1"));
  72 + response.addHeader("Content-Length", "" + file.length());
  73 + OutputStream os = new BufferedOutputStream(response.getOutputStream());
  74 + response.setContentType("application/octet-stream");
  75 + os.write(buffer);// 输出文件
  76 + os.flush();
  77 + os.close();
  78 + }
46 } 79 }
src/main/java/com/bsth/data/gpsdata/GpsRealData.java
1 package com.bsth.data.gpsdata; 1 package com.bsth.data.gpsdata;
2 2
3 -import com.alibaba.fastjson.JSON;  
4 -import com.alibaba.fastjson.JSONObject;  
5 import com.bsth.data.BasicData; 3 import com.bsth.data.BasicData;
6 import com.bsth.data.forecast.ForecastRealServer; 4 import com.bsth.data.forecast.ForecastRealServer;
7 -import com.bsth.data.gpsdata.arrival.GpsRealAnalyse;  
8 -import com.bsth.data.gpsdata.recovery.GpsDataRecovery; 5 +import com.bsth.data.gpsdata.thread.GpsDataLoaderThread;
9 import com.bsth.data.schedule.DayOfSchedule; 6 import com.bsth.data.schedule.DayOfSchedule;
10 import com.bsth.entity.realcontrol.ScheduleRealInfo; 7 import com.bsth.entity.realcontrol.ScheduleRealInfo;
11 -import com.bsth.util.ConfigUtil;  
12 import com.google.common.collect.TreeMultimap; 8 import com.google.common.collect.TreeMultimap;
13 import org.apache.commons.lang3.StringUtils; 9 import org.apache.commons.lang3.StringUtils;
14 -import org.apache.http.HttpEntity;  
15 -import org.apache.http.client.methods.CloseableHttpResponse;  
16 -import org.apache.http.client.methods.HttpGet;  
17 -import org.apache.http.impl.client.CloseableHttpClient;  
18 -import org.apache.http.impl.client.HttpClients;  
19 import org.slf4j.Logger; 10 import org.slf4j.Logger;
20 import org.slf4j.LoggerFactory; 11 import org.slf4j.LoggerFactory;
21 import org.springframework.beans.factory.annotation.Autowired; 12 import org.springframework.beans.factory.annotation.Autowired;
22 import org.springframework.boot.CommandLineRunner; 13 import org.springframework.boot.CommandLineRunner;
23 import org.springframework.stereotype.Component; 14 import org.springframework.stereotype.Component;
24 15
25 -import java.io.BufferedReader;  
26 -import java.io.InputStreamReader;  
27 import java.util.*; 16 import java.util.*;
28 17
29 /** 18 /**
@@ -42,11 +31,8 @@ public class GpsRealData implements CommandLineRunner { @@ -42,11 +31,8 @@ public class GpsRealData implements CommandLineRunner {
42 //按线路分组设备号 31 //按线路分组设备号
43 private static TreeMultimap<String, String> lineCode2Devices; 32 private static TreeMultimap<String, String> lineCode2Devices;
44 33
45 - // 网关数据接口地址  
46 - private static String url;  
47 -  
48 @Autowired 34 @Autowired
49 - GpsDataLoader gpsDataLoader; 35 + GpsDataLoaderThread gpsDataLoader;
50 36
51 @Autowired 37 @Autowired
52 DayOfSchedule dayOfSchedule; 38 DayOfSchedule dayOfSchedule;
@@ -60,13 +46,15 @@ public class GpsRealData implements CommandLineRunner { @@ -60,13 +46,15 @@ public class GpsRealData implements CommandLineRunner {
60 public GpsRealData() { 46 public GpsRealData() {
61 gpsMap = new HashMap<>(); 47 gpsMap = new HashMap<>();
62 lineCode2Devices = TreeMultimap.create(); 48 lineCode2Devices = TreeMultimap.create();
63 - url = ConfigUtil.get("http.gps.real.url");  
64 } 49 }
65 50
66 @Override 51 @Override
67 public void run(String... arg0) throws Exception { 52 public void run(String... arg0) throws Exception {
68 logger.info("gpsDataLoader,20,5"); 53 logger.info("gpsDataLoader,20,5");
  54 + //定时从网关获取GPS数据
69 //Application.mainServices.scheduleWithFixedDelay(gpsDataLoader, 20, 5, TimeUnit.SECONDS); 55 //Application.mainServices.scheduleWithFixedDelay(gpsDataLoader, 20, 5, TimeUnit.SECONDS);
  56 + //定时扫描掉离线
  57 +
70 } 58 }
71 59
72 public void put(GpsEntity gps) { 60 public void put(GpsEntity gps) {
@@ -146,10 +134,6 @@ public class GpsRealData implements CommandLineRunner { @@ -146,10 +134,6 @@ public class GpsRealData implements CommandLineRunner {
146 return gpsMap.keySet(); 134 return gpsMap.keySet();
147 } 135 }
148 136
149 - public GpsEntity findByDeviceId(String deviceId) {  
150 - return gpsMap.get(deviceId);  
151 - }  
152 -  
153 public Collection<GpsEntity> all() { 137 public Collection<GpsEntity> all() {
154 return gpsMap.values(); 138 return gpsMap.values();
155 } 139 }
@@ -157,87 +141,4 @@ public class GpsRealData implements CommandLineRunner { @@ -157,87 +141,4 @@ public class GpsRealData implements CommandLineRunner {
157 public void remove(String device) { 141 public void remove(String device) {
158 gpsMap.remove(device); 142 gpsMap.remove(device);
159 } 143 }
160 -  
161 - @Component  
162 - public static class GpsDataLoader extends Thread {  
163 -  
164 - Logger logger = LoggerFactory.getLogger(GpsDataLoader.class);  
165 -  
166 - @Autowired  
167 - GpsRealData gpsRealData;  
168 -  
169 - @Autowired  
170 - GpsRealAnalyse gpsRealAnalyse;  
171 -  
172 - @Override  
173 - public void run() {  
174 - try {  
175 - //如果正在恢复数据  
176 - if (GpsDataRecovery.run)  
177 - return;  
178 -  
179 - load();  
180 - } catch (Exception e) {  
181 - logger.error("", e);  
182 - }  
183 - }  
184 -  
185 - public void load() throws Exception {  
186 - List<GpsEntity> list = null;  
187 - List<GpsEntity> updateList = new ArrayList<>();  
188 - CloseableHttpClient httpClient = null;  
189 - CloseableHttpResponse response = null;  
190 - try {  
191 - httpClient = HttpClients.createDefault();  
192 - HttpGet get = new HttpGet(url);  
193 -  
194 - response = httpClient.execute(get);  
195 -  
196 - HttpEntity entity = response.getEntity();  
197 - if (null != entity) {  
198 - BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent()));  
199 - StringBuffer stringBuffer = new StringBuffer();  
200 - String str = "";  
201 - while ((str = br.readLine()) != null)  
202 - stringBuffer.append(str);  
203 -  
204 - JSONObject jsonObj = JSON.parseObject(stringBuffer.toString());  
205 -  
206 - if (jsonObj != null)  
207 - list = JSON.parseArray(jsonObj.getString("data"), GpsEntity.class);  
208 -  
209 - String nbbm;  
210 - GpsEntity old;  
211 - for (GpsEntity gps : list) {  
212 - //没有设备号  
213 - if (StringUtils.isBlank(gps.getDeviceId()))  
214 - continue;  
215 -  
216 - old = gpsMap.get(gps.getDeviceId());  
217 - if (old != null &&  
218 - old.getTimestamp() == gps.getTimestamp())  
219 - continue;  
220 -  
221 - nbbm = BasicData.deviceId2NbbmMap.get(gps.getDeviceId());  
222 - if (StringUtils.isBlank(nbbm))  
223 - gps.setIncomplete(true);//标记为异常数据  
224 - else  
225 - gps.setNbbm(nbbm);  
226 - //有更新的点位  
227 - updateList.add(gps);  
228 - }  
229 - //分析数据  
230 - gpsRealAnalyse.analyse(updateList);  
231 - } else  
232 - logger.error("real gps result is null");  
233 - } catch (Exception e) {  
234 - logger.error("", e);  
235 - } finally {  
236 - if (null != httpClient)  
237 - httpClient.close();  
238 - if (null != response)  
239 - response.close();  
240 - }  
241 - }  
242 - }  
243 } 144 }
244 \ No newline at end of file 145 \ No newline at end of file
src/main/java/com/bsth/data/gpsdata/arrival/handlers/AbnormalStateHandle.java
1 -package com.bsth.data.gpsdata.arrival.handlers;  
2 -  
3 -import com.bsth.data.gpsdata.GpsEntity;  
4 -import com.bsth.data.gpsdata.arrival.GeoCacheData;  
5 -import com.bsth.data.gpsdata.arrival.SignalHandle;  
6 -import com.bsth.data.gpsdata.arrival.utils.CircleQueue;  
7 -import com.bsth.data.gpsdata.arrival.utils.GeoUtils;  
8 -import com.vividsolutions.jts.geom.Coordinate;  
9 -import com.vividsolutions.jts.geom.GeometryFactory;  
10 -import com.vividsolutions.jts.geom.LineString;  
11 -import com.vividsolutions.jts.geom.Point;  
12 -import org.springframework.stereotype.Component;  
13 -  
14 -import java.util.List;  
15 -  
16 -/**  
17 - * GPS异常状态判定 (越界/超速)  
18 - * Created by panzhao on 2017/1/10.  
19 - */  
20 -@Component  
21 -public class AbnormalStateHandle extends SignalHandle{  
22 -  
23 - //默认限速  
24 - private static final double DEFAULT_SPEED_LIMIT = 60;  
25 - //越界阈值  
26 - private static final double OUT_BOUNDS_THRESHOLD = 100;  
27 -  
28 - GeometryFactory geometryFactory = new GeometryFactory();  
29 -  
30 - @Override  
31 - public boolean handle(GpsEntity gps, CircleQueue<GpsEntity> prevs) {  
32 -  
33 - if(overspeed(gps))  
34 - return true;  
35 -  
36 - if(outOfBounds((gps)))  
37 - return true;  
38 -  
39 - return false;  
40 - }  
41 -  
42 - /**  
43 - * 是否超速  
44 - * @param gps  
45 - * @return  
46 - */  
47 - public boolean overspeed(GpsEntity gps){  
48 - double maxSpeed = DEFAULT_SPEED_LIMIT;  
49 - if(GeoCacheData.speedLimit(gps.getLineId()) != null)  
50 - maxSpeed = GeoCacheData.speedLimit(gps.getLineId());  
51 -  
52 - if(gps.getSpeed() > maxSpeed){  
53 - gps.setAbnormalStatus("overspeed");  
54 - return true;  
55 - }  
56 - return false;  
57 - }  
58 -  
59 - /**  
60 - * 是否越界  
61 - * @param gps  
62 - * @return  
63 - */  
64 - public boolean outOfBounds(GpsEntity gps){  
65 - //场内的车不处理  
66 - if(gps.getInstation() == 2){  
67 - return false;  
68 - }  
69 -  
70 - List<LineString> list = GeoCacheData.getLineStringList(gps);  
71 - Point point = geometryFactory.createPoint(new Coordinate(gps.getLat(), gps.getLon()));  
72 -  
73 - double min = -1, distance;  
74 -  
75 - for(LineString lineString : list){  
76 - distance = GeoUtils.getDistanceFromLine(lineString, point);  
77 -  
78 - if(min == -1 || min > distance)  
79 - min = distance;  
80 - }  
81 -  
82 - gps.setOutOfBoundDistance(min);  
83 - if(min > OUT_BOUNDS_THRESHOLD){  
84 - gps.setAbnormalStatus("outBounds");  
85 - return true;  
86 - }  
87 - return false;  
88 - }  
89 -} 1 +package com.bsth.data.gpsdata.arrival.handlers;
  2 +
  3 +import com.bsth.data.gpsdata.GpsEntity;
  4 +import com.bsth.data.gpsdata.arrival.GeoCacheData;
  5 +import com.bsth.data.gpsdata.arrival.SignalHandle;
  6 +import com.bsth.data.gpsdata.arrival.utils.CircleQueue;
  7 +import com.bsth.data.gpsdata.arrival.utils.GeoUtils;
  8 +import com.vividsolutions.jts.geom.Coordinate;
  9 +import com.vividsolutions.jts.geom.GeometryFactory;
  10 +import com.vividsolutions.jts.geom.LineString;
  11 +import com.vividsolutions.jts.geom.Point;
  12 +import org.springframework.stereotype.Component;
  13 +
  14 +import java.util.List;
  15 +
  16 +/**
  17 + * GPS异常状态判定 (越界/超速)
  18 + * Created by panzhao on 2017/1/10.
  19 + */
  20 +@Component
  21 +public class AbnormalStateHandle extends SignalHandle{
  22 +
  23 + //默认限速
  24 + private static final double DEFAULT_SPEED_LIMIT = 60;
  25 + //越界阈值
  26 + private static final double OUT_BOUNDS_THRESHOLD = 100;
  27 +
  28 + GeometryFactory geometryFactory = new GeometryFactory();
  29 +
  30 + @Override
  31 + public boolean handle(GpsEntity gps, CircleQueue<GpsEntity> prevs) {
  32 +
  33 + if(overspeed(gps))
  34 + return true;
  35 +
  36 + if(outOfBounds((gps)))
  37 + return true;
  38 +
  39 + return false;
  40 + }
  41 +
  42 + /**
  43 + * 是否超速
  44 + * @param gps
  45 + * @return
  46 + */
  47 + public boolean overspeed(GpsEntity gps){
  48 + double maxSpeed = DEFAULT_SPEED_LIMIT;
  49 + if(GeoCacheData.speedLimit(gps.getLineId()) != null)
  50 + maxSpeed = GeoCacheData.speedLimit(gps.getLineId());
  51 +
  52 + if(gps.getSpeed() > maxSpeed){
  53 + gps.setAbnormalStatus("overspeed");
  54 + return true;
  55 + }
  56 + return false;
  57 + }
  58 +
  59 + /**
  60 + * 是否越界
  61 + * @param gps
  62 + * @return
  63 + */
  64 + public boolean outOfBounds(GpsEntity gps){
  65 + //场内的车不处理
  66 + if(gps.getInstation() == 2){
  67 + return false;
  68 + }
  69 +
  70 + List<LineString> list = GeoCacheData.getLineStringList(gps);
  71 + Point point = geometryFactory.createPoint(new Coordinate(gps.getLat(), gps.getLon()));
  72 +
  73 + double min = -1, distance;
  74 +
  75 + for(LineString lineString : list){
  76 + distance = GeoUtils.getDistanceFromLine(lineString, point);
  77 +
  78 + if(min == -1 || min > distance)
  79 + min = distance;
  80 + }
  81 +
  82 + gps.setOutOfBoundDistance(min);
  83 + if(min > OUT_BOUNDS_THRESHOLD){
  84 + gps.setAbnormalStatus("outBounds");
  85 + return true;
  86 + }
  87 + return false;
  88 + }
  89 +}
src/main/java/com/bsth/data/gpsdata/thread/GpsDataLoaderThread.java 0 → 100644
  1 +package com.bsth.data.gpsdata.thread;
  2 +
  3 +import com.alibaba.fastjson.JSON;
  4 +import com.alibaba.fastjson.JSONObject;
  5 +import com.bsth.data.BasicData;
  6 +import com.bsth.data.gpsdata.GpsEntity;
  7 +import com.bsth.data.gpsdata.GpsRealData;
  8 +import com.bsth.data.gpsdata.arrival.GpsRealAnalyse;
  9 +import com.bsth.data.gpsdata.recovery.GpsDataRecovery;
  10 +import com.bsth.util.ConfigUtil;
  11 +import org.apache.commons.lang3.StringUtils;
  12 +import org.apache.http.HttpEntity;
  13 +import org.apache.http.client.methods.CloseableHttpResponse;
  14 +import org.apache.http.client.methods.HttpGet;
  15 +import org.apache.http.impl.client.CloseableHttpClient;
  16 +import org.apache.http.impl.client.HttpClients;
  17 +import org.slf4j.Logger;
  18 +import org.slf4j.LoggerFactory;
  19 +import org.springframework.beans.factory.annotation.Autowired;
  20 +import org.springframework.stereotype.Component;
  21 +
  22 +import java.io.BufferedReader;
  23 +import java.io.InputStreamReader;
  24 +import java.util.ArrayList;
  25 +import java.util.List;
  26 +
  27 +/**
  28 + * Created by panzhao on 2017/1/11.
  29 + */
  30 +@Component
  31 +public class GpsDataLoaderThread extends Thread {
  32 +
  33 + Logger logger = LoggerFactory.getLogger(GpsDataLoaderThread.class);
  34 +
  35 + /**
  36 + * 构造函数
  37 + */
  38 + public GpsDataLoaderThread() {
  39 + url = ConfigUtil.get("http.gps.real.url");
  40 + }
  41 +
  42 + // 网关数据接口地址
  43 + private static String url;
  44 +
  45 + @Autowired
  46 + GpsRealData gpsRealData;
  47 +
  48 + @Autowired
  49 + GpsRealAnalyse gpsRealAnalyse;
  50 +
  51 + @Override
  52 + public void run() {
  53 + try {
  54 + //如果正在恢复数据
  55 + if (GpsDataRecovery.run)
  56 + return;
  57 +
  58 + load();
  59 + } catch (Exception e) {
  60 + logger.error("", e);
  61 + }
  62 + }
  63 +
  64 + public void load() throws Exception {
  65 + List<GpsEntity> list = null;
  66 + List<GpsEntity> updateList = new ArrayList<>();
  67 + CloseableHttpClient httpClient = null;
  68 + CloseableHttpResponse response = null;
  69 + try {
  70 + httpClient = HttpClients.createDefault();
  71 + HttpGet get = new HttpGet(url);
  72 +
  73 + response = httpClient.execute(get);
  74 +
  75 + HttpEntity entity = response.getEntity();
  76 + if (null != entity) {
  77 + BufferedReader br = new BufferedReader(new InputStreamReader(entity.getContent()));
  78 + StringBuffer stringBuffer = new StringBuffer();
  79 + String str = "";
  80 + while ((str = br.readLine()) != null)
  81 + stringBuffer.append(str);
  82 +
  83 + JSONObject jsonObj = JSON.parseObject(stringBuffer.toString());
  84 +
  85 + if (jsonObj != null)
  86 + list = JSON.parseArray(jsonObj.getString("data"), GpsEntity.class);
  87 +
  88 + String nbbm;
  89 + GpsEntity old;
  90 + for (GpsEntity gps : list) {
  91 + //没有设备号
  92 + if (StringUtils.isBlank(gps.getDeviceId()))
  93 + continue;
  94 +
  95 + old = gpsRealData.get(gps.getDeviceId());
  96 + if (old != null &&
  97 + old.getTimestamp() == gps.getTimestamp())
  98 + continue;
  99 +
  100 + nbbm = BasicData.deviceId2NbbmMap.get(gps.getDeviceId());
  101 + if (StringUtils.isBlank(nbbm))
  102 + gps.setIncomplete(true);//标记为异常数据
  103 + else
  104 + gps.setNbbm(nbbm);
  105 + //有更新的点位
  106 + updateList.add(gps);
  107 + }
  108 + //分析数据
  109 + gpsRealAnalyse.analyse(updateList);
  110 + } else
  111 + logger.error("real gps result is null");
  112 + } catch (Exception e) {
  113 + logger.error("", e);
  114 + } finally {
  115 + if (null != httpClient)
  116 + httpClient.close();
  117 + if (null != response)
  118 + response.close();
  119 + }
  120 + }
  121 +}
0 \ No newline at end of file 122 \ No newline at end of file
src/main/java/com/bsth/data/gpsdata/thread/OfflineMonitorThread.java 0 → 100644
  1 +package com.bsth.data.gpsdata.thread;
  2 +
  3 +import com.bsth.data.gpsdata.GpsEntity;
  4 +import com.bsth.data.gpsdata.GpsRealData;
  5 +import org.springframework.beans.factory.annotation.Autowired;
  6 +
  7 +import java.util.Collection;
  8 +
  9 +/**
  10 + * GPS掉离线监控
  11 + * Created by panzhao on 2017/1/11.
  12 + */
  13 +public class OfflineMonitorThread extends Thread{
  14 +
  15 + @Autowired
  16 + GpsRealData gpsRealData;
  17 +
  18 + //有任务时 掉线阈值
  19 + private final static int LOSE_TIME = 1000 * 60 * 2;
  20 +
  21 + //无任务时 离线阈值
  22 + private final static int OFFLINE_TIME = 1000 * 60 * 10;
  23 +
  24 + @Override
  25 + public void run() {
  26 + long t = System.currentTimeMillis();
  27 + Collection<GpsEntity> list = gpsRealData.all();
  28 +
  29 + String state;
  30 + for(GpsEntity gps : list){
  31 + state = gps.getAbnormalStatus();
  32 +
  33 + if(state.equals("offline"))
  34 + continue;
  35 +
  36 +
  37 + //if(state.equals("lose"))
  38 + //if(!state.equals("lose"))
  39 + //if(state.equals(""))
  40 + //if(gps.getTimestamp())
  41 + //if(gps.getAbnormalStatus().equals("lose"))
  42 + }
  43 + }
  44 +}
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
@@ -110,9 +110,12 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI @@ -110,9 +110,12 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
110 void deleteByLineCodeAndDate(String xlBm, String schDate); 110 void deleteByLineCodeAndDate(String xlBm, String schDate);
111 111
112 //去掉了 xlBm is not null 112 //去掉了 xlBm is not null
113 - @Query(value="select s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2") 113 + @Query(value="select s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 order by s.xlBm")
114 List<ScheduleRealInfo> scheduleByDateAndLine(String line,String date); 114 List<ScheduleRealInfo> scheduleByDateAndLine(String line,String date);
115 115
  116 + @Query(value="select s from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 and s.bcType not in ('in','out') order by s.xlBm")
  117 + List<ScheduleRealInfo> scheduleByDateAndLine2(String line,String date);
  118 +
116 @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh) from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 GROUP BY xlBm,clZbh,jGh,scheduleDate,jGh ORDER BY realExecDate,fcsj,xlBm,clZbh") 119 @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh) from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 GROUP BY xlBm,clZbh,jGh,scheduleDate,jGh ORDER BY realExecDate,fcsj,xlBm,clZbh")
117 List<Map<String,Object>> yesterdayDataList(String line,String date); 120 List<Map<String,Object>> yesterdayDataList(String line,String date);
118 121
src/main/java/com/bsth/service/directive/DirectiveServiceImpl.java
1 package com.bsth.service.directive; 1 package com.bsth.service.directive;
2 2
3 -import java.util.ArrayList;  
4 -import java.util.Collection;  
5 -import java.util.Collections;  
6 -import java.util.Comparator;  
7 -import java.util.Date;  
8 -import java.util.HashMap;  
9 -import java.util.List;  
10 -import java.util.Map;  
11 -  
12 -import org.apache.commons.lang3.StringUtils;  
13 -import org.joda.time.format.DateTimeFormat;  
14 -import org.joda.time.format.DateTimeFormatter;  
15 -import org.slf4j.Logger;  
16 -import org.slf4j.LoggerFactory;  
17 -import org.springframework.beans.factory.annotation.Autowired;  
18 -import org.springframework.stereotype.Service;  
19 -  
20 import com.alibaba.fastjson.JSON; 3 import com.alibaba.fastjson.JSON;
21 import com.alibaba.fastjson.JSONObject; 4 import com.alibaba.fastjson.JSONObject;
22 import com.bsth.common.ResponseCode; 5 import com.bsth.common.ResponseCode;
@@ -24,15 +7,11 @@ import com.bsth.data.BasicData; @@ -24,15 +7,11 @@ import com.bsth.data.BasicData;
24 import com.bsth.data.directive.DayOfDirectives; 7 import com.bsth.data.directive.DayOfDirectives;
25 import com.bsth.data.directive.DirectiveCreator; 8 import com.bsth.data.directive.DirectiveCreator;
26 import com.bsth.data.directive.GatewayHttpUtils; 9 import com.bsth.data.directive.GatewayHttpUtils;
27 -import com.bsth.data.gpsdata.GpsRealData;  
28 import com.bsth.data.gpsdata.GpsEntity; 10 import com.bsth.data.gpsdata.GpsEntity;
  11 +import com.bsth.data.gpsdata.GpsRealData;
29 import com.bsth.data.pilot80.PilotReport; 12 import com.bsth.data.pilot80.PilotReport;
30 import com.bsth.data.schedule.DayOfSchedule; 13 import com.bsth.data.schedule.DayOfSchedule;
31 -import com.bsth.entity.directive.D60;  
32 -import com.bsth.entity.directive.D64;  
33 -import com.bsth.entity.directive.D80;  
34 -import com.bsth.entity.directive.DC0_A3;  
35 -import com.bsth.entity.directive.Directive; 14 +import com.bsth.entity.directive.*;
36 import com.bsth.entity.realcontrol.ScheduleRealInfo; 15 import com.bsth.entity.realcontrol.ScheduleRealInfo;
37 import com.bsth.entity.sys.SysUser; 16 import com.bsth.entity.sys.SysUser;
38 import com.bsth.repository.directive.D60Repository; 17 import com.bsth.repository.directive.D60Repository;
@@ -44,6 +23,15 @@ import com.bsth.websocket.handler.RealControlSocketHandler; @@ -44,6 +23,15 @@ import com.bsth.websocket.handler.RealControlSocketHandler;
44 import com.fasterxml.jackson.core.JsonProcessingException; 23 import com.fasterxml.jackson.core.JsonProcessingException;
45 import com.fasterxml.jackson.databind.ObjectMapper; 24 import com.fasterxml.jackson.databind.ObjectMapper;
46 import com.google.common.base.Splitter; 25 import com.google.common.base.Splitter;
  26 +import org.apache.commons.lang3.StringUtils;
  27 +import org.joda.time.format.DateTimeFormat;
  28 +import org.joda.time.format.DateTimeFormatter;
  29 +import org.slf4j.Logger;
  30 +import org.slf4j.LoggerFactory;
  31 +import org.springframework.beans.factory.annotation.Autowired;
  32 +import org.springframework.stereotype.Service;
  33 +
  34 +import java.util.*;
47 35
48 @Service 36 @Service
49 public class DirectiveServiceImpl extends BaseServiceImpl<D60, Integer> implements DirectiveService { 37 public class DirectiveServiceImpl extends BaseServiceImpl<D60, Integer> implements DirectiveService {
@@ -265,7 +253,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen @@ -265,7 +253,7 @@ public class DirectiveServiceImpl extends BaseServiceImpl&lt;D60, Integer&gt; implemen
265 // 根据当前GPS确定 上下行和营运状态 253 // 根据当前GPS确定 上下行和营运状态
266 Integer upDown = null, state = null; 254 Integer upDown = null, state = null;
267 if (null == sch) { 255 if (null == sch) {
268 - GpsEntity gpsData = gpsRealDataBuffer.findByDeviceId(deviceId); 256 + GpsEntity gpsData = gpsRealDataBuffer.get(deviceId);
269 if (null == gpsData) { 257 if (null == gpsData) {
270 /* 258 /*
271 * 短语指令不会变更设备状态,所以在没有gps状态对照的情况下可以下发 259 * 短语指令不会变更设备状态,所以在没有gps状态对照的情况下可以下发
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -1379,7 +1379,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1379,7 +1379,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1379 @Override 1379 @Override
1380 public List<Map<String, Object>> statisticsDaily(String line, String date, 1380 public List<Map<String, Object>> statisticsDaily(String line, String date,
1381 String xlName, String type) { 1381 String xlName, String type) {
1382 - List<ScheduleRealInfo> list = scheduleRealInfoRepository.scheduleByDateAndLine(line, date); 1382 + List<ScheduleRealInfo> list = scheduleRealInfoRepository.scheduleByDateAndLine2(line, date);
  1383 +
1383 List<Map<String, Object>> lMap = new ArrayList<Map<String, Object>>(); 1384 List<Map<String, Object>> lMap = new ArrayList<Map<String, Object>>();
1384 DecimalFormat format = new DecimalFormat("0.00"); 1385 DecimalFormat format = new DecimalFormat("0.00");
1385 double jhlc = 0, tempJhlc = 0, childMileage = 0; 1386 double jhlc = 0, tempJhlc = 0, childMileage = 0;
@@ -1392,159 +1393,350 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1392,159 +1393,350 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1392 int fzbc = 0, fzbc_m = 0, fzbc_a = 0; 1393 int fzbc = 0, fzbc_m = 0, fzbc_a = 0;
1393 int dtbc = 0, dtbc_m = 0, dtbc_a = 0; 1394 int dtbc = 0, dtbc_m = 0, dtbc_a = 0;
1394 int djg = 0, djg_m = 0, djg_a = 0, djg_time = 0; 1395 int djg = 0, djg_m = 0, djg_a = 0, djg_time = 0;
1395 - Map<String, Object> map = new HashMap<String, Object>();  
1396 - for (ScheduleRealInfo scheduleRealInfo : list) { 1396 +
  1397 + double jhlcZ = 0, tempJhlcZ = 0, childMileageZ = 0;
  1398 + float sjglZ = 0f, ssglZ = 0f, ssgl_lzZ = 0f, ssgl_dmZ = 0f,
  1399 + ssgl_gzZ = 0f, ssgl_jfZ = 0f, ssgl_zsZ = 0f, ssgl_qrZ = 0f, ssgl_qcZ = 0f,
  1400 + ssgl_kxZ = 0f, ssgl_qhZ = 0f, ssgl_ywZ = 0f, ssgl_otherZ = 0f, ljglZ = 0f;
  1401 + //班次
  1402 + int jhbcZ = 0, jhbc_mZ = 0, jhbc_aZ = 0;
  1403 + int sjbcZ = 0, sjbc_mZ = 0, sjbc_aZ = 0;
  1404 + int ljbcZ = 0, ljbc_mZ = 0, ljbc_aZ = 0;
  1405 + int fzbcZ = 0, fzbc_mZ = 0, fzbc_aZ = 0;
  1406 + int dtbcZ = 0, dtbc_mZ = 0, dtbc_aZ = 0;
  1407 + int djgZ = 0, djg_mZ = 0, djg_aZ = 0, djg_timeZ = 0;
  1408 + Map<String, Object> map =null;
  1409 + for (int i=0; i<list.size();i++) {
  1410 + ScheduleRealInfo scheduleRealInfo=list.get(i);
1397 if (scheduleRealInfo != null) { 1411 if (scheduleRealInfo != null) {
1398 -  
1399 - if (!(scheduleRealInfo.getBcType().equals("in")  
1400 - || scheduleRealInfo.getBcType().equals("out"))) {  
1401 - Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();  
1402 - //计算实际里程,少驶里程,计划里程=实际里程+少驶里程  
1403 - if (childTaskPlans.isEmpty()) {  
1404 - tempJhlc = scheduleRealInfo.getJhlc() == null ? 0 : scheduleRealInfo.getJhlc();  
1405 - //临加公里  
1406 - if (scheduleRealInfo.isSflj()) {  
1407 - ljgl += tempJhlc; 1412 + Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
  1413 + //计算实际里程,少驶里程,计划里程=实际里程+少驶里程
  1414 + if (childTaskPlans.isEmpty()) {
  1415 + tempJhlc = scheduleRealInfo.getJhlc() == null ? 0 : scheduleRealInfo.getJhlc();
  1416 + //临加公里
  1417 + if (scheduleRealInfo.isSflj()) {
  1418 + ljgl += tempJhlc;
  1419 + ljglZ += tempJhlc;
  1420 + } else {
  1421 + jhlc += tempJhlc;
  1422 + jhlcZ += tempJhlc;
  1423 + }
  1424 + if (scheduleRealInfo.getStatus() == -1) {
  1425 + ssgl += tempJhlc;
  1426 + ssglZ += tempJhlc;
  1427 + if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("路阻") != -1) {
  1428 + ssgl_lz += tempJhlc;
  1429 + ssgl_lzZ += tempJhlc;
  1430 + } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("吊慢") != -1) {
  1431 + ssgl_dm += tempJhlc;
  1432 + ssgl_dmZ += tempJhlc;
  1433 + } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("故障") != -1) {
  1434 + ssgl_gz += tempJhlc;
  1435 + ssgl_gzZ += tempJhlc;
  1436 + } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("纠纷") != -1) {
  1437 + ssgl_jf += tempJhlc;
  1438 + ssgl_jfZ += tempJhlc;
  1439 + } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("肇事") != -1) {
  1440 + ssgl_zs += tempJhlc;
  1441 + ssgl_zsZ += tempJhlc;
  1442 + } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("缺人") != -1) {
  1443 + ssgl_qr += tempJhlc;
  1444 + ssgl_qrZ += tempJhlc;
  1445 + } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("缺车") != -1) {
  1446 + ssgl_qc += tempJhlc;
  1447 + ssgl_qcZ += tempJhlc;
  1448 + } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("客稀") != -1) {
  1449 + ssgl_kx += tempJhlc;
  1450 + ssgl_kxZ += tempJhlc;
  1451 + } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("气候") != -1) {
  1452 + ssgl_qh += tempJhlc;
  1453 + ssgl_qhZ += tempJhlc;
  1454 + } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("援外") != -1) {
  1455 + ssgl_yw += tempJhlc;
  1456 + ssgl_ywZ += tempJhlc;
1408 } else { 1457 } else {
1409 - jhlc += tempJhlc;  
1410 - }  
1411 - if (scheduleRealInfo.getStatus() == 2) {  
1412 - sjgl += tempJhlc;  
1413 - } else if (scheduleRealInfo.getStatus() == -1) {  
1414 - ssgl += tempJhlc;  
1415 - if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("路阻") != -1) {  
1416 - ssgl_lz += tempJhlc;  
1417 - } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("吊慢") != -1) {  
1418 - ssgl_dm += tempJhlc;  
1419 - } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("故障") != -1) {  
1420 - ssgl_gz += tempJhlc;  
1421 - } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("纠纷") != -1) {  
1422 - ssgl_jf += tempJhlc;  
1423 - } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("肇事") != -1) {  
1424 - ssgl_zs += tempJhlc;  
1425 - } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("缺人") != -1) {  
1426 - ssgl_qr += tempJhlc;  
1427 - } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("缺车") != -1) {  
1428 - ssgl_qc += tempJhlc;  
1429 - } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("客稀") != -1) {  
1430 - ssgl_kx += tempJhlc;  
1431 - } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("气候") != -1) {  
1432 - ssgl_qh += tempJhlc;  
1433 - } else if ((scheduleRealInfo.getRemarks() == null ? "" : scheduleRealInfo.getRemarks()).indexOf("援外") != -1) {  
1434 - ssgl_yw += tempJhlc;  
1435 - } else {  
1436 - ssgl_other += tempJhlc;  
1437 - } 1458 + ssgl_other += tempJhlc;
  1459 + ssgl_otherZ += tempJhlc;
1438 } 1460 }
1439 - } else {  
1440 - Iterator<ChildTaskPlan> it = childTaskPlans.iterator();  
1441 - while (it.hasNext()) {  
1442 - ChildTaskPlan childTaskPlan = it.next();  
1443 - childMileage = childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();  
1444 - jhlc += childMileage;  
1445 - if (childTaskPlan.isDestroy()) {  
1446 - ssgl += childMileage;  
1447 - if (childTaskPlan.getDestroyReason().equals("路阻")) {  
1448 - ssgl_lz += childTaskPlan.getMileage();  
1449 - } else if (childTaskPlan.getDestroyReason().equals("吊慢")) {  
1450 - ssgl_dm += childTaskPlan.getMileage();  
1451 - } else if (childTaskPlan.getDestroyReason().equals("故障")) {  
1452 - ssgl_gz += childTaskPlan.getMileage();  
1453 - } else if (childTaskPlan.getDestroyReason().equals("纠纷")) {  
1454 - ssgl_jf += childTaskPlan.getMileage();  
1455 - } else if (childTaskPlan.getDestroyReason().equals("肇事")) {  
1456 - ssgl_zs += childTaskPlan.getMileage();  
1457 - } else if (childTaskPlan.getDestroyReason().equals("缺人")) {  
1458 - ssgl_qr += childTaskPlan.getMileage();  
1459 - } else if (childTaskPlan.getDestroyReason().equals("缺车")) {  
1460 - ssgl_qc += childTaskPlan.getMileage();  
1461 - } else if (childTaskPlan.getDestroyReason().equals("客稀")) {  
1462 - ssgl_kx += childTaskPlan.getMileage();  
1463 - } else if (childTaskPlan.getDestroyReason().equals("气候")) {  
1464 - ssgl_qh += childTaskPlan.getMileage();  
1465 - } else if (childTaskPlan.getDestroyReason().equals("援外")) {  
1466 - ssgl_yw += childTaskPlan.getMileage();  
1467 - } else {  
1468 - ssgl_other += childTaskPlan.getMileage();  
1469 - } 1461 + }else {
  1462 + sjgl += tempJhlc;
  1463 + sjglZ += tempJhlc;
  1464 + }
  1465 + } else {
  1466 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  1467 + while (it.hasNext()) {
  1468 + ChildTaskPlan childTaskPlan = it.next();
  1469 + childMileage = childTaskPlan.getMileage() == null ? 0 : childTaskPlan.getMileage();
  1470 + jhlc += childMileage;
  1471 + jhlcZ += childMileage;
  1472 + if (childTaskPlan.isDestroy()) {
  1473 + ssgl += childMileage;
  1474 + ssglZ += childMileage;
  1475 + if (childTaskPlan.getDestroyReason().equals("路阻")) {
  1476 + ssgl_lz += childTaskPlan.getMileage();
  1477 + ssgl_lzZ += childTaskPlan.getMileage();
  1478 + } else if (childTaskPlan.getDestroyReason().equals("吊慢")) {
  1479 + ssgl_dm += childTaskPlan.getMileage();
  1480 + ssgl_dmZ += childTaskPlan.getMileage();
  1481 + } else if (childTaskPlan.getDestroyReason().equals("故障")) {
  1482 + ssgl_gz += childTaskPlan.getMileage();
  1483 + ssgl_gzZ += childTaskPlan.getMileage();
  1484 + } else if (childTaskPlan.getDestroyReason().equals("纠纷")) {
  1485 + ssgl_jf += childTaskPlan.getMileage();
  1486 + ssgl_jfZ += childTaskPlan.getMileage();
  1487 + } else if (childTaskPlan.getDestroyReason().equals("肇事")) {
  1488 + ssgl_zs += childTaskPlan.getMileage();
  1489 + ssgl_zsZ += childTaskPlan.getMileage();
  1490 + } else if (childTaskPlan.getDestroyReason().equals("缺人")) {
  1491 + ssgl_qr += childTaskPlan.getMileage();
  1492 + ssgl_qrZ += childTaskPlan.getMileage();
  1493 + } else if (childTaskPlan.getDestroyReason().equals("缺车")) {
  1494 + ssgl_qc += childTaskPlan.getMileage();
  1495 + ssgl_qcZ += childTaskPlan.getMileage();
  1496 + } else if (childTaskPlan.getDestroyReason().equals("客稀")) {
  1497 + ssgl_kx += childTaskPlan.getMileage();
  1498 + ssgl_kxZ += childTaskPlan.getMileage();
  1499 + } else if (childTaskPlan.getDestroyReason().equals("气候")) {
  1500 + ssgl_qh += childTaskPlan.getMileage();
  1501 + ssgl_qhZ += childTaskPlan.getMileage();
  1502 + } else if (childTaskPlan.getDestroyReason().equals("援外")) {
  1503 + ssgl_yw += childTaskPlan.getMileage();
  1504 + ssgl_ywZ += childTaskPlan.getMileage();
1470 } else { 1505 } else {
1471 - sjgl += childMileage; 1506 + ssgl_other += childTaskPlan.getMileage();
  1507 + ssgl_otherZ += childTaskPlan.getMileage();
1472 } 1508 }
  1509 + } else {
  1510 + sjgl += childMileage;
  1511 + sjglZ += childMileage;
1473 } 1512 }
1474 } 1513 }
  1514 + }
1475 1515
1476 - //班次  
1477 - jhbc++;  
1478 - String[] fcsj = scheduleRealInfo.getFcsj().split(":");  
1479 - String[] fcsjActual = (scheduleRealInfo.getFcsjActual() == null ? "0:00" : scheduleRealInfo.getFcsjActual()).split(":");  
1480 - if ((Integer.parseInt(fcsj[0]) * 60 + Integer.parseInt(fcsj[1])) > sj_0 && (Integer.parseInt(fcsj[0]) * 60 + Integer.parseInt(fcsj[1])) < sj_1) {  
1481 - jhbc_m++;  
1482 - } else if ((Integer.parseInt(fcsj[0]) * 60 + Integer.parseInt(fcsj[1])) > sj_2 && (Integer.parseInt(fcsj[0]) * 60 + Integer.parseInt(fcsj[1])) < sj_3) {  
1483 - jhbc_a++;  
1484 - }  
1485 - if (scheduleRealInfo.getStatus() == 2) {  
1486 - sjbc++;  
1487 - if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_0 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_1) {  
1488 - sjbc_m++;  
1489 - } else if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_2 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_3) {  
1490 - sjbc_a++;  
1491 - } 1516 + //班次
  1517 + jhbc++;
  1518 + String[] fcsj = scheduleRealInfo.getFcsj().split(":");
  1519 + String[] fcsjActual = (scheduleRealInfo.getFcsjActual() == null ? "0:00" : scheduleRealInfo.getFcsjActual()).split(":");
  1520 + if ((Integer.parseInt(fcsj[0]) * 60 + Integer.parseInt(fcsj[1])) > sj_0 && (Integer.parseInt(fcsj[0]) * 60 + Integer.parseInt(fcsj[1])) < sj_1) {
  1521 + jhbc_m++;
  1522 + jhbc_mZ++;
  1523 + } else if ((Integer.parseInt(fcsj[0]) * 60 + Integer.parseInt(fcsj[1])) > sj_2 && (Integer.parseInt(fcsj[0]) * 60 + Integer.parseInt(fcsj[1])) < sj_3) {
  1524 + jhbc_a++;
  1525 + jhbc_aZ++;
  1526 + }
  1527 + if (scheduleRealInfo.getStatus() == 2) {
  1528 + sjbc++;
  1529 + sjbcZ++;
  1530 + if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_0 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_1) {
  1531 + sjbc_m++;
  1532 + sjbc_mZ++;
  1533 + } else if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_2 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_3) {
  1534 + sjbc_a++;
  1535 + sjbc_aZ++;
1492 } 1536 }
1493 - if (scheduleRealInfo.isSflj()) {  
1494 - ljbc++;  
1495 - if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_0 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_1) {  
1496 - ljbc_m++;  
1497 - } else if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_2 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_3) {  
1498 - ljbc_a++;  
1499 - } 1537 + }
  1538 + if (scheduleRealInfo.isSflj()) {
  1539 + ljbc++;
  1540 + ljbcZ++;
  1541 + if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_0 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_1) {
  1542 + ljbc_m++;
  1543 + ljbc_mZ++;
  1544 + } else if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_2 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_3) {
  1545 + ljbc_a++;
  1546 + ljbc_aZ++;
1500 } 1547 }
1501 - if (scheduleRealInfo.getBcType().equals("venting")) {  
1502 - fzbc++;  
1503 - if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_0 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_1) {  
1504 - fzbc_m++;  
1505 - } else if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_2 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_3) {  
1506 - fzbc_a++;  
1507 - } 1548 + }
  1549 + if (scheduleRealInfo.getBcType().equals("venting")) {
  1550 + fzbc++;
  1551 + fzbcZ++;
  1552 + if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_0 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_1) {
  1553 + fzbc_m++;
  1554 + fzbc_mZ++;
  1555 + } else if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_2 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_3) {
  1556 + fzbc_a++;
  1557 + fzbc_aZ++;
1508 } 1558 }
1509 } 1559 }
  1560 +
  1561 + if(i<list.size()-1){
  1562 + if(!scheduleRealInfo.getXlBm().equals(list.get(i+1).getXlBm()))
  1563 + {
  1564 + map= new HashMap<String, Object>();
  1565 + map.put("xlName", scheduleRealInfo.getXlName());
  1566 + map.put("jhlc", format.format(jhlc));
  1567 + map.put("sjgl", format.format(sjgl));
  1568 + map.put("ssgl", format.format(ssgl));
  1569 + map.put("ssgl_lz", ssgl_lz == 0 ? 0 : format.format(ssgl_lz));
  1570 + map.put("ssgl_dm", ssgl_dm == 0 ? 0 : format.format(ssgl_dm));
  1571 + map.put("ssgl_gz", ssgl_gz == 0 ? 0 : format.format(ssgl_gz));
  1572 + map.put("ssgl_jf", ssgl_jf == 0 ? 0 : format.format(ssgl_jf));
  1573 + map.put("ssgl_zs", ssgl_zs == 0 ? 0 : format.format(ssgl_zs));
  1574 + map.put("ssgl_qr", ssgl_qr == 0 ? 0 : format.format(ssgl_qr));
  1575 + map.put("ssgl_qc", ssgl_qc == 0 ? 0 : format.format(ssgl_qc));
  1576 + map.put("ssgl_kx", ssgl_kx == 0 ? 0 : format.format(ssgl_kx));
  1577 + map.put("ssgl_qh", ssgl_qh == 0 ? 0 : format.format(ssgl_qh));
  1578 + map.put("ssgl_yw", ssgl_yw == 0 ? 0 : format.format(ssgl_yw));
  1579 + map.put("ssgl_other", ssgl_other == 0 ? 0 : format.format(ssgl_other));
  1580 + map.put("ljgl", ljgl == 0 ? 0 : format.format(ljgl));
  1581 + map.put("jhbc", jhbc);
  1582 + map.put("jhbc_m", jhbc_m);
  1583 + map.put("jhbc_a", jhbc_a);
  1584 + map.put("sjbc", sjbc);
  1585 + map.put("sjbc_m", sjbc_m);
  1586 + map.put("sjbc_a", sjbc_a);
  1587 + map.put("ljbc", ljbc);
  1588 + map.put("ljbc_m", ljbc_m);
  1589 + map.put("ljbc_a", ljbc_a);
  1590 + map.put("fzbc", fzbc);
  1591 + map.put("fzbc_m", fzbc_m);
  1592 + map.put("fzbc_a", fzbc_a);
  1593 + map.put("dtbc", dtbc);
  1594 + map.put("dtbc_m", dtbc_m);
  1595 + map.put("dtbc_a", dtbc_a);
  1596 + map.put("djg", djg);
  1597 + map.put("djg_m", djg_m);
  1598 + map.put("djg_a", djg_a);
  1599 + map.put("djg_time", djg_time);
  1600 + lMap.add(map);
  1601 + jhlc = 0; tempJhlc = 0; childMileage = 0;
  1602 + sjgl = 0f; ssgl = 0f; ssgl_lz = 0f; ssgl_dm = 0f; ssgl_gz = 0f; ssgl_jf = 0f; ssgl_zs = 0f;
  1603 + ssgl_qr = 0f; ssgl_qc = 0f; ssgl_kx = 0f; ssgl_qh = 0f; ssgl_yw = 0f;ssgl_other = 0f;
  1604 + ljgl = 0f;
  1605 + //班次
  1606 + jhbc = 0; jhbc_m = 0; jhbc_a = 0;
  1607 + sjbc = 0; sjbc_m = 0; sjbc_a = 0;
  1608 + ljbc = 0; ljbc_m = 0; ljbc_a = 0;
  1609 + fzbc = 0; fzbc_m = 0; fzbc_a = 0;
  1610 + dtbc = 0; dtbc_m = 0; dtbc_a = 0;
  1611 + djg = 0; djg_m = 0; djg_a = 0; djg_time = 0;
  1612 + }
  1613 + }else{
  1614 + map= new HashMap<String, Object>();
  1615 + map.put("xlName", scheduleRealInfo.getXlName());
  1616 + map.put("jhlc", format.format(jhlc));
  1617 + map.put("sjgl", format.format(sjgl));
  1618 + map.put("ssgl", format.format(ssgl));
  1619 + map.put("ssgl_lz", ssgl_lz == 0 ? 0 : format.format(ssgl_lz));
  1620 + map.put("ssgl_dm", ssgl_dm == 0 ? 0 : format.format(ssgl_dm));
  1621 + map.put("ssgl_gz", ssgl_gz == 0 ? 0 : format.format(ssgl_gz));
  1622 + map.put("ssgl_jf", ssgl_jf == 0 ? 0 : format.format(ssgl_jf));
  1623 + map.put("ssgl_zs", ssgl_zs == 0 ? 0 : format.format(ssgl_zs));
  1624 + map.put("ssgl_qr", ssgl_qr == 0 ? 0 : format.format(ssgl_qr));
  1625 + map.put("ssgl_qc", ssgl_qc == 0 ? 0 : format.format(ssgl_qc));
  1626 + map.put("ssgl_kx", ssgl_kx == 0 ? 0 : format.format(ssgl_kx));
  1627 + map.put("ssgl_qh", ssgl_qh == 0 ? 0 : format.format(ssgl_qh));
  1628 + map.put("ssgl_yw", ssgl_yw == 0 ? 0 : format.format(ssgl_yw));
  1629 + map.put("ssgl_other", ssgl_other == 0 ? 0 : format.format(ssgl_other));
  1630 + map.put("ljgl", ljgl == 0 ? 0 : format.format(ljgl));
  1631 + map.put("jhbc", jhbc);
  1632 + map.put("jhbc_m", jhbc_m);
  1633 + map.put("jhbc_a", jhbc_a);
  1634 + map.put("sjbc", sjbc);
  1635 + map.put("sjbc_m", sjbc_m);
  1636 + map.put("sjbc_a", sjbc_a);
  1637 + map.put("ljbc", ljbc);
  1638 + map.put("ljbc_m", ljbc_m);
  1639 + map.put("ljbc_a", ljbc_a);
  1640 + map.put("fzbc", fzbc);
  1641 + map.put("fzbc_m", fzbc_m);
  1642 + map.put("fzbc_a", fzbc_a);
  1643 + map.put("dtbc", dtbc);
  1644 + map.put("dtbc_m", dtbc_m);
  1645 + map.put("dtbc_a", dtbc_a);
  1646 + map.put("djg", djg);
  1647 + map.put("djg_m", djg_m);
  1648 + map.put("djg_a", djg_a);
  1649 + map.put("djg_time", djg_time);
  1650 + lMap.add(map);
  1651 + jhlc = 0; tempJhlc = 0; childMileage = 0;
  1652 + sjgl = 0f; ssgl = 0f; ssgl_lz = 0f; ssgl_dm = 0f; ssgl_gz = 0f; ssgl_jf = 0f; ssgl_zs = 0f;
  1653 + ssgl_qr = 0f; ssgl_qc = 0f; ssgl_kx = 0f; ssgl_qh = 0f; ssgl_yw = 0f;ssgl_other = 0f;
  1654 + ljgl = 0f;
  1655 + //班次
  1656 + jhbc = 0; jhbc_m = 0; jhbc_a = 0;
  1657 + sjbc = 0; sjbc_m = 0; sjbc_a = 0;
  1658 + ljbc = 0; ljbc_m = 0; ljbc_a = 0;
  1659 + fzbc = 0; fzbc_m = 0; fzbc_a = 0;
  1660 + dtbc = 0; dtbc_m = 0; dtbc_a = 0;
  1661 + djg = 0; djg_m = 0; djg_a = 0; djg_time = 0;
  1662 + }
1510 } 1663 }
1511 } 1664 }
1512 - map.put("xlName", xlName);  
1513 - map.put("jhlc", format.format(jhlc));  
1514 - map.put("sjgl", format.format(sjgl));  
1515 - map.put("ssgl", format.format(ssgl));  
1516 - map.put("ssgl_lz", ssgl_lz == 0 ? 0 : format.format(ssgl_lz));  
1517 - map.put("ssgl_dm", ssgl_dm == 0 ? 0 : format.format(ssgl_dm));  
1518 - map.put("ssgl_gz", ssgl_gz == 0 ? 0 : format.format(ssgl_gz));  
1519 - map.put("ssgl_jf", ssgl_jf == 0 ? 0 : format.format(ssgl_jf));  
1520 - map.put("ssgl_zs", ssgl_zs == 0 ? 0 : format.format(ssgl_zs));  
1521 - map.put("ssgl_qr", ssgl_qr == 0 ? 0 : format.format(ssgl_qr));  
1522 - map.put("ssgl_qc", ssgl_qc == 0 ? 0 : format.format(ssgl_qc));  
1523 - map.put("ssgl_kx", ssgl_kx == 0 ? 0 : format.format(ssgl_kx));  
1524 - map.put("ssgl_qh", ssgl_qh == 0 ? 0 : format.format(ssgl_qh));  
1525 - map.put("ssgl_yw", ssgl_yw == 0 ? 0 : format.format(ssgl_yw));  
1526 - map.put("ssgl_other", ssgl_other == 0 ? 0 : format.format(ssgl_other));  
1527 - map.put("ljgl", ljgl == 0 ? 0 : format.format(ljgl));  
1528 - map.put("jhbc", jhbc);  
1529 - map.put("jhbc_m", jhbc_m);  
1530 - map.put("jhbc_a", jhbc_a);  
1531 - map.put("sjbc", sjbc);  
1532 - map.put("sjbc_m", sjbc_m);  
1533 - map.put("sjbc_a", sjbc_a);  
1534 - map.put("ljbc", ljbc);  
1535 - map.put("ljbc_m", ljbc_m);  
1536 - map.put("ljbc_a", ljbc_a);  
1537 - map.put("fzbc", fzbc);  
1538 - map.put("fzbc_m", fzbc_m);  
1539 - map.put("fzbc_a", fzbc_a);  
1540 - map.put("dtbc", dtbc);  
1541 - map.put("dtbc_m", dtbc_m);  
1542 - map.put("dtbc_a", dtbc_a);  
1543 - map.put("djg", djg);  
1544 - map.put("djg_m", djg_m);  
1545 - map.put("djg_a", djg_a);  
1546 - map.put("djg_time", djg_time); 1665 + map= new HashMap<String, Object>();
  1666 + map.put("xlName", "合计");
  1667 + map.put("jhlc", format.format(jhlcZ));
  1668 + map.put("sjgl", format.format(sjglZ));
  1669 + map.put("ssgl", format.format(ssglZ));
  1670 + map.put("ssgl_lz", ssgl_lzZ == 0 ? 0 : format.format(ssgl_lzZ));
  1671 + map.put("ssgl_dm", ssgl_dmZ == 0 ? 0 : format.format(ssgl_dmZ));
  1672 + map.put("ssgl_gz", ssgl_gzZ == 0 ? 0 : format.format(ssgl_gzZ));
  1673 + map.put("ssgl_jf", ssgl_jfZ == 0 ? 0 : format.format(ssgl_jfZ));
  1674 + map.put("ssgl_zs", ssgl_zsZ == 0 ? 0 : format.format(ssgl_zsZ));
  1675 + map.put("ssgl_qr", ssgl_qrZ == 0 ? 0 : format.format(ssgl_qrZ));
  1676 + map.put("ssgl_qc", ssgl_qcZ == 0 ? 0 : format.format(ssgl_qcZ));
  1677 + map.put("ssgl_kx", ssgl_kxZ == 0 ? 0 : format.format(ssgl_kxZ));
  1678 + map.put("ssgl_qh", ssgl_qhZ == 0 ? 0 : format.format(ssgl_qhZ));
  1679 + map.put("ssgl_yw", ssgl_ywZ == 0 ? 0 : format.format(ssgl_ywZ));
  1680 + map.put("ssgl_other", ssgl_otherZ == 0 ? 0 : format.format(ssgl_otherZ));
  1681 + map.put("ljgl", ljglZ == 0 ? 0 : format.format(ljglZ));
  1682 + map.put("jhbc", jhbcZ);
  1683 + map.put("jhbc_m", jhbc_mZ);
  1684 + map.put("jhbc_a", jhbc_aZ);
  1685 + map.put("sjbc", sjbcZ);
  1686 + map.put("sjbc_m", sjbc_mZ);
  1687 + map.put("sjbc_a", sjbc_aZ);
  1688 + map.put("ljbc", ljbcZ);
  1689 + map.put("ljbc_m", ljbc_mZ);
  1690 + map.put("ljbc_a", ljbc_aZ);
  1691 + map.put("fzbc", fzbcZ);
  1692 + map.put("fzbc_m", fzbc_mZ);
  1693 + map.put("fzbc_a", fzbc_aZ);
  1694 + map.put("dtbc", dtbcZ);
  1695 + map.put("dtbc_m", dtbc_mZ);
  1696 + map.put("dtbc_a", dtbc_aZ);
  1697 + map.put("djg", djgZ);
  1698 + map.put("djg_m", djg_mZ);
  1699 + map.put("djg_a", djg_aZ);
  1700 + map.put("djg_time", djg_timeZ);
1547 lMap.add(map); 1701 lMap.add(map);
  1702 + /* for (int i = 0; i < lMap.size(); i++) {
  1703 + Map<String, Object> m=lMap.get(i);
  1704 +// m.get(""))
  1705 + jhlc += Double.parseDouble(m.get("jhlc").toString());
  1706 + sjgl += Double.parseDouble(m.get("sjgl").toString());
  1707 + ssgl += Double.parseDouble( m.get("ssgl").toString());
  1708 + ssgl_lz += Double.parseDouble( m.get("ssgl_lz").toString());
  1709 + ssgl_dm += Double.parseDouble(m.get("ssgl_dm").toString());
  1710 + ssgl_gz += Double.parseDouble( m.get("ssgl_gz").toString());
  1711 + ssgl_jf += m.get("ssgl_jf", ssgl_jf == 0 ? 0 : format.format(ssgl_jf));
  1712 + m.get("ssgl_zs", ssgl_zs == 0 ? 0 : format.format(ssgl_zs));
  1713 + m.get("ssgl_qr", ssgl_qr == 0 ? 0 : format.format(ssgl_qr));
  1714 + m.get("ssgl_qc", ssgl_qc == 0 ? 0 : format.format(ssgl_qc));
  1715 + m.get("ssgl_kx", ssgl_kx == 0 ? 0 : format.format(ssgl_kx));
  1716 + m.get("ssgl_qh", ssgl_qh == 0 ? 0 : format.format(ssgl_qh));
  1717 + m.get("ssgl_yw", ssgl_yw == 0 ? 0 : format.format(ssgl_yw));
  1718 + m.get("ssgl_other", ssgl_other == 0 ? 0 : format.format(ssgl_other));
  1719 + m.get("ljgl", ljgl == 0 ? 0 : format.format(ljgl));
  1720 + m.get("jhbc", jhbc);
  1721 + m.get("jhbc_m", jhbc_m);
  1722 + m.get("jhbc_a", jhbc_a);
  1723 + m.get("sjbc", sjbc);
  1724 + m.get("sjbc_m", sjbc_m);
  1725 + m.get("sjbc_a", sjbc_a);
  1726 + m.get("ljbc", ljbc);
  1727 + m.get("ljbc_m", ljbc_m);
  1728 + m.get("ljbc_a", ljbc_a);
  1729 + m.get("fzbc", fzbc);
  1730 + m.get("fzbc_m", fzbc_m);
  1731 + m.get("fzbc_a", fzbc_a);
  1732 + m.get("dtbc", dtbc);
  1733 + m.get("dtbc_m", dtbc_m);
  1734 + m.get("dtbc_a", dtbc_a);
  1735 + m.get("djg", djg);
  1736 + m.get("djg_m", djg_m);
  1737 + m.get("djg_a", djg_a);
  1738 + m.get("djg_time", djg_time);
  1739 + }*/
1548 1740
1549 if(type != null && type.length() != 0 && type.equals("export")){ 1741 if(type != null && type.length() != 0 && type.equals("export")){
1550 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"), 1742 SimpleDateFormat sdfMonth = new SimpleDateFormat("yyyy-MM-dd"),
@@ -2129,7 +2321,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2129,7 +2321,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2129 int jhbc = 0,cjbc = 0,ljbc = 0; 2321 int jhbc = 0,cjbc = 0,ljbc = 0;
2130 double jhlc = 0, yygl = 0, ksgl = 0,tempJhlc = 0,jcclc=0; 2322 double jhlc = 0, yygl = 0, ksgl = 0,tempJhlc = 0,jcclc=0;
2131 float addMileage = 0l,remMileage = 0l; 2323 float addMileage = 0l,remMileage = 0l;
2132 - 2324 + int xyz=1;
2133 Map<String,Object> map; 2325 Map<String,Object> map;
2134 for(ScheduleRealInfo scheduleRealInfo : scheduleRealInfos){ 2326 for(ScheduleRealInfo scheduleRealInfo : scheduleRealInfos){
2135 if(scheduleRealInfo != null){ 2327 if(scheduleRealInfo != null){
@@ -2142,8 +2334,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2142,8 +2334,11 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2142 if(scheduleRealInfo.isSflj()){ 2334 if(scheduleRealInfo.isSflj()){
2143 ljbc++; 2335 ljbc++;
2144 }else{ 2336 }else{
2145 - jhlc += tempJhlc;  
2146 - jhbc++; 2337 + if( !(scheduleRealInfo.getBcType().equals("in")
  2338 + ||scheduleRealInfo.getBcType().equals("out")) ){
  2339 + jhbc++;
  2340 + jhlc += tempJhlc;
  2341 + }
2147 if(scheduleRealInfo.getStatus() == -1){ 2342 if(scheduleRealInfo.getStatus() == -1){
2148 remMileage += tempJhlc; 2343 remMileage += tempJhlc;
2149 cjbc++; 2344 cjbc++;
@@ -2153,25 +2348,44 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2153,25 +2348,44 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2153 //计算营运里程,空驶里程 2348 //计算营运里程,空驶里程
2154 if(childTaskPlans.isEmpty()){ 2349 if(childTaskPlans.isEmpty()){
2155 if(scheduleRealInfo.getBcType().equals("in") || scheduleRealInfo.getBcType().equals("out") 2350 if(scheduleRealInfo.getBcType().equals("in") || scheduleRealInfo.getBcType().equals("out")
2156 - || scheduleRealInfo.getBcType().equals("venting")){  
2157 - ksgl += tempJhlc;  
2158 - }else{  
2159 - yygl += tempJhlc; 2351 + ){
  2352 + jcclc +=tempJhlc;
  2353 + }
  2354 + //主任务 放空班次属于营运
  2355 +// else if(scheduleRealInfo.getBcType().equals("venting")){
  2356 +// ksgl += tempJhlc;
  2357 +// }
  2358 + else{
  2359 + if(scheduleRealInfo.getStatus() != -1){
  2360 + if(scheduleRealInfo.isSflj()){
  2361 + addMileage += tempJhlc;
  2362 + }
  2363 + yygl += tempJhlc;
  2364 + }
2160 } 2365 }
2161 }else{ 2366 }else{
2162 Iterator<ChildTaskPlan> it = childTaskPlans.iterator(); 2367 Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
2163 while(it.hasNext()){ 2368 while(it.hasNext()){
2164 ChildTaskPlan childTaskPlan = it.next(); 2369 ChildTaskPlan childTaskPlan = it.next();
2165 if(childTaskPlan.getMileageType().equals("empty")){ 2370 if(childTaskPlan.getMileageType().equals("empty")){
2166 - if(scheduleRealInfo.isSflj()){  
2167 - addMileage += tempJhlc; 2371 + if(childTaskPlan.isDestroy()){
  2372 + remMileage += childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  2373 + }else{
  2374 + if(scheduleRealInfo.isSflj()){
  2375 + addMileage += tempJhlc;
  2376 + }
  2377 + ksgl += childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
2168 } 2378 }
2169 - ksgl += childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();  
2170 }else{ 2379 }else{
2171 - if(scheduleRealInfo.isSflj()){  
2172 - addMileage += tempJhlc; 2380 + if(childTaskPlan.isDestroy()){
  2381 + remMileage += childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
  2382 +// cjbc++;
  2383 + }else{
  2384 + if(scheduleRealInfo.isSflj()){
  2385 + addMileage += tempJhlc;
  2386 + }
  2387 + yygl += childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();
2173 } 2388 }
2174 - yygl += childTaskPlan.getMileage()==null?0:childTaskPlan.getMileage();  
2175 } 2389 }
2176 } 2390 }
2177 } 2391 }
@@ -2179,6 +2393,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2179,6 +2393,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2179 if(!(scheduleRealInfo.getBcType().equals("in")||scheduleRealInfo.getBcType().equals("out"))){ 2393 if(!(scheduleRealInfo.getBcType().equals("in")||scheduleRealInfo.getBcType().equals("out"))){
2180 map = new HashMap<String, Object>(); 2394 map = new HashMap<String, Object>();
2181 try { 2395 try {
  2396 + scheduleRealInfo.setBcs(xyz);
  2397 + xyz++;
2182 map = rru.getMapValue(scheduleRealInfo); 2398 map = rru.getMapValue(scheduleRealInfo);
2183 String zdsj = scheduleRealInfo.getZdsj(); 2399 String zdsj = scheduleRealInfo.getZdsj();
2184 String zdsjActual = scheduleRealInfo.getZdsjActual(); 2400 String zdsjActual = scheduleRealInfo.getZdsjActual();
@@ -2226,7 +2442,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2226,7 +2442,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2226 Long fcsj1=sdf.parse(date+" 03:00").getTime(); 2442 Long fcsj1=sdf.parse(date+" 03:00").getTime();
2227 Long fcsj2=sdf.parse(date+" 11:00").getTime(); 2443 Long fcsj2=sdf.parse(date+" 11:00").getTime();
2228 Long fcsj3=sdf.parse(date+" 22:00").getTime(); 2444 Long fcsj3=sdf.parse(date+" 22:00").getTime();
2229 - for(int i=0;i<list.size();i++){ 2445 + for(int i=0;i<listDtuy.size();i++){
2230 DutyEmployee t=listDtuy.get(i); 2446 DutyEmployee t=listDtuy.get(i);
2231 Long ts=t.getTs(); 2447 Long ts=t.getTs();
2232 if(ts>fcsj1&&ts<fcsj2){ 2448 if(ts>fcsj1&&ts<fcsj2){
src/main/resources/datatools/ktrs/carsConfigDataInput.ktr
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<transformation>  
3 - <info>  
4 - <name>carsConfigDataInput</name>  
5 - <description>&#x8f66;&#x8f86;&#x914d;&#x7f6e;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</description>  
6 - <extended_description>&#x914d;&#x8f66;&#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;29 13&#x3a;15&#x3a;32.118</created_date>  
81 - <modified_user>-</modified_user>  
82 - <modified_date>2016&#x2f;06&#x2f;29 13&#x3a;15&#x3a;32.118</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 - <notepad>  
88 - <note>&#x8fd9;&#x91cc;&#x6709;&#x4e9b;&#x95ee;&#x9898;&#xa;&#x5728;window2012&#x7684;&#x73af;&#x5883;&#x4e0b;&#xff0c;&#xa;MySql&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x4e2d;&#x5982;&#x679c;&#x8fd4;&#x56de;&#x4e2d;&#x6587;&#x5185;&#x5bb9;&#x7684;&#x5b57;&#x6bb5;&#xff0c;&#x8fd9;&#x4e2a;&#x5185;&#x5bb9;&#x4e71;&#x7801;&#xa;&#x89e3;&#x51b3;&#x529e;&#x6cd5;&#xff0c;&#x5c31;&#x662f;&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x5168;&#x90e8;&#x7f13;&#x5b58;&#xff0c;&#x5c31;&#x4e0d;&#x4e71;&#x7801;&#xa;linux&#x73af;&#x5883;&#x4e0b;&#x6ca1;&#x95ee;&#x9898;&#xa;</note>  
89 - <xloc>40</xloc>  
90 - <yloc>238</yloc>  
91 - <width>333</width>  
92 - <heigth>106</heigth>  
93 - <fontname>YaHei Consolas Hybrid</fontname>  
94 - <fontsize>12</fontsize>  
95 - <fontbold>N</fontbold>  
96 - <fontitalic>N</fontitalic>  
97 - <fontcolorred>0</fontcolorred>  
98 - <fontcolorgreen>0</fontcolorgreen>  
99 - <fontcolorblue>0</fontcolorblue>  
100 - <backgroundcolorred>255</backgroundcolorred>  
101 - <backgroundcolorgreen>205</backgroundcolorgreen>  
102 - <backgroundcolorblue>112</backgroundcolorblue>  
103 - <bordercolorred>100</bordercolorred>  
104 - <bordercolorgreen>100</bordercolorgreen>  
105 - <bordercolorblue>100</bordercolorblue>  
106 - <drawshadow>Y</drawshadow>  
107 - </notepad>  
108 - </notepads>  
109 - <connection>  
110 - <name>bus_control_variable</name>  
111 - <server>&#x24;&#x7b;v_db_ip&#x7d;</server>  
112 - <type>MYSQL</type>  
113 - <access>Native</access>  
114 - <database>&#x24;&#x7b;v_db_dname&#x7d;</database>  
115 - <port>3306</port>  
116 - <username>&#x24;&#x7b;v_db_uname&#x7d;</username>  
117 - <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>  
118 - <servername/>  
119 - <data_tablespace/>  
120 - <index_tablespace/>  
121 - <attributes>  
122 - <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute>  
123 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
124 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
125 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
126 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
127 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
128 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
129 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
130 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
131 - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>  
132 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
133 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
134 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
135 - </attributes>  
136 - </connection>  
137 - <connection>  
138 - <name>bus_control_&#x516c;&#x53f8;_201</name>  
139 - <server>localhost</server>  
140 - <type>MYSQL</type>  
141 - <access>Native</access>  
142 - <database>control</database>  
143 - <port>3306</port>  
144 - <username>root</username>  
145 - <password>Encrypted </password>  
146 - <servername/>  
147 - <data_tablespace/>  
148 - <index_tablespace/>  
149 - <attributes>  
150 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
151 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
152 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
153 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
154 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
155 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
156 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
157 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
158 - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>  
159 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
160 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
161 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
162 - </attributes>  
163 - </connection>  
164 - <connection>  
165 - <name>bus_control_&#x672c;&#x673a;</name>  
166 - <server>localhost</server>  
167 - <type>MYSQL</type>  
168 - <access>Native</access>  
169 - <database>control</database>  
170 - <port>3306</port>  
171 - <username>root</username>  
172 - <password>Encrypted </password>  
173 - <servername/>  
174 - <data_tablespace/>  
175 - <index_tablespace/>  
176 - <attributes>  
177 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
178 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
179 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
180 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
181 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
182 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
183 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
184 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
185 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
186 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
187 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
188 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
189 - </attributes>  
190 - </connection>  
191 - <connection>  
192 - <name>xlab_mysql_youle</name>  
193 - <server>101.231.124.8</server>  
194 - <type>MYSQL</type>  
195 - <access>Native</access>  
196 - <database>xlab_youle</database>  
197 - <port>45687</port>  
198 - <username>xlab-youle</username>  
199 - <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>  
200 - <servername/>  
201 - <data_tablespace/>  
202 - <index_tablespace/>  
203 - <attributes>  
204 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
205 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
206 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
207 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
208 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
209 - <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>  
210 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
211 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
212 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
213 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>  
214 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>  
215 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
216 - </attributes>  
217 - </connection>  
218 - <connection>  
219 - <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>  
220 - <server>localhost</server>  
221 - <type>MYSQL</type>  
222 - <access>Native</access>  
223 - <database>xlab_youle</database>  
224 - <port>3306</port>  
225 - <username>root</username>  
226 - <password>Encrypted </password>  
227 - <servername/>  
228 - <data_tablespace/>  
229 - <index_tablespace/>  
230 - <attributes>  
231 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
232 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
233 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
234 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
235 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
236 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
237 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
238 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
239 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
240 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>  
241 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>  
242 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
243 - </attributes>  
244 - </connection>  
245 - <connection>  
246 - <name>xlab_youle</name>  
247 - <server/>  
248 - <type>MYSQL</type>  
249 - <access>JNDI</access>  
250 - <database>xlab_youle</database>  
251 - <port>1521</port>  
252 - <username/>  
253 - <password>Encrypted </password>  
254 - <servername/>  
255 - <data_tablespace/>  
256 - <index_tablespace/>  
257 - <attributes>  
258 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
259 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
260 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
261 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
262 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
263 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
264 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
265 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
266 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
267 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
268 - </attributes>  
269 - </connection>  
270 - <order>  
271 - <hop> <from>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ccinfo</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>  
272 - <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop>  
273 - <hop> <from>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</from><to>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</to><enabled>Y</enabled> </hop>  
274 - <hop> <from>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</from><to>&#x7ebf;&#x8def;id&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>  
275 - <hop> <from>&#x7ebf;&#x8def;id&#x67e5;&#x8be2;</from><to>&#x8fc7;&#x6ee4;&#x7ebf;&#x8def;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>  
276 - <hop> <from>&#x8fc7;&#x6ee4;&#x7ebf;&#x8def;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</from><to>&#x8f66;&#x8f86;id&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>  
277 - <hop> <from>&#x8f66;&#x8f86;id&#x67e5;&#x8be2;</from><to>&#x8fc7;&#x6ee4;&#x8f66;&#x8f86;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>  
278 - <hop> <from>&#x8fc7;&#x6ee4;&#x8f66;&#x8f86;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</from><to>&#x65e5;&#x671f;&#x8f6c;&#x6362;</to><enabled>Y</enabled> </hop>  
279 - <hop> <from>&#x65e5;&#x671f;&#x8f6c;&#x6362;</from><to>&#x662f;&#x5426;&#x5207;&#x6362;</to><enabled>Y</enabled> </hop>  
280 - <hop> <from>&#x662f;&#x5426;&#x5207;&#x6362;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ccinfo</to><enabled>Y</enabled> </hop>  
281 - </order>  
282 - <step>  
283 - <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>  
284 - <type>ExcelInput</type>  
285 - <description/>  
286 - <distribute>Y</distribute>  
287 - <custom_distribution/>  
288 - <copies>1</copies>  
289 - <partitioning>  
290 - <method>none</method>  
291 - <schema_name/>  
292 - </partitioning>  
293 - <header>Y</header>  
294 - <noempty>Y</noempty>  
295 - <stoponempty>N</stoponempty>  
296 - <filefield/>  
297 - <sheetfield/>  
298 - <sheetrownumfield/>  
299 - <rownumfield/>  
300 - <sheetfield/>  
301 - <filefield/>  
302 - <limit>0</limit>  
303 - <encoding/>  
304 - <add_to_result_filenames>Y</add_to_result_filenames>  
305 - <accept_filenames>Y</accept_filenames>  
306 - <accept_field>filepath_</accept_field>  
307 - <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>  
308 - <file>  
309 - <name/>  
310 - <filemask/>  
311 - <exclude_filemask/>  
312 - <file_required>N</file_required>  
313 - <include_subfolders>N</include_subfolders>  
314 - </file>  
315 - <fields>  
316 - <field>  
317 - <name>&#x7ebf;&#x8def;</name>  
318 - <type>String</type>  
319 - <length>-1</length>  
320 - <precision>-1</precision>  
321 - <trim_type>none</trim_type>  
322 - <repeat>N</repeat>  
323 - <format/>  
324 - <currency/>  
325 - <decimal/>  
326 - <group/>  
327 - </field>  
328 - <field>  
329 - <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>  
330 - <type>String</type>  
331 - <length>-1</length>  
332 - <precision>-1</precision>  
333 - <trim_type>none</trim_type>  
334 - <repeat>N</repeat>  
335 - <format>&#x23;</format>  
336 - <currency/>  
337 - <decimal/>  
338 - <group/>  
339 - </field>  
340 - <field>  
341 - <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>  
342 - <type>String</type>  
343 - <length>-1</length>  
344 - <precision>-1</precision>  
345 - <trim_type>none</trim_type>  
346 - <repeat>N</repeat>  
347 - <format/>  
348 - <currency/>  
349 - <decimal/>  
350 - <group/>  
351 - </field>  
352 - <field>  
353 - <name>&#x7ec8;&#x7ed3;&#x65e5;&#x671f;</name>  
354 - <type>String</type>  
355 - <length>-1</length>  
356 - <precision>-1</precision>  
357 - <trim_type>none</trim_type>  
358 - <repeat>N</repeat>  
359 - <format/>  
360 - <currency/>  
361 - <decimal/>  
362 - <group/>  
363 - </field>  
364 - <field>  
365 - <name>&#x505c;&#x8f66;&#x70b9;</name>  
366 - <type>String</type>  
367 - <length>-1</length>  
368 - <precision>-1</precision>  
369 - <trim_type>none</trim_type>  
370 - <repeat>N</repeat>  
371 - <format/>  
372 - <currency/>  
373 - <decimal/>  
374 - <group/>  
375 - </field>  
376 - </fields>  
377 - <sheets>  
378 - <sheet>  
379 - <name>&#x5de5;&#x4f5c;&#x8868;1</name>  
380 - <startrow>0</startrow>  
381 - <startcol>0</startcol>  
382 - </sheet>  
383 - </sheets>  
384 - <strict_types>N</strict_types>  
385 - <error_ignored>N</error_ignored>  
386 - <error_line_skipped>N</error_line_skipped>  
387 - <bad_line_files_destination_directory/>  
388 - <bad_line_files_extension>warning</bad_line_files_extension>  
389 - <error_line_files_destination_directory/>  
390 - <error_line_files_extension>error</error_line_files_extension>  
391 - <line_number_files_destination_directory/>  
392 - <line_number_files_extension>line</line_number_files_extension>  
393 - <shortFileFieldName/>  
394 - <pathFieldName/>  
395 - <hiddenFieldName/>  
396 - <lastModificationTimeFieldName/>  
397 - <uriNameFieldName/>  
398 - <rootUriNameFieldName/>  
399 - <extensionFieldName/>  
400 - <sizeFieldName/>  
401 - <spreadsheet_type>JXL</spreadsheet_type>  
402 - <cluster_schema/>  
403 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
404 - <xloc>155</xloc>  
405 - <yloc>56</yloc>  
406 - <draw>Y</draw>  
407 - </GUI>  
408 - </step>  
409 -  
410 - <step>  
411 - <name>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</name>  
412 - <type>Constant</type>  
413 - <description/>  
414 - <distribute>Y</distribute>  
415 - <custom_distribution/>  
416 - <copies>1</copies>  
417 - <partitioning>  
418 - <method>none</method>  
419 - <schema_name/>  
420 - </partitioning>  
421 - <fields>  
422 - <field>  
423 - <name>isCancel</name>  
424 - <type>Integer</type>  
425 - <format/>  
426 - <currency/>  
427 - <decimal/>  
428 - <group/>  
429 - <nullif>0</nullif>  
430 - <length>-1</length>  
431 - <precision>-1</precision>  
432 - <set_empty_string>N</set_empty_string>  
433 - </field>  
434 - </fields>  
435 - <cluster_schema/>  
436 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
437 - <xloc>315</xloc>  
438 - <yloc>57</yloc>  
439 - <draw>Y</draw>  
440 - </GUI>  
441 - </step>  
442 -  
443 - <step>  
444 - <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ccinfo</name>  
445 - <type>InsertUpdate</type>  
446 - <description/>  
447 - <distribute>Y</distribute>  
448 - <custom_distribution/>  
449 - <copies>1</copies>  
450 - <partitioning>  
451 - <method>none</method>  
452 - <schema_name/>  
453 - </partitioning>  
454 - <connection>bus_control_variable</connection>  
455 - <commit>100</commit>  
456 - <update_bypassed>N</update_bypassed>  
457 - <lookup>  
458 - <schema/>  
459 - <table>bsth_c_s_ccinfo</table>  
460 - <key>  
461 - <name>xlid</name>  
462 - <field>xl</field>  
463 - <condition>&#x3d;</condition>  
464 - <name2/>  
465 - </key>  
466 - <key>  
467 - <name>clid</name>  
468 - <field>cl</field>  
469 - <condition>&#x3d;</condition>  
470 - <name2/>  
471 - </key>  
472 - <value>  
473 - <name>xl</name>  
474 - <rename>xlId</rename>  
475 - <update>Y</update>  
476 - </value>  
477 - <value>  
478 - <name>cl</name>  
479 - <rename>clId</rename>  
480 - <update>Y</update>  
481 - </value>  
482 - <value>  
483 - <name>is_switch</name>  
484 - <rename>isswitch</rename>  
485 - <update>Y</update>  
486 - </value>  
487 - <value>  
488 - <name>tcd</name>  
489 - <rename>&#x505c;&#x8f66;&#x70b9;</rename>  
490 - <update>Y</update>  
491 - </value>  
492 - <value>  
493 - <name>zzrq</name>  
494 - <rename>&#x7ec8;&#x7ed3;&#x65e5;&#x671f;</rename>  
495 - <update>Y</update>  
496 - </value>  
497 - <value>  
498 - <name>qyrq</name>  
499 - <rename>&#x542f;&#x7528;&#x65e5;&#x671f;</rename>  
500 - <update>Y</update>  
501 - </value>  
502 - <value>  
503 - <name>is_cancel</name>  
504 - <rename>isCancel</rename>  
505 - <update>Y</update>  
506 - </value>  
507 - </lookup>  
508 - <cluster_schema/>  
509 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
510 - <xloc>804</xloc>  
511 - <yloc>236</yloc>  
512 - <draw>Y</draw>  
513 - </GUI>  
514 - </step>  
515 -  
516 - <step>  
517 - <name>&#x65e5;&#x671f;&#x8f6c;&#x6362;</name>  
518 - <type>SelectValues</type>  
519 - <description/>  
520 - <distribute>Y</distribute>  
521 - <custom_distribution/>  
522 - <copies>1</copies>  
523 - <partitioning>  
524 - <method>none</method>  
525 - <schema_name/>  
526 - </partitioning>  
527 - <fields> <select_unspecified>N</select_unspecified>  
528 - <meta> <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>  
529 - <rename>&#x542f;&#x7528;&#x65e5;&#x671f;</rename>  
530 - <type>Timestamp</type>  
531 - <length>-2</length>  
532 - <precision>-2</precision>  
533 - <conversion_mask>yyyy-MM-dd</conversion_mask>  
534 - <date_format_lenient>false</date_format_lenient>  
535 - <date_format_locale/>  
536 - <date_format_timezone/>  
537 - <lenient_string_to_number>false</lenient_string_to_number>  
538 - <encoding/>  
539 - <decimal_symbol/>  
540 - <grouping_symbol/>  
541 - <currency_symbol/>  
542 - <storage_type/>  
543 - </meta> <meta> <name>&#x7ec8;&#x7ed3;&#x65e5;&#x671f;</name>  
544 - <rename>&#x7ec8;&#x7ed3;&#x65e5;&#x671f;</rename>  
545 - <type>Timestamp</type>  
546 - <length>-2</length>  
547 - <precision>-2</precision>  
548 - <conversion_mask>yyyy-MM-dd</conversion_mask>  
549 - <date_format_lenient>false</date_format_lenient>  
550 - <date_format_locale/>  
551 - <date_format_timezone/>  
552 - <lenient_string_to_number>false</lenient_string_to_number>  
553 - <encoding/>  
554 - <decimal_symbol/>  
555 - <grouping_symbol/>  
556 - <currency_symbol/>  
557 - <storage_type/>  
558 - </meta> </fields> <cluster_schema/>  
559 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
560 - <xloc>703</xloc>  
561 - <yloc>136</yloc>  
562 - <draw>Y</draw>  
563 - </GUI>  
564 - </step>  
565 -  
566 - <step>  
567 - <name>&#x662f;&#x5426;&#x5207;&#x6362;</name>  
568 - <type>Constant</type>  
569 - <description/>  
570 - <distribute>Y</distribute>  
571 - <custom_distribution/>  
572 - <copies>1</copies>  
573 - <partitioning>  
574 - <method>none</method>  
575 - <schema_name/>  
576 - </partitioning>  
577 - <fields>  
578 - <field>  
579 - <name>isswitch</name>  
580 - <type>Integer</type>  
581 - <format/>  
582 - <currency/>  
583 - <decimal/>  
584 - <group/>  
585 - <nullif>0</nullif>  
586 - <length>-1</length>  
587 - <precision>-1</precision>  
588 - <set_empty_string>N</set_empty_string>  
589 - </field>  
590 - </fields>  
591 - <cluster_schema/>  
592 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
593 - <xloc>803</xloc>  
594 - <yloc>137</yloc>  
595 - <draw>Y</draw>  
596 - </GUI>  
597 - </step>  
598 -  
599 - <step>  
600 - <name>&#x7ebf;&#x8def;id&#x67e5;&#x8be2;</name>  
601 - <type>DBLookup</type>  
602 - <description/>  
603 - <distribute>Y</distribute>  
604 - <custom_distribution/>  
605 - <copies>1</copies>  
606 - <partitioning>  
607 - <method>none</method>  
608 - <schema_name/>  
609 - </partitioning>  
610 - <connection>bus_control_variable</connection>  
611 - <cache>Y</cache>  
612 - <cache_load_all>Y</cache_load_all>  
613 - <cache_size>0</cache_size>  
614 - <lookup>  
615 - <schema/>  
616 - <table>bsth_c_line</table>  
617 - <orderby/>  
618 - <fail_on_multiple>N</fail_on_multiple>  
619 - <eat_row_on_failure>N</eat_row_on_failure>  
620 - <key>  
621 - <name>&#x7ebf;&#x8def;</name>  
622 - <field>name</field>  
623 - <condition>&#x3d;</condition>  
624 - <name2/>  
625 - </key>  
626 - <key>  
627 - <name>isCancel</name>  
628 - <field>destroy</field>  
629 - <condition>&#x3d;</condition>  
630 - <name2/>  
631 - </key>  
632 - <value>  
633 - <name>id</name>  
634 - <rename>xlid</rename>  
635 - <default/>  
636 - <type>Integer</type>  
637 - </value>  
638 - </lookup>  
639 - <cluster_schema/>  
640 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
641 - <xloc>438</xloc>  
642 - <yloc>57</yloc>  
643 - <draw>Y</draw>  
644 - </GUI>  
645 - </step>  
646 -  
647 - <step>  
648 - <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>  
649 - <type>GetVariable</type>  
650 - <description/>  
651 - <distribute>Y</distribute>  
652 - <custom_distribution/>  
653 - <copies>1</copies>  
654 - <partitioning>  
655 - <method>none</method>  
656 - <schema_name/>  
657 - </partitioning>  
658 - <fields>  
659 - <field>  
660 - <name>filepath_</name>  
661 - <variable>&#x24;&#x7b;filepath&#x7d;</variable>  
662 - <type>String</type>  
663 - <format/>  
664 - <currency/>  
665 - <decimal/>  
666 - <group/>  
667 - <length>-1</length>  
668 - <precision>-1</precision>  
669 - <trim_type>none</trim_type>  
670 - </field>  
671 - <field>  
672 - <name>erroroutputdir_</name>  
673 - <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>  
674 - <type>String</type>  
675 - <format/>  
676 - <currency/>  
677 - <decimal/>  
678 - <group/>  
679 - <length>-1</length>  
680 - <precision>-1</precision>  
681 - <trim_type>none</trim_type>  
682 - </field>  
683 - </fields>  
684 - <cluster_schema/>  
685 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
686 - <xloc>156</xloc>  
687 - <yloc>150</yloc>  
688 - <draw>Y</draw>  
689 - </GUI>  
690 - </step>  
691 -  
692 - <step>  
693 - <name>&#x8f66;&#x8f86;id&#x67e5;&#x8be2;</name>  
694 - <type>DBLookup</type>  
695 - <description/>  
696 - <distribute>Y</distribute>  
697 - <custom_distribution/>  
698 - <copies>1</copies>  
699 - <partitioning>  
700 - <method>none</method>  
701 - <schema_name/>  
702 - </partitioning>  
703 - <connection>bus_control_variable</connection>  
704 - <cache>Y</cache>  
705 - <cache_load_all>Y</cache_load_all>  
706 - <cache_size>0</cache_size>  
707 - <lookup>  
708 - <schema/>  
709 - <table>bsth_c_cars</table>  
710 - <orderby/>  
711 - <fail_on_multiple>N</fail_on_multiple>  
712 - <eat_row_on_failure>N</eat_row_on_failure>  
713 - <key>  
714 - <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>  
715 - <field>inside_code</field>  
716 - <condition>&#x3d;</condition>  
717 - <name2/>  
718 - </key>  
719 - <value>  
720 - <name>id</name>  
721 - <rename>clid</rename>  
722 - <default/>  
723 - <type>Integer</type>  
724 - </value>  
725 - </lookup>  
726 - <cluster_schema/>  
727 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
728 - <xloc>440</xloc>  
729 - <yloc>138</yloc>  
730 - <draw>Y</draw>  
731 - </GUI>  
732 - </step>  
733 -  
734 - <step>  
735 - <name>&#x8fc7;&#x6ee4;&#x7ebf;&#x8def;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</name>  
736 - <type>FilterRows</type>  
737 - <description/>  
738 - <distribute>Y</distribute>  
739 - <custom_distribution/>  
740 - <copies>1</copies>  
741 - <partitioning>  
742 - <method>none</method>  
743 - <schema_name/>  
744 - </partitioning>  
745 -<send_true_to>&#x8f66;&#x8f86;id&#x67e5;&#x8be2;</send_true_to>  
746 -<send_false_to/>  
747 - <compare>  
748 -<condition>  
749 - <negated>N</negated>  
750 - <leftvalue>xlid</leftvalue>  
751 - <function>IS NOT NULL</function>  
752 - <rightvalue/>  
753 - </condition>  
754 - </compare>  
755 - <cluster_schema/>  
756 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
757 - <xloc>563</xloc>  
758 - <yloc>57</yloc>  
759 - <draw>Y</draw>  
760 - </GUI>  
761 - </step>  
762 -  
763 - <step>  
764 - <name>&#x8fc7;&#x6ee4;&#x8f66;&#x8f86;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</name>  
765 - <type>FilterRows</type>  
766 - <description/>  
767 - <distribute>Y</distribute>  
768 - <custom_distribution/>  
769 - <copies>1</copies>  
770 - <partitioning>  
771 - <method>none</method>  
772 - <schema_name/>  
773 - </partitioning>  
774 -<send_true_to>&#x65e5;&#x671f;&#x8f6c;&#x6362;</send_true_to>  
775 -<send_false_to/>  
776 - <compare>  
777 -<condition>  
778 - <negated>N</negated>  
779 - <leftvalue>clid</leftvalue>  
780 - <function>IS NOT NULL</function>  
781 - <rightvalue/>  
782 - </condition>  
783 - </compare>  
784 - <cluster_schema/>  
785 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
786 - <xloc>566</xloc>  
787 - <yloc>137</yloc>  
788 - <draw>Y</draw>  
789 - </GUI>  
790 - </step>  
791 -  
792 - <step>  
793 - <name>&#x9519;&#x8bef;&#x8f93;&#x51fa;</name>  
794 - <type>ExcelOutput</type>  
795 - <description/>  
796 - <distribute>Y</distribute>  
797 - <custom_distribution/>  
798 - <copies>1</copies>  
799 - <partitioning>  
800 - <method>none</method>  
801 - <schema_name/>  
802 - </partitioning>  
803 - <header>Y</header>  
804 - <footer>N</footer>  
805 - <encoding>UTF-8</encoding>  
806 - <append>N</append>  
807 - <add_to_result_filenames>Y</add_to_result_filenames>  
808 - <file>  
809 - <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x5f53;&#x524d;&#x914d;&#x8f66;_&#x9519;&#x8bef;</name>  
810 - <extention>xls</extention>  
811 - <do_not_open_newfile_init>N</do_not_open_newfile_init>  
812 - <create_parent_folder>N</create_parent_folder>  
813 - <split>N</split>  
814 - <add_date>N</add_date>  
815 - <add_time>N</add_time>  
816 - <SpecifyFormat>N</SpecifyFormat>  
817 - <date_time_format/>  
818 - <sheetname>Sheet1</sheetname>  
819 - <autosizecolums>N</autosizecolums>  
820 - <nullisblank>N</nullisblank>  
821 - <protect_sheet>N</protect_sheet>  
822 - <password>Encrypted </password>  
823 - <splitevery>0</splitevery>  
824 - <usetempfiles>N</usetempfiles>  
825 - <tempdirectory/>  
826 - </file>  
827 - <template>  
828 - <enabled>N</enabled>  
829 - <append>N</append>  
830 - <filename>template.xls</filename>  
831 - </template>  
832 - <fields>  
833 - <field>  
834 - <name>&#x7ebf;&#x8def;</name>  
835 - <type>String</type>  
836 - <format/>  
837 - </field>  
838 - <field>  
839 - <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>  
840 - <type>String</type>  
841 - <format/>  
842 - </field>  
843 - <field>  
844 - <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>  
845 - <type>Timestamp</type>  
846 - <format/>  
847 - </field>  
848 - <field>  
849 - <name>&#x7ec8;&#x7ed3;&#x65e5;&#x671f;</name>  
850 - <type>Timestamp</type>  
851 - <format/>  
852 - </field>  
853 - <field>  
854 - <name>&#x505c;&#x8f66;&#x70b9;</name>  
855 - <type>String</type>  
856 - <format/>  
857 - </field>  
858 - <field>  
859 - <name>isCancel</name>  
860 - <type>Integer</type>  
861 - <format/>  
862 - </field>  
863 - <field>  
864 - <name>xlid</name>  
865 - <type>Integer</type>  
866 - <format/>  
867 - </field>  
868 - <field>  
869 - <name>clid</name>  
870 - <type>Integer</type>  
871 - <format/>  
872 - </field>  
873 - <field>  
874 - <name>isswitch</name>  
875 - <type>Integer</type>  
876 - <format/>  
877 - </field>  
878 - <field>  
879 - <name>error_count</name>  
880 - <type>Integer</type>  
881 - <format/>  
882 - </field>  
883 - <field>  
884 - <name>error_desc</name>  
885 - <type>String</type>  
886 - <format/>  
887 - </field>  
888 - <field>  
889 - <name>error_column1</name>  
890 - <type>String</type>  
891 - <format/>  
892 - </field>  
893 - <field>  
894 - <name>error_column2</name>  
895 - <type>String</type>  
896 - <format/>  
897 - </field>  
898 - </fields>  
899 - <custom>  
900 - <header_font_name>arial</header_font_name>  
901 - <header_font_size>10</header_font_size>  
902 - <header_font_bold>N</header_font_bold>  
903 - <header_font_italic>N</header_font_italic>  
904 - <header_font_underline>no</header_font_underline>  
905 - <header_font_orientation>horizontal</header_font_orientation>  
906 - <header_font_color>black</header_font_color>  
907 - <header_background_color>none</header_background_color>  
908 - <header_row_height>255</header_row_height>  
909 - <header_alignment>left</header_alignment>  
910 - <header_image/>  
911 - <row_font_name>arial</row_font_name>  
912 - <row_font_size>10</row_font_size>  
913 - <row_font_color>black</row_font_color>  
914 - <row_background_color>none</row_background_color>  
915 - </custom>  
916 - <cluster_schema/>  
917 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
918 - <xloc>807</xloc>  
919 - <yloc>353</yloc>  
920 - <draw>Y</draw>  
921 - </GUI>  
922 - </step>  
923 -  
924 - <step_error_handling>  
925 - <error>  
926 - <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ccinfo</source_step>  
927 - <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa;</target_step>  
928 - <is_enabled>Y</is_enabled>  
929 - <nr_valuename>error_count</nr_valuename>  
930 - <descriptions_valuename>error_desc</descriptions_valuename>  
931 - <fields_valuename>error_column1</fields_valuename>  
932 - <codes_valuename>error_column2</codes_valuename>  
933 - <max_errors/>  
934 - <max_pct_errors/>  
935 - <min_pct_rows/>  
936 - </error>  
937 - </step_error_handling>  
938 - <slave-step-copy-partition-distribution>  
939 -</slave-step-copy-partition-distribution>  
940 - <slave_transformation>N</slave_transformation>  
941 -  
942 -</transformation> 1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<transformation>
  3 + <info>
  4 + <name>carsConfigDataInput</name>
  5 + <description>&#x8f66;&#x8f86;&#x914d;&#x7f6e;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</description>
  6 + <extended_description>&#x914d;&#x8f66;&#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;29 13&#x3a;15&#x3a;32.118</created_date>
  81 + <modified_user>-</modified_user>
  82 + <modified_date>2016&#x2f;06&#x2f;29 13&#x3a;15&#x3a;32.118</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 + <notepad>
  88 + <note>&#x8fd9;&#x91cc;&#x6709;&#x4e9b;&#x95ee;&#x9898;&#xa;&#x5728;window2012&#x7684;&#x73af;&#x5883;&#x4e0b;&#xff0c;&#xa;MySql&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x4e2d;&#x5982;&#x679c;&#x8fd4;&#x56de;&#x4e2d;&#x6587;&#x5185;&#x5bb9;&#x7684;&#x5b57;&#x6bb5;&#xff0c;&#x8fd9;&#x4e2a;&#x5185;&#x5bb9;&#x4e71;&#x7801;&#xa;&#x89e3;&#x51b3;&#x529e;&#x6cd5;&#xff0c;&#x5c31;&#x662f;&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x5168;&#x90e8;&#x7f13;&#x5b58;&#xff0c;&#x5c31;&#x4e0d;&#x4e71;&#x7801;&#xa;linux&#x73af;&#x5883;&#x4e0b;&#x6ca1;&#x95ee;&#x9898;&#xa;</note>
  89 + <xloc>40</xloc>
  90 + <yloc>238</yloc>
  91 + <width>333</width>
  92 + <heigth>106</heigth>
  93 + <fontname>YaHei Consolas Hybrid</fontname>
  94 + <fontsize>12</fontsize>
  95 + <fontbold>N</fontbold>
  96 + <fontitalic>N</fontitalic>
  97 + <fontcolorred>0</fontcolorred>
  98 + <fontcolorgreen>0</fontcolorgreen>
  99 + <fontcolorblue>0</fontcolorblue>
  100 + <backgroundcolorred>255</backgroundcolorred>
  101 + <backgroundcolorgreen>205</backgroundcolorgreen>
  102 + <backgroundcolorblue>112</backgroundcolorblue>
  103 + <bordercolorred>100</bordercolorred>
  104 + <bordercolorgreen>100</bordercolorgreen>
  105 + <bordercolorblue>100</bordercolorblue>
  106 + <drawshadow>Y</drawshadow>
  107 + </notepad>
  108 + </notepads>
  109 + <connection>
  110 + <name>bus_control_variable</name>
  111 + <server>&#x24;&#x7b;v_db_ip&#x7d;</server>
  112 + <type>MYSQL</type>
  113 + <access>Native</access>
  114 + <database>&#x24;&#x7b;v_db_dname&#x7d;</database>
  115 + <port>3306</port>
  116 + <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
  117 + <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>
  118 + <servername/>
  119 + <data_tablespace/>
  120 + <index_tablespace/>
  121 + <attributes>
  122 + <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute>
  123 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  124 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  125 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  126 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  127 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  128 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  129 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  130 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  131 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  132 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  133 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  134 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  135 + </attributes>
  136 + </connection>
  137 + <connection>
  138 + <name>bus_control_&#x516c;&#x53f8;_201</name>
  139 + <server>localhost</server>
  140 + <type>MYSQL</type>
  141 + <access>Native</access>
  142 + <database>control</database>
  143 + <port>3306</port>
  144 + <username>root</username>
  145 + <password>Encrypted </password>
  146 + <servername/>
  147 + <data_tablespace/>
  148 + <index_tablespace/>
  149 + <attributes>
  150 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  151 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  152 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  153 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  154 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  155 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  156 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  157 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  158 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  159 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  160 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  161 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  162 + </attributes>
  163 + </connection>
  164 + <connection>
  165 + <name>bus_control_&#x672c;&#x673a;</name>
  166 + <server>localhost</server>
  167 + <type>MYSQL</type>
  168 + <access>Native</access>
  169 + <database>control</database>
  170 + <port>3306</port>
  171 + <username>root</username>
  172 + <password>Encrypted </password>
  173 + <servername/>
  174 + <data_tablespace/>
  175 + <index_tablespace/>
  176 + <attributes>
  177 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  178 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  179 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  180 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  181 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  182 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  183 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  184 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  185 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  186 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  187 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  188 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  189 + </attributes>
  190 + </connection>
  191 + <connection>
  192 + <name>xlab_mysql_youle</name>
  193 + <server>101.231.124.8</server>
  194 + <type>MYSQL</type>
  195 + <access>Native</access>
  196 + <database>xlab_youle</database>
  197 + <port>45687</port>
  198 + <username>xlab-youle</username>
  199 + <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>
  200 + <servername/>
  201 + <data_tablespace/>
  202 + <index_tablespace/>
  203 + <attributes>
  204 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  205 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  206 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  207 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  208 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  209 + <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>
  210 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  211 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  212 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  213 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  214 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  215 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  216 + </attributes>
  217 + </connection>
  218 + <connection>
  219 + <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>
  220 + <server>localhost</server>
  221 + <type>MYSQL</type>
  222 + <access>Native</access>
  223 + <database>xlab_youle</database>
  224 + <port>3306</port>
  225 + <username>root</username>
  226 + <password>Encrypted </password>
  227 + <servername/>
  228 + <data_tablespace/>
  229 + <index_tablespace/>
  230 + <attributes>
  231 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  232 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  233 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  234 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  235 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  236 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  237 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  238 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  239 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  240 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  241 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  242 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  243 + </attributes>
  244 + </connection>
  245 + <connection>
  246 + <name>xlab_youle</name>
  247 + <server/>
  248 + <type>MYSQL</type>
  249 + <access>JNDI</access>
  250 + <database>xlab_youle</database>
  251 + <port>1521</port>
  252 + <username/>
  253 + <password>Encrypted </password>
  254 + <servername/>
  255 + <data_tablespace/>
  256 + <index_tablespace/>
  257 + <attributes>
  258 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  259 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  260 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  261 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  262 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  263 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  264 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  265 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  266 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  267 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  268 + </attributes>
  269 + </connection>
  270 + <order>
  271 + <hop> <from>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ccinfo</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>
  272 + <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop>
  273 + <hop> <from>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</from><to>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</to><enabled>Y</enabled> </hop>
  274 + <hop> <from>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</from><to>&#x7ebf;&#x8def;id&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>
  275 + <hop> <from>&#x7ebf;&#x8def;id&#x67e5;&#x8be2;</from><to>&#x8fc7;&#x6ee4;&#x7ebf;&#x8def;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>
  276 + <hop> <from>&#x8fc7;&#x6ee4;&#x7ebf;&#x8def;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</from><to>&#x8f66;&#x8f86;id&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>
  277 + <hop> <from>&#x8f66;&#x8f86;id&#x67e5;&#x8be2;</from><to>&#x8fc7;&#x6ee4;&#x8f66;&#x8f86;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>
  278 + <hop> <from>&#x8fc7;&#x6ee4;&#x8f66;&#x8f86;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</from><to>&#x65e5;&#x671f;&#x8f6c;&#x6362;</to><enabled>Y</enabled> </hop>
  279 + <hop> <from>&#x65e5;&#x671f;&#x8f6c;&#x6362;</from><to>&#x662f;&#x5426;&#x5207;&#x6362;</to><enabled>Y</enabled> </hop>
  280 + <hop> <from>&#x662f;&#x5426;&#x5207;&#x6362;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ccinfo</to><enabled>Y</enabled> </hop>
  281 + </order>
  282 + <step>
  283 + <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>
  284 + <type>ExcelInput</type>
  285 + <description/>
  286 + <distribute>Y</distribute>
  287 + <custom_distribution/>
  288 + <copies>1</copies>
  289 + <partitioning>
  290 + <method>none</method>
  291 + <schema_name/>
  292 + </partitioning>
  293 + <header>Y</header>
  294 + <noempty>Y</noempty>
  295 + <stoponempty>N</stoponempty>
  296 + <filefield/>
  297 + <sheetfield/>
  298 + <sheetrownumfield/>
  299 + <rownumfield/>
  300 + <sheetfield/>
  301 + <filefield/>
  302 + <limit>0</limit>
  303 + <encoding/>
  304 + <add_to_result_filenames>Y</add_to_result_filenames>
  305 + <accept_filenames>Y</accept_filenames>
  306 + <accept_field>filepath_</accept_field>
  307 + <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>
  308 + <file>
  309 + <name/>
  310 + <filemask/>
  311 + <exclude_filemask/>
  312 + <file_required>N</file_required>
  313 + <include_subfolders>N</include_subfolders>
  314 + </file>
  315 + <fields>
  316 + <field>
  317 + <name>&#x7ebf;&#x8def;</name>
  318 + <type>String</type>
  319 + <length>-1</length>
  320 + <precision>-1</precision>
  321 + <trim_type>none</trim_type>
  322 + <repeat>N</repeat>
  323 + <format/>
  324 + <currency/>
  325 + <decimal/>
  326 + <group/>
  327 + </field>
  328 + <field>
  329 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  330 + <type>String</type>
  331 + <length>-1</length>
  332 + <precision>-1</precision>
  333 + <trim_type>none</trim_type>
  334 + <repeat>N</repeat>
  335 + <format>&#x23;</format>
  336 + <currency/>
  337 + <decimal/>
  338 + <group/>
  339 + </field>
  340 + <field>
  341 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  342 + <type>String</type>
  343 + <length>-1</length>
  344 + <precision>-1</precision>
  345 + <trim_type>none</trim_type>
  346 + <repeat>N</repeat>
  347 + <format/>
  348 + <currency/>
  349 + <decimal/>
  350 + <group/>
  351 + </field>
  352 + <field>
  353 + <name>&#x7ec8;&#x7ed3;&#x65e5;&#x671f;</name>
  354 + <type>String</type>
  355 + <length>-1</length>
  356 + <precision>-1</precision>
  357 + <trim_type>none</trim_type>
  358 + <repeat>N</repeat>
  359 + <format/>
  360 + <currency/>
  361 + <decimal/>
  362 + <group/>
  363 + </field>
  364 + <field>
  365 + <name>&#x505c;&#x8f66;&#x70b9;</name>
  366 + <type>String</type>
  367 + <length>-1</length>
  368 + <precision>-1</precision>
  369 + <trim_type>none</trim_type>
  370 + <repeat>N</repeat>
  371 + <format/>
  372 + <currency/>
  373 + <decimal/>
  374 + <group/>
  375 + </field>
  376 + </fields>
  377 + <sheets>
  378 + <sheet>
  379 + <name>&#x5de5;&#x4f5c;&#x8868;1</name>
  380 + <startrow>0</startrow>
  381 + <startcol>0</startcol>
  382 + </sheet>
  383 + </sheets>
  384 + <strict_types>N</strict_types>
  385 + <error_ignored>N</error_ignored>
  386 + <error_line_skipped>N</error_line_skipped>
  387 + <bad_line_files_destination_directory/>
  388 + <bad_line_files_extension>warning</bad_line_files_extension>
  389 + <error_line_files_destination_directory/>
  390 + <error_line_files_extension>error</error_line_files_extension>
  391 + <line_number_files_destination_directory/>
  392 + <line_number_files_extension>line</line_number_files_extension>
  393 + <shortFileFieldName/>
  394 + <pathFieldName/>
  395 + <hiddenFieldName/>
  396 + <lastModificationTimeFieldName/>
  397 + <uriNameFieldName/>
  398 + <rootUriNameFieldName/>
  399 + <extensionFieldName/>
  400 + <sizeFieldName/>
  401 + <spreadsheet_type>JXL</spreadsheet_type>
  402 + <cluster_schema/>
  403 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  404 + <xloc>155</xloc>
  405 + <yloc>56</yloc>
  406 + <draw>Y</draw>
  407 + </GUI>
  408 + </step>
  409 +
  410 + <step>
  411 + <name>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</name>
  412 + <type>Constant</type>
  413 + <description/>
  414 + <distribute>Y</distribute>
  415 + <custom_distribution/>
  416 + <copies>1</copies>
  417 + <partitioning>
  418 + <method>none</method>
  419 + <schema_name/>
  420 + </partitioning>
  421 + <fields>
  422 + <field>
  423 + <name>isCancel</name>
  424 + <type>Integer</type>
  425 + <format/>
  426 + <currency/>
  427 + <decimal/>
  428 + <group/>
  429 + <nullif>0</nullif>
  430 + <length>-1</length>
  431 + <precision>-1</precision>
  432 + <set_empty_string>N</set_empty_string>
  433 + </field>
  434 + </fields>
  435 + <cluster_schema/>
  436 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  437 + <xloc>315</xloc>
  438 + <yloc>57</yloc>
  439 + <draw>Y</draw>
  440 + </GUI>
  441 + </step>
  442 +
  443 + <step>
  444 + <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ccinfo</name>
  445 + <type>InsertUpdate</type>
  446 + <description/>
  447 + <distribute>Y</distribute>
  448 + <custom_distribution/>
  449 + <copies>1</copies>
  450 + <partitioning>
  451 + <method>none</method>
  452 + <schema_name/>
  453 + </partitioning>
  454 + <connection>bus_control_variable</connection>
  455 + <commit>100</commit>
  456 + <update_bypassed>N</update_bypassed>
  457 + <lookup>
  458 + <schema/>
  459 + <table>bsth_c_s_ccinfo</table>
  460 + <key>
  461 + <name>xlid</name>
  462 + <field>xl</field>
  463 + <condition>&#x3d;</condition>
  464 + <name2/>
  465 + </key>
  466 + <key>
  467 + <name>clid</name>
  468 + <field>cl</field>
  469 + <condition>&#x3d;</condition>
  470 + <name2/>
  471 + </key>
  472 + <value>
  473 + <name>xl</name>
  474 + <rename>xlId</rename>
  475 + <update>Y</update>
  476 + </value>
  477 + <value>
  478 + <name>cl</name>
  479 + <rename>clId</rename>
  480 + <update>Y</update>
  481 + </value>
  482 + <value>
  483 + <name>is_switch</name>
  484 + <rename>isswitch</rename>
  485 + <update>Y</update>
  486 + </value>
  487 + <value>
  488 + <name>tcd</name>
  489 + <rename>&#x505c;&#x8f66;&#x70b9;</rename>
  490 + <update>Y</update>
  491 + </value>
  492 + <value>
  493 + <name>zzrq</name>
  494 + <rename>&#x7ec8;&#x7ed3;&#x65e5;&#x671f;</rename>
  495 + <update>Y</update>
  496 + </value>
  497 + <value>
  498 + <name>qyrq</name>
  499 + <rename>&#x542f;&#x7528;&#x65e5;&#x671f;</rename>
  500 + <update>Y</update>
  501 + </value>
  502 + <value>
  503 + <name>is_cancel</name>
  504 + <rename>isCancel</rename>
  505 + <update>Y</update>
  506 + </value>
  507 + </lookup>
  508 + <cluster_schema/>
  509 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  510 + <xloc>804</xloc>
  511 + <yloc>236</yloc>
  512 + <draw>Y</draw>
  513 + </GUI>
  514 + </step>
  515 +
  516 + <step>
  517 + <name>&#x65e5;&#x671f;&#x8f6c;&#x6362;</name>
  518 + <type>SelectValues</type>
  519 + <description/>
  520 + <distribute>Y</distribute>
  521 + <custom_distribution/>
  522 + <copies>1</copies>
  523 + <partitioning>
  524 + <method>none</method>
  525 + <schema_name/>
  526 + </partitioning>
  527 + <fields> <select_unspecified>N</select_unspecified>
  528 + <meta> <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  529 + <rename>&#x542f;&#x7528;&#x65e5;&#x671f;</rename>
  530 + <type>Timestamp</type>
  531 + <length>-2</length>
  532 + <precision>-2</precision>
  533 + <conversion_mask>yyyy-MM-dd</conversion_mask>
  534 + <date_format_lenient>false</date_format_lenient>
  535 + <date_format_locale/>
  536 + <date_format_timezone/>
  537 + <lenient_string_to_number>false</lenient_string_to_number>
  538 + <encoding/>
  539 + <decimal_symbol/>
  540 + <grouping_symbol/>
  541 + <currency_symbol/>
  542 + <storage_type/>
  543 + </meta> <meta> <name>&#x7ec8;&#x7ed3;&#x65e5;&#x671f;</name>
  544 + <rename>&#x7ec8;&#x7ed3;&#x65e5;&#x671f;</rename>
  545 + <type>Timestamp</type>
  546 + <length>-2</length>
  547 + <precision>-2</precision>
  548 + <conversion_mask>yyyy-MM-dd</conversion_mask>
  549 + <date_format_lenient>false</date_format_lenient>
  550 + <date_format_locale/>
  551 + <date_format_timezone/>
  552 + <lenient_string_to_number>false</lenient_string_to_number>
  553 + <encoding/>
  554 + <decimal_symbol/>
  555 + <grouping_symbol/>
  556 + <currency_symbol/>
  557 + <storage_type/>
  558 + </meta> </fields> <cluster_schema/>
  559 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  560 + <xloc>703</xloc>
  561 + <yloc>136</yloc>
  562 + <draw>Y</draw>
  563 + </GUI>
  564 + </step>
  565 +
  566 + <step>
  567 + <name>&#x662f;&#x5426;&#x5207;&#x6362;</name>
  568 + <type>Constant</type>
  569 + <description/>
  570 + <distribute>Y</distribute>
  571 + <custom_distribution/>
  572 + <copies>1</copies>
  573 + <partitioning>
  574 + <method>none</method>
  575 + <schema_name/>
  576 + </partitioning>
  577 + <fields>
  578 + <field>
  579 + <name>isswitch</name>
  580 + <type>Integer</type>
  581 + <format/>
  582 + <currency/>
  583 + <decimal/>
  584 + <group/>
  585 + <nullif>0</nullif>
  586 + <length>-1</length>
  587 + <precision>-1</precision>
  588 + <set_empty_string>N</set_empty_string>
  589 + </field>
  590 + </fields>
  591 + <cluster_schema/>
  592 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  593 + <xloc>803</xloc>
  594 + <yloc>137</yloc>
  595 + <draw>Y</draw>
  596 + </GUI>
  597 + </step>
  598 +
  599 + <step>
  600 + <name>&#x7ebf;&#x8def;id&#x67e5;&#x8be2;</name>
  601 + <type>DBLookup</type>
  602 + <description/>
  603 + <distribute>Y</distribute>
  604 + <custom_distribution/>
  605 + <copies>1</copies>
  606 + <partitioning>
  607 + <method>none</method>
  608 + <schema_name/>
  609 + </partitioning>
  610 + <connection>bus_control_variable</connection>
  611 + <cache>Y</cache>
  612 + <cache_load_all>Y</cache_load_all>
  613 + <cache_size>0</cache_size>
  614 + <lookup>
  615 + <schema/>
  616 + <table>bsth_c_line</table>
  617 + <orderby/>
  618 + <fail_on_multiple>N</fail_on_multiple>
  619 + <eat_row_on_failure>N</eat_row_on_failure>
  620 + <key>
  621 + <name>&#x7ebf;&#x8def;</name>
  622 + <field>name</field>
  623 + <condition>&#x3d;</condition>
  624 + <name2/>
  625 + </key>
  626 + <key>
  627 + <name>isCancel</name>
  628 + <field>destroy</field>
  629 + <condition>&#x3d;</condition>
  630 + <name2/>
  631 + </key>
  632 + <value>
  633 + <name>id</name>
  634 + <rename>xlid</rename>
  635 + <default/>
  636 + <type>Integer</type>
  637 + </value>
  638 + </lookup>
  639 + <cluster_schema/>
  640 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  641 + <xloc>438</xloc>
  642 + <yloc>57</yloc>
  643 + <draw>Y</draw>
  644 + </GUI>
  645 + </step>
  646 +
  647 + <step>
  648 + <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>
  649 + <type>GetVariable</type>
  650 + <description/>
  651 + <distribute>Y</distribute>
  652 + <custom_distribution/>
  653 + <copies>1</copies>
  654 + <partitioning>
  655 + <method>none</method>
  656 + <schema_name/>
  657 + </partitioning>
  658 + <fields>
  659 + <field>
  660 + <name>filepath_</name>
  661 + <variable>&#x24;&#x7b;filepath&#x7d;</variable>
  662 + <type>String</type>
  663 + <format/>
  664 + <currency/>
  665 + <decimal/>
  666 + <group/>
  667 + <length>-1</length>
  668 + <precision>-1</precision>
  669 + <trim_type>none</trim_type>
  670 + </field>
  671 + <field>
  672 + <name>erroroutputdir_</name>
  673 + <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>
  674 + <type>String</type>
  675 + <format/>
  676 + <currency/>
  677 + <decimal/>
  678 + <group/>
  679 + <length>-1</length>
  680 + <precision>-1</precision>
  681 + <trim_type>none</trim_type>
  682 + </field>
  683 + </fields>
  684 + <cluster_schema/>
  685 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  686 + <xloc>156</xloc>
  687 + <yloc>150</yloc>
  688 + <draw>Y</draw>
  689 + </GUI>
  690 + </step>
  691 +
  692 + <step>
  693 + <name>&#x8f66;&#x8f86;id&#x67e5;&#x8be2;</name>
  694 + <type>DBLookup</type>
  695 + <description/>
  696 + <distribute>Y</distribute>
  697 + <custom_distribution/>
  698 + <copies>1</copies>
  699 + <partitioning>
  700 + <method>none</method>
  701 + <schema_name/>
  702 + </partitioning>
  703 + <connection>bus_control_variable</connection>
  704 + <cache>Y</cache>
  705 + <cache_load_all>Y</cache_load_all>
  706 + <cache_size>0</cache_size>
  707 + <lookup>
  708 + <schema/>
  709 + <table>bsth_c_cars</table>
  710 + <orderby/>
  711 + <fail_on_multiple>N</fail_on_multiple>
  712 + <eat_row_on_failure>N</eat_row_on_failure>
  713 + <key>
  714 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  715 + <field>inside_code</field>
  716 + <condition>&#x3d;</condition>
  717 + <name2/>
  718 + </key>
  719 + <value>
  720 + <name>id</name>
  721 + <rename>clid</rename>
  722 + <default/>
  723 + <type>Integer</type>
  724 + </value>
  725 + </lookup>
  726 + <cluster_schema/>
  727 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  728 + <xloc>440</xloc>
  729 + <yloc>138</yloc>
  730 + <draw>Y</draw>
  731 + </GUI>
  732 + </step>
  733 +
  734 + <step>
  735 + <name>&#x8fc7;&#x6ee4;&#x7ebf;&#x8def;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</name>
  736 + <type>FilterRows</type>
  737 + <description/>
  738 + <distribute>Y</distribute>
  739 + <custom_distribution/>
  740 + <copies>1</copies>
  741 + <partitioning>
  742 + <method>none</method>
  743 + <schema_name/>
  744 + </partitioning>
  745 +<send_true_to>&#x8f66;&#x8f86;id&#x67e5;&#x8be2;</send_true_to>
  746 +<send_false_to/>
  747 + <compare>
  748 +<condition>
  749 + <negated>N</negated>
  750 + <leftvalue>xlid</leftvalue>
  751 + <function>IS NOT NULL</function>
  752 + <rightvalue/>
  753 + </condition>
  754 + </compare>
  755 + <cluster_schema/>
  756 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  757 + <xloc>563</xloc>
  758 + <yloc>57</yloc>
  759 + <draw>Y</draw>
  760 + </GUI>
  761 + </step>
  762 +
  763 + <step>
  764 + <name>&#x8fc7;&#x6ee4;&#x8f66;&#x8f86;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</name>
  765 + <type>FilterRows</type>
  766 + <description/>
  767 + <distribute>Y</distribute>
  768 + <custom_distribution/>
  769 + <copies>1</copies>
  770 + <partitioning>
  771 + <method>none</method>
  772 + <schema_name/>
  773 + </partitioning>
  774 +<send_true_to>&#x65e5;&#x671f;&#x8f6c;&#x6362;</send_true_to>
  775 +<send_false_to/>
  776 + <compare>
  777 +<condition>
  778 + <negated>N</negated>
  779 + <leftvalue>clid</leftvalue>
  780 + <function>IS NOT NULL</function>
  781 + <rightvalue/>
  782 + </condition>
  783 + </compare>
  784 + <cluster_schema/>
  785 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  786 + <xloc>566</xloc>
  787 + <yloc>137</yloc>
  788 + <draw>Y</draw>
  789 + </GUI>
  790 + </step>
  791 +
  792 + <step>
  793 + <name>&#x9519;&#x8bef;&#x8f93;&#x51fa;</name>
  794 + <type>ExcelOutput</type>
  795 + <description/>
  796 + <distribute>Y</distribute>
  797 + <custom_distribution/>
  798 + <copies>1</copies>
  799 + <partitioning>
  800 + <method>none</method>
  801 + <schema_name/>
  802 + </partitioning>
  803 + <header>Y</header>
  804 + <footer>N</footer>
  805 + <encoding>UTF-8</encoding>
  806 + <append>N</append>
  807 + <add_to_result_filenames>Y</add_to_result_filenames>
  808 + <file>
  809 + <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x5f53;&#x524d;&#x914d;&#x8f66;_&#x9519;&#x8bef;</name>
  810 + <extention>xls</extention>
  811 + <do_not_open_newfile_init>N</do_not_open_newfile_init>
  812 + <create_parent_folder>N</create_parent_folder>
  813 + <split>N</split>
  814 + <add_date>N</add_date>
  815 + <add_time>N</add_time>
  816 + <SpecifyFormat>N</SpecifyFormat>
  817 + <date_time_format/>
  818 + <sheetname>Sheet1</sheetname>
  819 + <autosizecolums>N</autosizecolums>
  820 + <nullisblank>N</nullisblank>
  821 + <protect_sheet>N</protect_sheet>
  822 + <password>Encrypted </password>
  823 + <splitevery>0</splitevery>
  824 + <usetempfiles>N</usetempfiles>
  825 + <tempdirectory/>
  826 + </file>
  827 + <template>
  828 + <enabled>N</enabled>
  829 + <append>N</append>
  830 + <filename>template.xls</filename>
  831 + </template>
  832 + <fields>
  833 + <field>
  834 + <name>&#x7ebf;&#x8def;</name>
  835 + <type>String</type>
  836 + <format/>
  837 + </field>
  838 + <field>
  839 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  840 + <type>String</type>
  841 + <format/>
  842 + </field>
  843 + <field>
  844 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  845 + <type>Timestamp</type>
  846 + <format/>
  847 + </field>
  848 + <field>
  849 + <name>&#x7ec8;&#x7ed3;&#x65e5;&#x671f;</name>
  850 + <type>Timestamp</type>
  851 + <format/>
  852 + </field>
  853 + <field>
  854 + <name>&#x505c;&#x8f66;&#x70b9;</name>
  855 + <type>String</type>
  856 + <format/>
  857 + </field>
  858 + <field>
  859 + <name>isCancel</name>
  860 + <type>Integer</type>
  861 + <format/>
  862 + </field>
  863 + <field>
  864 + <name>xlid</name>
  865 + <type>Integer</type>
  866 + <format/>
  867 + </field>
  868 + <field>
  869 + <name>clid</name>
  870 + <type>Integer</type>
  871 + <format/>
  872 + </field>
  873 + <field>
  874 + <name>isswitch</name>
  875 + <type>Integer</type>
  876 + <format/>
  877 + </field>
  878 + <field>
  879 + <name>error_count</name>
  880 + <type>Integer</type>
  881 + <format/>
  882 + </field>
  883 + <field>
  884 + <name>error_desc</name>
  885 + <type>String</type>
  886 + <format/>
  887 + </field>
  888 + <field>
  889 + <name>error_column1</name>
  890 + <type>String</type>
  891 + <format/>
  892 + </field>
  893 + <field>
  894 + <name>error_column2</name>
  895 + <type>String</type>
  896 + <format/>
  897 + </field>
  898 + </fields>
  899 + <custom>
  900 + <header_font_name>arial</header_font_name>
  901 + <header_font_size>10</header_font_size>
  902 + <header_font_bold>N</header_font_bold>
  903 + <header_font_italic>N</header_font_italic>
  904 + <header_font_underline>no</header_font_underline>
  905 + <header_font_orientation>horizontal</header_font_orientation>
  906 + <header_font_color>black</header_font_color>
  907 + <header_background_color>none</header_background_color>
  908 + <header_row_height>255</header_row_height>
  909 + <header_alignment>left</header_alignment>
  910 + <header_image/>
  911 + <row_font_name>arial</row_font_name>
  912 + <row_font_size>10</row_font_size>
  913 + <row_font_color>black</row_font_color>
  914 + <row_background_color>none</row_background_color>
  915 + </custom>
  916 + <cluster_schema/>
  917 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  918 + <xloc>807</xloc>
  919 + <yloc>353</yloc>
  920 + <draw>Y</draw>
  921 + </GUI>
  922 + </step>
  923 +
  924 + <step_error_handling>
  925 + <error>
  926 + <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ccinfo</source_step>
  927 + <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa;</target_step>
  928 + <is_enabled>Y</is_enabled>
  929 + <nr_valuename>error_count</nr_valuename>
  930 + <descriptions_valuename>error_desc</descriptions_valuename>
  931 + <fields_valuename>error_column1</fields_valuename>
  932 + <codes_valuename>error_column2</codes_valuename>
  933 + <max_errors/>
  934 + <max_pct_errors/>
  935 + <min_pct_rows/>
  936 + </error>
  937 + </step_error_handling>
  938 + <slave-step-copy-partition-distribution>
  939 +</slave-step-copy-partition-distribution>
  940 + <slave_transformation>N</slave_transformation>
  941 +
  942 +</transformation>
src/main/resources/datatools/ktrs/carsConfigDataOutput.ktr
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<transformation>  
3 - <info>  
4 - <name>carsConfigDataOutput</name>  
5 - <description/>  
6 - <extended_description/>  
7 - <trans_version/>  
8 - <trans_type>Normal</trans_type>  
9 - <trans_status>0</trans_status>  
10 - <directory>&#x2f;</directory>  
11 - <parameters>  
12 - <parameter>  
13 - <name>filepath</name>  
14 - <default_value/>  
15 - <description>excel&#x6587;&#x4ef6;&#x8def;&#x5f84;</description>  
16 - </parameter>  
17 - </parameters>  
18 - <log>  
19 -<trans-log-table><connection/>  
20 -<schema/>  
21 -<table/>  
22 -<size_limit_lines/>  
23 -<interval/>  
24 -<timeout_days/>  
25 -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STATUS</id><enabled>Y</enabled><name>STATUS</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name><subject/></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name><subject/></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name><subject/></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name><subject/></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name><subject/></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name><subject/></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>STARTDATE</id><enabled>Y</enabled><name>STARTDATE</name></field><field><id>ENDDATE</id><enabled>Y</enabled><name>ENDDATE</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>DEPDATE</id><enabled>Y</enabled><name>DEPDATE</name></field><field><id>REPLAYDATE</id><enabled>Y</enabled><name>REPLAYDATE</name></field><field><id>LOG_FIELD</id><enabled>Y</enabled><name>LOG_FIELD</name></field><field><id>EXECUTING_SERVER</id><enabled>N</enabled><name>EXECUTING_SERVER</name></field><field><id>EXECUTING_USER</id><enabled>N</enabled><name>EXECUTING_USER</name></field><field><id>CLIENT</id><enabled>N</enabled><name>CLIENT</name></field></trans-log-table>  
26 -<perf-log-table><connection/>  
27 -<schema/>  
28 -<table/>  
29 -<interval/>  
30 -<timeout_days/>  
31 -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>SEQ_NR</id><enabled>Y</enabled><name>SEQ_NR</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>INPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>INPUT_BUFFER_ROWS</name></field><field><id>OUTPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>OUTPUT_BUFFER_ROWS</name></field></perf-log-table>  
32 -<channel-log-table><connection/>  
33 -<schema/>  
34 -<table/>  
35 -<timeout_days/>  
36 -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>LOGGING_OBJECT_TYPE</id><enabled>Y</enabled><name>LOGGING_OBJECT_TYPE</name></field><field><id>OBJECT_NAME</id><enabled>Y</enabled><name>OBJECT_NAME</name></field><field><id>OBJECT_COPY</id><enabled>Y</enabled><name>OBJECT_COPY</name></field><field><id>REPOSITORY_DIRECTORY</id><enabled>Y</enabled><name>REPOSITORY_DIRECTORY</name></field><field><id>FILENAME</id><enabled>Y</enabled><name>FILENAME</name></field><field><id>OBJECT_ID</id><enabled>Y</enabled><name>OBJECT_ID</name></field><field><id>OBJECT_REVISION</id><enabled>Y</enabled><name>OBJECT_REVISION</name></field><field><id>PARENT_CHANNEL_ID</id><enabled>Y</enabled><name>PARENT_CHANNEL_ID</name></field><field><id>ROOT_CHANNEL_ID</id><enabled>Y</enabled><name>ROOT_CHANNEL_ID</name></field></channel-log-table>  
37 -<step-log-table><connection/>  
38 -<schema/>  
39 -<table/>  
40 -<timeout_days/>  
41 -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>LOG_FIELD</id><enabled>N</enabled><name>LOG_FIELD</name></field></step-log-table>  
42 -<metrics-log-table><connection/>  
43 -<schema/>  
44 -<table/>  
45 -<timeout_days/>  
46 -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>METRICS_DATE</id><enabled>Y</enabled><name>METRICS_DATE</name></field><field><id>METRICS_CODE</id><enabled>Y</enabled><name>METRICS_CODE</name></field><field><id>METRICS_DESCRIPTION</id><enabled>Y</enabled><name>METRICS_DESCRIPTION</name></field><field><id>METRICS_SUBJECT</id><enabled>Y</enabled><name>METRICS_SUBJECT</name></field><field><id>METRICS_TYPE</id><enabled>Y</enabled><name>METRICS_TYPE</name></field><field><id>METRICS_VALUE</id><enabled>Y</enabled><name>METRICS_VALUE</name></field></metrics-log-table>  
47 - </log>  
48 - <maxdate>  
49 - <connection/>  
50 - <table/>  
51 - <field/>  
52 - <offset>0.0</offset>  
53 - <maxdiff>0.0</maxdiff>  
54 - </maxdate>  
55 - <size_rowset>10000</size_rowset>  
56 - <sleep_time_empty>50</sleep_time_empty>  
57 - <sleep_time_full>50</sleep_time_full>  
58 - <unique_connections>N</unique_connections>  
59 - <feedback_shown>Y</feedback_shown>  
60 - <feedback_size>50000</feedback_size>  
61 - <using_thread_priorities>Y</using_thread_priorities>  
62 - <shared_objects_file/>  
63 - <capture_step_performance>N</capture_step_performance>  
64 - <step_performance_capturing_delay>1000</step_performance_capturing_delay>  
65 - <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>  
66 - <dependencies>  
67 - </dependencies>  
68 - <partitionschemas>  
69 - </partitionschemas>  
70 - <slaveservers>  
71 - </slaveservers>  
72 - <clusterschemas>  
73 - </clusterschemas>  
74 - <created_user>-</created_user>  
75 - <created_date>2017&#x2f;01&#x2f;11 14&#x3a;14&#x3a;13.722</created_date>  
76 - <modified_user>-</modified_user>  
77 - <modified_date>2017&#x2f;01&#x2f;11 14&#x3a;14&#x3a;13.722</modified_date>  
78 - <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>  
79 - <is_key_private>N</is_key_private>  
80 - </info>  
81 - <notepads>  
82 - <notepad>  
83 - <note>&#x8fd9;&#x91cc;&#x6709;&#x4e9b;&#x95ee;&#x9898;&#xa;&#x5728;window2012&#x7684;&#x73af;&#x5883;&#x4e0b;&#xff0c;&#xa;MySql&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x4e2d;&#x5982;&#x679c;&#x8fd4;&#x56de;&#x4e2d;&#x6587;&#x5185;&#x5bb9;&#x7684;&#x5b57;&#x6bb5;&#xff0c;&#x8fd9;&#x4e2a;&#x5185;&#x5bb9;&#x4e71;&#x7801;&#xa;&#x89e3;&#x51b3;&#x529e;&#x6cd5;&#xff0c;&#x5c31;&#x662f;&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x5168;&#x90e8;&#x7f13;&#x5b58;&#xff0c;&#x5c31;&#x4e0d;&#x4e71;&#x7801;&#xa;linux&#x73af;&#x5883;&#x4e0b;&#x6ca1;&#x95ee;&#x9898;</note>  
84 - <xloc>81</xloc>  
85 - <yloc>172</yloc>  
86 - <width>333</width>  
87 - <heigth>90</heigth>  
88 - <fontname>YaHei Consolas Hybrid</fontname>  
89 - <fontsize>12</fontsize>  
90 - <fontbold>N</fontbold>  
91 - <fontitalic>N</fontitalic>  
92 - <fontcolorred>0</fontcolorred>  
93 - <fontcolorgreen>0</fontcolorgreen>  
94 - <fontcolorblue>0</fontcolorblue>  
95 - <backgroundcolorred>255</backgroundcolorred>  
96 - <backgroundcolorgreen>205</backgroundcolorgreen>  
97 - <backgroundcolorblue>112</backgroundcolorblue>  
98 - <bordercolorred>100</bordercolorred>  
99 - <bordercolorgreen>100</bordercolorgreen>  
100 - <bordercolorblue>100</bordercolorblue>  
101 - <drawshadow>Y</drawshadow>  
102 - </notepad>  
103 - </notepads>  
104 - <connection>  
105 - <name>bus_control_variable</name>  
106 - <server>&#x24;&#x7b;v_db_ip&#x7d;</server>  
107 - <type>MYSQL</type>  
108 - <access>Native</access>  
109 - <database>&#x24;&#x7b;v_db_dname&#x7d;</database>  
110 - <port>3306</port>  
111 - <username>&#x24;&#x7b;v_db_uname&#x7d;</username>  
112 - <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>  
113 - <servername/>  
114 - <data_tablespace/>  
115 - <index_tablespace/>  
116 - <attributes>  
117 - <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute>  
118 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
119 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
120 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
121 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
122 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
123 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
124 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
125 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
126 - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>  
127 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
128 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
129 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
130 - </attributes>  
131 - </connection>  
132 - <connection>  
133 - <name>bus_control_&#x516c;&#x53f8;_201</name>  
134 - <server>localhost</server>  
135 - <type>MYSQL</type>  
136 - <access>Native</access>  
137 - <database>control</database>  
138 - <port>3306</port>  
139 - <username>root</username>  
140 - <password>Encrypted </password>  
141 - <servername/>  
142 - <data_tablespace/>  
143 - <index_tablespace/>  
144 - <attributes>  
145 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
146 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
147 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
148 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
149 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
150 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
151 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
152 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
153 - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>  
154 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
155 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
156 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
157 - </attributes>  
158 - </connection>  
159 - <connection>  
160 - <name>bus_control_&#x672c;&#x673a;</name>  
161 - <server>localhost</server>  
162 - <type>MYSQL</type>  
163 - <access>Native</access>  
164 - <database>control</database>  
165 - <port>3306</port>  
166 - <username>root</username>  
167 - <password>Encrypted </password>  
168 - <servername/>  
169 - <data_tablespace/>  
170 - <index_tablespace/>  
171 - <attributes>  
172 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
173 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
174 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
175 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
176 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
177 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
178 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
179 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
180 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
181 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
182 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
183 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
184 - </attributes>  
185 - </connection>  
186 - <connection>  
187 - <name>xlab_mysql_youle</name>  
188 - <server>101.231.124.8</server>  
189 - <type>MYSQL</type>  
190 - <access>Native</access>  
191 - <database>xlab_youle</database>  
192 - <port>45687</port>  
193 - <username>xlab-youle</username>  
194 - <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>  
195 - <servername/>  
196 - <data_tablespace/>  
197 - <index_tablespace/>  
198 - <attributes>  
199 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
200 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
201 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
202 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
203 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
204 - <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>  
205 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
206 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
207 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
208 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>  
209 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>  
210 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
211 - </attributes>  
212 - </connection>  
213 - <connection>  
214 - <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>  
215 - <server>localhost</server>  
216 - <type>MYSQL</type>  
217 - <access>Native</access>  
218 - <database>xlab_youle</database>  
219 - <port>3306</port>  
220 - <username>root</username>  
221 - <password>Encrypted </password>  
222 - <servername/>  
223 - <data_tablespace/>  
224 - <index_tablespace/>  
225 - <attributes>  
226 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
227 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
228 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
229 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
230 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
231 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
232 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
233 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
234 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
235 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>  
236 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>  
237 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
238 - </attributes>  
239 - </connection>  
240 - <connection>  
241 - <name>xlab_youle</name>  
242 - <server/>  
243 - <type>MYSQL</type>  
244 - <access>JNDI</access>  
245 - <database>xlab_youle</database>  
246 - <port>1521</port>  
247 - <username/>  
248 - <password>Encrypted </password>  
249 - <servername/>  
250 - <data_tablespace/>  
251 - <index_tablespace/>  
252 - <attributes>  
253 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
254 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
255 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
256 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
257 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
258 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
259 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
260 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
261 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
262 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
263 - </attributes>  
264 - </connection>  
265 - <order>  
266 - <hop> <from>&#x8f66;&#x8f86;&#x914d;&#x7f6e;&#xff08;&#x6ca1;&#x6709;&#x4f5c;&#x5e9f;&#xff09;</from><to>&#x7ebf;&#x8def;&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>  
267 - <hop> <from>&#x7ebf;&#x8def;&#x67e5;&#x8be2;</from><to>&#x8f66;&#x8f86;&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>  
268 - <hop> <from>&#x8f66;&#x8f86;&#x67e5;&#x8be2;</from><to>&#x683c;&#x5f0f;&#x5316;&#x65e5;&#x671f;</to><enabled>Y</enabled> </hop>  
269 - <hop> <from>&#x683c;&#x5f0f;&#x5316;&#x65e5;&#x671f;</from><to>&#x6392;&#x5e8f;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>  
270 - <hop> <from>&#x6392;&#x5e8f;&#x8bb0;&#x5f55;</from><to>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</to><enabled>Y</enabled> </hop>  
271 - <hop> <from>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</from><to>Excel&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>  
272 - </order>  
273 - <step>  
274 - <name>&#x8f66;&#x8f86;&#x914d;&#x7f6e;&#xff08;&#x6ca1;&#x6709;&#x4f5c;&#x5e9f;&#xff09;</name>  
275 - <type>TableInput</type>  
276 - <description/>  
277 - <distribute>Y</distribute>  
278 - <custom_distribution/>  
279 - <copies>1</copies>  
280 - <partitioning>  
281 - <method>none</method>  
282 - <schema_name/>  
283 - </partitioning>  
284 - <connection>bus_control_variable</connection>  
285 - <sql>select &#x2a; from bsth_c_s_ccinfo where is_cancel &#x3d; 0</sql>  
286 - <limit>0</limit>  
287 - <lookup/>  
288 - <execute_each_row>N</execute_each_row>  
289 - <variables_active>N</variables_active>  
290 - <lazy_conversion_active>N</lazy_conversion_active>  
291 - <cluster_schema/>  
292 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
293 - <xloc>106</xloc>  
294 - <yloc>68</yloc>  
295 - <draw>Y</draw>  
296 - </GUI>  
297 - </step>  
298 -  
299 - <step>  
300 - <name>&#x7ebf;&#x8def;&#x67e5;&#x8be2;</name>  
301 - <type>DBLookup</type>  
302 - <description/>  
303 - <distribute>Y</distribute>  
304 - <custom_distribution/>  
305 - <copies>1</copies>  
306 - <partitioning>  
307 - <method>none</method>  
308 - <schema_name/>  
309 - </partitioning>  
310 - <connection>bus_control_variable</connection>  
311 - <cache>Y</cache>  
312 - <cache_load_all>Y</cache_load_all>  
313 - <cache_size>0</cache_size>  
314 - <lookup>  
315 - <schema/>  
316 - <table>bsth_c_line</table>  
317 - <orderby/>  
318 - <fail_on_multiple>N</fail_on_multiple>  
319 - <eat_row_on_failure>N</eat_row_on_failure>  
320 - <key>  
321 - <name>xl</name>  
322 - <field>id</field>  
323 - <condition>&#x3d;</condition>  
324 - <name2/>  
325 - </key>  
326 - <value>  
327 - <name>name</name>  
328 - <rename>xlmc</rename>  
329 - <default/>  
330 - <type>String</type>  
331 - </value>  
332 - </lookup>  
333 - <cluster_schema/>  
334 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
335 - <xloc>248</xloc>  
336 - <yloc>67</yloc>  
337 - <draw>Y</draw>  
338 - </GUI>  
339 - </step>  
340 -  
341 - <step>  
342 - <name>&#x8f66;&#x8f86;&#x67e5;&#x8be2;</name>  
343 - <type>DBLookup</type>  
344 - <description/>  
345 - <distribute>Y</distribute>  
346 - <custom_distribution/>  
347 - <copies>1</copies>  
348 - <partitioning>  
349 - <method>none</method>  
350 - <schema_name/>  
351 - </partitioning>  
352 - <connection>bus_control_variable</connection>  
353 - <cache>N</cache>  
354 - <cache_load_all>N</cache_load_all>  
355 - <cache_size>0</cache_size>  
356 - <lookup>  
357 - <schema/>  
358 - <table>bsth_c_cars</table>  
359 - <orderby/>  
360 - <fail_on_multiple>N</fail_on_multiple>  
361 - <eat_row_on_failure>N</eat_row_on_failure>  
362 - <key>  
363 - <name>cl</name>  
364 - <field>id</field>  
365 - <condition>&#x3d;</condition>  
366 - <name2/>  
367 - </key>  
368 - <value>  
369 - <name>inside_code</name>  
370 - <rename>zbh</rename>  
371 - <default/>  
372 - <type>String</type>  
373 - </value>  
374 - </lookup>  
375 - <cluster_schema/>  
376 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
377 - <xloc>361</xloc>  
378 - <yloc>67</yloc>  
379 - <draw>Y</draw>  
380 - </GUI>  
381 - </step>  
382 -  
383 - <step>  
384 - <name>&#x683c;&#x5f0f;&#x5316;&#x65e5;&#x671f;</name>  
385 - <type>SelectValues</type>  
386 - <description/>  
387 - <distribute>Y</distribute>  
388 - <custom_distribution/>  
389 - <copies>1</copies>  
390 - <partitioning>  
391 - <method>none</method>  
392 - <schema_name/>  
393 - </partitioning>  
394 - <fields> <select_unspecified>N</select_unspecified>  
395 - <meta> <name>qyrq</name>  
396 - <rename>qyrq</rename>  
397 - <type>String</type>  
398 - <length>-2</length>  
399 - <precision>-2</precision>  
400 - <conversion_mask>yyyy-MM-dd</conversion_mask>  
401 - <date_format_lenient>false</date_format_lenient>  
402 - <date_format_locale/>  
403 - <date_format_timezone/>  
404 - <lenient_string_to_number>false</lenient_string_to_number>  
405 - <encoding/>  
406 - <decimal_symbol/>  
407 - <grouping_symbol/>  
408 - <currency_symbol/>  
409 - <storage_type/>  
410 - </meta> <meta> <name>zzrq</name>  
411 - <rename>zzrq</rename>  
412 - <type>String</type>  
413 - <length>-2</length>  
414 - <precision>-2</precision>  
415 - <conversion_mask>yyyy-MM-dd</conversion_mask>  
416 - <date_format_lenient>false</date_format_lenient>  
417 - <date_format_locale/>  
418 - <date_format_timezone/>  
419 - <lenient_string_to_number>false</lenient_string_to_number>  
420 - <encoding/>  
421 - <decimal_symbol/>  
422 - <grouping_symbol/>  
423 - <currency_symbol/>  
424 - <storage_type/>  
425 - </meta> </fields> <cluster_schema/>  
426 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
427 - <xloc>478</xloc>  
428 - <yloc>66</yloc>  
429 - <draw>Y</draw>  
430 - </GUI>  
431 - </step>  
432 -  
433 - <step>  
434 - <name>&#x6392;&#x5e8f;&#x8bb0;&#x5f55;</name>  
435 - <type>SortRows</type>  
436 - <description/>  
437 - <distribute>Y</distribute>  
438 - <custom_distribution/>  
439 - <copies>1</copies>  
440 - <partitioning>  
441 - <method>none</method>  
442 - <schema_name/>  
443 - </partitioning>  
444 - <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>  
445 - <prefix>out</prefix>  
446 - <sort_size>1000000</sort_size>  
447 - <free_memory/>  
448 - <compress>N</compress>  
449 - <compress_variable/>  
450 - <unique_rows>N</unique_rows>  
451 - <fields>  
452 - <field>  
453 - <name>xlmc</name>  
454 - <ascending>Y</ascending>  
455 - <case_sensitive>N</case_sensitive>  
456 - <presorted>N</presorted>  
457 - </field>  
458 - <field>  
459 - <name>zbh</name>  
460 - <ascending>Y</ascending>  
461 - <case_sensitive>N</case_sensitive>  
462 - <presorted>N</presorted>  
463 - </field>  
464 - <field>  
465 - <name>qyrq</name>  
466 - <ascending>Y</ascending>  
467 - <case_sensitive>N</case_sensitive>  
468 - <presorted>N</presorted>  
469 - </field>  
470 - </fields>  
471 - <cluster_schema/>  
472 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
473 - <xloc>592</xloc>  
474 - <yloc>66</yloc>  
475 - <draw>Y</draw>  
476 - </GUI>  
477 - </step>  
478 -  
479 - <step>  
480 - <name>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</name>  
481 - <type>SelectValues</type>  
482 - <description/>  
483 - <distribute>Y</distribute>  
484 - <custom_distribution/>  
485 - <copies>1</copies>  
486 - <partitioning>  
487 - <method>none</method>  
488 - <schema_name/>  
489 - </partitioning>  
490 - <fields> <field> <name>xlmc</name>  
491 - <rename>&#x7ebf;&#x8def;</rename>  
492 - <length>-2</length>  
493 - <precision>-2</precision>  
494 - </field> <field> <name>zbh</name>  
495 - <rename>&#x5185;&#x90e8;&#x7f16;&#x7801;</rename>  
496 - <length>-2</length>  
497 - <precision>-2</precision>  
498 - </field> <field> <name>qyrq</name>  
499 - <rename>&#x542f;&#x7528;&#x65e5;&#x671f;</rename>  
500 - <length>-2</length>  
501 - <precision>-2</precision>  
502 - </field> <field> <name>zzrq</name>  
503 - <rename>&#x7ec8;&#x7ed3;&#x65e5;&#x671f;</rename>  
504 - <length>-2</length>  
505 - <precision>-2</precision>  
506 - </field> <field> <name>tcd</name>  
507 - <rename>&#x505c;&#x8f66;&#x70b9;</rename>  
508 - <length>-2</length>  
509 - <precision>-2</precision>  
510 - </field> <select_unspecified>N</select_unspecified>  
511 - </fields> <cluster_schema/>  
512 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
513 - <xloc>595</xloc>  
514 - <yloc>167</yloc>  
515 - <draw>Y</draw>  
516 - </GUI>  
517 - </step>  
518 -  
519 - <step>  
520 - <name>Excel&#x8f93;&#x51fa;</name>  
521 - <type>ExcelOutput</type>  
522 - <description/>  
523 - <distribute>Y</distribute>  
524 - <custom_distribution/>  
525 - <copies>1</copies>  
526 - <partitioning>  
527 - <method>none</method>  
528 - <schema_name/>  
529 - </partitioning>  
530 - <header>Y</header>  
531 - <footer>N</footer>  
532 - <encoding/>  
533 - <append>N</append>  
534 - <add_to_result_filenames>Y</add_to_result_filenames>  
535 - <file>  
536 - <name>&#x24;&#x7b;filepath&#x7d;</name>  
537 - <extention/>  
538 - <do_not_open_newfile_init>N</do_not_open_newfile_init>  
539 - <create_parent_folder>N</create_parent_folder>  
540 - <split>N</split>  
541 - <add_date>N</add_date>  
542 - <add_time>N</add_time>  
543 - <SpecifyFormat>N</SpecifyFormat>  
544 - <date_time_format>yyyyMMddHHmmss</date_time_format>  
545 - <sheetname>&#x5de5;&#x4f5c;&#x8868;1</sheetname>  
546 - <autosizecolums>N</autosizecolums>  
547 - <nullisblank>N</nullisblank>  
548 - <protect_sheet>N</protect_sheet>  
549 - <password>Encrypted </password>  
550 - <splitevery>0</splitevery>  
551 - <usetempfiles>N</usetempfiles>  
552 - <tempdirectory/>  
553 - </file>  
554 - <template>  
555 - <enabled>N</enabled>  
556 - <append>N</append>  
557 - <filename>template.xls</filename>  
558 - </template>  
559 - <fields>  
560 - <field>  
561 - <name>&#x7ebf;&#x8def;</name>  
562 - <type>String</type>  
563 - <format/>  
564 - </field>  
565 - <field>  
566 - <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>  
567 - <type>String</type>  
568 - <format/>  
569 - </field>  
570 - <field>  
571 - <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>  
572 - <type>String</type>  
573 - <format/>  
574 - </field>  
575 - <field>  
576 - <name>&#x7ec8;&#x7ed3;&#x65e5;&#x671f;</name>  
577 - <type>String</type>  
578 - <format/>  
579 - </field>  
580 - <field>  
581 - <name>&#x505c;&#x8f66;&#x70b9;</name>  
582 - <type>String</type>  
583 - <format/>  
584 - </field>  
585 - </fields>  
586 - <custom>  
587 - <header_font_name>arial</header_font_name>  
588 - <header_font_size>10</header_font_size>  
589 - <header_font_bold>N</header_font_bold>  
590 - <header_font_italic>N</header_font_italic>  
591 - <header_font_underline>no</header_font_underline>  
592 - <header_font_orientation>horizontal</header_font_orientation>  
593 - <header_font_color>black</header_font_color>  
594 - <header_background_color>none</header_background_color>  
595 - <header_row_height>255</header_row_height>  
596 - <header_alignment>left</header_alignment>  
597 - <header_image/>  
598 - <row_font_name>arial</row_font_name>  
599 - <row_font_size>10</row_font_size>  
600 - <row_font_color>black</row_font_color>  
601 - <row_background_color>none</row_background_color>  
602 - </custom>  
603 - <cluster_schema/>  
604 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
605 - <xloc>596</xloc>  
606 - <yloc>265</yloc>  
607 - <draw>Y</draw>  
608 - </GUI>  
609 - </step>  
610 -  
611 - <step_error_handling>  
612 - </step_error_handling>  
613 - <slave-step-copy-partition-distribution>  
614 -</slave-step-copy-partition-distribution>  
615 - <slave_transformation>N</slave_transformation>  
616 -  
617 -</transformation> 1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<transformation>
  3 + <info>
  4 + <name>carsConfigDataOutput</name>
  5 + <description/>
  6 + <extended_description/>
  7 + <trans_version/>
  8 + <trans_type>Normal</trans_type>
  9 + <trans_status>0</trans_status>
  10 + <directory>&#x2f;</directory>
  11 + <parameters>
  12 + <parameter>
  13 + <name>filepath</name>
  14 + <default_value/>
  15 + <description>excel&#x6587;&#x4ef6;&#x8def;&#x5f84;</description>
  16 + </parameter>
  17 + </parameters>
  18 + <log>
  19 +<trans-log-table><connection/>
  20 +<schema/>
  21 +<table/>
  22 +<size_limit_lines/>
  23 +<interval/>
  24 +<timeout_days/>
  25 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STATUS</id><enabled>Y</enabled><name>STATUS</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name><subject/></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name><subject/></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name><subject/></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name><subject/></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name><subject/></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name><subject/></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>STARTDATE</id><enabled>Y</enabled><name>STARTDATE</name></field><field><id>ENDDATE</id><enabled>Y</enabled><name>ENDDATE</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>DEPDATE</id><enabled>Y</enabled><name>DEPDATE</name></field><field><id>REPLAYDATE</id><enabled>Y</enabled><name>REPLAYDATE</name></field><field><id>LOG_FIELD</id><enabled>Y</enabled><name>LOG_FIELD</name></field><field><id>EXECUTING_SERVER</id><enabled>N</enabled><name>EXECUTING_SERVER</name></field><field><id>EXECUTING_USER</id><enabled>N</enabled><name>EXECUTING_USER</name></field><field><id>CLIENT</id><enabled>N</enabled><name>CLIENT</name></field></trans-log-table>
  26 +<perf-log-table><connection/>
  27 +<schema/>
  28 +<table/>
  29 +<interval/>
  30 +<timeout_days/>
  31 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>SEQ_NR</id><enabled>Y</enabled><name>SEQ_NR</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>INPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>INPUT_BUFFER_ROWS</name></field><field><id>OUTPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>OUTPUT_BUFFER_ROWS</name></field></perf-log-table>
  32 +<channel-log-table><connection/>
  33 +<schema/>
  34 +<table/>
  35 +<timeout_days/>
  36 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>LOGGING_OBJECT_TYPE</id><enabled>Y</enabled><name>LOGGING_OBJECT_TYPE</name></field><field><id>OBJECT_NAME</id><enabled>Y</enabled><name>OBJECT_NAME</name></field><field><id>OBJECT_COPY</id><enabled>Y</enabled><name>OBJECT_COPY</name></field><field><id>REPOSITORY_DIRECTORY</id><enabled>Y</enabled><name>REPOSITORY_DIRECTORY</name></field><field><id>FILENAME</id><enabled>Y</enabled><name>FILENAME</name></field><field><id>OBJECT_ID</id><enabled>Y</enabled><name>OBJECT_ID</name></field><field><id>OBJECT_REVISION</id><enabled>Y</enabled><name>OBJECT_REVISION</name></field><field><id>PARENT_CHANNEL_ID</id><enabled>Y</enabled><name>PARENT_CHANNEL_ID</name></field><field><id>ROOT_CHANNEL_ID</id><enabled>Y</enabled><name>ROOT_CHANNEL_ID</name></field></channel-log-table>
  37 +<step-log-table><connection/>
  38 +<schema/>
  39 +<table/>
  40 +<timeout_days/>
  41 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>LOG_FIELD</id><enabled>N</enabled><name>LOG_FIELD</name></field></step-log-table>
  42 +<metrics-log-table><connection/>
  43 +<schema/>
  44 +<table/>
  45 +<timeout_days/>
  46 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>METRICS_DATE</id><enabled>Y</enabled><name>METRICS_DATE</name></field><field><id>METRICS_CODE</id><enabled>Y</enabled><name>METRICS_CODE</name></field><field><id>METRICS_DESCRIPTION</id><enabled>Y</enabled><name>METRICS_DESCRIPTION</name></field><field><id>METRICS_SUBJECT</id><enabled>Y</enabled><name>METRICS_SUBJECT</name></field><field><id>METRICS_TYPE</id><enabled>Y</enabled><name>METRICS_TYPE</name></field><field><id>METRICS_VALUE</id><enabled>Y</enabled><name>METRICS_VALUE</name></field></metrics-log-table>
  47 + </log>
  48 + <maxdate>
  49 + <connection/>
  50 + <table/>
  51 + <field/>
  52 + <offset>0.0</offset>
  53 + <maxdiff>0.0</maxdiff>
  54 + </maxdate>
  55 + <size_rowset>10000</size_rowset>
  56 + <sleep_time_empty>50</sleep_time_empty>
  57 + <sleep_time_full>50</sleep_time_full>
  58 + <unique_connections>N</unique_connections>
  59 + <feedback_shown>Y</feedback_shown>
  60 + <feedback_size>50000</feedback_size>
  61 + <using_thread_priorities>Y</using_thread_priorities>
  62 + <shared_objects_file/>
  63 + <capture_step_performance>N</capture_step_performance>
  64 + <step_performance_capturing_delay>1000</step_performance_capturing_delay>
  65 + <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
  66 + <dependencies>
  67 + </dependencies>
  68 + <partitionschemas>
  69 + </partitionschemas>
  70 + <slaveservers>
  71 + </slaveservers>
  72 + <clusterschemas>
  73 + </clusterschemas>
  74 + <created_user>-</created_user>
  75 + <created_date>2017&#x2f;01&#x2f;11 14&#x3a;14&#x3a;13.722</created_date>
  76 + <modified_user>-</modified_user>
  77 + <modified_date>2017&#x2f;01&#x2f;11 14&#x3a;14&#x3a;13.722</modified_date>
  78 + <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>
  79 + <is_key_private>N</is_key_private>
  80 + </info>
  81 + <notepads>
  82 + <notepad>
  83 + <note>&#x8fd9;&#x91cc;&#x6709;&#x4e9b;&#x95ee;&#x9898;&#xa;&#x5728;window2012&#x7684;&#x73af;&#x5883;&#x4e0b;&#xff0c;&#xa;MySql&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x4e2d;&#x5982;&#x679c;&#x8fd4;&#x56de;&#x4e2d;&#x6587;&#x5185;&#x5bb9;&#x7684;&#x5b57;&#x6bb5;&#xff0c;&#x8fd9;&#x4e2a;&#x5185;&#x5bb9;&#x4e71;&#x7801;&#xa;&#x89e3;&#x51b3;&#x529e;&#x6cd5;&#xff0c;&#x5c31;&#x662f;&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x5168;&#x90e8;&#x7f13;&#x5b58;&#xff0c;&#x5c31;&#x4e0d;&#x4e71;&#x7801;&#xa;linux&#x73af;&#x5883;&#x4e0b;&#x6ca1;&#x95ee;&#x9898;</note>
  84 + <xloc>81</xloc>
  85 + <yloc>172</yloc>
  86 + <width>333</width>
  87 + <heigth>90</heigth>
  88 + <fontname>YaHei Consolas Hybrid</fontname>
  89 + <fontsize>12</fontsize>
  90 + <fontbold>N</fontbold>
  91 + <fontitalic>N</fontitalic>
  92 + <fontcolorred>0</fontcolorred>
  93 + <fontcolorgreen>0</fontcolorgreen>
  94 + <fontcolorblue>0</fontcolorblue>
  95 + <backgroundcolorred>255</backgroundcolorred>
  96 + <backgroundcolorgreen>205</backgroundcolorgreen>
  97 + <backgroundcolorblue>112</backgroundcolorblue>
  98 + <bordercolorred>100</bordercolorred>
  99 + <bordercolorgreen>100</bordercolorgreen>
  100 + <bordercolorblue>100</bordercolorblue>
  101 + <drawshadow>Y</drawshadow>
  102 + </notepad>
  103 + </notepads>
  104 + <connection>
  105 + <name>bus_control_variable</name>
  106 + <server>&#x24;&#x7b;v_db_ip&#x7d;</server>
  107 + <type>MYSQL</type>
  108 + <access>Native</access>
  109 + <database>&#x24;&#x7b;v_db_dname&#x7d;</database>
  110 + <port>3306</port>
  111 + <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
  112 + <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>
  113 + <servername/>
  114 + <data_tablespace/>
  115 + <index_tablespace/>
  116 + <attributes>
  117 + <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute>
  118 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  119 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  120 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  121 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  122 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  123 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  124 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  125 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  126 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  127 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  128 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  129 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  130 + </attributes>
  131 + </connection>
  132 + <connection>
  133 + <name>bus_control_&#x516c;&#x53f8;_201</name>
  134 + <server>localhost</server>
  135 + <type>MYSQL</type>
  136 + <access>Native</access>
  137 + <database>control</database>
  138 + <port>3306</port>
  139 + <username>root</username>
  140 + <password>Encrypted </password>
  141 + <servername/>
  142 + <data_tablespace/>
  143 + <index_tablespace/>
  144 + <attributes>
  145 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  146 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  147 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  148 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  149 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  150 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  151 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  152 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  153 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  154 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  155 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  156 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  157 + </attributes>
  158 + </connection>
  159 + <connection>
  160 + <name>bus_control_&#x672c;&#x673a;</name>
  161 + <server>localhost</server>
  162 + <type>MYSQL</type>
  163 + <access>Native</access>
  164 + <database>control</database>
  165 + <port>3306</port>
  166 + <username>root</username>
  167 + <password>Encrypted </password>
  168 + <servername/>
  169 + <data_tablespace/>
  170 + <index_tablespace/>
  171 + <attributes>
  172 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  173 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  174 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  175 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  176 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  177 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  178 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  179 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  180 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  181 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  182 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  183 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  184 + </attributes>
  185 + </connection>
  186 + <connection>
  187 + <name>xlab_mysql_youle</name>
  188 + <server>101.231.124.8</server>
  189 + <type>MYSQL</type>
  190 + <access>Native</access>
  191 + <database>xlab_youle</database>
  192 + <port>45687</port>
  193 + <username>xlab-youle</username>
  194 + <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>
  195 + <servername/>
  196 + <data_tablespace/>
  197 + <index_tablespace/>
  198 + <attributes>
  199 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  200 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  201 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  202 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  203 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  204 + <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>
  205 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  206 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  207 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  208 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  209 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  210 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  211 + </attributes>
  212 + </connection>
  213 + <connection>
  214 + <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>
  215 + <server>localhost</server>
  216 + <type>MYSQL</type>
  217 + <access>Native</access>
  218 + <database>xlab_youle</database>
  219 + <port>3306</port>
  220 + <username>root</username>
  221 + <password>Encrypted </password>
  222 + <servername/>
  223 + <data_tablespace/>
  224 + <index_tablespace/>
  225 + <attributes>
  226 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  227 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  228 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  229 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  230 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  231 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  232 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  233 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  234 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  235 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  236 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  237 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  238 + </attributes>
  239 + </connection>
  240 + <connection>
  241 + <name>xlab_youle</name>
  242 + <server/>
  243 + <type>MYSQL</type>
  244 + <access>JNDI</access>
  245 + <database>xlab_youle</database>
  246 + <port>1521</port>
  247 + <username/>
  248 + <password>Encrypted </password>
  249 + <servername/>
  250 + <data_tablespace/>
  251 + <index_tablespace/>
  252 + <attributes>
  253 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  254 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  255 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  256 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  257 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  258 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  259 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  260 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  261 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  262 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  263 + </attributes>
  264 + </connection>
  265 + <order>
  266 + <hop> <from>&#x8f66;&#x8f86;&#x914d;&#x7f6e;&#xff08;&#x6ca1;&#x6709;&#x4f5c;&#x5e9f;&#xff09;</from><to>&#x7ebf;&#x8def;&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>
  267 + <hop> <from>&#x7ebf;&#x8def;&#x67e5;&#x8be2;</from><to>&#x8f66;&#x8f86;&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>
  268 + <hop> <from>&#x8f66;&#x8f86;&#x67e5;&#x8be2;</from><to>&#x683c;&#x5f0f;&#x5316;&#x65e5;&#x671f;</to><enabled>Y</enabled> </hop>
  269 + <hop> <from>&#x683c;&#x5f0f;&#x5316;&#x65e5;&#x671f;</from><to>&#x6392;&#x5e8f;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>
  270 + <hop> <from>&#x6392;&#x5e8f;&#x8bb0;&#x5f55;</from><to>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</to><enabled>Y</enabled> </hop>
  271 + <hop> <from>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</from><to>Excel&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>
  272 + </order>
  273 + <step>
  274 + <name>&#x8f66;&#x8f86;&#x914d;&#x7f6e;&#xff08;&#x6ca1;&#x6709;&#x4f5c;&#x5e9f;&#xff09;</name>
  275 + <type>TableInput</type>
  276 + <description/>
  277 + <distribute>Y</distribute>
  278 + <custom_distribution/>
  279 + <copies>1</copies>
  280 + <partitioning>
  281 + <method>none</method>
  282 + <schema_name/>
  283 + </partitioning>
  284 + <connection>bus_control_variable</connection>
  285 + <sql>select &#x2a; from bsth_c_s_ccinfo where is_cancel &#x3d; 0</sql>
  286 + <limit>0</limit>
  287 + <lookup/>
  288 + <execute_each_row>N</execute_each_row>
  289 + <variables_active>N</variables_active>
  290 + <lazy_conversion_active>N</lazy_conversion_active>
  291 + <cluster_schema/>
  292 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  293 + <xloc>106</xloc>
  294 + <yloc>68</yloc>
  295 + <draw>Y</draw>
  296 + </GUI>
  297 + </step>
  298 +
  299 + <step>
  300 + <name>&#x7ebf;&#x8def;&#x67e5;&#x8be2;</name>
  301 + <type>DBLookup</type>
  302 + <description/>
  303 + <distribute>Y</distribute>
  304 + <custom_distribution/>
  305 + <copies>1</copies>
  306 + <partitioning>
  307 + <method>none</method>
  308 + <schema_name/>
  309 + </partitioning>
  310 + <connection>bus_control_variable</connection>
  311 + <cache>Y</cache>
  312 + <cache_load_all>Y</cache_load_all>
  313 + <cache_size>0</cache_size>
  314 + <lookup>
  315 + <schema/>
  316 + <table>bsth_c_line</table>
  317 + <orderby/>
  318 + <fail_on_multiple>N</fail_on_multiple>
  319 + <eat_row_on_failure>N</eat_row_on_failure>
  320 + <key>
  321 + <name>xl</name>
  322 + <field>id</field>
  323 + <condition>&#x3d;</condition>
  324 + <name2/>
  325 + </key>
  326 + <value>
  327 + <name>name</name>
  328 + <rename>xlmc</rename>
  329 + <default/>
  330 + <type>String</type>
  331 + </value>
  332 + </lookup>
  333 + <cluster_schema/>
  334 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  335 + <xloc>248</xloc>
  336 + <yloc>67</yloc>
  337 + <draw>Y</draw>
  338 + </GUI>
  339 + </step>
  340 +
  341 + <step>
  342 + <name>&#x8f66;&#x8f86;&#x67e5;&#x8be2;</name>
  343 + <type>DBLookup</type>
  344 + <description/>
  345 + <distribute>Y</distribute>
  346 + <custom_distribution/>
  347 + <copies>1</copies>
  348 + <partitioning>
  349 + <method>none</method>
  350 + <schema_name/>
  351 + </partitioning>
  352 + <connection>bus_control_variable</connection>
  353 + <cache>N</cache>
  354 + <cache_load_all>N</cache_load_all>
  355 + <cache_size>0</cache_size>
  356 + <lookup>
  357 + <schema/>
  358 + <table>bsth_c_cars</table>
  359 + <orderby/>
  360 + <fail_on_multiple>N</fail_on_multiple>
  361 + <eat_row_on_failure>N</eat_row_on_failure>
  362 + <key>
  363 + <name>cl</name>
  364 + <field>id</field>
  365 + <condition>&#x3d;</condition>
  366 + <name2/>
  367 + </key>
  368 + <value>
  369 + <name>inside_code</name>
  370 + <rename>zbh</rename>
  371 + <default/>
  372 + <type>String</type>
  373 + </value>
  374 + </lookup>
  375 + <cluster_schema/>
  376 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  377 + <xloc>361</xloc>
  378 + <yloc>67</yloc>
  379 + <draw>Y</draw>
  380 + </GUI>
  381 + </step>
  382 +
  383 + <step>
  384 + <name>&#x683c;&#x5f0f;&#x5316;&#x65e5;&#x671f;</name>
  385 + <type>SelectValues</type>
  386 + <description/>
  387 + <distribute>Y</distribute>
  388 + <custom_distribution/>
  389 + <copies>1</copies>
  390 + <partitioning>
  391 + <method>none</method>
  392 + <schema_name/>
  393 + </partitioning>
  394 + <fields> <select_unspecified>N</select_unspecified>
  395 + <meta> <name>qyrq</name>
  396 + <rename>qyrq</rename>
  397 + <type>String</type>
  398 + <length>-2</length>
  399 + <precision>-2</precision>
  400 + <conversion_mask>yyyy-MM-dd</conversion_mask>
  401 + <date_format_lenient>false</date_format_lenient>
  402 + <date_format_locale/>
  403 + <date_format_timezone/>
  404 + <lenient_string_to_number>false</lenient_string_to_number>
  405 + <encoding/>
  406 + <decimal_symbol/>
  407 + <grouping_symbol/>
  408 + <currency_symbol/>
  409 + <storage_type/>
  410 + </meta> <meta> <name>zzrq</name>
  411 + <rename>zzrq</rename>
  412 + <type>String</type>
  413 + <length>-2</length>
  414 + <precision>-2</precision>
  415 + <conversion_mask>yyyy-MM-dd</conversion_mask>
  416 + <date_format_lenient>false</date_format_lenient>
  417 + <date_format_locale/>
  418 + <date_format_timezone/>
  419 + <lenient_string_to_number>false</lenient_string_to_number>
  420 + <encoding/>
  421 + <decimal_symbol/>
  422 + <grouping_symbol/>
  423 + <currency_symbol/>
  424 + <storage_type/>
  425 + </meta> </fields> <cluster_schema/>
  426 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  427 + <xloc>478</xloc>
  428 + <yloc>66</yloc>
  429 + <draw>Y</draw>
  430 + </GUI>
  431 + </step>
  432 +
  433 + <step>
  434 + <name>&#x6392;&#x5e8f;&#x8bb0;&#x5f55;</name>
  435 + <type>SortRows</type>
  436 + <description/>
  437 + <distribute>Y</distribute>
  438 + <custom_distribution/>
  439 + <copies>1</copies>
  440 + <partitioning>
  441 + <method>none</method>
  442 + <schema_name/>
  443 + </partitioning>
  444 + <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>
  445 + <prefix>out</prefix>
  446 + <sort_size>1000000</sort_size>
  447 + <free_memory/>
  448 + <compress>N</compress>
  449 + <compress_variable/>
  450 + <unique_rows>N</unique_rows>
  451 + <fields>
  452 + <field>
  453 + <name>xlmc</name>
  454 + <ascending>Y</ascending>
  455 + <case_sensitive>N</case_sensitive>
  456 + <presorted>N</presorted>
  457 + </field>
  458 + <field>
  459 + <name>zbh</name>
  460 + <ascending>Y</ascending>
  461 + <case_sensitive>N</case_sensitive>
  462 + <presorted>N</presorted>
  463 + </field>
  464 + <field>
  465 + <name>qyrq</name>
  466 + <ascending>Y</ascending>
  467 + <case_sensitive>N</case_sensitive>
  468 + <presorted>N</presorted>
  469 + </field>
  470 + </fields>
  471 + <cluster_schema/>
  472 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  473 + <xloc>592</xloc>
  474 + <yloc>66</yloc>
  475 + <draw>Y</draw>
  476 + </GUI>
  477 + </step>
  478 +
  479 + <step>
  480 + <name>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</name>
  481 + <type>SelectValues</type>
  482 + <description/>
  483 + <distribute>Y</distribute>
  484 + <custom_distribution/>
  485 + <copies>1</copies>
  486 + <partitioning>
  487 + <method>none</method>
  488 + <schema_name/>
  489 + </partitioning>
  490 + <fields> <field> <name>xlmc</name>
  491 + <rename>&#x7ebf;&#x8def;</rename>
  492 + <length>-2</length>
  493 + <precision>-2</precision>
  494 + </field> <field> <name>zbh</name>
  495 + <rename>&#x5185;&#x90e8;&#x7f16;&#x7801;</rename>
  496 + <length>-2</length>
  497 + <precision>-2</precision>
  498 + </field> <field> <name>qyrq</name>
  499 + <rename>&#x542f;&#x7528;&#x65e5;&#x671f;</rename>
  500 + <length>-2</length>
  501 + <precision>-2</precision>
  502 + </field> <field> <name>zzrq</name>
  503 + <rename>&#x7ec8;&#x7ed3;&#x65e5;&#x671f;</rename>
  504 + <length>-2</length>
  505 + <precision>-2</precision>
  506 + </field> <field> <name>tcd</name>
  507 + <rename>&#x505c;&#x8f66;&#x70b9;</rename>
  508 + <length>-2</length>
  509 + <precision>-2</precision>
  510 + </field> <select_unspecified>N</select_unspecified>
  511 + </fields> <cluster_schema/>
  512 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  513 + <xloc>595</xloc>
  514 + <yloc>167</yloc>
  515 + <draw>Y</draw>
  516 + </GUI>
  517 + </step>
  518 +
  519 + <step>
  520 + <name>Excel&#x8f93;&#x51fa;</name>
  521 + <type>ExcelOutput</type>
  522 + <description/>
  523 + <distribute>Y</distribute>
  524 + <custom_distribution/>
  525 + <copies>1</copies>
  526 + <partitioning>
  527 + <method>none</method>
  528 + <schema_name/>
  529 + </partitioning>
  530 + <header>Y</header>
  531 + <footer>N</footer>
  532 + <encoding/>
  533 + <append>N</append>
  534 + <add_to_result_filenames>Y</add_to_result_filenames>
  535 + <file>
  536 + <name>&#x24;&#x7b;filepath&#x7d;</name>
  537 + <extention/>
  538 + <do_not_open_newfile_init>N</do_not_open_newfile_init>
  539 + <create_parent_folder>N</create_parent_folder>
  540 + <split>N</split>
  541 + <add_date>N</add_date>
  542 + <add_time>N</add_time>
  543 + <SpecifyFormat>N</SpecifyFormat>
  544 + <date_time_format>yyyyMMddHHmmss</date_time_format>
  545 + <sheetname>&#x5de5;&#x4f5c;&#x8868;1</sheetname>
  546 + <autosizecolums>N</autosizecolums>
  547 + <nullisblank>N</nullisblank>
  548 + <protect_sheet>N</protect_sheet>
  549 + <password>Encrypted </password>
  550 + <splitevery>0</splitevery>
  551 + <usetempfiles>N</usetempfiles>
  552 + <tempdirectory/>
  553 + </file>
  554 + <template>
  555 + <enabled>N</enabled>
  556 + <append>N</append>
  557 + <filename>template.xls</filename>
  558 + </template>
  559 + <fields>
  560 + <field>
  561 + <name>&#x7ebf;&#x8def;</name>
  562 + <type>String</type>
  563 + <format/>
  564 + </field>
  565 + <field>
  566 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  567 + <type>String</type>
  568 + <format/>
  569 + </field>
  570 + <field>
  571 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  572 + <type>String</type>
  573 + <format/>
  574 + </field>
  575 + <field>
  576 + <name>&#x7ec8;&#x7ed3;&#x65e5;&#x671f;</name>
  577 + <type>String</type>
  578 + <format/>
  579 + </field>
  580 + <field>
  581 + <name>&#x505c;&#x8f66;&#x70b9;</name>
  582 + <type>String</type>
  583 + <format/>
  584 + </field>
  585 + </fields>
  586 + <custom>
  587 + <header_font_name>arial</header_font_name>
  588 + <header_font_size>10</header_font_size>
  589 + <header_font_bold>N</header_font_bold>
  590 + <header_font_italic>N</header_font_italic>
  591 + <header_font_underline>no</header_font_underline>
  592 + <header_font_orientation>horizontal</header_font_orientation>
  593 + <header_font_color>black</header_font_color>
  594 + <header_background_color>none</header_background_color>
  595 + <header_row_height>255</header_row_height>
  596 + <header_alignment>left</header_alignment>
  597 + <header_image/>
  598 + <row_font_name>arial</row_font_name>
  599 + <row_font_size>10</row_font_size>
  600 + <row_font_color>black</row_font_color>
  601 + <row_background_color>none</row_background_color>
  602 + </custom>
  603 + <cluster_schema/>
  604 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  605 + <xloc>596</xloc>
  606 + <yloc>265</yloc>
  607 + <draw>Y</draw>
  608 + </GUI>
  609 + </step>
  610 +
  611 + <step_error_handling>
  612 + </step_error_handling>
  613 + <slave-step-copy-partition-distribution>
  614 +</slave-step-copy-partition-distribution>
  615 + <slave_transformation>N</slave_transformation>
  616 +
  617 +</transformation>