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 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 365 * @return
366 366 */
367 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 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 32 public Map<String, Object> settRoleModules(@RequestParam Integer roleId,@RequestParam String mIds){
33 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 56  
57 57 @Query(value="select s from ScheduleRealInfo s where s.jName = ?1 and s.clZbh = ?2 and s.lpName = ?3 order by fcsj")
58 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 60 @Query(value="select s from ScheduleRealInfo s where s.xlBm = ?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2")
64 61 List<ScheduleRealInfo> scheduleDaily(String line,String date);
65 62  
... ... @@ -74,4 +71,6 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
74 71 @Transactional
75 72 @Query(value = "delete ScheduleRealInfo s where s.xlBm=?1 and s.scheduleDateStr=?2")
76 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 98  
99 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 103 int countByLineCodeAndDate(String xlBm, String schDate);
104 104  
... ... @@ -107,4 +107,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
107 107 void deleteByLineCodeAndDate(String xlBm, String schDate);
108 108  
109 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 998 map.put("xlName", xlName);
999 999 map.put("clZbh", code);
1000 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 1002 map.put("requestTime", obj[2]);
1003 1003 listMap.add(map);
1004 1004 }
... ... @@ -1040,7 +1040,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1040 1040 @Override
1041 1041 public List<Map<String, Object>> statisticsDaily(String line, String date,
1042 1042 String xlName) {
1043   - List<ScheduleRealInfo> list = scheduleRealInfoRepository.statisticsDaily(line, date);
  1043 + List<ScheduleRealInfo> list = scheduleRealInfoRepository.scheduleByDateAndLine(line, date);
1044 1044 double jhlc = 0.00;
1045 1045 float realMileage = 0l;
1046 1046 for(ScheduleRealInfo scheduleRealInfo: list){
... ... @@ -1055,21 +1055,80 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1055 1055 }
1056 1056  
1057 1057 @Override
1058   - public List<Object> scheduleDaily(String line, String date) {
  1058 + public Map<String,Object> scheduleDaily(String line, String date) {
1059 1059 Map<String,String> tempMap = null;
1060   - List<ScheduleRealInfo> scheduleRealInfos = scheduleRealInfoRepository.scheduleDaily(line, date);
  1060 + List<ScheduleRealInfo> scheduleRealInfos = scheduleRealInfoRepository.scheduleByDateAndLine(line, date);
1061 1061 Map<String, Object> map = new HashMap<String, Object>();
1062 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 1066 for(ScheduleRealInfo scheduleRealInfo:scheduleRealInfos){
1064 1067 if(scheduleRealInfo != null){
  1068 + //计算里程(包括子任务)
1065 1069 jhlc += scheduleRealInfo.getJhlc();
1066 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 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 1132 return null;
1074 1133 }
1075 1134  
... ... @@ -1092,4 +1151,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1092 1151 public Long getMaxId() {
1093 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 9  
10 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 1 package com.bsth.service.sys.impl;
2 2  
  3 +import java.text.SimpleDateFormat;
3 4 import java.util.ArrayList;
4 5 import java.util.HashMap;
  6 +import java.util.Iterator;
5 7 import java.util.List;
6 8 import java.util.Map;
7 9 import java.util.Set;
... ... @@ -14,6 +16,7 @@ import org.springframework.stereotype.Service;
14 16 import com.bsth.common.ResponseCode;
15 17 import com.bsth.entity.sys.Module;
16 18 import com.bsth.entity.sys.Role;
  19 +import com.bsth.entity.sys.SysUser;
17 20 import com.bsth.repository.sys.ModuleRepository;
18 21 import com.bsth.repository.sys.RoleRepository;
19 22 import com.bsth.service.impl.BaseServiceImpl;
... ... @@ -30,6 +33,8 @@ public class RoleServiceImpl extends BaseServiceImpl&lt;Role, Integer&gt; implements
30 33  
31 34 @Autowired
32 35 ModuleRepository moduleRepository;
  36 +
  37 + SimpleDateFormat sdfMinute = new SimpleDateFormat("yyyy-MM-dd HH:mm");
33 38  
34 39 @Override
35 40 public Map<String, Object> save(Role t) {
... ... @@ -73,4 +78,29 @@ public class RoleServiceImpl extends BaseServiceImpl&lt;Role, Integer&gt; implements
73 78 }
74 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 8  
9 9 import com.bsth.entity.sys.SysUser;
10 10 import com.bsth.repository.sys.SysUserRepository;
  11 +import com.bsth.security.util.SecurityUtils;
11 12 import com.bsth.service.impl.BaseServiceImpl;
12 13 import com.bsth.service.sys.SysUserService;
13 14  
... ... @@ -25,7 +26,12 @@ public class SysUserServiceImpl extends BaseServiceImpl&lt;SysUser, Integer&gt; implem
25 26 @Override
26 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 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 26 ##
27 27 #222.66.0.204:5555
28 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 31 ##\u6D88\u606F\u4E0B\u53D1
31 32 http.send.directive = http://192.168.168.192:8080/transport_server/message/
32 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>
... ...