Commit f367b61ba3dec323506fb4e47b034304794c0ce7

Authored by 潘钊
2 parents ff443d93 3cff23f0

Merge branch 'minhang' of

http://222.66.0.204:8800/panzhaov5/bsth_control into minhang

# Conflicts:
#	src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
#	src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
#	src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java

Too many changes to show.

To preserve performance only 15 of 76 files are displayed.

README.md
1 -公交调度系统BS版 0.1  
2 -======  
3 -----------  
4 -## 目录  
5 ----------  
6 - * [字典表](#字典表)  
7 - * [动态jpa查询实现](#动态jpa查询实现)  
8 - * [车载 gps 相关数据](#gps)  
9 - * [实时gps数据接口 http](#实时gps接口)  
10 - * [进出站数据表结构](#进站数据)  
11 - * [异常警报表结构](#异常警报)  
12 - * [大间隔](#大间隔)  
13 - * [超速](#超速)  
14 - * [越界](#越界)  
15 - * [越站](#越站)  
16 - * [聚集](#聚集)  
17 - * [掉线](#掉线)  
18 - * [调度消息下发接口HTTP](#调度消息下发接口)  
19 - * [调度消息上传接口HTTP](#调度消息上传接口)  
20 -  
21 -----------  
22 -  
23 -## 字典表  
24 -----------  
25 -字典操作全部由前端负责,主要有2种。  
26 -  
27 -1、转换字典代码。  
28 - 当pjax的`pjax:success`事件被触发(片段加载完成)  
29 - 扫描容器内所有有 `$(".nt-dictionary")` 元素进行字典转换  
30 -``` html  
31 ---dom标签为span div p h1 h2 h3 h4 h5 h6 等等文本元素时,如下写法,text为要转换的代码  
32 -<span class="nt-dictionary" data-group="ScheduleType">out</span>  
33 ---to  
34 -<span>出场</span>  
35 -  
36 -<!- dom标签为input时,如下 data-code为要转换的代码 -->  
37 -<input class="nt-dictionary" data-group="ScheduleType" data-code="out">  
38 ---to  
39 -<input value="出场">  
40 -  
41 -<!- dom标签为select时 如下 data-code为要选中的项 -->  
42 -<select class="nt-dictionary" data-group="ScheduleType" data-code="out"></select>  
43 ---to  
44 -<select>  
45 - <option value="normal">正常班次</option>  
46 - <option value="out" selected>出场</option>  
47 - <option value="in">进场</option>  
48 - <option value="oil">加油</option>  
49 - <option value="temp">临加</option>  
50 - <option value="region">区间</option>  
51 - <option value="venting">放空</option>  
52 - <option value="major">放大站</option>  
53 -</select>  
54 -```  
55 -*原标签的class 除nt-dictionary 外,其余均会被保留*  
56 -  
57 -2、dictionary.js提供如下方法自行使用  
58 -| 方法名 | 参数|返回|  
59 -| ---- | ---- | ---- | ---- |  
60 -| groups (获取所有字典组) | 无| | {LineTrend: 线路走向, ScheduleType: 班次类型} |  
61 -| getByGroup (获取字典组下的字典)| (group) |{0: 上行, 1: 下行}|  
62 -| transformCode (转换字典代码)| (group, code) | 上行 |  
63 -  
64 -## 动态jpa查询实现  
65 -----------  
66 -*参考调度系统枚举com.bsth.entity.search.SearchOperator*  
67 -  
68 -  
69 -## gps  
70 -----------  
71 -### 实时gps接口  
72 -  
73 -所有在线GPS: [http://192.168.168.192:8080/transport_server/rtgps](http://192.168.168.192:8080/transport_server/rtgps/)  
74 -根据设备号查询:[http://192.168.168.192:8080/transport_server/rtgps/05B01901](http://192.168.168.192:8080/transport_server/rtgps/05B01901)  
75 -  
76 -<span style="color: red">Response</span>:  
77 -```json  
78 -{  
79 - "data":[  
80 - {  
81 - "companyCode":5,  
82 - "lineId":10329,  
83 - "deviceId":"05B01901",  
84 - "carparkNo":"00000000",  
85 - "stopNo":"7C890002",  
86 - "lon":121.549866,  
87 - "lat":31.238798,  
88 - "timestamp":1397104499000,  
89 - "speed":42.0,  
90 - "direction":245.9,  
91 - "state":0,  
92 - "upDown":0  
93 - }]  
94 -}  
95 -```  
96 -  
97 -| -- | --|--|  
98 -| ---- | ---- | ---- |  
99 -| companyCode | int | 公司代码 |  
100 -| lineId | int | 线路编码 |  
101 -| deviceId | String | 设备编号 |  
102 -| carparkNo | String | 停车场编码 |  
103 -| stopNo | String | 站点编码 |  
104 -| lon | float | 经度 |  
105 -| lat | float | 纬度 |  
106 -| timestamp | long | 时间戳 |  
107 -| speed | float | 速度|  
108 -| direction | float | 方向(角度) |  
109 -| state | int | 营运状态( 0 营运 ,1 非营运, -1 无效) |  
110 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效)|  
111 -  
112 -  
113 -### 进站数据  
114 -----------  
115 -表名:  
116 -  
117 -| .. | .. | .. |  
118 -| ---- | ---- | ---- |  
119 -| id | int | 主键 |  
120 -| deviceId | String | 设备号 |  
121 -| lineId | int | 线路编码 |  
122 -| stopNo | long | 站点编码 |  
123 -| timestamp | long | 时间戳 |  
124 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
125 -| createDate | Date | 创建时间 |  
126 -  
127 -  
128 -### 异常警报  
129 -----------  
130 -  
131 -### 大间隔  
132 -----------  
133 -表名:  
134 -  
135 -| .. | .. | .. |  
136 -| ---- | ---- | ---- |  
137 -| id | int | 主键 |  
138 -| line | int | 线路编码 |  
139 -| station | String | 站点编码 |  
140 -| cVehicle | String | 当前车辆编码 |  
141 -| lastVehicle | String | 上一个车辆编码 |  
142 -| interval | long | 间隔时间(秒) |  
143 -| timestamp | long | 时间戳 |  
144 -| createDate | Date | 创建时间 |  
145 -  
146 -### 超速  
147 -----------  
148 -表名:  
149 -  
150 -| .. | .. | .. |  
151 -| ---- | ---- | ---- |  
152 -| id | int | 主键 |  
153 -| vehicle | String | 车辆编码 |  
154 -| line | int | 线路编码 |  
155 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
156 -| lon | float | 经度 |  
157 -| lat | float | 纬度|  
158 -| speed | float | 速度 |  
159 -| timestamp | long | 时间戳 |  
160 -| createDate | Date | 时间 |  
161 -  
162 -### 越界  
163 -----------  
164 -表名:  
165 -  
166 -| .. | .. | .. |  
167 -| ---- | ---- | ---- |  
168 -| id | int | 主键 |  
169 -| vehicle | String | 车辆编码 |  
170 -| line | int | 线路编码 |  
171 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
172 -| lon | float | 经度 |  
173 -| lat | float | 纬度|  
174 -| location | String | 越界位置(由线调页面进行初始转换)意思是该字段默认为空,页面第一次查看时会写入值|  
175 -| timestamp | long | 时间戳 |  
176 -| createDate | Date | 时间 |  
177 -  
178 -  
179 -### 越站  
180 -----------  
181 -表名:  
182 -  
183 -| .. | .. | .. |  
184 -| ---- | ---- | ---- |  
185 -| id | int | 主键 |  
186 -| line | int | 线路编码 |  
187 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
188 -| station | String | 站点编码 |  
189 -| vehicle | String | 车辆编码 |  
190 -| inData | Date | 进站时间 |  
191 -| outDate | Date | 出站时间 |  
192 -  
193 -  
194 -### 聚集  
195 -----------  
196 -表名:  
197 -  
198 -| .. | .. | .. |  
199 -| ---- | ---- | ---- |  
200 -| id | int | 主键 |  
201 -| line | int | 线路编码 |  
202 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
203 -| stations | String | 站点(多个用 , 号分隔。应该是连续站点) |  
204 -| vehicles | String | 车辆编码(多个用 , 号分隔) |  
205 -| timestamp | long | 时间戳 |  
206 -| createDate | Date | 时间 |  
207 -  
208 -  
209 -### 掉线  
210 -----------  
211 -表名:  
212 -  
213 -| .. | .. | .. |  
214 -| ---- | ---- | ---- |  
215 -| id | int | 主键 |  
216 -| line | int | 线路编码 |  
217 -| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |  
218 -| vehicle | String | 车辆编码 |  
219 -| lon | float | 经度 |  
220 -| lat | float | 纬度|  
221 -| timestamp | long | 时间戳 |  
222 -| createDate | Date | 时间 |  
223 -  
224 -  
225 -### 调度消息下发接口  
226 -----------  
227 -[http://192.168.168.192:8080/transport_server/message](http://192.168.168.192:8080/transport_server/message/)  
228 -  
229 -<span style="color: red">Request</span>:  
230 -```json  
231 -{  
232 - "deviceId":12345,  
233 - "timestamp":44324,  
234 - "operCode":0x60,  
235 - "data":{  
236 - "companyCode":22,  
237 - "deviceId":"029L2222",  
238 - "timestamp":134326,  
239 - "instructType":00,  
240 - "dispatchInstruct":0x00,  
241 - "msgId":12345,  
242 - "alarmTime":201606012000,  
243 - "serviceState":00000000,  
244 - "txtContent":"你好"  
245 - }  
246 -}  
247 -```  
248 -| .. | .. | .. |  
249 -| ---- | ---- | ---- |  
250 -| deviceId | string | 设备编号 |  
251 -| timestamp | long | 时间戳(ms) |  
252 -| operCode | short | 一级协议 |  
253 -| data.companyCode | short | 公司代码 |  
254 -| data.deviceId | string | 设备编号 |  
255 -| data.timestamp | long | 时间戳 |  
256 -| data.instructType | short | 保留 默认0 |  
257 -| data.dispatchInstruct | short | 调度指令 调度指令。0X00表示信息短语,0X01表示取消上次指令+调度指令(闹钟有效),0x02表示为调度指令(闹钟有效); 0x03表示运营状态指令(闹钟无效);0x04表示其他指令。|  
258 -| data.msgId | long | 同上 |  
259 -| data.alarmTime | long | 闹钟 MMddhhmm|  
260 -| data.serviceState | long | 多状态字节   先由车载发起车辆故障、事故报告、扣证、纠纷、加油等审请,经调度确认后,下发调度指令与运营状态。当调度指令为0X00终端需要提示信息。当调度指令为0x01和0x02,终端需要收到后提示信息。并且必须在闹钟结束后进行终端相关状态更新。在闹钟时间前120秒开始提示。当调度指令为0x03,收到后进行终端相关状态更新,终端不需要提示信息。当调度指令为0x04,暂不需要提示信息。|  
261 -| data.txtContent | string | 下发的消息文本 |  
262 -```json  
263 -{  
264 - "deviceId":12345,  
265 - "timestamp":44324,  
266 - "operCode":0x64,  
267 - "data":{  
268 - "cityCode":22,  
269 - "deviceId":"029L2222",  
270 - "lineId":"134326"  
271 - }  
272 -}  
273 -```  
274 -| .. | .. | .. |  
275 -| ---- | ---- | ---- |  
276 -| deviceId | string | 设备编号 |  
277 -| timestamp | long | 时间戳(ms) |  
278 -| operCode | short | 一级协议 |  
279 -| data.cityCode | short | 城市区号 |  
280 -| data.deviceId | string | 设备编号 |  
281 -| data.lineId | string | 线路编号 6位 不足6位前面补0 如编号890 用000890表示 |  
282 -  
283 -```json  
284 -{  
285 - "deviceId":12345,  
286 - "timestamp":44324,  
287 - "operCode":0xC0,  
288 - "data":{  
289 - "operCode":0x86,  
290 - "requestAck":0x06  
291 - }  
292 -}  
293 -```  
294 -| .. | .. | .. |  
295 -| ---- | ---- | ---- |  
296 -| deviceId | string | 设备编号 |  
297 -| timestamp | long | 时间戳(ms) |  
298 -| operCode | short | 一级协议 |  
299 -| data.operCode | short | 二级协议 |  
300 -| data.requestAck | short | 请求应答字 0x06同意 0x15不同意|  
301 -  
302 -<span style="color: red">Response</span>:  
303 -```json  
304 -{  
305 - "errCode":0  
306 -}  
307 -```  
308 -  
309 -  
310 -### 调度消息上传接口  
311 -----------  
312 -上行POST地址:[http://192.168.168.120:9088/control/upstream](http://192.168.168.120:9088/control/upstream)  
313 -<span style="color: red">Request</span>:  
314 -```json  
315 -{  
316 - "deviceId":12345,  
317 - "timestamp":44324,  
318 - "status":0,  
319 - "operCode":0x80,  
320 - "data":{  
321 - "operCode":0x26,  
322 - "requestCode":22  
323 - }  
324 -}  
325 -```  
326 -| .. | .. | .. |  
327 -| ---- | ---- | ---- |  
328 -| deviceId | string | 设备编号 |  
329 -| timestamp | long | 时间戳(ms) |  
330 -| status | int | 0x80时无数据 0表示失败 1表示成功或设备确认 2表示驾驶员阅读 |  
331 -| operCode | short | 一级协议 消息确认将无数据 |  
332 -| data.operCode | short | 二级协议 |  
333 -| data.requestCode | short | 请求代码0xa1 恢复运营 0xa2 申请调档 0xa3 出场请求 0xa5 进场请求 0xa7 加油请求 0x50 车辆故障 0x70 路阻报告 0x60 事故报告 0x11 扣证纠纷 0x12 报警 |  
334 -<span style="color: red">Response</span>:  
335 -```json  
336 -{  
337 - "errCode":0  
338 -} 1 +公交调度系统BS版 0.1
  2 +======
  3 +----------
  4 +## 目录
  5 +---------
  6 + * [字典表](#字典表)
  7 + * [动态jpa查询实现](#动态jpa查询实现)
  8 + * [车载 gps 相关数据](#gps)
  9 + * [实时gps数据接口 http](#实时gps接口)
  10 + * [进出站数据表结构](#进站数据)
  11 + * [异常警报表结构](#异常警报)
  12 + * [大间隔](#大间隔)
  13 + * [超速](#超速)
  14 + * [越界](#越界)
  15 + * [越站](#越站)
  16 + * [聚集](#聚集)
  17 + * [掉线](#掉线)
  18 + * [调度消息下发接口HTTP](#调度消息下发接口)
  19 + * [调度消息上传接口HTTP](#调度消息上传接口)
  20 +
  21 +----------
  22 +
  23 +## 字典表
  24 +----------
  25 +字典操作全部由前端负责,主要有2种。
  26 +
  27 +1、转换字典代码。
  28 + 当pjax的`pjax:success`事件被触发(片段加载完成)
  29 + 扫描容器内所有有 `$(".nt-dictionary")` 元素进行字典转换
  30 +``` html
  31 +--dom标签为span div p h1 h2 h3 h4 h5 h6 等等文本元素时,如下写法,text为要转换的代码
  32 +<span class="nt-dictionary" data-group="ScheduleType">out</span>
  33 +--to
  34 +<span>出场</span>
  35 +
  36 +<!- dom标签为input时,如下 data-code为要转换的代码 -->
  37 +<input class="nt-dictionary" data-group="ScheduleType" data-code="out">
  38 +--to
  39 +<input value="出场">
  40 +
  41 +<!- dom标签为select时 如下 data-code为要选中的项 -->
  42 +<select class="nt-dictionary" data-group="ScheduleType" data-code="out"></select>
  43 +--to
  44 +<select>
  45 + <option value="normal">正常班次</option>
  46 + <option value="out" selected>出场</option>
  47 + <option value="in">进场</option>
  48 + <option value="oil">加油</option>
  49 + <option value="temp">临加</option>
  50 + <option value="region">区间</option>
  51 + <option value="venting">放空</option>
  52 + <option value="major">放大站</option>
  53 +</select>
  54 +```
  55 +*原标签的class 除nt-dictionary 外,其余均会被保留*
  56 +
  57 +2、dictionary.js提供如下方法自行使用
  58 +| 方法名 | 参数|返回|
  59 +| ---- | ---- | ---- | ---- |
  60 +| groups (获取所有字典组) | 无| | {LineTrend: 线路走向, ScheduleType: 班次类型} |
  61 +| getByGroup (获取字典组下的字典)| (group) |{0: 上行, 1: 下行}|
  62 +| transformCode (转换字典代码)| (group, code) | 上行 |
  63 +
  64 +## 动态jpa查询实现
  65 +----------
  66 +*参考调度系统枚举com.bsth.entity.search.SearchOperator*
  67 +
  68 +
  69 +## gps
  70 +----------
  71 +### 实时gps接口
  72 +
  73 +所有在线GPS: [http://192.168.168.192:8080/transport_server/rtgps](http://192.168.168.192:8080/transport_server/rtgps/)
  74 +根据设备号查询:[http://192.168.168.192:8080/transport_server/rtgps/05B01901](http://192.168.168.192:8080/transport_server/rtgps/05B01901)
  75 +
  76 +<span style="color: red">Response</span>:
  77 +```json
  78 +{
  79 + "data":[
  80 + {
  81 + "companyCode":5,
  82 + "lineId":10329,
  83 + "deviceId":"05B01901",
  84 + "carparkNo":"00000000",
  85 + "stopNo":"7C890002",
  86 + "lon":121.549866,
  87 + "lat":31.238798,
  88 + "timestamp":1397104499000,
  89 + "speed":42.0,
  90 + "direction":245.9,
  91 + "state":0,
  92 + "upDown":0
  93 + }]
  94 +}
  95 +```
  96 +
  97 +| -- | --|--|
  98 +| ---- | ---- | ---- |
  99 +| companyCode | int | 公司代码 |
  100 +| lineId | int | 线路编码 |
  101 +| deviceId | String | 设备编号 |
  102 +| carparkNo | String | 停车场编码 |
  103 +| stopNo | String | 站点编码 |
  104 +| lon | float | 经度 |
  105 +| lat | float | 纬度 |
  106 +| timestamp | long | 时间戳 |
  107 +| speed | float | 速度|
  108 +| direction | float | 方向(角度) |
  109 +| state | int | 营运状态( 0 营运 ,1 非营运, -1 无效) |
  110 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效)|
  111 +
  112 +
  113 +### 进站数据
  114 +----------
  115 +表名:
  116 +
  117 +| .. | .. | .. |
  118 +| ---- | ---- | ---- |
  119 +| id | int | 主键 |
  120 +| deviceId | String | 设备号 |
  121 +| lineId | int | 线路编码 |
  122 +| stopNo | long | 站点编码 |
  123 +| timestamp | long | 时间戳 |
  124 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  125 +| createDate | Date | 创建时间 |
  126 +
  127 +
  128 +### 异常警报
  129 +----------
  130 +
  131 +### 大间隔
  132 +----------
  133 +表名:
  134 +
  135 +| .. | .. | .. |
  136 +| ---- | ---- | ---- |
  137 +| id | int | 主键 |
  138 +| line | int | 线路编码 |
  139 +| station | String | 站点编码 |
  140 +| cVehicle | String | 当前车辆编码 |
  141 +| lastVehicle | String | 上一个车辆编码 |
  142 +| interval | long | 间隔时间(秒) |
  143 +| timestamp | long | 时间戳 |
  144 +| createDate | Date | 创建时间 |
  145 +
  146 +### 超速
  147 +----------
  148 +表名:
  149 +
  150 +| .. | .. | .. |
  151 +| ---- | ---- | ---- |
  152 +| id | int | 主键 |
  153 +| vehicle | String | 车辆编码 |
  154 +| line | int | 线路编码 |
  155 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  156 +| lon | float | 经度 |
  157 +| lat | float | 纬度|
  158 +| speed | float | 速度 |
  159 +| timestamp | long | 时间戳 |
  160 +| createDate | Date | 时间 |
  161 +
  162 +### 越界
  163 +----------
  164 +表名:
  165 +
  166 +| .. | .. | .. |
  167 +| ---- | ---- | ---- |
  168 +| id | int | 主键 |
  169 +| vehicle | String | 车辆编码 |
  170 +| line | int | 线路编码 |
  171 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  172 +| lon | float | 经度 |
  173 +| lat | float | 纬度|
  174 +| location | String | 越界位置(由线调页面进行初始转换)意思是该字段默认为空,页面第一次查看时会写入值|
  175 +| timestamp | long | 时间戳 |
  176 +| createDate | Date | 时间 |
  177 +
  178 +
  179 +### 越站
  180 +----------
  181 +表名:
  182 +
  183 +| .. | .. | .. |
  184 +| ---- | ---- | ---- |
  185 +| id | int | 主键 |
  186 +| line | int | 线路编码 |
  187 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  188 +| station | String | 站点编码 |
  189 +| vehicle | String | 车辆编码 |
  190 +| inData | Date | 进站时间 |
  191 +| outDate | Date | 出站时间 |
  192 +
  193 +
  194 +### 聚集
  195 +----------
  196 +表名:
  197 +
  198 +| .. | .. | .. |
  199 +| ---- | ---- | ---- |
  200 +| id | int | 主键 |
  201 +| line | int | 线路编码 |
  202 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  203 +| stations | String | 站点(多个用 , 号分隔。应该是连续站点) |
  204 +| vehicles | String | 车辆编码(多个用 , 号分隔) |
  205 +| timestamp | long | 时间戳 |
  206 +| createDate | Date | 时间 |
  207 +
  208 +
  209 +### 掉线
  210 +----------
  211 +表名:
  212 +
  213 +| .. | .. | .. |
  214 +| ---- | ---- | ---- |
  215 +| id | int | 主键 |
  216 +| line | int | 线路编码 |
  217 +| upDown | int | 上下行(0 上行 , 1 下行 , -1 无效) |
  218 +| vehicle | String | 车辆编码 |
  219 +| lon | float | 经度 |
  220 +| lat | float | 纬度|
  221 +| timestamp | long | 时间戳 |
  222 +| createDate | Date | 时间 |
  223 +
  224 +
  225 +### 调度消息下发接口
  226 +----------
  227 +[http://192.168.168.192:8080/transport_server/message](http://192.168.168.192:8080/transport_server/message/)
  228 +
  229 +<span style="color: red">Request</span>:
  230 +```json
  231 +{
  232 + "deviceId":12345,
  233 + "timestamp":44324,
  234 + "operCode":0x60,
  235 + "data":{
  236 + "companyCode":22,
  237 + "deviceId":"029L2222",
  238 + "timestamp":134326,
  239 + "instructType":00,
  240 + "dispatchInstruct":0x00,
  241 + "msgId":12345,
  242 + "alarmTime":201606012000,
  243 + "serviceState":00000000,
  244 + "txtContent":"你好"
  245 + }
  246 +}
  247 +```
  248 +| .. | .. | .. |
  249 +| ---- | ---- | ---- |
  250 +| deviceId | string | 设备编号 |
  251 +| timestamp | long | 时间戳(ms) |
  252 +| operCode | short | 一级协议 |
  253 +| data.companyCode | short | 公司代码 |
  254 +| data.deviceId | string | 设备编号 |
  255 +| data.timestamp | long | 时间戳 |
  256 +| data.instructType | short | 保留 默认0 |
  257 +| data.dispatchInstruct | short | 调度指令 调度指令。0X00表示信息短语,0X01表示取消上次指令+调度指令(闹钟有效),0x02表示为调度指令(闹钟有效); 0x03表示运营状态指令(闹钟无效);0x04表示其他指令。|
  258 +| data.msgId | long | 同上 |
  259 +| data.alarmTime | long | 闹钟 MMddhhmm|
  260 +| data.serviceState | long | 多状态字节   先由车载发起车辆故障、事故报告、扣证、纠纷、加油等审请,经调度确认后,下发调度指令与运营状态。当调度指令为0X00终端需要提示信息。当调度指令为0x01和0x02,终端需要收到后提示信息。并且必须在闹钟结束后进行终端相关状态更新。在闹钟时间前120秒开始提示。当调度指令为0x03,收到后进行终端相关状态更新,终端不需要提示信息。当调度指令为0x04,暂不需要提示信息。|
  261 +| data.txtContent | string | 下发的消息文本 |
  262 +```json
  263 +{
  264 + "deviceId":12345,
  265 + "timestamp":44324,
  266 + "operCode":0x64,
  267 + "data":{
  268 + "cityCode":22,
  269 + "deviceId":"029L2222",
  270 + "lineId":"134326"
  271 + }
  272 +}
  273 +```
  274 +| .. | .. | .. |
  275 +| ---- | ---- | ---- |
  276 +| deviceId | string | 设备编号 |
  277 +| timestamp | long | 时间戳(ms) |
  278 +| operCode | short | 一级协议 |
  279 +| data.cityCode | short | 城市区号 |
  280 +| data.deviceId | string | 设备编号 |
  281 +| data.lineId | string | 线路编号 6位 不足6位前面补0 如编号890 用000890表示 |
  282 +
  283 +```json
  284 +{
  285 + "deviceId":12345,
  286 + "timestamp":44324,
  287 + "operCode":0xC0,
  288 + "data":{
  289 + "operCode":0x86,
  290 + "requestAck":0x06
  291 + }
  292 +}
  293 +```
  294 +| .. | .. | .. |
  295 +| ---- | ---- | ---- |
  296 +| deviceId | string | 设备编号 |
  297 +| timestamp | long | 时间戳(ms) |
  298 +| operCode | short | 一级协议 |
  299 +| data.operCode | short | 二级协议 |
  300 +| data.requestAck | short | 请求应答字 0x06同意 0x15不同意|
  301 +
  302 +<span style="color: red">Response</span>:
  303 +```json
  304 +{
  305 + "errCode":0
  306 +}
  307 +```
  308 +
  309 +
  310 +### 调度消息上传接口
  311 +----------
  312 +上行POST地址:[http://192.168.168.120:9088/control/upstream](http://192.168.168.120:9088/control/upstream)
  313 +<span style="color: red">Request</span>:
  314 +```json
  315 +{
  316 + "deviceId":12345,
  317 + "timestamp":44324,
  318 + "status":0,
  319 + "operCode":0x80,
  320 + "data":{
  321 + "operCode":0x26,
  322 + "requestCode":22
  323 + }
  324 +}
  325 +```
  326 +| .. | .. | .. |
  327 +| ---- | ---- | ---- |
  328 +| deviceId | string | 设备编号 |
  329 +| timestamp | long | 时间戳(ms) |
  330 +| status | int | 0x80时无数据 0表示失败 1表示成功或设备确认 2表示驾驶员阅读 |
  331 +| operCode | short | 一级协议 消息确认将无数据 |
  332 +| data.operCode | short | 二级协议 |
  333 +| data.requestCode | short | 请求代码0xa1 恢复运营 0xa2 申请调档 0xa3 出场请求 0xa5 进场请求 0xa7 加油请求 0x50 车辆故障 0x70 路阻报告 0x60 事故报告 0x11 扣证纠纷 0x12 报警 |
  334 +<span style="color: red">Response</span>:
  335 +```json
  336 +{
  337 + "errCode":0
  338 +}
339 ``` 339 ```
340 \ No newline at end of file 340 \ No newline at end of file
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
@@ -365,7 +365,12 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -365,7 +365,12 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
365 * @return 365 * @return
366 */ 366 */
367 @RequestMapping(value="/scheduleDaily") 367 @RequestMapping(value="/scheduleDaily")
368 - public List<Object> scheduleDaily(@RequestParam String line,@RequestParam String date){ 368 + public Map<String,Object> scheduleDaily(@RequestParam String line,@RequestParam String date){
369 return scheduleRealInfoService.scheduleDaily(line,date); 369 return scheduleRealInfoService.scheduleDaily(line,date);
370 } 370 }
  371 +
  372 + @RequestMapping(value="/realScheduleList")
  373 + public List<ScheduleRealInfo> realScheduleList(@RequestParam String line,@RequestParam String date){
  374 + return scheduleRealInfoService.realScheduleList(line,date);
  375 + }
371 } 376 }
src/main/java/com/bsth/controller/sys/RoleController.java
@@ -32,4 +32,16 @@ public class RoleController extends BaseController&lt;Role, Integer&gt;{ @@ -32,4 +32,16 @@ public class RoleController extends BaseController&lt;Role, Integer&gt;{
32 public Map<String, Object> settRoleModules(@RequestParam Integer roleId,@RequestParam String mIds){ 32 public Map<String, Object> settRoleModules(@RequestParam Integer roleId,@RequestParam String mIds){
33 return roleService.settRoleModules(roleId, mIds); 33 return roleService.settRoleModules(roleId, mIds);
34 } 34 }
  35 +
  36 + /**
  37 + *
  38 + * @Title: roleInfo
  39 + * @Description: TODO(角色信息)
  40 + * @param @param id 角色ID
  41 + * @throws
  42 + */
  43 + @RequestMapping(value = "/roleInfo")
  44 + public Map<String, Object> roleInfo(@RequestParam Integer id){
  45 + return roleService.roleInfo(id);
  46 + }
35 } 47 }
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
@@ -56,10 +56,7 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI @@ -56,10 +56,7 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
56 56
57 @Query(value="select s from ScheduleRealInfo s where s.jName = ?1 and s.clZbh = ?2 and s.lpName = ?3 order by fcsj") 57 @Query(value="select s from ScheduleRealInfo s where s.jName = ?1 and s.clZbh = ?2 and s.lpName = ?3 order by fcsj")
58 List<ScheduleRealInfo> queryListWaybill(String jName,String clZbh,String lpName); 58 List<ScheduleRealInfo> queryListWaybill(String jName,String clZbh,String lpName);
59 -  
60 - @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2")  
61 - List<ScheduleRealInfo> statisticsDaily(String line,String date);  
62 - 59 +
63 @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2") 60 @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2")
64 List<ScheduleRealInfo> scheduleDaily(String line,String date); 61 List<ScheduleRealInfo> scheduleDaily(String line,String date);
65 62
@@ -74,4 +71,6 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI @@ -74,4 +71,6 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
74 @Transactional 71 @Transactional
75 @Query(value = "delete ScheduleRealInfo s where s.xlBm=?1 and s.scheduleDateStr=?2") 72 @Query(value = "delete ScheduleRealInfo s where s.xlBm=?1 and s.scheduleDateStr=?2")
76 void deleteByLineCodeAndDate(String xlBm, String schDate); 73 void deleteByLineCodeAndDate(String xlBm, String schDate);
  74 +
  75 + List<ScheduleRealInfo> scheduleByDateAndLine(String line,String date);
77 } 76 }
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
@@ -98,7 +98,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L @@ -98,7 +98,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
98 98
99 List<Map<String,Object>> statisticsDaily(String line,String date,String xlName); 99 List<Map<String,Object>> statisticsDaily(String line,String date,String xlName);
100 100
101 - List<Object> scheduleDaily(String line,String date); 101 + //List<Object> scheduleDaily(String line,String date);
102 102
103 int countByLineCodeAndDate(String xlBm, String schDate); 103 int countByLineCodeAndDate(String xlBm, String schDate);
104 104
@@ -107,4 +107,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L @@ -107,4 +107,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
107 void deleteByLineCodeAndDate(String xlBm, String schDate); 107 void deleteByLineCodeAndDate(String xlBm, String schDate);
108 108
109 Long getMaxId(); 109 Long getMaxId();
  110 + Map<String,Object> scheduleDaily(String line,String date);
  111 +
  112 + List<ScheduleRealInfo> realScheduleList(String line,String date);
110 } 113 }
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -998,7 +998,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -998,7 +998,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
998 map.put("xlName", xlName); 998 map.put("xlName", xlName);
999 map.put("clZbh", code); 999 map.put("clZbh", code);
1000 map.put("company", obj[0]); 1000 map.put("company", obj[0]);
1001 - map.put("requestType", obj[1]); 1001 + map.put("requestType", "0x" + Integer.toHexString(Integer.parseInt(obj[1]+"")).toUpperCase());
1002 map.put("requestTime", obj[2]); 1002 map.put("requestTime", obj[2]);
1003 listMap.add(map); 1003 listMap.add(map);
1004 } 1004 }
@@ -1040,7 +1040,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1040,7 +1040,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1040 @Override 1040 @Override
1041 public List<Map<String, Object>> statisticsDaily(String line, String date, 1041 public List<Map<String, Object>> statisticsDaily(String line, String date,
1042 String xlName) { 1042 String xlName) {
1043 - List<ScheduleRealInfo> list = scheduleRealInfoRepository.statisticsDaily(line, date); 1043 + List<ScheduleRealInfo> list = scheduleRealInfoRepository.scheduleByDateAndLine(line, date);
1044 double jhlc = 0.00; 1044 double jhlc = 0.00;
1045 float realMileage = 0l; 1045 float realMileage = 0l;
1046 for(ScheduleRealInfo scheduleRealInfo: list){ 1046 for(ScheduleRealInfo scheduleRealInfo: list){
@@ -1055,21 +1055,80 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1055,21 +1055,80 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1055 } 1055 }
1056 1056
1057 @Override 1057 @Override
1058 - public List<Object> scheduleDaily(String line, String date) { 1058 + public Map<String,Object> scheduleDaily(String line, String date) {
1059 Map<String,String> tempMap = null; 1059 Map<String,String> tempMap = null;
1060 - List<ScheduleRealInfo> scheduleRealInfos = scheduleRealInfoRepository.scheduleDaily(line, date); 1060 + List<ScheduleRealInfo> scheduleRealInfos = scheduleRealInfoRepository.scheduleByDateAndLine(line, date);
1061 Map<String, Object> map = new HashMap<String, Object>(); 1061 Map<String, Object> map = new HashMap<String, Object>();
1062 Double jhlc = 0.00; 1062 Double jhlc = 0.00;
  1063 + Float sjgl = 0f,ssgl = 0f,ssgl_lz = 0f,ssgl_dm = 0f,ssgl_gz = 0f,ssgl_jf = 0f,ssgl_zs = 0f,ssgl_qr = 0f
  1064 + ,ssgl_qc = 0f,ssgl_kx = 0f,ssgl_qh = 0f,ssgl_yw = 0f,ssgl_other = 0f,ljgl = 0f;
  1065 + int jhbc = 0;
1063 for(ScheduleRealInfo scheduleRealInfo:scheduleRealInfos){ 1066 for(ScheduleRealInfo scheduleRealInfo:scheduleRealInfos){
1064 if(scheduleRealInfo != null){ 1067 if(scheduleRealInfo != null){
  1068 + //计算里程(包括子任务)
1065 jhlc += scheduleRealInfo.getJhlc(); 1069 jhlc += scheduleRealInfo.getJhlc();
1066 Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks(); 1070 Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
1067 - if(childTaskPlans.isEmpty()){  
1068 - 1071 + if(!childTaskPlans.isEmpty()){
  1072 + Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
  1073 + while(it.hasNext()){
  1074 + ChildTaskPlan childTaskPlan = it.next();
  1075 + //是否烂班,烂班就是少驶
  1076 + if(!childTaskPlan.isDestroy()){
  1077 + sjgl += childTaskPlan.getMileage();
  1078 + }else{
  1079 + ssgl += childTaskPlan.getMileage();
  1080 + if(childTaskPlan.getDestroyReason().equals("路阻")){
  1081 + ssgl_lz += childTaskPlan.getMileage();
  1082 + }else if(childTaskPlan.getDestroyReason().equals("吊慢")){
  1083 + ssgl_dm += childTaskPlan.getMileage();
  1084 + }else if(childTaskPlan.getDestroyReason().equals("故障")){
  1085 + ssgl_gz += childTaskPlan.getMileage();
  1086 + }else if(childTaskPlan.getDestroyReason().equals("纠纷")){
  1087 + ssgl_jf += childTaskPlan.getMileage();
  1088 + }else if(childTaskPlan.getDestroyReason().equals("肇事")){
  1089 + ssgl_zs += childTaskPlan.getMileage();
  1090 + }else if(childTaskPlan.getDestroyReason().equals("缺人")){
  1091 + ssgl_qr += childTaskPlan.getMileage();
  1092 + }else if(childTaskPlan.getDestroyReason().equals("缺车")){
  1093 + ssgl_qc += childTaskPlan.getMileage();
  1094 + }else if(childTaskPlan.getDestroyReason().equals("客稀")){
  1095 + ssgl_kx += childTaskPlan.getMileage();
  1096 + }else if(childTaskPlan.getDestroyReason().equals("气候")){
  1097 + ssgl_qh += childTaskPlan.getMileage();
  1098 + }else if(childTaskPlan.getDestroyReason().equals("援外")){
  1099 + ssgl_yw += childTaskPlan.getMileage();
  1100 + }else{
  1101 + ssgl_other += childTaskPlan.getMileage();
  1102 + }
  1103 + }
  1104 + //临加公里
  1105 + if(childTaskPlan.getType1().equals("临加")){
  1106 + ljgl += childTaskPlan.getMileage();
  1107 + }
  1108 + }
1069 } 1109 }
  1110 + //班次
  1111 + scheduleRealInfo.getFcsjT();
  1112 + scheduleRealInfo.getFcsjActualTime();
1070 } 1113 }
1071 } 1114 }
1072 map.put("jhlc", jhlc); 1115 map.put("jhlc", jhlc);
  1116 + map.put("sjgl", sjgl);
  1117 + map.put("ssgl", ssgl);
  1118 + map.put("ssgl_lz", ssgl_lz);
  1119 + map.put("ssgl_dm", ssgl_dm);
  1120 + map.put("ssgl_gz", ssgl_gz);
  1121 + map.put("ssgl_jf", ssgl_jf);
  1122 + map.put("ssgl_zs", ssgl_zs);
  1123 + map.put("ssgl_qr", ssgl_qr);
  1124 + map.put("ssgl_qc", ssgl_qc);
  1125 + map.put("ssgl_kx", ssgl_kx);
  1126 + map.put("ssgl_qh", ssgl_qh);
  1127 + map.put("ssgl_yw", ssgl_yw);
  1128 + map.put("ssgl_other", ssgl_other);
  1129 + map.put("ljgl", ljgl);
  1130 +
  1131 + map.put("jhbc", scheduleRealInfos.size());
1073 return null; 1132 return null;
1074 } 1133 }
1075 1134
@@ -1092,4 +1151,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1092,4 +1151,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1092 public Long getMaxId() { 1151 public Long getMaxId() {
1093 return scheduleRealInfoRepository.getMaxId(); 1152 return scheduleRealInfoRepository.getMaxId();
1094 } 1153 }
  1154 +
  1155 + @Override
  1156 + public List<ScheduleRealInfo> realScheduleList(String line, String date) {
  1157 + return scheduleRealInfoRepository.scheduleByDateAndLine(line, date);
  1158 + }
1095 } 1159 }
src/main/java/com/bsth/service/schedule/rules/strategy/IStrategy.java
1 -package com.bsth.service.schedule.rules.strategy;  
2 -  
3 -import com.bsth.entity.Line;  
4 -import com.bsth.entity.schedule.CarConfigInfo;  
5 -import com.bsth.entity.schedule.EmployeeConfigInfo;  
6 -import com.bsth.entity.schedule.TTInfo;  
7 -import com.bsth.entity.schedule.TTInfoDetail;  
8 -import com.bsth.entity.schedule.rule.ScheduleRule1Flat;  
9 -import com.google.common.collect.Multimap;  
10 -  
11 -import java.util.Map;  
12 -  
13 -/**  
14 - * 获取数据的策略。  
15 - */  
16 -public interface IStrategy {  
17 -  
18 - /**  
19 - * 获取线路信息。  
20 - * @param xlId 线路id  
21 - * @return  
22 - */  
23 - Line getLine(Integer xlId);  
24 -  
25 - /**  
26 - * 获取指定线路下,可用的时刻表。  
27 - * @param xlId 线路id  
28 - * @return 时刻表  
29 - */  
30 - TTInfo getTTInfo(Integer xlId);  
31 -  
32 - /**  
33 - * 获取指定线路下,可用的排班规则。  
34 - * @param xlId  
35 - * @return  
36 - */  
37 - Iterable<ScheduleRule1Flat> getScheduleRule(Integer xlId);  
38 -  
39 - /**  
40 - * 获取指定线路下,路牌与时刻明细对应的Map。  
41 - * @param xlId 线路id  
42 - * @return 路牌id为key,时刻明细 Collection<TTInfoDetail> 为value  
43 - */  
44 - Multimap<Long, TTInfoDetail> getGuideboardXlTTInfoDetailMaps(Integer xlId);  
45 -  
46 - /**  
47 - * 获取指定线路下,车辆配置与车辆信息对应的Map。  
48 - * @param xlId 线路id  
49 - * @return 车辆配置id为key,具体车辆配置信息为value。  
50 - */  
51 - Map<Long, CarConfigInfo> getCarConfigMaps(Integer xlId);  
52 -  
53 - /**  
54 - * 获取指定线路下,人员配置与人员对应的Map。  
55 - * @param xlId 线路id  
56 - * @return 人员配置id为key,具体人员配置信息为value。  
57 - */  
58 - Map<Long, EmployeeConfigInfo> getEmployeeConfigMaps(Integer xlId);  
59 -} 1 +package com.bsth.service.schedule.rules.strategy;
  2 +
  3 +import com.bsth.entity.Line;
  4 +import com.bsth.entity.schedule.CarConfigInfo;
  5 +import com.bsth.entity.schedule.EmployeeConfigInfo;
  6 +import com.bsth.entity.schedule.TTInfo;
  7 +import com.bsth.entity.schedule.TTInfoDetail;
  8 +import com.bsth.entity.schedule.rule.ScheduleRule1Flat;
  9 +import com.google.common.collect.Multimap;
  10 +
  11 +import java.util.Map;
  12 +
  13 +/**
  14 + * 获取数据的策略。
  15 + */
  16 +public interface IStrategy {
  17 +
  18 + /**
  19 + * 获取线路信息。
  20 + * @param xlId 线路id
  21 + * @return
  22 + */
  23 + Line getLine(Integer xlId);
  24 +
  25 + /**
  26 + * 获取指定线路下,可用的时刻表。
  27 + * @param xlId 线路id
  28 + * @return 时刻表
  29 + */
  30 + TTInfo getTTInfo(Integer xlId);
  31 +
  32 + /**
  33 + * 获取指定线路下,可用的排班规则。
  34 + * @param xlId
  35 + * @return
  36 + */
  37 + Iterable<ScheduleRule1Flat> getScheduleRule(Integer xlId);
  38 +
  39 + /**
  40 + * 获取指定线路下,路牌与时刻明细对应的Map。
  41 + * @param xlId 线路id
  42 + * @return 路牌id为key,时刻明细 Collection<TTInfoDetail> 为value
  43 + */
  44 + Multimap<Long, TTInfoDetail> getGuideboardXlTTInfoDetailMaps(Integer xlId);
  45 +
  46 + /**
  47 + * 获取指定线路下,车辆配置与车辆信息对应的Map。
  48 + * @param xlId 线路id
  49 + * @return 车辆配置id为key,具体车辆配置信息为value。
  50 + */
  51 + Map<Long, CarConfigInfo> getCarConfigMaps(Integer xlId);
  52 +
  53 + /**
  54 + * 获取指定线路下,人员配置与人员对应的Map。
  55 + * @param xlId 线路id
  56 + * @return 人员配置id为key,具体人员配置信息为value。
  57 + */
  58 + Map<Long, EmployeeConfigInfo> getEmployeeConfigMaps(Integer xlId);
  59 +}
src/main/java/com/bsth/service/schedule/rules/strategy/IStrategyImpl.java
1 -package com.bsth.service.schedule.rules.strategy;  
2 -  
3 -import com.bsth.entity.Line;  
4 -import com.bsth.entity.schedule.CarConfigInfo;  
5 -import com.bsth.entity.schedule.EmployeeConfigInfo;  
6 -import com.bsth.entity.schedule.TTInfo;  
7 -import com.bsth.entity.schedule.TTInfoDetail;  
8 -import com.bsth.entity.schedule.rule.ScheduleRule1Flat;  
9 -import com.bsth.service.LineService;  
10 -import com.bsth.service.schedule.*;  
11 -import com.google.common.collect.ArrayListMultimap;  
12 -import com.google.common.collect.Multimap;  
13 -import org.springframework.beans.factory.annotation.Autowired;  
14 -import org.springframework.stereotype.Service;  
15 -  
16 -import java.util.HashMap;  
17 -import java.util.Iterator;  
18 -import java.util.Map;  
19 -  
20 -/**  
21 - * Created by xu on 16/7/10.  
22 - */  
23 -@Service  
24 -public class IStrategyImpl implements IStrategy {  
25 - @Autowired  
26 - private TTInfoService ttInfoService;  
27 - @Autowired  
28 - private CarConfigInfoService carConfigInfoService;  
29 - @Autowired  
30 - private EmployeeConfigInfoService employeeConfigInfoService;  
31 - @Autowired  
32 - private TTInfoDetailService ttInfoDetailService;  
33 - @Autowired  
34 - private LineService lineService;  
35 - @Autowired  
36 - private ScheduleRule1FlatService scheduleRule1FlatService;  
37 -  
38 - @Override  
39 - public Line getLine(Integer xlId) {  
40 - Line xl = lineService.findById(xlId); // 查找线路具体信息  
41 - return xl;  
42 - }  
43 -  
44 - @Override  
45 - public TTInfo getTTInfo(Integer xlId) {  
46 - // TODO:本来要使用规则判定到底使用哪张时刻表,这里选用第一张  
47 - Map<String, Object> param = new HashMap<>(); // 查询参数  
48 - param.clear();  
49 - param.put("xl.id_eq", xlId); // 线路id  
50 - param.put("isCancel_eq", false); // 没有作废  
51 - param.put("isEnableDisTemplate_eq", true); // 是否启用  
52 - Iterable<TTInfo> ttInfoIterable = ttInfoService.list(param);  
53 - Iterator<TTInfo> ttInfoIterator = ttInfoIterable.iterator();  
54 - if (!ttInfoIterator.hasNext())  
55 - throw new RuntimeException("线路id=" + xlId + ",下没有任何时刻表数据!");  
56 - return ttInfoIterator.next();  
57 - }  
58 -  
59 - @Override  
60 - public Iterable<ScheduleRule1Flat> getScheduleRule(Integer xlId) {  
61 - Map<String, Object> param = new HashMap<>(); // 查询参数  
62 - Line xl = lineService.findById(xlId); // 查找线路具体信息  
63 - param.clear();  
64 - param.put("xl.id_eq", xl.getId());  
65 - Iterable<ScheduleRule1Flat> scheduleRule1FlatIterable = scheduleRule1FlatService.list(param);  
66 - if (!scheduleRule1FlatIterable.iterator().hasNext())  
67 - throw new RuntimeException("线路:" + xl.getName() + " 没有配置规则!");  
68 -  
69 - return scheduleRule1FlatIterable;  
70 - }  
71 -  
72 - @Override  
73 - public Multimap<Long, TTInfoDetail> getGuideboardXlTTInfoDetailMaps(Integer xlId) {  
74 - TTInfo ttInfo = getTTInfo(xlId);  
75 - // 查询参数  
76 - Map<String, Object> param = new HashMap<>();  
77 - param.put("ttinfo.id_eq", ttInfo.getId());  
78 - Iterable<TTInfoDetail> ttInfoDetailIterable = ttInfoDetailService.list(param);  
79 - Iterator<TTInfoDetail> ttInfoDetailIterator = ttInfoDetailIterable.iterator();  
80 - if (!ttInfoDetailIterator.hasNext())  
81 - throw new RuntimeException("时刻表id=" + ttInfo.getId() + ",下没有明细数据!");  
82 -  
83 - Multimap<Long, TTInfoDetail> gtmaps = ArrayListMultimap.create();  
84 - while (ttInfoDetailIterator.hasNext()) {  
85 - TTInfoDetail ttInfoDetail = ttInfoDetailIterator.next();  
86 - gtmaps.put(ttInfoDetail.getLp().getId(), ttInfoDetail);  
87 - }  
88 -  
89 - return gtmaps;  
90 - }  
91 -  
92 - @Override  
93 - public Map<Long, CarConfigInfo> getCarConfigMaps(Integer xlId) {  
94 - // 查询参数  
95 - Map<String, Object> param = new HashMap<>();  
96 - param.put("xl.id_eq", xlId);  
97 - Iterable<CarConfigInfo> carConfigInfoIterable = carConfigInfoService.list(param);  
98 - Iterator<CarConfigInfo> carConfigInfoIterator = carConfigInfoIterable.iterator();  
99 - if (!carConfigInfoIterator.hasNext())  
100 - throw new RuntimeException("线路id=" + xlId + ",下没有车辆配置信息!");  
101 -  
102 - Map<Long, CarConfigInfo> carConfigInfoMap = new HashMap<>();  
103 - while (carConfigInfoIterator.hasNext()) {  
104 - CarConfigInfo carConfigInfo = carConfigInfoIterator.next();  
105 - carConfigInfoMap.put(carConfigInfo.getId(), carConfigInfo);  
106 - }  
107 - return carConfigInfoMap;  
108 - }  
109 -  
110 - @Override  
111 - public Map<Long, EmployeeConfigInfo> getEmployeeConfigMaps(Integer xlId) {  
112 - // 查询参数  
113 - Map<String, Object> param = new HashMap<>();  
114 - param.put("xl.id_eq", xlId);  
115 - Iterable<EmployeeConfigInfo> employeeConfigInfoIterable = employeeConfigInfoService.list(param);  
116 - Iterator<EmployeeConfigInfo> employeeConfigInfoIterator = employeeConfigInfoIterable.iterator();  
117 - if (!employeeConfigInfoIterator.hasNext())  
118 - throw new RuntimeException("线路id=" + xlId + ",下没有人员配置信息!");  
119 -  
120 - Map<Long, EmployeeConfigInfo> employeeConfigInfoMap = new HashMap<>();  
121 - while (employeeConfigInfoIterator.hasNext()) {  
122 - EmployeeConfigInfo employeeConfigInfo = employeeConfigInfoIterator.next();  
123 - employeeConfigInfoMap.put(employeeConfigInfo.getId(), employeeConfigInfo);  
124 - }  
125 - return employeeConfigInfoMap;  
126 - }  
127 -} 1 +package com.bsth.service.schedule.rules.strategy;
  2 +
  3 +import com.bsth.entity.Line;
  4 +import com.bsth.entity.schedule.CarConfigInfo;
  5 +import com.bsth.entity.schedule.EmployeeConfigInfo;
  6 +import com.bsth.entity.schedule.TTInfo;
  7 +import com.bsth.entity.schedule.TTInfoDetail;
  8 +import com.bsth.entity.schedule.rule.ScheduleRule1Flat;
  9 +import com.bsth.service.LineService;
  10 +import com.bsth.service.schedule.*;
  11 +import com.google.common.collect.ArrayListMultimap;
  12 +import com.google.common.collect.Multimap;
  13 +import org.springframework.beans.factory.annotation.Autowired;
  14 +import org.springframework.stereotype.Service;
  15 +
  16 +import java.util.HashMap;
  17 +import java.util.Iterator;
  18 +import java.util.Map;
  19 +
  20 +/**
  21 + * Created by xu on 16/7/10.
  22 + */
  23 +@Service
  24 +public class IStrategyImpl implements IStrategy {
  25 + @Autowired
  26 + private TTInfoService ttInfoService;
  27 + @Autowired
  28 + private CarConfigInfoService carConfigInfoService;
  29 + @Autowired
  30 + private EmployeeConfigInfoService employeeConfigInfoService;
  31 + @Autowired
  32 + private TTInfoDetailService ttInfoDetailService;
  33 + @Autowired
  34 + private LineService lineService;
  35 + @Autowired
  36 + private ScheduleRule1FlatService scheduleRule1FlatService;
  37 +
  38 + @Override
  39 + public Line getLine(Integer xlId) {
  40 + Line xl = lineService.findById(xlId); // 查找线路具体信息
  41 + return xl;
  42 + }
  43 +
  44 + @Override
  45 + public TTInfo getTTInfo(Integer xlId) {
  46 + // TODO:本来要使用规则判定到底使用哪张时刻表,这里选用第一张
  47 + Map<String, Object> param = new HashMap<>(); // 查询参数
  48 + param.clear();
  49 + param.put("xl.id_eq", xlId); // 线路id
  50 + param.put("isCancel_eq", false); // 没有作废
  51 + param.put("isEnableDisTemplate_eq", true); // 是否启用
  52 + Iterable<TTInfo> ttInfoIterable = ttInfoService.list(param);
  53 + Iterator<TTInfo> ttInfoIterator = ttInfoIterable.iterator();
  54 + if (!ttInfoIterator.hasNext())
  55 + throw new RuntimeException("线路id=" + xlId + ",下没有任何时刻表数据!");
  56 + return ttInfoIterator.next();
  57 + }
  58 +
  59 + @Override
  60 + public Iterable<ScheduleRule1Flat> getScheduleRule(Integer xlId) {
  61 + Map<String, Object> param = new HashMap<>(); // 查询参数
  62 + Line xl = lineService.findById(xlId); // 查找线路具体信息
  63 + param.clear();
  64 + param.put("xl.id_eq", xl.getId());
  65 + Iterable<ScheduleRule1Flat> scheduleRule1FlatIterable = scheduleRule1FlatService.list(param);
  66 + if (!scheduleRule1FlatIterable.iterator().hasNext())
  67 + throw new RuntimeException("线路:" + xl.getName() + " 没有配置规则!");
  68 +
  69 + return scheduleRule1FlatIterable;
  70 + }
  71 +
  72 + @Override
  73 + public Multimap<Long, TTInfoDetail> getGuideboardXlTTInfoDetailMaps(Integer xlId) {
  74 + TTInfo ttInfo = getTTInfo(xlId);
  75 + // 查询参数
  76 + Map<String, Object> param = new HashMap<>();
  77 + param.put("ttinfo.id_eq", ttInfo.getId());
  78 + Iterable<TTInfoDetail> ttInfoDetailIterable = ttInfoDetailService.list(param);
  79 + Iterator<TTInfoDetail> ttInfoDetailIterator = ttInfoDetailIterable.iterator();
  80 + if (!ttInfoDetailIterator.hasNext())
  81 + throw new RuntimeException("时刻表id=" + ttInfo.getId() + ",下没有明细数据!");
  82 +
  83 + Multimap<Long, TTInfoDetail> gtmaps = ArrayListMultimap.create();
  84 + while (ttInfoDetailIterator.hasNext()) {
  85 + TTInfoDetail ttInfoDetail = ttInfoDetailIterator.next();
  86 + gtmaps.put(ttInfoDetail.getLp().getId(), ttInfoDetail);
  87 + }
  88 +
  89 + return gtmaps;
  90 + }
  91 +
  92 + @Override
  93 + public Map<Long, CarConfigInfo> getCarConfigMaps(Integer xlId) {
  94 + // 查询参数
  95 + Map<String, Object> param = new HashMap<>();
  96 + param.put("xl.id_eq", xlId);
  97 + Iterable<CarConfigInfo> carConfigInfoIterable = carConfigInfoService.list(param);
  98 + Iterator<CarConfigInfo> carConfigInfoIterator = carConfigInfoIterable.iterator();
  99 + if (!carConfigInfoIterator.hasNext())
  100 + throw new RuntimeException("线路id=" + xlId + ",下没有车辆配置信息!");
  101 +
  102 + Map<Long, CarConfigInfo> carConfigInfoMap = new HashMap<>();
  103 + while (carConfigInfoIterator.hasNext()) {
  104 + CarConfigInfo carConfigInfo = carConfigInfoIterator.next();
  105 + carConfigInfoMap.put(carConfigInfo.getId(), carConfigInfo);
  106 + }
  107 + return carConfigInfoMap;
  108 + }
  109 +
  110 + @Override
  111 + public Map<Long, EmployeeConfigInfo> getEmployeeConfigMaps(Integer xlId) {
  112 + // 查询参数
  113 + Map<String, Object> param = new HashMap<>();
  114 + param.put("xl.id_eq", xlId);
  115 + Iterable<EmployeeConfigInfo> employeeConfigInfoIterable = employeeConfigInfoService.list(param);
  116 + Iterator<EmployeeConfigInfo> employeeConfigInfoIterator = employeeConfigInfoIterable.iterator();
  117 + if (!employeeConfigInfoIterator.hasNext())
  118 + throw new RuntimeException("线路id=" + xlId + ",下没有人员配置信息!");
  119 +
  120 + Map<Long, EmployeeConfigInfo> employeeConfigInfoMap = new HashMap<>();
  121 + while (employeeConfigInfoIterator.hasNext()) {
  122 + EmployeeConfigInfo employeeConfigInfo = employeeConfigInfoIterator.next();
  123 + employeeConfigInfoMap.put(employeeConfigInfo.getId(), employeeConfigInfo);
  124 + }
  125 + return employeeConfigInfoMap;
  126 + }
  127 +}
src/main/java/com/bsth/service/sys/RoleService.java
@@ -9,4 +9,5 @@ public interface RoleService extends BaseService&lt;Role, Integer&gt;{ @@ -9,4 +9,5 @@ public interface RoleService extends BaseService&lt;Role, Integer&gt;{
9 9
10 Map<String, Object> settRoleModules(Integer roleId, String mIds); 10 Map<String, Object> settRoleModules(Integer roleId, String mIds);
11 11
  12 + Map<String, Object> roleInfo(Integer id);
12 } 13 }
src/main/java/com/bsth/service/sys/impl/RoleServiceImpl.java
1 package com.bsth.service.sys.impl; 1 package com.bsth.service.sys.impl;
2 2
  3 +import java.text.SimpleDateFormat;
3 import java.util.ArrayList; 4 import java.util.ArrayList;
4 import java.util.HashMap; 5 import java.util.HashMap;
  6 +import java.util.Iterator;
5 import java.util.List; 7 import java.util.List;
6 import java.util.Map; 8 import java.util.Map;
7 import java.util.Set; 9 import java.util.Set;
@@ -14,6 +16,7 @@ import org.springframework.stereotype.Service; @@ -14,6 +16,7 @@ import org.springframework.stereotype.Service;
14 import com.bsth.common.ResponseCode; 16 import com.bsth.common.ResponseCode;
15 import com.bsth.entity.sys.Module; 17 import com.bsth.entity.sys.Module;
16 import com.bsth.entity.sys.Role; 18 import com.bsth.entity.sys.Role;
  19 +import com.bsth.entity.sys.SysUser;
17 import com.bsth.repository.sys.ModuleRepository; 20 import com.bsth.repository.sys.ModuleRepository;
18 import com.bsth.repository.sys.RoleRepository; 21 import com.bsth.repository.sys.RoleRepository;
19 import com.bsth.service.impl.BaseServiceImpl; 22 import com.bsth.service.impl.BaseServiceImpl;
@@ -30,6 +33,8 @@ public class RoleServiceImpl extends BaseServiceImpl&lt;Role, Integer&gt; implements @@ -30,6 +33,8 @@ public class RoleServiceImpl extends BaseServiceImpl&lt;Role, Integer&gt; implements
30 33
31 @Autowired 34 @Autowired
32 ModuleRepository moduleRepository; 35 ModuleRepository moduleRepository;
  36 +
  37 + SimpleDateFormat sdfMinute = new SimpleDateFormat("yyyy-MM-dd HH:mm");
33 38
34 @Override 39 @Override
35 public Map<String, Object> save(Role t) { 40 public Map<String, Object> save(Role t) {
@@ -73,4 +78,29 @@ public class RoleServiceImpl extends BaseServiceImpl&lt;Role, Integer&gt; implements @@ -73,4 +78,29 @@ public class RoleServiceImpl extends BaseServiceImpl&lt;Role, Integer&gt; implements
73 } 78 }
74 return map; 79 return map;
75 } 80 }
  81 +
  82 + @Override
  83 + public Map<String, Object> roleInfo(Integer id) {
  84 + Map<String, Object> map = new HashMap<>();
  85 + Role role = roleRepository.findOne(id);
  86 + map.put("codeName", role.getCodeName());
  87 + map.put("roleName", role.getRoleName());
  88 + map.put("createDate", sdfMinute.format(role.getCreateDate()));
  89 + map.put("updateDate", sdfMinute.format(role.getUpdateDate()));
  90 + map.put("enable", role.isEnable()==true?1:0);
  91 + map.put("descriptions", role.getDescriptions());
  92 + map.put("modules", role.getModules().size());
  93 + map.put("resources", role.getResources().size());
  94 + String userNames = "";
  95 + Set<SysUser> users = role.getUsers();
  96 + if(!users.isEmpty()){
  97 + Iterator<SysUser> it = users.iterator();
  98 + while(it.hasNext()){
  99 + SysUser user = it.next();
  100 + userNames = user.getUserName()+"...";
  101 + }
  102 + }
  103 + map.put("userNames", userNames);
  104 + return map;
  105 + }
76 } 106 }
src/main/java/com/bsth/service/sys/impl/SysUserServiceImpl.java
@@ -8,6 +8,7 @@ import org.springframework.stereotype.Service; @@ -8,6 +8,7 @@ import org.springframework.stereotype.Service;
8 8
9 import com.bsth.entity.sys.SysUser; 9 import com.bsth.entity.sys.SysUser;
10 import com.bsth.repository.sys.SysUserRepository; 10 import com.bsth.repository.sys.SysUserRepository;
  11 +import com.bsth.security.util.SecurityUtils;
11 import com.bsth.service.impl.BaseServiceImpl; 12 import com.bsth.service.impl.BaseServiceImpl;
12 import com.bsth.service.sys.SysUserService; 13 import com.bsth.service.sys.SysUserService;
13 14
@@ -25,7 +26,12 @@ public class SysUserServiceImpl extends BaseServiceImpl&lt;SysUser, Integer&gt; implem @@ -25,7 +26,12 @@ public class SysUserServiceImpl extends BaseServiceImpl&lt;SysUser, Integer&gt; implem
25 @Override 26 @Override
26 public Map<String, Object> save(SysUser t) { 27 public Map<String, Object> save(SysUser t) {
27 // 28 //
28 - t.setPassword(new BCryptPasswordEncoder(4).encode(t.getPassword())); 29 + if(t.getPassword() == null || t.getPassword().trim().equals("")){
  30 + SysUser user = sysUserRepository.findOne(t.getId());
  31 + t.setPassword(user.getPassword());
  32 + }else{
  33 + t.setPassword(new BCryptPasswordEncoder(4).encode(t.getPassword()));
  34 + }
29 return super.save(t); 35 return super.save(t);
30 } 36 }
31 37
src/main/resources/application-dev.properties
@@ -26,6 +26,7 @@ spring.datasource.validation-query=select 1 @@ -26,6 +26,7 @@ spring.datasource.validation-query=select 1
26 ## 26 ##
27 #222.66.0.204:5555 27 #222.66.0.204:5555
28 ##\u5B9E\u65F6gps 28 ##\u5B9E\u65F6gps
29 -http.gps.real.url= http://27.115.69.123:8800/transport_server/rtgps/ 29 +#27.115.69.123:8800
  30 +http.gps.real.url= http://192.168.168.192:8080/transport_server/rtgps/
30 ##\u6D88\u606F\u4E0B\u53D1 31 ##\u6D88\u606F\u4E0B\u53D1
31 http.send.directive = http://192.168.168.192:8080/transport_server/message/ 32 http.send.directive = http://192.168.168.192:8080/transport_server/message/
32 \ No newline at end of file 33 \ No newline at end of file
src/main/resources/datatools/config-prod.properties
1 -# 配置数据导入导出用到的配置信息  
2 -  
3 -# 1、kettle配置文件路径(类路径)  
4 -datatools.kettle_properties=/datatools/kettle.properties  
5 -# 2、ktr文件通用配置变量(数据库连接,根据不同的环境需要修正)  
6 -#数据库ip地址  
7 -datatools.kvars_dbip=192.168.168.171  
8 -#数据库用户名  
9 -datatools.kvars_dbuname=root  
10 -#数据库密码  
11 -datatools.kvars_dbpwd=root2jsp  
12 -#数据库库名  
13 -datatools.kvars_dbdname=control  
14 -  
15 -# 3、上传数据配置信息  
16 -# 上传文件目录配置(根据不同的环境需要修正)  
17 -datatools.fileupload_dir=/opt/bsth_control_u_d_files  
18 -# ktr转换文件,中配置的错误输出目录(根据不同的环境需要修正)  
19 -datatools.trans_errordir=/opt/bsth_control_u_d_files/erroroutput  
20 -# 临时输出文件目录  
21 -datatools.trans_tempdir=/opt/bsth_control_u_d_files/temp  
22 -  
23 -##---------------------------- 导入数据ktr ----------------------------##  
24 -# 测试temp的ktr转换文件  
25 -datatools.temp_datainputktr=/datatools/ktrs/test.ktr  
26 -# 车辆信息导入ktr转换  
27 -datatools.cars_datainputktr=/datatools/ktrs/carsDataInput.ktr  
28 -# 人员信息导入  
29 -datatools.employees_datainputktr=/datatools/ktrs/employeesDataInput.ktr  
30 -# 路牌信息导入  
31 -datatools.guideboards_datainputktr=/datatools/ktrs/guideboardDataInput.ktr  
32 -# 时刻表基础信息导入  
33 -datatools.ttinfo_datainputktr=/datatools/ktrs/ttinfoDataInput.ktr  
34 -# 时刻表明细信息导入(元数据)  
35 -datatools.ttinfodetail_metadatainputktr=/datatools/ktrs/ttinfodetailMetaData.ktr  
36 -# 时刻表明细编辑用数据(TODO:之后要换成元数据形式输入)  
37 -datatools.ttinfodetail_foreditktr=/datatools/ktrs/ttinfodetailoutputforedit.ktr  
38 -# 时刻表明细信息导入  
39 -datatools.ttinfodetail_datainputktr=/datatools/ktrs/ttinfodetailDataInput.ktr  
40 -  
41 -# 车辆配置信息导入  
42 -datatools.carsconfig_datainputktr=/datatools/ktrs/carsConfigDataInput.ktr  
43 -# 人员配置信息导入  
44 -datatools.employeesconfig_datainputktr=/datatools/ktrs/employeesConfigDataInput.ktr  
45 -  
46 -# TODO:排班规则信息导入  
47 -  
48 -  
49 -# 4、数据导出配置信息  
50 -# 导出数据文件目录配置(根据不同的环境需要修正)  
51 -datatools.fileoutput_dir=/opt/bsth_control_u_d_files  
52 -  
53 -##---------------------------- 导出数据ktr -----------------------------##  
54 -# 车辆信息导出ktr转换  
55 -datatools.cars_dataoutputktr=/datatools/ktrs/carsDataOutput.ktr  
56 -# 人员信息导出ktr转换  
57 -datatools.employees_dataoutputktr=/datatools/ktrs/employeesDataOutput.ktr  
58 -  
59 -# TODO:  
60 -  
61 -  
62 -  
63 -  
64 -  
65 -  
66 -  
67 -  
68 -  
69 -  
70 -  
71 - 1 +# 配置数据导入导出用到的配置信息
  2 +
  3 +# 1、kettle配置文件路径(类路径)
  4 +datatools.kettle_properties=/datatools/kettle.properties
  5 +# 2、ktr文件通用配置变量(数据库连接,根据不同的环境需要修正)
  6 +#数据库ip地址
  7 +datatools.kvars_dbip=192.168.168.171
  8 +#数据库用户名
  9 +datatools.kvars_dbuname=root
  10 +#数据库密码
  11 +datatools.kvars_dbpwd=root2jsp
  12 +#数据库库名
  13 +datatools.kvars_dbdname=control
  14 +
  15 +# 3、上传数据配置信息
  16 +# 上传文件目录配置(根据不同的环境需要修正)
  17 +datatools.fileupload_dir=/opt/bsth_control_u_d_files
  18 +# ktr转换文件,中配置的错误输出目录(根据不同的环境需要修正)
  19 +datatools.trans_errordir=/opt/bsth_control_u_d_files/erroroutput
  20 +# 临时输出文件目录
  21 +datatools.trans_tempdir=/opt/bsth_control_u_d_files/temp
  22 +
  23 +##---------------------------- 导入数据ktr ----------------------------##
  24 +# 测试temp的ktr转换文件
  25 +datatools.temp_datainputktr=/datatools/ktrs/test.ktr
  26 +# 车辆信息导入ktr转换
  27 +datatools.cars_datainputktr=/datatools/ktrs/carsDataInput.ktr
  28 +# 人员信息导入
  29 +datatools.employees_datainputktr=/datatools/ktrs/employeesDataInput.ktr
  30 +# 路牌信息导入
  31 +datatools.guideboards_datainputktr=/datatools/ktrs/guideboardDataInput.ktr
  32 +# 时刻表基础信息导入
  33 +datatools.ttinfo_datainputktr=/datatools/ktrs/ttinfoDataInput.ktr
  34 +# 时刻表明细信息导入(元数据)
  35 +datatools.ttinfodetail_metadatainputktr=/datatools/ktrs/ttinfodetailMetaData.ktr
  36 +# 时刻表明细编辑用数据(TODO:之后要换成元数据形式输入)
  37 +datatools.ttinfodetail_foreditktr=/datatools/ktrs/ttinfodetailoutputforedit.ktr
  38 +# 时刻表明细信息导入
  39 +datatools.ttinfodetail_datainputktr=/datatools/ktrs/ttinfodetailDataInput.ktr
  40 +
  41 +# 车辆配置信息导入
  42 +datatools.carsconfig_datainputktr=/datatools/ktrs/carsConfigDataInput.ktr
  43 +# 人员配置信息导入
  44 +datatools.employeesconfig_datainputktr=/datatools/ktrs/employeesConfigDataInput.ktr
  45 +
  46 +# TODO:排班规则信息导入
  47 +
  48 +
  49 +# 4、数据导出配置信息
  50 +# 导出数据文件目录配置(根据不同的环境需要修正)
  51 +datatools.fileoutput_dir=/opt/bsth_control_u_d_files
  52 +
  53 +##---------------------------- 导出数据ktr -----------------------------##
  54 +# 车辆信息导出ktr转换
  55 +datatools.cars_dataoutputktr=/datatools/ktrs/carsDataOutput.ktr
  56 +# 人员信息导出ktr转换
  57 +datatools.employees_dataoutputktr=/datatools/ktrs/employeesDataOutput.ktr
  58 +
  59 +# TODO:
  60 +
  61 +
  62 +
  63 +
  64 +
  65 +
  66 +
  67 +
  68 +
  69 +
  70 +
  71 +
src/main/resources/datatools/kettle.properties
1 -# kettle的配置文件  
2 -  
3 -KETTLE_COMPATIBILITY_IMPORT_PATH_ADDITION_ON_VARIABLES=N  
4 -KETTLE_REDIRECT_STDERR=N  
5 -KETTLE_SHARED_OBJECTS=  
6 -KETTLE_METRICS_LOG_DB=  
7 -KETTLE_DEFAULT_DATE_FORMAT=  
8 -KETTLE_JOB_LOG_SCHEMA=  
9 -KETTLE_DEFAULT_INTEGER_FORMAT=  
10 -KETTLE_AGGREGATION_MIN_NULL_IS_VALUED=N  
11 -KETTLE_PLUGIN_CLASSES=  
12 -KETTLE_LOG_MARK_MAPPINGS=N  
13 -KETTLE_CORE_JOBENTRIES_FILE=  
14 -KETTLE_ROWSET_GET_TIMEOUT=50  
15 -KETTLE_METRICS_LOG_SCHEMA=  
16 -KETTLE_PLUGIN_PACKAGES=  
17 -KETTLE_TRANS_LOG_DB=  
18 -KETTLE_CHANNEL_LOG_DB=  
19 -KETTLE_MAX_LOG_TIMEOUT_IN_MINUTES=1440  
20 -KETTLE_JOB_LOG_DB=  
21 -KETTLE_JOB_LOG_TABLE=  
22 -KETTLE_DISABLE_CONSOLE_LOGGING=N  
23 -KETTLE_TRANS_PAN_JVM_EXIT_CODE=  
24 -KETTLE_COMPATIBILITY_PUR_OLD_NAMING_MODE=N  
25 -KETTLE_DEFAULT_TIMESTAMP_FORMAT=  
26 -KETTLE_TRANS_PERFORMANCE_LOG_TABLE=  
27 -KETTLE_STEP_LOG_SCHEMA=  
28 -KETTLE_ROWSET_PUT_TIMEOUT=50  
29 -KETTLE_MAX_JOB_ENTRIES_LOGGED=5000  
30 -KETTLE_COMPATIBILITY_DB_IGNORE_TIMEZONE=N  
31 -KETTLE_JOBENTRY_LOG_TABLE=  
32 -KETTLE_MAX_LOGGING_REGISTRY_SIZE=10000  
33 -KETTLE_TRANS_LOG_SCHEMA=  
34 -KETTLE_JNDI_ROOT=  
35 -vfs.sftp.org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder.USER_DIR_IS_ROOT=false  
36 -KETTLE_COMPATIBILITY_MERGE_ROWS_USE_REFERENCE_STREAM_WHEN_IDENTICAL=N  
37 -KETTLE_HIDE_DEVELOPMENT_VERSION_WARNING=N  
38 -KETTLE_LENIENT_STRING_TO_NUMBER_CONVERSION=N  
39 -KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=N  
40 -KETTLE_TRANS_PERFORMANCE_LOG_DB=  
41 -KETTLE_STEP_PERFORMANCE_SNAPSHOT_LIMIT=0  
42 -KETTLE_FAIL_ON_LOGGING_ERROR=N  
43 -KETTLE_MAX_JOB_TRACKER_SIZE=5000  
44 -KETTLE_JOBENTRY_LOG_SCHEMA=  
45 -KETTLE_BATCHING_ROWSET=N  
46 -KETTLE_STEP_LOG_TABLE=  
47 -KETTLE_CARTE_OBJECT_TIMEOUT_MINUTES=1440  
48 -KETTLE_CHANNEL_LOG_SCHEMA=  
49 -KETTLE_JOBENTRY_LOG_DB=  
50 -KETTLE_CARTE_JETTY_RES_MAX_IDLE_TIME=  
51 -KETTLE_CARTE_JETTY_ACCEPT_QUEUE_SIZE=  
52 -PENTAHO_METASTORE_FOLDER=  
53 -KETTLE_STEP_LOG_DB=  
54 -KETTLE_CARTE_JETTY_ACCEPTORS=  
55 -KETTLE_DEFAULT_NUMBER_FORMAT=  
56 -KETTLE_PASSWORD_ENCODER_PLUGIN=Kettle  
57 -KETTLE_LOG_SIZE_LIMIT=0  
58 -KETTLE_REDIRECT_STDOUT=N  
59 -KETTLE_MAX_LOG_SIZE_IN_LINES=5000  
60 -KETTLE_CORE_STEPS_FILE=  
61 -KETTLE_DEFAULT_SERVLET_ENCODING=  
62 -KETTLE_SYSTEM_HOSTNAME=  
63 -KETTLE_CHANNEL_LOG_TABLE=  
64 -KETTLE_DEFAULT_BIGNUMBER_FORMAT=  
65 -KETTLE_TRANS_LOG_TABLE=  
66 -KETTLE_METRICS_LOG_TABLE=  
67 -KETTLE_AGGREGATION_ALL_NULLS_ARE_ZERO=N  
68 -KETTLE_TRANS_PERFORMANCE_LOG_SCHEMA=  
69 -KETTLE_COMPATIBILITY_TEXT_FILE_OUTPUT_APPEND_NO_HEADER=N  
70 -  
71 -v_db_uname=root  
72 -v_db_pwd=  
73 -v_db_ip=localhost 1 +# kettle的配置文件
  2 +
  3 +KETTLE_COMPATIBILITY_IMPORT_PATH_ADDITION_ON_VARIABLES=N
  4 +KETTLE_REDIRECT_STDERR=N
  5 +KETTLE_SHARED_OBJECTS=
  6 +KETTLE_METRICS_LOG_DB=
  7 +KETTLE_DEFAULT_DATE_FORMAT=
  8 +KETTLE_JOB_LOG_SCHEMA=
  9 +KETTLE_DEFAULT_INTEGER_FORMAT=
  10 +KETTLE_AGGREGATION_MIN_NULL_IS_VALUED=N
  11 +KETTLE_PLUGIN_CLASSES=
  12 +KETTLE_LOG_MARK_MAPPINGS=N
  13 +KETTLE_CORE_JOBENTRIES_FILE=
  14 +KETTLE_ROWSET_GET_TIMEOUT=50
  15 +KETTLE_METRICS_LOG_SCHEMA=
  16 +KETTLE_PLUGIN_PACKAGES=
  17 +KETTLE_TRANS_LOG_DB=
  18 +KETTLE_CHANNEL_LOG_DB=
  19 +KETTLE_MAX_LOG_TIMEOUT_IN_MINUTES=1440
  20 +KETTLE_JOB_LOG_DB=
  21 +KETTLE_JOB_LOG_TABLE=
  22 +KETTLE_DISABLE_CONSOLE_LOGGING=N
  23 +KETTLE_TRANS_PAN_JVM_EXIT_CODE=
  24 +KETTLE_COMPATIBILITY_PUR_OLD_NAMING_MODE=N
  25 +KETTLE_DEFAULT_TIMESTAMP_FORMAT=
  26 +KETTLE_TRANS_PERFORMANCE_LOG_TABLE=
  27 +KETTLE_STEP_LOG_SCHEMA=
  28 +KETTLE_ROWSET_PUT_TIMEOUT=50
  29 +KETTLE_MAX_JOB_ENTRIES_LOGGED=5000
  30 +KETTLE_COMPATIBILITY_DB_IGNORE_TIMEZONE=N
  31 +KETTLE_JOBENTRY_LOG_TABLE=
  32 +KETTLE_MAX_LOGGING_REGISTRY_SIZE=10000
  33 +KETTLE_TRANS_LOG_SCHEMA=
  34 +KETTLE_JNDI_ROOT=
  35 +vfs.sftp.org.apache.commons.vfs2.provider.sftp.SftpFileSystemConfigBuilder.USER_DIR_IS_ROOT=false
  36 +KETTLE_COMPATIBILITY_MERGE_ROWS_USE_REFERENCE_STREAM_WHEN_IDENTICAL=N
  37 +KETTLE_HIDE_DEVELOPMENT_VERSION_WARNING=N
  38 +KETTLE_LENIENT_STRING_TO_NUMBER_CONVERSION=N
  39 +KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL=N
  40 +KETTLE_TRANS_PERFORMANCE_LOG_DB=
  41 +KETTLE_STEP_PERFORMANCE_SNAPSHOT_LIMIT=0
  42 +KETTLE_FAIL_ON_LOGGING_ERROR=N
  43 +KETTLE_MAX_JOB_TRACKER_SIZE=5000
  44 +KETTLE_JOBENTRY_LOG_SCHEMA=
  45 +KETTLE_BATCHING_ROWSET=N
  46 +KETTLE_STEP_LOG_TABLE=
  47 +KETTLE_CARTE_OBJECT_TIMEOUT_MINUTES=1440
  48 +KETTLE_CHANNEL_LOG_SCHEMA=
  49 +KETTLE_JOBENTRY_LOG_DB=
  50 +KETTLE_CARTE_JETTY_RES_MAX_IDLE_TIME=
  51 +KETTLE_CARTE_JETTY_ACCEPT_QUEUE_SIZE=
  52 +PENTAHO_METASTORE_FOLDER=
  53 +KETTLE_STEP_LOG_DB=
  54 +KETTLE_CARTE_JETTY_ACCEPTORS=
  55 +KETTLE_DEFAULT_NUMBER_FORMAT=
  56 +KETTLE_PASSWORD_ENCODER_PLUGIN=Kettle
  57 +KETTLE_LOG_SIZE_LIMIT=0
  58 +KETTLE_REDIRECT_STDOUT=N
  59 +KETTLE_MAX_LOG_SIZE_IN_LINES=5000
  60 +KETTLE_CORE_STEPS_FILE=
  61 +KETTLE_DEFAULT_SERVLET_ENCODING=
  62 +KETTLE_SYSTEM_HOSTNAME=
  63 +KETTLE_CHANNEL_LOG_TABLE=
  64 +KETTLE_DEFAULT_BIGNUMBER_FORMAT=
  65 +KETTLE_TRANS_LOG_TABLE=
  66 +KETTLE_METRICS_LOG_TABLE=
  67 +KETTLE_AGGREGATION_ALL_NULLS_ARE_ZERO=N
  68 +KETTLE_TRANS_PERFORMANCE_LOG_SCHEMA=
  69 +KETTLE_COMPATIBILITY_TEXT_FILE_OUTPUT_APPEND_NO_HEADER=N
  70 +
  71 +v_db_uname=root
  72 +v_db_pwd=
  73 +v_db_ip=localhost
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>&#x914d;&#x8f66;&#x5206;&#x5f53;&#x524d;&#x2f;&#x5386;&#x53f2;&#x2f;&#x8ba1;&#x5212;&#xff0c;&#x5386;&#x53f2;&#x914d;&#x8f66;&#x6709;&#x7ec8;&#x6b62;&#x65f6;&#x95f4;&#xff0c;&#x7136;&#x540e;&#x662f;&#x5426;&#x5207;&#x6362;&#x57fa;&#x672c;&#x90fd;&#x662f;1&#xa;&#x662f;&#x5426;&#x5207;&#x6362; &#x6682;&#x65f6;&#x4e0d;&#x77e5;&#x9053;&#x4ec0;&#x4e48;&#x610f;&#x601d;&#xff0c;&#x5f53;&#x524d;&#x914d;&#x8f66;&#x90fd;&#x8bbe;&#x7f6e;&#x4e3a;0&#xa;&#x7ec8;&#x6b62;&#x65f6;&#x95f4; &#x5f53;&#x524d;&#x914d;&#x8f66;&#x6ca1;&#x6709;&#x7ec8;&#x6b62;&#x65f6;&#x95f4;&#xff0c;&#x8fd9;&#x4e2a;&#x4f30;&#x8ba1;&#x8981;&#x4f5c;&#x4e3a;&#x67e5;&#x8be2;&#x6761;&#x4ef6;&#x7684;&#xa;&#x65e9;&#x73ed;&#x65f6;&#x95f4; &#x6ca1;&#x6709;&#x6682;&#x65f6;&#x7a7a;&#x7740;&#xa;&#x672b;&#x73ed;&#x65f6;&#x95f4; &#x6ca1;&#x6709;&#x6682;&#x65f6;&#x7a7a;&#x7740;&#xa;</note>  
89 - <xloc>260</xloc>  
90 - <yloc>124</yloc>  
91 - <width>391</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.defaultFetchSize</code><attribute>500</attribute></attribute>  
123 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
124 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
125 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
126 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
127 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
128 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
129 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
130 - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>  
131 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
132 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
133 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
134 - </attributes>  
135 - </connection>  
136 - <connection>  
137 - <name>bus_control_&#x516c;&#x53f8;_201</name>  
138 - <server>localhost</server>  
139 - <type>MYSQL</type>  
140 - <access>Native</access>  
141 - <database>control</database>  
142 - <port>3306</port>  
143 - <username>root</username>  
144 - <password>Encrypted </password>  
145 - <servername/>  
146 - <data_tablespace/>  
147 - <index_tablespace/>  
148 - <attributes>  
149 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
150 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
151 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
152 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
153 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
154 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
155 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
156 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
157 - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>  
158 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
159 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
160 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
161 - </attributes>  
162 - </connection>  
163 - <connection>  
164 - <name>bus_control_&#x672c;&#x673a;</name>  
165 - <server>localhost</server>  
166 - <type>MYSQL</type>  
167 - <access>Native</access>  
168 - <database>control</database>  
169 - <port>3306</port>  
170 - <username>root</username>  
171 - <password>Encrypted </password>  
172 - <servername/>  
173 - <data_tablespace/>  
174 - <index_tablespace/>  
175 - <attributes>  
176 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
177 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
178 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
179 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
180 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
181 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
182 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
183 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
184 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
185 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
186 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
187 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
188 - </attributes>  
189 - </connection>  
190 - <connection>  
191 - <name>xlab_mysql_youle</name>  
192 - <server>101.231.124.8</server>  
193 - <type>MYSQL</type>  
194 - <access>Native</access>  
195 - <database>xlab_youle</database>  
196 - <port>45687</port>  
197 - <username>xlab-youle</username>  
198 - <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>  
199 - <servername/>  
200 - <data_tablespace/>  
201 - <index_tablespace/>  
202 - <attributes>  
203 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
204 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
205 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
206 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
207 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
208 - <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>  
209 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
210 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
211 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
212 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>  
213 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>  
214 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
215 - </attributes>  
216 - </connection>  
217 - <connection>  
218 - <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>  
219 - <server>localhost</server>  
220 - <type>MYSQL</type>  
221 - <access>Native</access>  
222 - <database>xlab_youle</database>  
223 - <port>3306</port>  
224 - <username>root</username>  
225 - <password>Encrypted </password>  
226 - <servername/>  
227 - <data_tablespace/>  
228 - <index_tablespace/>  
229 - <attributes>  
230 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
231 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
232 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
233 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
234 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
235 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
236 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
237 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
238 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
239 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>  
240 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>  
241 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
242 - </attributes>  
243 - </connection>  
244 - <connection>  
245 - <name>xlab_youle</name>  
246 - <server/>  
247 - <type>MYSQL</type>  
248 - <access>JNDI</access>  
249 - <database>xlab_youle</database>  
250 - <port>1521</port>  
251 - <username/>  
252 - <password>Encrypted </password>  
253 - <servername/>  
254 - <data_tablespace/>  
255 - <index_tablespace/>  
256 - <attributes>  
257 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
258 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
259 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
260 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
261 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
262 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
263 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
264 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
265 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
266 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
267 - </attributes>  
268 - </connection>  
269 - <order>  
270 - <hop> <from>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</from><to>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</to><enabled>Y</enabled> </hop>  
271 - <hop> <from>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</from><to>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>  
272 - <hop> <from>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ccinfo</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>  
273 - <hop> <from>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x5173;&#x8054;</from><to>&#x67e5;&#x627e;&#x8f66;&#x8f86;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>  
274 - <hop> <from>&#x67e5;&#x627e;&#x8f66;&#x8f86;&#x5173;&#x8054;</from><to>&#x662f;&#x5426;&#x5207;&#x6362;</to><enabled>Y</enabled> </hop>  
275 - <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop>  
276 - <hop> <from>&#x662f;&#x5426;&#x5207;&#x6362;</from><to>&#x65e5;&#x671f;&#x8f6c;&#x6362;</to><enabled>Y</enabled> </hop>  
277 - <hop> <from>&#x65e5;&#x671f;&#x8f6c;&#x6362;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ccinfo</to><enabled>Y</enabled> </hop>  
278 - </order>  
279 - <step>  
280 - <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>  
281 - <type>ExcelInput</type>  
282 - <description/>  
283 - <distribute>Y</distribute>  
284 - <custom_distribution/>  
285 - <copies>1</copies>  
286 - <partitioning>  
287 - <method>none</method>  
288 - <schema_name/>  
289 - </partitioning>  
290 - <header>Y</header>  
291 - <noempty>Y</noempty>  
292 - <stoponempty>N</stoponempty>  
293 - <filefield/>  
294 - <sheetfield/>  
295 - <sheetrownumfield/>  
296 - <rownumfield/>  
297 - <sheetfield/>  
298 - <filefield/>  
299 - <limit>0</limit>  
300 - <encoding/>  
301 - <add_to_result_filenames>Y</add_to_result_filenames>  
302 - <accept_filenames>Y</accept_filenames>  
303 - <accept_field>filepath_</accept_field>  
304 - <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>  
305 - <file>  
306 - <name/>  
307 - <filemask/>  
308 - <exclude_filemask/>  
309 - <file_required>N</file_required>  
310 - <include_subfolders>N</include_subfolders>  
311 - </file>  
312 - <fields>  
313 - <field>  
314 - <name>&#x7ebf;&#x8def;</name>  
315 - <type>String</type>  
316 - <length>-1</length>  
317 - <precision>-1</precision>  
318 - <trim_type>none</trim_type>  
319 - <repeat>N</repeat>  
320 - <format/>  
321 - <currency/>  
322 - <decimal/>  
323 - <group/>  
324 - </field>  
325 - <field>  
326 - <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>  
327 - <type>String</type>  
328 - <length>-1</length>  
329 - <precision>-1</precision>  
330 - <trim_type>none</trim_type>  
331 - <repeat>N</repeat>  
332 - <format>&#x23;</format>  
333 - <currency/>  
334 - <decimal/>  
335 - <group/>  
336 - </field>  
337 - <field>  
338 - <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>  
339 - <type>String</type>  
340 - <length>-1</length>  
341 - <precision>-1</precision>  
342 - <trim_type>none</trim_type>  
343 - <repeat>N</repeat>  
344 - <format/>  
345 - <currency/>  
346 - <decimal/>  
347 - <group/>  
348 - </field>  
349 - <field>  
350 - <name>&#x7ec8;&#x7ed3;&#x65e5;&#x671f;</name>  
351 - <type>String</type>  
352 - <length>-1</length>  
353 - <precision>-1</precision>  
354 - <trim_type>none</trim_type>  
355 - <repeat>N</repeat>  
356 - <format/>  
357 - <currency/>  
358 - <decimal/>  
359 - <group/>  
360 - </field>  
361 - <field>  
362 - <name>&#x505c;&#x8f66;&#x70b9;</name>  
363 - <type>String</type>  
364 - <length>-1</length>  
365 - <precision>-1</precision>  
366 - <trim_type>none</trim_type>  
367 - <repeat>N</repeat>  
368 - <format/>  
369 - <currency/>  
370 - <decimal/>  
371 - <group/>  
372 - </field>  
373 - </fields>  
374 - <sheets>  
375 - <sheet>  
376 - <name>&#x5de5;&#x4f5c;&#x8868;1</name>  
377 - <startrow>0</startrow>  
378 - <startcol>0</startcol>  
379 - </sheet>  
380 - </sheets>  
381 - <strict_types>N</strict_types>  
382 - <error_ignored>N</error_ignored>  
383 - <error_line_skipped>N</error_line_skipped>  
384 - <bad_line_files_destination_directory/>  
385 - <bad_line_files_extension>warning</bad_line_files_extension>  
386 - <error_line_files_destination_directory/>  
387 - <error_line_files_extension>error</error_line_files_extension>  
388 - <line_number_files_destination_directory/>  
389 - <line_number_files_extension>line</line_number_files_extension>  
390 - <shortFileFieldName/>  
391 - <pathFieldName/>  
392 - <hiddenFieldName/>  
393 - <lastModificationTimeFieldName/>  
394 - <uriNameFieldName/>  
395 - <rootUriNameFieldName/>  
396 - <extensionFieldName/>  
397 - <sizeFieldName/>  
398 - <spreadsheet_type>JXL</spreadsheet_type>  
399 - <cluster_schema/>  
400 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
401 - <xloc>155</xloc>  
402 - <yloc>56</yloc>  
403 - <draw>Y</draw>  
404 - </GUI>  
405 - </step>  
406 -  
407 - <step>  
408 - <name>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</name>  
409 - <type>SelectValues</type>  
410 - <description/>  
411 - <distribute>Y</distribute>  
412 - <custom_distribution/>  
413 - <copies>1</copies>  
414 - <partitioning>  
415 - <method>none</method>  
416 - <schema_name/>  
417 - </partitioning>  
418 - <fields> <field> <name>&#x7ebf;&#x8def;</name>  
419 - <rename>xl</rename>  
420 - <length>-2</length>  
421 - <precision>-2</precision>  
422 - </field> <field> <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>  
423 - <rename>cl</rename>  
424 - <length>-2</length>  
425 - <precision>-2</precision>  
426 - </field> <field> <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>  
427 - <rename>qyrq</rename>  
428 - <length>-2</length>  
429 - <precision>-2</precision>  
430 - </field> <field> <name>&#x7ec8;&#x7ed3;&#x65e5;&#x671f;</name>  
431 - <rename>zzrq</rename>  
432 - <length>-2</length>  
433 - <precision>-2</precision>  
434 - </field> <field> <name>&#x505c;&#x8f66;&#x70b9;</name>  
435 - <rename>tcd</rename>  
436 - <length>-2</length>  
437 - <precision>-2</precision>  
438 - </field> <select_unspecified>N</select_unspecified>  
439 - </fields> <cluster_schema/>  
440 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
441 - <xloc>306</xloc>  
442 - <yloc>56</yloc>  
443 - <draw>Y</draw>  
444 - </GUI>  
445 - </step>  
446 -  
447 - <step>  
448 - <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ccinfo</name>  
449 - <type>InsertUpdate</type>  
450 - <description/>  
451 - <distribute>Y</distribute>  
452 - <custom_distribution/>  
453 - <copies>1</copies>  
454 - <partitioning>  
455 - <method>none</method>  
456 - <schema_name/>  
457 - </partitioning>  
458 - <connection>bus_control_variable</connection>  
459 - <commit>100</commit>  
460 - <update_bypassed>N</update_bypassed>  
461 - <lookup>  
462 - <schema/>  
463 - <table>bsth_c_s_ccinfo</table>  
464 - <key>  
465 - <name>xlId</name>  
466 - <field>xl</field>  
467 - <condition>&#x3d;</condition>  
468 - <name2/>  
469 - </key>  
470 - <key>  
471 - <name>clId</name>  
472 - <field>cl</field>  
473 - <condition>&#x3d;</condition>  
474 - <name2/>  
475 - </key>  
476 - <value>  
477 - <name>xl</name>  
478 - <rename>xlId</rename>  
479 - <update>Y</update>  
480 - </value>  
481 - <value>  
482 - <name>cl</name>  
483 - <rename>clId</rename>  
484 - <update>Y</update>  
485 - </value>  
486 - <value>  
487 - <name>is_switch</name>  
488 - <rename>isswitch</rename>  
489 - <update>Y</update>  
490 - </value>  
491 - <value>  
492 - <name>tcd</name>  
493 - <rename>tcd</rename>  
494 - <update>Y</update>  
495 - </value>  
496 - <value>  
497 - <name>zzrq</name>  
498 - <rename>zzrq</rename>  
499 - <update>Y</update>  
500 - </value>  
501 - <value>  
502 - <name>qyrq</name>  
503 - <rename>qyrq</rename>  
504 - <update>Y</update>  
505 - </value>  
506 - </lookup>  
507 - <cluster_schema/>  
508 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
509 - <xloc>715</xloc>  
510 - <yloc>197</yloc>  
511 - <draw>Y</draw>  
512 - </GUI>  
513 - </step>  
514 -  
515 - <step>  
516 - <name>&#x65e5;&#x671f;&#x8f6c;&#x6362;</name>  
517 - <type>SelectValues</type>  
518 - <description/>  
519 - <distribute>Y</distribute>  
520 - <custom_distribution/>  
521 - <copies>1</copies>  
522 - <partitioning>  
523 - <method>none</method>  
524 - <schema_name/>  
525 - </partitioning>  
526 - <fields> <select_unspecified>N</select_unspecified>  
527 - <meta> <name>qyrq</name>  
528 - <rename>qyrq</rename>  
529 - <type>Date</type>  
530 - <length>-2</length>  
531 - <precision>-2</precision>  
532 - <conversion_mask>yyyy-MM-dd</conversion_mask>  
533 - <date_format_lenient>false</date_format_lenient>  
534 - <date_format_locale/>  
535 - <date_format_timezone/>  
536 - <lenient_string_to_number>false</lenient_string_to_number>  
537 - <encoding/>  
538 - <decimal_symbol/>  
539 - <grouping_symbol/>  
540 - <currency_symbol/>  
541 - <storage_type/>  
542 - </meta> </fields> <cluster_schema/>  
543 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
544 - <xloc>913</xloc>  
545 - <yloc>54</yloc>  
546 - <draw>Y</draw>  
547 - </GUI>  
548 - </step>  
549 -  
550 - <step>  
551 - <name>&#x662f;&#x5426;&#x5207;&#x6362;</name>  
552 - <type>Constant</type>  
553 - <description/>  
554 - <distribute>Y</distribute>  
555 - <custom_distribution/>  
556 - <copies>1</copies>  
557 - <partitioning>  
558 - <method>none</method>  
559 - <schema_name/>  
560 - </partitioning>  
561 - <fields>  
562 - <field>  
563 - <name>isswitch</name>  
564 - <type>Integer</type>  
565 - <format/>  
566 - <currency/>  
567 - <decimal/>  
568 - <group/>  
569 - <nullif>0</nullif>  
570 - <length>-1</length>  
571 - <precision>-1</precision>  
572 - <set_empty_string>N</set_empty_string>  
573 - </field>  
574 - </fields>  
575 - <cluster_schema/>  
576 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
577 - <xloc>713</xloc>  
578 - <yloc>54</yloc>  
579 - <draw>Y</draw>  
580 - </GUI>  
581 - </step>  
582 -  
583 - <step>  
584 - <name>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x5173;&#x8054;</name>  
585 - <type>DBLookup</type>  
586 - <description/>  
587 - <distribute>Y</distribute>  
588 - <custom_distribution/>  
589 - <copies>1</copies>  
590 - <partitioning>  
591 - <method>none</method>  
592 - <schema_name/>  
593 - </partitioning>  
594 - <connection>bus_control_variable</connection>  
595 - <cache>N</cache>  
596 - <cache_load_all>N</cache_load_all>  
597 - <cache_size>0</cache_size>  
598 - <lookup>  
599 - <schema/>  
600 - <table>bsth_c_line</table>  
601 - <orderby/>  
602 - <fail_on_multiple>N</fail_on_multiple>  
603 - <eat_row_on_failure>N</eat_row_on_failure>  
604 - <key>  
605 - <name>xl</name>  
606 - <field>name</field>  
607 - <condition>&#x3d;</condition>  
608 - <name2/>  
609 - </key>  
610 - <value>  
611 - <name>id</name>  
612 - <rename>xlId</rename>  
613 - <default/>  
614 - <type>Integer</type>  
615 - </value>  
616 - </lookup>  
617 - <cluster_schema/>  
618 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
619 - <xloc>439</xloc>  
620 - <yloc>56</yloc>  
621 - <draw>Y</draw>  
622 - </GUI>  
623 - </step>  
624 -  
625 - <step>  
626 - <name>&#x67e5;&#x627e;&#x8f66;&#x8f86;&#x5173;&#x8054;</name>  
627 - <type>DBLookup</type>  
628 - <description/>  
629 - <distribute>Y</distribute>  
630 - <custom_distribution/>  
631 - <copies>1</copies>  
632 - <partitioning>  
633 - <method>none</method>  
634 - <schema_name/>  
635 - </partitioning>  
636 - <connection>bus_control_variable</connection>  
637 - <cache>N</cache>  
638 - <cache_load_all>N</cache_load_all>  
639 - <cache_size>0</cache_size>  
640 - <lookup>  
641 - <schema/>  
642 - <table>bsth_c_cars</table>  
643 - <orderby/>  
644 - <fail_on_multiple>N</fail_on_multiple>  
645 - <eat_row_on_failure>N</eat_row_on_failure>  
646 - <key>  
647 - <name>cl</name>  
648 - <field>inside_code</field>  
649 - <condition>&#x3d;</condition>  
650 - <name2/>  
651 - </key>  
652 - <value>  
653 - <name>id</name>  
654 - <rename>clId</rename>  
655 - <default/>  
656 - <type>Integer</type>  
657 - </value>  
658 - </lookup>  
659 - <cluster_schema/>  
660 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
661 - <xloc>579</xloc>  
662 - <yloc>55</yloc>  
663 - <draw>Y</draw>  
664 - </GUI>  
665 - </step>  
666 -  
667 - <step>  
668 - <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>  
669 - <type>GetVariable</type>  
670 - <description/>  
671 - <distribute>Y</distribute>  
672 - <custom_distribution/>  
673 - <copies>1</copies>  
674 - <partitioning>  
675 - <method>none</method>  
676 - <schema_name/>  
677 - </partitioning>  
678 - <fields>  
679 - <field>  
680 - <name>filepath_</name>  
681 - <variable>&#x24;&#x7b;filepath&#x7d;</variable>  
682 - <type>String</type>  
683 - <format/>  
684 - <currency/>  
685 - <decimal/>  
686 - <group/>  
687 - <length>-1</length>  
688 - <precision>-1</precision>  
689 - <trim_type>none</trim_type>  
690 - </field>  
691 - <field>  
692 - <name>erroroutputdir_</name>  
693 - <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>  
694 - <type>String</type>  
695 - <format/>  
696 - <currency/>  
697 - <decimal/>  
698 - <group/>  
699 - <length>-1</length>  
700 - <precision>-1</precision>  
701 - <trim_type>none</trim_type>  
702 - </field>  
703 - </fields>  
704 - <cluster_schema/>  
705 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
706 - <xloc>156</xloc>  
707 - <yloc>150</yloc>  
708 - <draw>Y</draw>  
709 - </GUI>  
710 - </step>  
711 -  
712 - <step>  
713 - <name>&#x9519;&#x8bef;&#x8f93;&#x51fa;</name>  
714 - <type>ExcelOutput</type>  
715 - <description/>  
716 - <distribute>Y</distribute>  
717 - <custom_distribution/>  
718 - <copies>1</copies>  
719 - <partitioning>  
720 - <method>none</method>  
721 - <schema_name/>  
722 - </partitioning>  
723 - <header>Y</header>  
724 - <footer>N</footer>  
725 - <encoding>UTF-8</encoding>  
726 - <append>N</append>  
727 - <add_to_result_filenames>Y</add_to_result_filenames>  
728 - <file>  
729 - <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x5f53;&#x524d;&#x914d;&#x8f66;_&#x9519;&#x8bef;</name>  
730 - <extention>xls</extention>  
731 - <do_not_open_newfile_init>N</do_not_open_newfile_init>  
732 - <create_parent_folder>N</create_parent_folder>  
733 - <split>N</split>  
734 - <add_date>N</add_date>  
735 - <add_time>N</add_time>  
736 - <SpecifyFormat>N</SpecifyFormat>  
737 - <date_time_format/>  
738 - <sheetname>Sheet1</sheetname>  
739 - <autosizecolums>N</autosizecolums>  
740 - <nullisblank>N</nullisblank>  
741 - <protect_sheet>N</protect_sheet>  
742 - <password>Encrypted </password>  
743 - <splitevery>0</splitevery>  
744 - <usetempfiles>N</usetempfiles>  
745 - <tempdirectory/>  
746 - </file>  
747 - <template>  
748 - <enabled>N</enabled>  
749 - <append>N</append>  
750 - <filename>template.xls</filename>  
751 - </template>  
752 - <fields>  
753 - <field>  
754 - <name>xl</name>  
755 - <type>String</type>  
756 - <format/>  
757 - </field>  
758 - <field>  
759 - <name>cl</name>  
760 - <type>String</type>  
761 - <format/>  
762 - </field>  
763 - <field>  
764 - <name>qyrq</name>  
765 - <type>String</type>  
766 - <format/>  
767 - </field>  
768 - <field>  
769 - <name>zzrq</name>  
770 - <type>String</type>  
771 - <format/>  
772 - </field>  
773 - <field>  
774 - <name>tcd</name>  
775 - <type>String</type>  
776 - <format/>  
777 - </field>  
778 - <field>  
779 - <name>xlId</name>  
780 - <type>Integer</type>  
781 - <format/>  
782 - </field>  
783 - <field>  
784 - <name>clId</name>  
785 - <type>Integer</type>  
786 - <format/>  
787 - </field>  
788 - <field>  
789 - <name>isswitch</name>  
790 - <type>Integer</type>  
791 - <format/>  
792 - </field>  
793 - <field>  
794 - <name>error_count</name>  
795 - <type>Integer</type>  
796 - <format/>  
797 - </field>  
798 - <field>  
799 - <name>error_desc</name>  
800 - <type>String</type>  
801 - <format/>  
802 - </field>  
803 - <field>  
804 - <name>error_column1</name>  
805 - <type>String</type>  
806 - <format/>  
807 - </field>  
808 - <field>  
809 - <name>error_column2</name>  
810 - <type>String</type>  
811 - <format/>  
812 - </field>  
813 - </fields>  
814 - <custom>  
815 - <header_font_name>arial</header_font_name>  
816 - <header_font_size>10</header_font_size>  
817 - <header_font_bold>N</header_font_bold>  
818 - <header_font_italic>N</header_font_italic>  
819 - <header_font_underline>no</header_font_underline>  
820 - <header_font_orientation>horizontal</header_font_orientation>  
821 - <header_font_color>black</header_font_color>  
822 - <header_background_color>none</header_background_color>  
823 - <header_row_height>255</header_row_height>  
824 - <header_alignment>left</header_alignment>  
825 - <header_image/>  
826 - <row_font_name>arial</row_font_name>  
827 - <row_font_size>10</row_font_size>  
828 - <row_font_color>black</row_font_color>  
829 - <row_background_color>none</row_background_color>  
830 - </custom>  
831 - <cluster_schema/>  
832 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
833 - <xloc>718</xloc>  
834 - <yloc>314</yloc>  
835 - <draw>Y</draw>  
836 - </GUI>  
837 - </step>  
838 -  
839 - <step_error_handling>  
840 - <error>  
841 - <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ccinfo</source_step>  
842 - <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa;</target_step>  
843 - <is_enabled>Y</is_enabled>  
844 - <nr_valuename>error_count</nr_valuename>  
845 - <descriptions_valuename>error_desc</descriptions_valuename>  
846 - <fields_valuename>error_column1</fields_valuename>  
847 - <codes_valuename>error_column2</codes_valuename>  
848 - <max_errors/>  
849 - <max_pct_errors/>  
850 - <min_pct_rows/>  
851 - </error>  
852 - </step_error_handling>  
853 - <slave-step-copy-partition-distribution>  
854 -</slave-step-copy-partition-distribution>  
855 - <slave_transformation>N</slave_transformation>  
856 -  
857 -</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>&#x914d;&#x8f66;&#x5206;&#x5f53;&#x524d;&#x2f;&#x5386;&#x53f2;&#x2f;&#x8ba1;&#x5212;&#xff0c;&#x5386;&#x53f2;&#x914d;&#x8f66;&#x6709;&#x7ec8;&#x6b62;&#x65f6;&#x95f4;&#xff0c;&#x7136;&#x540e;&#x662f;&#x5426;&#x5207;&#x6362;&#x57fa;&#x672c;&#x90fd;&#x662f;1&#xa;&#x662f;&#x5426;&#x5207;&#x6362; &#x6682;&#x65f6;&#x4e0d;&#x77e5;&#x9053;&#x4ec0;&#x4e48;&#x610f;&#x601d;&#xff0c;&#x5f53;&#x524d;&#x914d;&#x8f66;&#x90fd;&#x8bbe;&#x7f6e;&#x4e3a;0&#xa;&#x7ec8;&#x6b62;&#x65f6;&#x95f4; &#x5f53;&#x524d;&#x914d;&#x8f66;&#x6ca1;&#x6709;&#x7ec8;&#x6b62;&#x65f6;&#x95f4;&#xff0c;&#x8fd9;&#x4e2a;&#x4f30;&#x8ba1;&#x8981;&#x4f5c;&#x4e3a;&#x67e5;&#x8be2;&#x6761;&#x4ef6;&#x7684;&#xa;&#x65e9;&#x73ed;&#x65f6;&#x95f4; &#x6ca1;&#x6709;&#x6682;&#x65f6;&#x7a7a;&#x7740;&#xa;&#x672b;&#x73ed;&#x65f6;&#x95f4; &#x6ca1;&#x6709;&#x6682;&#x65f6;&#x7a7a;&#x7740;&#xa;</note>
  89 + <xloc>260</xloc>
  90 + <yloc>124</yloc>
  91 + <width>391</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.defaultFetchSize</code><attribute>500</attribute></attribute>
  123 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  124 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  125 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  126 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  127 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  128 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  129 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  130 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  131 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  132 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  133 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  134 + </attributes>
  135 + </connection>
  136 + <connection>
  137 + <name>bus_control_&#x516c;&#x53f8;_201</name>
  138 + <server>localhost</server>
  139 + <type>MYSQL</type>
  140 + <access>Native</access>
  141 + <database>control</database>
  142 + <port>3306</port>
  143 + <username>root</username>
  144 + <password>Encrypted </password>
  145 + <servername/>
  146 + <data_tablespace/>
  147 + <index_tablespace/>
  148 + <attributes>
  149 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  150 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  151 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  152 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  153 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  154 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  155 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  156 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  157 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  158 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  159 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  160 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  161 + </attributes>
  162 + </connection>
  163 + <connection>
  164 + <name>bus_control_&#x672c;&#x673a;</name>
  165 + <server>localhost</server>
  166 + <type>MYSQL</type>
  167 + <access>Native</access>
  168 + <database>control</database>
  169 + <port>3306</port>
  170 + <username>root</username>
  171 + <password>Encrypted </password>
  172 + <servername/>
  173 + <data_tablespace/>
  174 + <index_tablespace/>
  175 + <attributes>
  176 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  177 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  178 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  179 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  180 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  181 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  182 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  183 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  184 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  185 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  186 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  187 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  188 + </attributes>
  189 + </connection>
  190 + <connection>
  191 + <name>xlab_mysql_youle</name>
  192 + <server>101.231.124.8</server>
  193 + <type>MYSQL</type>
  194 + <access>Native</access>
  195 + <database>xlab_youle</database>
  196 + <port>45687</port>
  197 + <username>xlab-youle</username>
  198 + <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>
  199 + <servername/>
  200 + <data_tablespace/>
  201 + <index_tablespace/>
  202 + <attributes>
  203 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  204 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  205 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  206 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  207 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  208 + <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>
  209 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  210 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  211 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  212 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  213 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  214 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  215 + </attributes>
  216 + </connection>
  217 + <connection>
  218 + <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>
  219 + <server>localhost</server>
  220 + <type>MYSQL</type>
  221 + <access>Native</access>
  222 + <database>xlab_youle</database>
  223 + <port>3306</port>
  224 + <username>root</username>
  225 + <password>Encrypted </password>
  226 + <servername/>
  227 + <data_tablespace/>
  228 + <index_tablespace/>
  229 + <attributes>
  230 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  231 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  232 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  233 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  234 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  235 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  236 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  237 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  238 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  239 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  240 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  241 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  242 + </attributes>
  243 + </connection>
  244 + <connection>
  245 + <name>xlab_youle</name>
  246 + <server/>
  247 + <type>MYSQL</type>
  248 + <access>JNDI</access>
  249 + <database>xlab_youle</database>
  250 + <port>1521</port>
  251 + <username/>
  252 + <password>Encrypted </password>
  253 + <servername/>
  254 + <data_tablespace/>
  255 + <index_tablespace/>
  256 + <attributes>
  257 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  258 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  259 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  260 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  261 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  262 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  263 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  264 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  265 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  266 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  267 + </attributes>
  268 + </connection>
  269 + <order>
  270 + <hop> <from>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</from><to>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</to><enabled>Y</enabled> </hop>
  271 + <hop> <from>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</from><to>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>
  272 + <hop> <from>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ccinfo</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>
  273 + <hop> <from>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x5173;&#x8054;</from><to>&#x67e5;&#x627e;&#x8f66;&#x8f86;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>
  274 + <hop> <from>&#x67e5;&#x627e;&#x8f66;&#x8f86;&#x5173;&#x8054;</from><to>&#x662f;&#x5426;&#x5207;&#x6362;</to><enabled>Y</enabled> </hop>
  275 + <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop>
  276 + <hop> <from>&#x662f;&#x5426;&#x5207;&#x6362;</from><to>&#x65e5;&#x671f;&#x8f6c;&#x6362;</to><enabled>Y</enabled> </hop>
  277 + <hop> <from>&#x65e5;&#x671f;&#x8f6c;&#x6362;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ccinfo</to><enabled>Y</enabled> </hop>
  278 + </order>
  279 + <step>
  280 + <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>
  281 + <type>ExcelInput</type>
  282 + <description/>
  283 + <distribute>Y</distribute>
  284 + <custom_distribution/>
  285 + <copies>1</copies>
  286 + <partitioning>
  287 + <method>none</method>
  288 + <schema_name/>
  289 + </partitioning>
  290 + <header>Y</header>
  291 + <noempty>Y</noempty>
  292 + <stoponempty>N</stoponempty>
  293 + <filefield/>
  294 + <sheetfield/>
  295 + <sheetrownumfield/>
  296 + <rownumfield/>
  297 + <sheetfield/>
  298 + <filefield/>
  299 + <limit>0</limit>
  300 + <encoding/>
  301 + <add_to_result_filenames>Y</add_to_result_filenames>
  302 + <accept_filenames>Y</accept_filenames>
  303 + <accept_field>filepath_</accept_field>
  304 + <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>
  305 + <file>
  306 + <name/>
  307 + <filemask/>
  308 + <exclude_filemask/>
  309 + <file_required>N</file_required>
  310 + <include_subfolders>N</include_subfolders>
  311 + </file>
  312 + <fields>
  313 + <field>
  314 + <name>&#x7ebf;&#x8def;</name>
  315 + <type>String</type>
  316 + <length>-1</length>
  317 + <precision>-1</precision>
  318 + <trim_type>none</trim_type>
  319 + <repeat>N</repeat>
  320 + <format/>
  321 + <currency/>
  322 + <decimal/>
  323 + <group/>
  324 + </field>
  325 + <field>
  326 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  327 + <type>String</type>
  328 + <length>-1</length>
  329 + <precision>-1</precision>
  330 + <trim_type>none</trim_type>
  331 + <repeat>N</repeat>
  332 + <format>&#x23;</format>
  333 + <currency/>
  334 + <decimal/>
  335 + <group/>
  336 + </field>
  337 + <field>
  338 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  339 + <type>String</type>
  340 + <length>-1</length>
  341 + <precision>-1</precision>
  342 + <trim_type>none</trim_type>
  343 + <repeat>N</repeat>
  344 + <format/>
  345 + <currency/>
  346 + <decimal/>
  347 + <group/>
  348 + </field>
  349 + <field>
  350 + <name>&#x7ec8;&#x7ed3;&#x65e5;&#x671f;</name>
  351 + <type>String</type>
  352 + <length>-1</length>
  353 + <precision>-1</precision>
  354 + <trim_type>none</trim_type>
  355 + <repeat>N</repeat>
  356 + <format/>
  357 + <currency/>
  358 + <decimal/>
  359 + <group/>
  360 + </field>
  361 + <field>
  362 + <name>&#x505c;&#x8f66;&#x70b9;</name>
  363 + <type>String</type>
  364 + <length>-1</length>
  365 + <precision>-1</precision>
  366 + <trim_type>none</trim_type>
  367 + <repeat>N</repeat>
  368 + <format/>
  369 + <currency/>
  370 + <decimal/>
  371 + <group/>
  372 + </field>
  373 + </fields>
  374 + <sheets>
  375 + <sheet>
  376 + <name>&#x5de5;&#x4f5c;&#x8868;1</name>
  377 + <startrow>0</startrow>
  378 + <startcol>0</startcol>
  379 + </sheet>
  380 + </sheets>
  381 + <strict_types>N</strict_types>
  382 + <error_ignored>N</error_ignored>
  383 + <error_line_skipped>N</error_line_skipped>
  384 + <bad_line_files_destination_directory/>
  385 + <bad_line_files_extension>warning</bad_line_files_extension>
  386 + <error_line_files_destination_directory/>
  387 + <error_line_files_extension>error</error_line_files_extension>
  388 + <line_number_files_destination_directory/>
  389 + <line_number_files_extension>line</line_number_files_extension>
  390 + <shortFileFieldName/>
  391 + <pathFieldName/>
  392 + <hiddenFieldName/>
  393 + <lastModificationTimeFieldName/>
  394 + <uriNameFieldName/>
  395 + <rootUriNameFieldName/>
  396 + <extensionFieldName/>
  397 + <sizeFieldName/>
  398 + <spreadsheet_type>JXL</spreadsheet_type>
  399 + <cluster_schema/>
  400 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  401 + <xloc>155</xloc>
  402 + <yloc>56</yloc>
  403 + <draw>Y</draw>
  404 + </GUI>
  405 + </step>
  406 +
  407 + <step>
  408 + <name>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</name>
  409 + <type>SelectValues</type>
  410 + <description/>
  411 + <distribute>Y</distribute>
  412 + <custom_distribution/>
  413 + <copies>1</copies>
  414 + <partitioning>
  415 + <method>none</method>
  416 + <schema_name/>
  417 + </partitioning>
  418 + <fields> <field> <name>&#x7ebf;&#x8def;</name>
  419 + <rename>xl</rename>
  420 + <length>-2</length>
  421 + <precision>-2</precision>
  422 + </field> <field> <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  423 + <rename>cl</rename>
  424 + <length>-2</length>
  425 + <precision>-2</precision>
  426 + </field> <field> <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  427 + <rename>qyrq</rename>
  428 + <length>-2</length>
  429 + <precision>-2</precision>
  430 + </field> <field> <name>&#x7ec8;&#x7ed3;&#x65e5;&#x671f;</name>
  431 + <rename>zzrq</rename>
  432 + <length>-2</length>
  433 + <precision>-2</precision>
  434 + </field> <field> <name>&#x505c;&#x8f66;&#x70b9;</name>
  435 + <rename>tcd</rename>
  436 + <length>-2</length>
  437 + <precision>-2</precision>
  438 + </field> <select_unspecified>N</select_unspecified>
  439 + </fields> <cluster_schema/>
  440 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  441 + <xloc>306</xloc>
  442 + <yloc>56</yloc>
  443 + <draw>Y</draw>
  444 + </GUI>
  445 + </step>
  446 +
  447 + <step>
  448 + <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ccinfo</name>
  449 + <type>InsertUpdate</type>
  450 + <description/>
  451 + <distribute>Y</distribute>
  452 + <custom_distribution/>
  453 + <copies>1</copies>
  454 + <partitioning>
  455 + <method>none</method>
  456 + <schema_name/>
  457 + </partitioning>
  458 + <connection>bus_control_variable</connection>
  459 + <commit>100</commit>
  460 + <update_bypassed>N</update_bypassed>
  461 + <lookup>
  462 + <schema/>
  463 + <table>bsth_c_s_ccinfo</table>
  464 + <key>
  465 + <name>xlId</name>
  466 + <field>xl</field>
  467 + <condition>&#x3d;</condition>
  468 + <name2/>
  469 + </key>
  470 + <key>
  471 + <name>clId</name>
  472 + <field>cl</field>
  473 + <condition>&#x3d;</condition>
  474 + <name2/>
  475 + </key>
  476 + <value>
  477 + <name>xl</name>
  478 + <rename>xlId</rename>
  479 + <update>Y</update>
  480 + </value>
  481 + <value>
  482 + <name>cl</name>
  483 + <rename>clId</rename>
  484 + <update>Y</update>
  485 + </value>
  486 + <value>
  487 + <name>is_switch</name>
  488 + <rename>isswitch</rename>
  489 + <update>Y</update>
  490 + </value>
  491 + <value>
  492 + <name>tcd</name>
  493 + <rename>tcd</rename>
  494 + <update>Y</update>
  495 + </value>
  496 + <value>
  497 + <name>zzrq</name>
  498 + <rename>zzrq</rename>
  499 + <update>Y</update>
  500 + </value>
  501 + <value>
  502 + <name>qyrq</name>
  503 + <rename>qyrq</rename>
  504 + <update>Y</update>
  505 + </value>
  506 + </lookup>
  507 + <cluster_schema/>
  508 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  509 + <xloc>715</xloc>
  510 + <yloc>197</yloc>
  511 + <draw>Y</draw>
  512 + </GUI>
  513 + </step>
  514 +
  515 + <step>
  516 + <name>&#x65e5;&#x671f;&#x8f6c;&#x6362;</name>
  517 + <type>SelectValues</type>
  518 + <description/>
  519 + <distribute>Y</distribute>
  520 + <custom_distribution/>
  521 + <copies>1</copies>
  522 + <partitioning>
  523 + <method>none</method>
  524 + <schema_name/>
  525 + </partitioning>
  526 + <fields> <select_unspecified>N</select_unspecified>
  527 + <meta> <name>qyrq</name>
  528 + <rename>qyrq</rename>
  529 + <type>Date</type>
  530 + <length>-2</length>
  531 + <precision>-2</precision>
  532 + <conversion_mask>yyyy-MM-dd</conversion_mask>
  533 + <date_format_lenient>false</date_format_lenient>
  534 + <date_format_locale/>
  535 + <date_format_timezone/>
  536 + <lenient_string_to_number>false</lenient_string_to_number>
  537 + <encoding/>
  538 + <decimal_symbol/>
  539 + <grouping_symbol/>
  540 + <currency_symbol/>
  541 + <storage_type/>
  542 + </meta> </fields> <cluster_schema/>
  543 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  544 + <xloc>913</xloc>
  545 + <yloc>54</yloc>
  546 + <draw>Y</draw>
  547 + </GUI>
  548 + </step>
  549 +
  550 + <step>
  551 + <name>&#x662f;&#x5426;&#x5207;&#x6362;</name>
  552 + <type>Constant</type>
  553 + <description/>
  554 + <distribute>Y</distribute>
  555 + <custom_distribution/>
  556 + <copies>1</copies>
  557 + <partitioning>
  558 + <method>none</method>
  559 + <schema_name/>
  560 + </partitioning>
  561 + <fields>
  562 + <field>
  563 + <name>isswitch</name>
  564 + <type>Integer</type>
  565 + <format/>
  566 + <currency/>
  567 + <decimal/>
  568 + <group/>
  569 + <nullif>0</nullif>
  570 + <length>-1</length>
  571 + <precision>-1</precision>
  572 + <set_empty_string>N</set_empty_string>
  573 + </field>
  574 + </fields>
  575 + <cluster_schema/>
  576 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  577 + <xloc>713</xloc>
  578 + <yloc>54</yloc>
  579 + <draw>Y</draw>
  580 + </GUI>
  581 + </step>
  582 +
  583 + <step>
  584 + <name>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x5173;&#x8054;</name>
  585 + <type>DBLookup</type>
  586 + <description/>
  587 + <distribute>Y</distribute>
  588 + <custom_distribution/>
  589 + <copies>1</copies>
  590 + <partitioning>
  591 + <method>none</method>
  592 + <schema_name/>
  593 + </partitioning>
  594 + <connection>bus_control_variable</connection>
  595 + <cache>N</cache>
  596 + <cache_load_all>N</cache_load_all>
  597 + <cache_size>0</cache_size>
  598 + <lookup>
  599 + <schema/>
  600 + <table>bsth_c_line</table>
  601 + <orderby/>
  602 + <fail_on_multiple>N</fail_on_multiple>
  603 + <eat_row_on_failure>N</eat_row_on_failure>
  604 + <key>
  605 + <name>xl</name>
  606 + <field>name</field>
  607 + <condition>&#x3d;</condition>
  608 + <name2/>
  609 + </key>
  610 + <value>
  611 + <name>id</name>
  612 + <rename>xlId</rename>
  613 + <default/>
  614 + <type>Integer</type>
  615 + </value>
  616 + </lookup>
  617 + <cluster_schema/>
  618 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  619 + <xloc>439</xloc>
  620 + <yloc>56</yloc>
  621 + <draw>Y</draw>
  622 + </GUI>
  623 + </step>
  624 +
  625 + <step>
  626 + <name>&#x67e5;&#x627e;&#x8f66;&#x8f86;&#x5173;&#x8054;</name>
  627 + <type>DBLookup</type>
  628 + <description/>
  629 + <distribute>Y</distribute>
  630 + <custom_distribution/>
  631 + <copies>1</copies>
  632 + <partitioning>
  633 + <method>none</method>
  634 + <schema_name/>
  635 + </partitioning>
  636 + <connection>bus_control_variable</connection>
  637 + <cache>N</cache>
  638 + <cache_load_all>N</cache_load_all>
  639 + <cache_size>0</cache_size>
  640 + <lookup>
  641 + <schema/>
  642 + <table>bsth_c_cars</table>
  643 + <orderby/>
  644 + <fail_on_multiple>N</fail_on_multiple>
  645 + <eat_row_on_failure>N</eat_row_on_failure>
  646 + <key>
  647 + <name>cl</name>
  648 + <field>inside_code</field>
  649 + <condition>&#x3d;</condition>
  650 + <name2/>
  651 + </key>
  652 + <value>
  653 + <name>id</name>
  654 + <rename>clId</rename>
  655 + <default/>
  656 + <type>Integer</type>
  657 + </value>
  658 + </lookup>
  659 + <cluster_schema/>
  660 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  661 + <xloc>579</xloc>
  662 + <yloc>55</yloc>
  663 + <draw>Y</draw>
  664 + </GUI>
  665 + </step>
  666 +
  667 + <step>
  668 + <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>
  669 + <type>GetVariable</type>
  670 + <description/>
  671 + <distribute>Y</distribute>
  672 + <custom_distribution/>
  673 + <copies>1</copies>
  674 + <partitioning>
  675 + <method>none</method>
  676 + <schema_name/>
  677 + </partitioning>
  678 + <fields>
  679 + <field>
  680 + <name>filepath_</name>
  681 + <variable>&#x24;&#x7b;filepath&#x7d;</variable>
  682 + <type>String</type>
  683 + <format/>
  684 + <currency/>
  685 + <decimal/>
  686 + <group/>
  687 + <length>-1</length>
  688 + <precision>-1</precision>
  689 + <trim_type>none</trim_type>
  690 + </field>
  691 + <field>
  692 + <name>erroroutputdir_</name>
  693 + <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>
  694 + <type>String</type>
  695 + <format/>
  696 + <currency/>
  697 + <decimal/>
  698 + <group/>
  699 + <length>-1</length>
  700 + <precision>-1</precision>
  701 + <trim_type>none</trim_type>
  702 + </field>
  703 + </fields>
  704 + <cluster_schema/>
  705 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  706 + <xloc>156</xloc>
  707 + <yloc>150</yloc>
  708 + <draw>Y</draw>
  709 + </GUI>
  710 + </step>
  711 +
  712 + <step>
  713 + <name>&#x9519;&#x8bef;&#x8f93;&#x51fa;</name>
  714 + <type>ExcelOutput</type>
  715 + <description/>
  716 + <distribute>Y</distribute>
  717 + <custom_distribution/>
  718 + <copies>1</copies>
  719 + <partitioning>
  720 + <method>none</method>
  721 + <schema_name/>
  722 + </partitioning>
  723 + <header>Y</header>
  724 + <footer>N</footer>
  725 + <encoding>UTF-8</encoding>
  726 + <append>N</append>
  727 + <add_to_result_filenames>Y</add_to_result_filenames>
  728 + <file>
  729 + <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x5f53;&#x524d;&#x914d;&#x8f66;_&#x9519;&#x8bef;</name>
  730 + <extention>xls</extention>
  731 + <do_not_open_newfile_init>N</do_not_open_newfile_init>
  732 + <create_parent_folder>N</create_parent_folder>
  733 + <split>N</split>
  734 + <add_date>N</add_date>
  735 + <add_time>N</add_time>
  736 + <SpecifyFormat>N</SpecifyFormat>
  737 + <date_time_format/>
  738 + <sheetname>Sheet1</sheetname>
  739 + <autosizecolums>N</autosizecolums>
  740 + <nullisblank>N</nullisblank>
  741 + <protect_sheet>N</protect_sheet>
  742 + <password>Encrypted </password>
  743 + <splitevery>0</splitevery>
  744 + <usetempfiles>N</usetempfiles>
  745 + <tempdirectory/>
  746 + </file>
  747 + <template>
  748 + <enabled>N</enabled>
  749 + <append>N</append>
  750 + <filename>template.xls</filename>
  751 + </template>
  752 + <fields>
  753 + <field>
  754 + <name>xl</name>
  755 + <type>String</type>
  756 + <format/>
  757 + </field>
  758 + <field>
  759 + <name>cl</name>
  760 + <type>String</type>
  761 + <format/>
  762 + </field>
  763 + <field>
  764 + <name>qyrq</name>
  765 + <type>String</type>
  766 + <format/>
  767 + </field>
  768 + <field>
  769 + <name>zzrq</name>
  770 + <type>String</type>
  771 + <format/>
  772 + </field>
  773 + <field>
  774 + <name>tcd</name>
  775 + <type>String</type>
  776 + <format/>
  777 + </field>
  778 + <field>
  779 + <name>xlId</name>
  780 + <type>Integer</type>
  781 + <format/>
  782 + </field>
  783 + <field>
  784 + <name>clId</name>
  785 + <type>Integer</type>
  786 + <format/>
  787 + </field>
  788 + <field>
  789 + <name>isswitch</name>
  790 + <type>Integer</type>
  791 + <format/>
  792 + </field>
  793 + <field>
  794 + <name>error_count</name>
  795 + <type>Integer</type>
  796 + <format/>
  797 + </field>
  798 + <field>
  799 + <name>error_desc</name>
  800 + <type>String</type>
  801 + <format/>
  802 + </field>
  803 + <field>
  804 + <name>error_column1</name>
  805 + <type>String</type>
  806 + <format/>
  807 + </field>
  808 + <field>
  809 + <name>error_column2</name>
  810 + <type>String</type>
  811 + <format/>
  812 + </field>
  813 + </fields>
  814 + <custom>
  815 + <header_font_name>arial</header_font_name>
  816 + <header_font_size>10</header_font_size>
  817 + <header_font_bold>N</header_font_bold>
  818 + <header_font_italic>N</header_font_italic>
  819 + <header_font_underline>no</header_font_underline>
  820 + <header_font_orientation>horizontal</header_font_orientation>
  821 + <header_font_color>black</header_font_color>
  822 + <header_background_color>none</header_background_color>
  823 + <header_row_height>255</header_row_height>
  824 + <header_alignment>left</header_alignment>
  825 + <header_image/>
  826 + <row_font_name>arial</row_font_name>
  827 + <row_font_size>10</row_font_size>
  828 + <row_font_color>black</row_font_color>
  829 + <row_background_color>none</row_background_color>
  830 + </custom>
  831 + <cluster_schema/>
  832 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  833 + <xloc>718</xloc>
  834 + <yloc>314</yloc>
  835 + <draw>Y</draw>
  836 + </GUI>
  837 + </step>
  838 +
  839 + <step_error_handling>
  840 + <error>
  841 + <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ccinfo</source_step>
  842 + <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa;</target_step>
  843 + <is_enabled>Y</is_enabled>
  844 + <nr_valuename>error_count</nr_valuename>
  845 + <descriptions_valuename>error_desc</descriptions_valuename>
  846 + <fields_valuename>error_column1</fields_valuename>
  847 + <codes_valuename>error_column2</codes_valuename>
  848 + <max_errors/>
  849 + <max_pct_errors/>
  850 + <min_pct_rows/>
  851 + </error>
  852 + </step_error_handling>
  853 + <slave-step-copy-partition-distribution>
  854 +</slave-step-copy-partition-distribution>
  855 + <slave_transformation>N</slave_transformation>
  856 +
  857 +</transformation>