Commit 3b5dae67ec843f7a2182dda76b4d65505ae00d6c

Authored by 徐烜
1 parent fb0ff6f6

计划调度功能增加

1、修正原有导入格式(老系统),添加每个营运班次的行驶时间格式
src/main/java/com/bsth/controller/schedule/core/TTInfoDetailController.java
@@ -6,9 +6,9 @@ import com.bsth.entity.schedule.TTInfoDetail; @@ -6,9 +6,9 @@ import com.bsth.entity.schedule.TTInfoDetail;
6 import com.bsth.service.schedule.TTInfoDetailService; 6 import com.bsth.service.schedule.TTInfoDetailService;
7 import com.bsth.service.schedule.datatools.TTInfoDetailForEdit; 7 import com.bsth.service.schedule.datatools.TTInfoDetailForEdit;
8 import com.bsth.service.schedule.datatools.TTinfoDetailDynamicData; 8 import com.bsth.service.schedule.datatools.TTinfoDetailDynamicData;
9 -import com.bsth.service.schedule.timetable.ExcelFormatType;  
10 import com.bsth.service.schedule.utils.DataToolsFile; 9 import com.bsth.service.schedule.utils.DataToolsFile;
11 import com.bsth.service.schedule.utils.DataToolsFileType; 10 import com.bsth.service.schedule.utils.DataToolsFileType;
  11 +import com.bsth.service.schedule.utils.TimetableExcelData;
12 import org.springframework.beans.factory.annotation.Autowired; 12 import org.springframework.beans.factory.annotation.Autowired;
13 import org.springframework.web.bind.annotation.*; 13 import org.springframework.web.bind.annotation.*;
14 14
@@ -50,7 +50,7 @@ public class TTInfoDetailController extends BController<TTInfoDetail, Long> { @@ -50,7 +50,7 @@ public class TTInfoDetailController extends BController<TTInfoDetail, Long> {
50 throw new Exception("线路版本未知"); 50 throw new Exception("线路版本未知");
51 } 51 }
52 ttInfoDetailService.validateExcelSheet(filename, sheetname, lineid, linename, lineversion, 52 ttInfoDetailService.validateExcelSheet(filename, sheetname, lineid, linename, lineversion,
53 - ExcelFormatType.getEnum(excelFormatType)); 53 + TimetableExcelData.ImportFormatType.fromDesc(excelFormatType));
54 rtn.put("status", ResponseCode.SUCCESS); 54 rtn.put("status", ResponseCode.SUCCESS);
55 } catch (Exception exp) { 55 } catch (Exception exp) {
56 rtn.put("status", ResponseCode.ERROR); 56 rtn.put("status", ResponseCode.ERROR);
@@ -115,12 +115,12 @@ public class TTInfoDetailController extends BController<TTInfoDetail, Long> { @@ -115,12 +115,12 @@ public class TTInfoDetailController extends BController<TTInfoDetail, Long> {
115 } 115 }
116 return rtn; 116 return rtn;
117 } 117 }
118 - 118 +
119 /** 119 /**
120 * 时刻表明细批量插入 120 * 时刻表明细批量插入
121 - * 121 + *
122 * @param entities 122 * @param entities
123 - * 123 + *
124 * @return 124 * @return
125 */ 125 */
126 @RequestMapping(value = "/skbDetailMxSave" ,method = RequestMethod.POST) 126 @RequestMapping(value = "/skbDetailMxSave" ,method = RequestMethod.POST)
src/main/java/com/bsth/service/schedule/TTInfoDetailService.java
@@ -4,9 +4,9 @@ import com.bsth.entity.schedule.TTInfoDetail; @@ -4,9 +4,9 @@ import com.bsth.entity.schedule.TTInfoDetail;
4 import com.bsth.service.schedule.datatools.TTInfoDetailForEdit; 4 import com.bsth.service.schedule.datatools.TTInfoDetailForEdit;
5 import com.bsth.service.schedule.datatools.TTinfoDetailDynamicData; 5 import com.bsth.service.schedule.datatools.TTinfoDetailDynamicData;
6 import com.bsth.service.schedule.exception.ScheduleException; 6 import com.bsth.service.schedule.exception.ScheduleException;
7 -import com.bsth.service.schedule.timetable.ExcelFormatType;  
8 import com.bsth.service.schedule.utils.DataToolsFile; 7 import com.bsth.service.schedule.utils.DataToolsFile;
9 import com.bsth.service.schedule.utils.DataToolsFileType; 8 import com.bsth.service.schedule.utils.DataToolsFileType;
  9 +import com.bsth.service.schedule.utils.TimetableExcelData;
10 10
11 import java.util.List; 11 import java.util.List;
12 import java.util.Map; 12 import java.util.Map;
@@ -47,7 +47,7 @@ public interface TTInfoDetailService extends BService<TTInfoDetail, Long> { @@ -47,7 +47,7 @@ public interface TTInfoDetailService extends BService<TTInfoDetail, Long> {
47 * @param sheetname sheet名字 47 * @param sheetname sheet名字
48 * @param lineid 线路id 48 * @param lineid 线路id
49 * @param lineversion 线路版本 49 * @param lineversion 线路版本
50 - * @param excelFormatType 版本 50 + * @param importFormatType excel导入业务格式
51 */ 51 */
52 void validateExcelSheet( 52 void validateExcelSheet(
53 String filename, 53 String filename,
@@ -55,7 +55,7 @@ public interface TTInfoDetailService extends BService<TTInfoDetail, Long> { @@ -55,7 +55,7 @@ public interface TTInfoDetailService extends BService<TTInfoDetail, Long> {
55 Integer lineid, 55 Integer lineid,
56 String linename, 56 String linename,
57 Integer lineversion, 57 Integer lineversion,
58 - ExcelFormatType excelFormatType) throws ScheduleException; 58 + TimetableExcelData.ImportFormatType importFormatType) throws Exception;
59 59
60 /** 60 /**
61 * 验证关联的线路标准信息(以后放到规则引擎里去做)。 61 * 验证关联的线路标准信息(以后放到规则引擎里去做)。
src/main/java/com/bsth/service/schedule/datatools/TTInfoDetailDataToolsImpl.java
@@ -85,126 +85,142 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail @@ -85,126 +85,142 @@ public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetail
85 try { 85 try {
86 LOGGER.info("//---------------- 导入时刻表明细 start... ----------------//"); 86 LOGGER.info("//---------------- 导入时刻表明细 start... ----------------//");
87 87
88 - if (params.get("lineversion") == null) {  
89 - throw new Exception("线路版本未知");  
90 - }  
91 -  
92 - String filename = file.getAbsolutePath(); // xls xlsx 文件名  
93 - String sheetname = String.valueOf(params.get("sheetname")); // sheet名字  
94 - Long ttid = Long.valueOf(String.valueOf(params.get("ttid"))); // 时刻表id  
95 - Long xlid = Long.valueOf(String.valueOf(params.get("xlid"))); // 线路id  
96 - Integer lineid = Integer.valueOf(String.valueOf(params.get("lineinfo"))); // 线路标准id  
97 - String xlname = String.valueOf(params.get("xlname")); // 线路名字  
98 - String ttname = String.valueOf(params.get("ttname")); // 时刻表名字  
99 - Integer lineversion = Integer.valueOf(params.get("lineversion").toString()); // 线路路由版本  
100 - ExcelFormatType excelFormatType = ExcelFormatType.getEnum(String.valueOf(params.get("excelFormatType"))); // 格式  
101 -  
102 - LOGGER.info("参数1, xls文件名={},sheet名字={}", filename, sheetname);  
103 - LOGGER.info("参数2, 线路id={},线路名字={}", xlid, xlname);  
104 - LOGGER.info("参数3, 时刻表id={},时刻表名字={}", ttid, ttname);  
105 -  
106 - LOGGER.info("转换xls文件格式成文本格式...");  
107 - // 1、修改已经上传的excel文件,在每个起点站后标示数字,表示第几个班次  
108 - // 2、由于格式问题,需要把内容都转换成字符串  
109 - List<String> colList = new ArrayList<>();  
110 -  
111 - // poi api,并读取第一行数据,组合成站点列表,逗号分隔  
112 - org.apache.poi.ss.usermodel.Workbook poi_workbook;  
113 - org.apache.poi.ss.usermodel.Sheet poi_sheet;  
114 - if (DataToolsFileType.XLS.isThisType(file)) {  
115 - poi_workbook = DataToolsFileType.XLS.getWorkBook(file);  
116 - } else if (DataToolsFileType.XLSX.isThisType(file)) {  
117 - poi_workbook = DataToolsFileType.XLSX.getWorkBook(file);  
118 - } else {  
119 - throw new Exception("不是xls xlsx文件!");  
120 - }  
121 - poi_sheet = poi_workbook.getSheet(sheetname);  
122 - int rownums = poi_sheet.getLastRowNum() + 1;  
123 - int colnums = poi_sheet.getRow(0).getLastCellNum();  
124 - Row firstrow = poi_sheet.getRow(0);  
125 - for (int i = 0; i < colnums; i++) {  
126 - org.apache.poi.ss.usermodel.Cell cell = firstrow.getCell(i);  
127 - if (i == 0) {  
128 - colList.add(PoiUtils.getStringValueFromCell(cell).trim());  
129 - } else {  
130 - // 站点名字后加->数字形式标示成不同的字段  
131 - colList.add(PoiUtils.getStringValueFromCell(cell).trim().replaceAll("(->\\d+)", "") + "->" + i);  
132 - }  
133 - }  
134 -  
135 - // jxl api  
136 - File fileCal = new File(filename + "_stringType.xls");  
137 - WritableWorkbook writableWorkbook = Workbook.createWorkbook(fileCal);  
138 - WritableSheet sheet1 = writableWorkbook.createSheet(sheetname, 0);  
139 - for (int i = 0; i < colnums; i++) { // 第一行数据  
140 - sheet1.addCell(new Label(i, 0, colList.get(i)));  
141 - }  
142 - for (int i = 1; i < rownums; i++) { // 第二行开始  
143 - for (int j = 0; j < colnums; j++) {  
144 - // poi读  
145 - String cellContent = PoiUtils.getStringValueFromCell(  
146 - poi_sheet.getRow(i).getCell(j)  
147 - ).replaceAll("\\s*", "");  
148 - // jxl写  
149 - sheet1.addCell(new Label(j, i, cellContent));  
150 - }  
151 - }  
152 - writableWorkbook.write();  
153 - writableWorkbook.close();  
154 -  
155 - // 2、删除原有数据  
156 - // 操作在ktr内部执行  
157 -  
158 - // 3、导入时刻表  
159 -  
160 - // 计算表头参数  
161 - Workbook book = Workbook.getWorkbook(fileCal);  
162 - Sheet sheet_exp = book.getSheet(sheetname);  
163 - List<String> columnames = new ArrayList<>();  
164 - for (int i = 0; i < sheet_exp.getColumns(); i++) { // 获取第一行,数据,作为列名  
165 - columnames.add(sheet_exp.getCell(i, 0).getContents());  
166 - }  
167 - LOGGER.info("表头={}", StringUtils.join(columnames.toArray(), ","));  
168 -  
169 - // 创建ktr转换所需参数  
170 - Map<String, Object> ktrParms = new HashMap<>();  
171 - // 元数据ktr  
172 - File mktrFile = new File(this.getClass().getResource(  
173 - dataToolsProperties.getTtinfodetailMetadatainputktr()).toURI());  
174 - // 实际数据ktr  
175 - File ktrFile2_version = new File(this.getClass().getResource(  
176 - dataToolsProperties.getTtinfodetailDatainputktr2version()).toURI());  
177 - // 实际数据ktr2  
178 - File ktrFile2_version2 = new File(this.getClass().getResource(  
179 - dataToolsProperties.getTtinfodetailDatainputktr2version2()).toURI());  
180 -  
181 -  
182 - // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径  
183 - ktrParms.put("transpath", mktrFile.getAbsolutePath());  
184 - ktrParms.put("filepath", fileCal.getAbsolutePath());  
185 - ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir());  
186 -  
187 - // 附加参数  
188 - if (excelFormatType == ExcelFormatType.Normal) {  
189 - ktrParms.put("injectktrfile", ktrFile2_version.getAbsolutePath()); // 注入元数据的ktr文件  
190 - } else if (excelFormatType == ExcelFormatType.Dynamic) {  
191 - ktrParms.put("injectktrfile", ktrFile2_version2.getAbsolutePath()); // 注入元数据的ktr文件  
192 - } else {  
193 - throw new ScheduleException("未知ExcelFormatType");  
194 - }  
195 -  
196 - ktrParms.put("sheetname", sheetname); // sheet工作区的名字  
197 - ktrParms.put("lineinfoid", lineid); // 线路标准id  
198 - ktrParms.put("xlname", xlname); // 线路名称  
199 - ktrParms.put("xlid", xlid); // 线路id  
200 - ktrParms.put("ttinfoname", ttname); // 时刻表名称  
201 - ktrParms.put("ttid", ttid.intValue()); // 时刻表id  
202 - ktrParms.put("lineversion", lineversion); // 站点路由版本  
203 - ktrParms.put("excelfieldnames", StringUtils.join(columnames.toArray(), ",")); // 时刻表excel输入字段名,以逗号连接  
204 - columnames.remove(0);  
205 - ktrParms.put("normalizefieldnames", StringUtils.join(columnames.toArray(), ",")); // 数据范式化字段名,以逗号连接  
206 -  
207 - dataToolsService.importData(fileCal, ktrParms); 88 + TimetableExcelData timetableExcelData = TimetableExcelData.importBuilder()
  89 + .setImportFormatType(TimetableExcelData.ImportFormatType.fromDesc(String.valueOf(params.get("excelFormatType"))))
  90 + .setExcelFilePath(file.getAbsolutePath())
  91 + .setExcelSheetName(String.valueOf(params.get("sheetname")))
  92 + .setLineId(Integer.valueOf(String.valueOf(params.get("xlid"))))
  93 + .setLineName(String.valueOf(params.get("xlname")))
  94 + .setLineRouteVersion(Integer.valueOf(String.valueOf(params.get("lineversion"))))
  95 + .setLineInfoId(Integer.valueOf(String.valueOf(params.get("lineinfo"))))
  96 + .setTtInfoId(Long.valueOf(String.valueOf(params.get("ttid"))))
  97 + .setTtInfoName(String.valueOf(params.get("ttname")))
  98 + .setDataToolsProperties(this.dataToolsProperties)
  99 + .setDataToolsService(this.dataToolsService)
  100 + .build();
  101 +
  102 + timetableExcelData.doImport();
  103 +
  104 +// if (params.get("lineversion") == null) {
  105 +// throw new Exception("线路版本未知");
  106 +// }
  107 +//
  108 +// String filename = file.getAbsolutePath(); // xls xlsx 文件名
  109 +// String sheetname = String.valueOf(params.get("sheetname")); // sheet名字
  110 +// Long ttid = Long.valueOf(String.valueOf(params.get("ttid"))); // 时刻表id
  111 +// Long xlid = Long.valueOf(String.valueOf(params.get("xlid"))); // 线路id
  112 +// Integer lineid = Integer.valueOf(String.valueOf(params.get("lineinfo"))); // 线路标准id
  113 +// String xlname = String.valueOf(params.get("xlname")); // 线路名字
  114 +// String ttname = String.valueOf(params.get("ttname")); // 时刻表名字
  115 +// Integer lineversion = Integer.valueOf(params.get("lineversion").toString()); // 线路路由版本
  116 +// ExcelFormatType excelFormatType = ExcelFormatType.getEnum(String.valueOf(params.get("excelFormatType"))); // 格式
  117 +//
  118 +// LOGGER.info("参数1, xls文件名={},sheet名字={}", filename, sheetname);
  119 +// LOGGER.info("参数2, 线路id={},线路名字={}", xlid, xlname);
  120 +// LOGGER.info("参数3, 时刻表id={},时刻表名字={}", ttid, ttname);
  121 +//
  122 +// LOGGER.info("转换xls文件格式成文本格式...");
  123 +// // 1、修改已经上传的excel文件,在每个起点站后标示数字,表示第几个班次
  124 +// // 2、由于格式问题,需要把内容都转换成字符串
  125 +// List<String> colList = new ArrayList<>();
  126 +//
  127 +// // poi api,并读取第一行数据,组合成站点列表,逗号分隔
  128 +// org.apache.poi.ss.usermodel.Workbook poi_workbook;
  129 +// org.apache.poi.ss.usermodel.Sheet poi_sheet;
  130 +// if (DataToolsFileType.XLS.isThisType(file)) {
  131 +// poi_workbook = DataToolsFileType.XLS.getWorkBook(file);
  132 +// } else if (DataToolsFileType.XLSX.isThisType(file)) {
  133 +// poi_workbook = DataToolsFileType.XLSX.getWorkBook(file);
  134 +// } else {
  135 +// throw new Exception("不是xls xlsx文件!");
  136 +// }
  137 +// poi_sheet = poi_workbook.getSheet(sheetname);
  138 +// int rownums = poi_sheet.getLastRowNum() + 1;
  139 +// int colnums = poi_sheet.getRow(0).getLastCellNum();
  140 +// Row firstrow = poi_sheet.getRow(0);
  141 +// for (int i = 0; i < colnums; i++) {
  142 +// org.apache.poi.ss.usermodel.Cell cell = firstrow.getCell(i);
  143 +// if (i == 0) {
  144 +// colList.add(PoiUtils.getStringValueFromCell(cell).trim());
  145 +// } else {
  146 +// // 站点名字后加->数字形式标示成不同的字段
  147 +// colList.add(PoiUtils.getStringValueFromCell(cell).trim().replaceAll("(->\\d+)", "") + "->" + i);
  148 +// }
  149 +// }
  150 +//
  151 +// // jxl api
  152 +// File fileCal = new File(filename + "_stringType.xls");
  153 +// WritableWorkbook writableWorkbook = Workbook.createWorkbook(fileCal);
  154 +// WritableSheet sheet1 = writableWorkbook.createSheet(sheetname, 0);
  155 +// for (int i = 0; i < colnums; i++) { // 第一行数据
  156 +// sheet1.addCell(new Label(i, 0, colList.get(i)));
  157 +// }
  158 +// for (int i = 1; i < rownums; i++) { // 第二行开始
  159 +// for (int j = 0; j < colnums; j++) {
  160 +// // poi读
  161 +// String cellContent = PoiUtils.getStringValueFromCell(
  162 +// poi_sheet.getRow(i).getCell(j)
  163 +// ).replaceAll("\\s*", "");
  164 +// // jxl写
  165 +// sheet1.addCell(new Label(j, i, cellContent));
  166 +// }
  167 +// }
  168 +// writableWorkbook.write();
  169 +// writableWorkbook.close();
  170 +//
  171 +// // 2、删除原有数据
  172 +// // 操作在ktr内部执行
  173 +//
  174 +// // 3、导入时刻表
  175 +//
  176 +// // 计算表头参数
  177 +// Workbook book = Workbook.getWorkbook(fileCal);
  178 +// Sheet sheet_exp = book.getSheet(sheetname);
  179 +// List<String> columnames = new ArrayList<>();
  180 +// for (int i = 0; i < sheet_exp.getColumns(); i++) { // 获取第一行,数据,作为列名
  181 +// columnames.add(sheet_exp.getCell(i, 0).getContents());
  182 +// }
  183 +// LOGGER.info("表头={}", StringUtils.join(columnames.toArray(), ","));
  184 +//
  185 +// // 创建ktr转换所需参数
  186 +// Map<String, Object> ktrParms = new HashMap<>();
  187 +// // 元数据ktr
  188 +// File mktrFile = new File(this.getClass().getResource(
  189 +// dataToolsProperties.getTtinfodetailMetadatainputktr()).toURI());
  190 +// // 实际数据ktr
  191 +// File ktrFile2_version = new File(this.getClass().getResource(
  192 +// dataToolsProperties.getTtinfodetailDatainputktr2version()).toURI());
  193 +// // 实际数据ktr2
  194 +// File ktrFile2_version2 = new File(this.getClass().getResource(
  195 +// dataToolsProperties.getTtinfodetailDatainputktr2version2()).toURI());
  196 +//
  197 +//
  198 +// // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径
  199 +// ktrParms.put("transpath", mktrFile.getAbsolutePath());
  200 +// ktrParms.put("filepath", fileCal.getAbsolutePath());
  201 +// ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir());
  202 +//
  203 +// // 附加参数
  204 +// if (excelFormatType == ExcelFormatType.Normal) {
  205 +// ktrParms.put("injectktrfile", ktrFile2_version.getAbsolutePath()); // 注入元数据的ktr文件
  206 +// } else if (excelFormatType == ExcelFormatType.Dynamic) {
  207 +// ktrParms.put("injectktrfile", ktrFile2_version2.getAbsolutePath()); // 注入元数据的ktr文件
  208 +// } else {
  209 +// throw new ScheduleException("未知ExcelFormatType");
  210 +// }
  211 +//
  212 +// ktrParms.put("sheetname", sheetname); // sheet工作区的名字
  213 +// ktrParms.put("lineinfoid", lineid); // 线路标准id
  214 +// ktrParms.put("xlname", xlname); // 线路名称
  215 +// ktrParms.put("xlid", xlid); // 线路id
  216 +// ktrParms.put("ttinfoname", ttname); // 时刻表名称
  217 +// ktrParms.put("ttid", ttid.intValue()); // 时刻表id
  218 +// ktrParms.put("lineversion", lineversion); // 站点路由版本
  219 +// ktrParms.put("excelfieldnames", StringUtils.join(columnames.toArray(), ",")); // 时刻表excel输入字段名,以逗号连接
  220 +// columnames.remove(0);
  221 +// ktrParms.put("normalizefieldnames", StringUtils.join(columnames.toArray(), ",")); // 数据范式化字段名,以逗号连接
  222 +//
  223 +// dataToolsService.importData(fileCal, ktrParms);
208 224
209 LOGGER.info("//---------------- 导入时刻表明细 success... ----------------//"); 225 LOGGER.info("//---------------- 导入时刻表明细 success... ----------------//");
210 } catch (Exception exp) { 226 } catch (Exception exp) {
src/main/java/com/bsth/service/schedule/impl/TTInfoDetailServiceImpl.java
@@ -24,10 +24,7 @@ import com.bsth.service.schedule.datatools.TTinfoDetailDynamicData; @@ -24,10 +24,7 @@ import com.bsth.service.schedule.datatools.TTinfoDetailDynamicData;
24 import com.bsth.service.schedule.exception.ScheduleException; 24 import com.bsth.service.schedule.exception.ScheduleException;
25 import com.bsth.service.schedule.timetable.ExcelData; 25 import com.bsth.service.schedule.timetable.ExcelData;
26 import com.bsth.service.schedule.timetable.ExcelFormatType; 26 import com.bsth.service.schedule.timetable.ExcelFormatType;
27 -import com.bsth.service.schedule.utils.DataToolsFile;  
28 -import com.bsth.service.schedule.utils.DataToolsFileType;  
29 -import com.bsth.service.schedule.utils.DataToolsService;  
30 -import com.bsth.service.schedule.utils.PoiUtils; 27 +import com.bsth.service.schedule.utils.*;
31 import org.apache.commons.lang3.StringUtils; 28 import org.apache.commons.lang3.StringUtils;
32 import org.apache.poi.ss.usermodel.Cell; 29 import org.apache.poi.ss.usermodel.Cell;
33 import org.apache.poi.ss.usermodel.Row; 30 import org.apache.poi.ss.usermodel.Row;
@@ -160,13 +157,20 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im @@ -160,13 +157,20 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
160 } 157 }
161 158
162 @Override 159 @Override
163 - public void validateExcelSheet(String filename, String sheetname, Integer lineid, String linename, Integer lineversion, ExcelFormatType excelFormatType) throws ScheduleException {  
164 - ExcelData excelData = new ExcelData(  
165 - filename, sheetname, lineid,  
166 - lineService, guideboardInfoService,  
167 - lineversion, stationRouteService,  
168 - excelFormatType);  
169 - excelData.validateExcelSheet(); 160 + public void validateExcelSheet(
  161 + String filename, String sheetname, Integer lineid, String linename,
  162 + Integer lineversion, TimetableExcelData.ImportFormatType importFormatType) throws Exception {
  163 + TimetableExcelData timetableExcelData = TimetableExcelData.validateBuilder()
  164 + .setImportFormatType(importFormatType)
  165 + .setExcelFilePath(filename)
  166 + .setExcelSheetName(sheetname)
  167 + .setLineId(lineid)
  168 + .setLineService(this.lineService)
  169 + .setLineRouteVersion(lineversion)
  170 + .setStationRouteService(this.stationRouteService)
  171 + .setGuideboardInfoService(this.guideboardInfoService)
  172 + .build();
  173 + timetableExcelData.doValidate();
170 } 174 }
171 175
172 @Override 176 @Override
@@ -225,11 +229,11 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im @@ -225,11 +229,11 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
225 229
226 /** 230 /**
227 * @description (TODO) 时刻表明细模型数据保存. 231 * @description (TODO) 时刻表明细模型数据保存.
228 - * 232 + *
229 * @param map 233 * @param map
230 - * 234 + *
231 * @return : 返回保存操作后的状态. 235 * @return : 返回保存操作后的状态.
232 - * 236 + *
233 * @exception 处理所有抛出来的异常. 237 * @exception 处理所有抛出来的异常.
234 * */ 238 * */
235 @Transactional 239 @Transactional
@@ -241,7 +245,7 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im @@ -241,7 +245,7 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
241 //boolean b = map.get("istidc") ==null ? false : Boolean.parseBoolean(map.get("istidc").toString()); 245 //boolean b = map.get("istidc") ==null ? false : Boolean.parseBoolean(map.get("istidc").toString());
242 Long ttinfoid = map.get("skb") ==null ? null : Long.parseLong(map.get("skb").toString()); 246 Long ttinfoid = map.get("skb") ==null ? null : Long.parseLong(map.get("skb").toString());
243 Integer xlid = map.get("xl") ==null ? null : Integer.parseInt(map.get("xl").toString()); 247 Integer xlid = map.get("xl") ==null ? null : Integer.parseInt(map.get("xl").toString());
244 - if(xlid !=null && ttinfoid !=null) 248 + if(xlid !=null && ttinfoid !=null)
245 ttInfoDetailRepository.deltidc(xlid,ttinfoid); 249 ttInfoDetailRepository.deltidc(xlid,ttinfoid);
246 if(d!=null) 250 if(d!=null)
247 ttInfoDetailRepository.save(jsonArrayToListEntity(d));// 2、保存. 251 ttInfoDetailRepository.save(jsonArrayToListEntity(d));// 2、保存.
@@ -252,14 +256,14 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im @@ -252,14 +256,14 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
252 rs_m.put("status", ResponseCode.SUCCESS); 256 rs_m.put("status", ResponseCode.SUCCESS);
253 return rs_m; 257 return rs_m;
254 } 258 }
255 - 259 +
256 /** 260 /**
257 * @description : (TODO) json班次数据转list班次. 261 * @description : (TODO) json班次数据转list班次.
258 - * 262 + *
259 * @param jsonStr 班次json字符串] 263 * @param jsonStr 班次json字符串]
260 - * 264 + *
261 * @return 返回一个list分装的班次数据. 265 * @return 返回一个list分装的班次数据.
262 - * 266 + *
263 * @status OK. 267 * @status OK.
264 * */ 268 * */
265 public List<TTInfoDetail> jsonArrayToListEntity(String jsonStr) throws Exception { 269 public List<TTInfoDetail> jsonArrayToListEntity(String jsonStr) throws Exception {
@@ -274,21 +278,21 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im @@ -274,21 +278,21 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
274 } 278 }
275 return listTd; 279 return listTd;
276 } 280 }
277 - 281 +
278 /** 282 /**
279 * @description : (TODO) 班次map对象转实体对象. 283 * @description : (TODO) 班次map对象转实体对象.
280 - * 284 + *
281 * @param obj 班次map对象. 285 * @param obj 班次map对象.
282 - * 286 + *
283 * @return 返回一个班次实体对象. 287 * @return 返回一个班次实体对象.
284 - * 288 + *
285 * @exception 异常暂先抛出去. 289 * @exception 异常暂先抛出去.
286 * */ 290 * */
287 public TTInfoDetail objToEntity(JSONObject obj) throws Exception { 291 public TTInfoDetail objToEntity(JSONObject obj) throws Exception {
288 // 1、创建班次实体对象. 292 // 1、创建班次实体对象.
289 TTInfoDetail td = new TTInfoDetail(); 293 TTInfoDetail td = new TTInfoDetail();
290 // 2、获取线路id键值,并查询出该线路的实体对象. 294 // 2、获取线路id键值,并查询出该线路的实体对象.
291 - Line xl = lineRepository.findOne(Integer.parseInt(obj.getString("xl"))); 295 + Line xl = lineRepository.findOne(Integer.parseInt(obj.getString("xl")));
292 // 3、设置线路. 296 // 3、设置线路.
293 td.setXl(xl); 297 td.setXl(xl);
294 // 4、设置时刻表. 298 // 4、设置时刻表.
@@ -332,12 +336,12 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im @@ -332,12 +336,12 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
332 // 22、返回实体对象. 336 // 22、返回实体对象.
333 return td; 337 return td;
334 } 338 }
335 - 339 +
336 /** 340 /**
337 * @description : (TODO) int转boolean类型. 341 * @description : (TODO) int转boolean类型.
338 - * 342 + *
339 * @param value--int类型的数值] 343 * @param value--int类型的数值]
340 - * 344 + *
341 * @return : 返回一个布尔类型值. 345 * @return : 返回一个布尔类型值.
342 * */ 346 * */
343 public Boolean intToBit(int value) { 347 public Boolean intToBit(int value) {
@@ -347,13 +351,13 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im @@ -347,13 +351,13 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
347 else if(value ==1) 351 else if(value ==1)
348 tag = true; 352 tag = true;
349 return tag; 353 return tag;
350 - }  
351 - 354 + }
  355 +
352 /** 356 /**
353 * @description (TODO) 获取路牌. 357 * @description (TODO) 获取路牌.
354 - * 358 + *
355 * @param xl --线路,name--路牌名称,code--路牌编码,lpType--路牌类型] 359 * @param xl --线路,name--路牌名称,code--路牌编码,lpType--路牌类型]
356 - * 360 + *
357 * @return 返回路牌. 361 * @return 返回路牌.
358 * */ 362 * */
359 public GuideboardInfo getLp(Line xl,String name, int code, String lpType) throws Exception { 363 public GuideboardInfo getLp(Line xl,String name, int code, String lpType) throws Exception {
@@ -380,18 +384,18 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im @@ -380,18 +384,18 @@ public class TTInfoDetailServiceImpl extends BServiceImpl&lt;TTInfoDetail, Long&gt; im
380 entity.setUpdateBy(null); 384 entity.setUpdateBy(null);
381 // 8、保存路牌. 385 // 8、保存路牌.
382 guideboardInfoRepository.save(entity); 386 guideboardInfoRepository.save(entity);
383 - } 387 + }
384 // 9、返回路牌. 388 // 9、返回路牌.
385 return entity; 389 return entity;
386 } 390 }
387 - 391 +
388 /** 392 /**
389 * @description : (TODO) 线路方向转代码. 393 * @description : (TODO) 线路方向转代码.
390 - * 394 + *
391 * @param str--方向字符串] 395 * @param str--方向字符串]
392 - * 396 + *
393 * @return 返回方向代码. 397 * @return 返回方向代码.
394 - * 398 + *
395 * @exception 异常暂先抛出. 399 * @exception 异常暂先抛出.
396 * */ 400 * */
397 public String dirToCod(String str) throws Exception { 401 public String dirToCod(String str) throws Exception {
src/main/java/com/bsth/service/schedule/utils/TimetableExcelData.java 0 → 100644
  1 +package com.bsth.service.schedule.utils;
  2 +
  3 +import com.bsth.entity.Line;
  4 +import com.bsth.entity.LsStationRoute;
  5 +import com.bsth.entity.schedule.GuideboardInfo;
  6 +import com.bsth.service.LineService;
  7 +import com.bsth.service.StationRouteService;
  8 +import com.bsth.service.schedule.GuideboardInfoService;
  9 +import com.bsth.service.schedule.exception.ScheduleException;
  10 +import com.fasterxml.jackson.annotation.JsonCreator;
  11 +import com.fasterxml.jackson.annotation.JsonValue;
  12 +import jxl.write.Label;
  13 +import jxl.write.WritableSheet;
  14 +import jxl.write.WritableWorkbook;
  15 +import org.apache.commons.lang3.StringUtils;
  16 +import org.apache.poi.ss.usermodel.Sheet;
  17 +import org.apache.poi.ss.usermodel.Workbook;
  18 +import org.slf4j.Logger;
  19 +import org.slf4j.LoggerFactory;
  20 +import org.springframework.util.Assert;
  21 +import org.springframework.util.CollectionUtils;
  22 +
  23 +import java.io.File;
  24 +import java.util.ArrayList;
  25 +import java.util.HashMap;
  26 +import java.util.List;
  27 +import java.util.Map;
  28 +import java.util.regex.Matcher;
  29 +import java.util.regex.Pattern;
  30 +
  31 +/**
  32 + * 时刻表Excel数据类。
  33 + */
  34 +public class TimetableExcelData {
  35 + /** 日志记录器 */
  36 + private final static Logger LOG = LoggerFactory.getLogger(TimetableExcelData.class);
  37 +
  38 + //-------------------- 公用属性,方法(如下:)-----------------//
  39 + /** 待导入excel workbook对象 */
  40 + private Workbook excelWorkBook;
  41 + /** 待导入excel workbook 工作区对象 */
  42 + private Sheet excelWorkBookSheet;
  43 + /** excel导入格式类型 */
  44 + private ImportFormatType importFormatType;
  45 +
  46 + // 内部标识excel单元格类
  47 + private static class TimetableExcelInternalCell {
  48 + /** 是否可用(默认不可用) */
  49 + private Boolean isEnable = false;
  50 + /** 单元格内容 */
  51 + private String cellContent;
  52 +
  53 + //------------- 班次类型(发车时间单元格 isFcsjCell = true)-----------//
  54 + /** 是否是班次 */
  55 + private Boolean isBc = false;
  56 + /** 是否是出场班次 */
  57 + private Boolean isOutBc = false;
  58 + /** 是否是进场班次 */
  59 + private Boolean isInBc = false;
  60 +
  61 + //------------- 单元格类型 -------------//
  62 + /** 是否表头Cell */
  63 + private Boolean isHeadCell = false;
  64 + /** 是否路牌名字Cell */
  65 + private Boolean isLpNameCell = false;
  66 + /** 是否发车时间Cell */
  67 + private Boolean isFcsjCell = false;
  68 + /** 是否行驶时间Cell */
  69 + private Boolean isXssjCell = false;
  70 + }
  71 + /** 内部Excel单元格二维数组 */
  72 + private TimetableExcelInternalCell[][] internalExcelCells;
  73 +
  74 + // 初始化内部标识excel单元格
  75 + private void initInternalExcelCells() {
  76 + int rowCount = this.excelWorkBookSheet.getLastRowNum() + 1; // 基于0 base的,长度加1
  77 + int colCount = this.excelWorkBookSheet.getRow(0).getLastCellNum(); // 不需要加1,就是长度
  78 +
  79 + this.internalExcelCells = new TimetableExcelInternalCell[rowCount][colCount];
  80 + for (int rowNum = 0; rowNum < rowCount; rowNum ++) {
  81 + for (int colNum = 0; colNum < colCount; colNum ++) {
  82 + TimetableExcelInternalCell cell = new TimetableExcelInternalCell();
  83 + String cell_con = StringUtils.trimToEmpty(PoiUtils.getStringValueFromCell(
  84 + this.excelWorkBookSheet.getRow(rowNum).getCell(colNum))
  85 + .replaceAll("\\s*", "")); // trimToEmpty
  86 +
  87 + // 如果站名中有类似->{数字},使用正则表达式过滤掉
  88 + cell_con = cell_con.replaceAll("(->\\d+)", "");
  89 +
  90 + cell.cellContent = cell_con;
  91 + cell.isEnable = true;
  92 + this.internalExcelCells[rowNum][colNum] = cell;
  93 + }
  94 + }
  95 +
  96 + }
  97 + // 使用第一行单元格的属性设其他行单元格的属性
  98 + private void setInternalExcelCellPropertyWithFirstRowCell() {
  99 + for (int rowNum = 1; rowNum < this.internalExcelCells.length; rowNum ++) {
  100 + for (int colNum = 0; colNum < this.internalExcelCells[rowNum].length; colNum ++) {
  101 + TimetableExcelInternalCell cell = this.internalExcelCells[rowNum][colNum];
  102 + TimetableExcelInternalCell firstRowCell = this.internalExcelCells[0][colNum];
  103 + if (firstRowCell.isEnable) {
  104 + cell.isBc = firstRowCell.isBc;
  105 + cell.isInBc = firstRowCell.isInBc;
  106 + cell.isOutBc = firstRowCell.isOutBc;
  107 +
  108 + cell.isLpNameCell = firstRowCell.isLpNameCell;
  109 + cell.isFcsjCell = firstRowCell.isFcsjCell;
  110 + cell.isXssjCell = firstRowCell.isXssjCell;
  111 + }
  112 + }
  113 + }
  114 + }
  115 +
  116 + //-------------------- 公用属性,方法(如上:)-----------------//
  117 +
  118 + private TimetableExcelData() {}
  119 +
  120 +
  121 + //-------------------- 验证相关属性,方法(如下:)------------------//
  122 + /** 线路信息 */
  123 + private Line line;
  124 + /** 线路站点路由列表(包含上下行的起终点站) */
  125 + private List<LsStationRoute> lsStationRouteList;
  126 + /** 路牌列表 */
  127 + private List<GuideboardInfo> guideboardInfoList;
  128 +
  129 + private void validateRouteName(int colNum, String routeName) throws ScheduleException {
  130 + if (StringUtils.isEmpty(routeName)) {
  131 + throw new ScheduleException(String.format("第1行,第%d列数据不能为空", colNum + 1));
  132 + }
  133 +
  134 + List<LsStationRoute> lsStationRoutes = new ArrayList<>();
  135 + for (LsStationRoute lsStationRoute : this.lsStationRouteList) {
  136 + if ("B".equals(lsStationRoute.getStationMark()) && routeName.equals(lsStationRoute.getStationName())) {
  137 + lsStationRoutes.add(lsStationRoute);
  138 + }
  139 + }
  140 +
  141 + if (CollectionUtils.isEmpty(lsStationRoutes)) {
  142 + throw new ScheduleException(String.format("第1行,第%d列数据%s在%s站点路由中不是起点站",
  143 + colNum + 1, routeName, this.line.getName()));
  144 + } else if (lsStationRoutes.size() > 1) {
  145 + throw new ScheduleException(String.format("第1行,第%d列数据%s在%s站点路由中上下行都是起点站",
  146 + colNum + 1, routeName, this.line.getName()));
  147 + } else if (StringUtils.isEmpty(lsStationRoutes.get(0).getStationCode())) {
  148 + throw new ScheduleException(String.format("第1行,第%d列数据%s在%s站点路由中没有站点编码",
  149 + colNum + 1, routeName, this.line.getName()));
  150 + }
  151 +
  152 + }
  153 +
  154 + private void validateGuideboardName(int rowNum, String guideboardName) throws ScheduleException {
  155 + if (StringUtils.isEmpty(guideboardName)) {
  156 + throw new ScheduleException(String.format("第%d行,第1列路牌无数据", rowNum + 1));
  157 + }
  158 +
  159 + List<GuideboardInfo> guideboardInfos = new ArrayList<>();
  160 + for (GuideboardInfo guideboardInfo : this.guideboardInfoList) {
  161 + if (guideboardName.equals(guideboardInfo.getLpName())) {
  162 + guideboardInfos.add(guideboardInfo);
  163 + }
  164 + }
  165 +
  166 + if (CollectionUtils.isEmpty(guideboardInfos)) {
  167 + throw new ScheduleException(String.format("第%d行,第1列的路牌在%s中不存在",
  168 + rowNum + 1, this.line.getName()));
  169 + } else if (guideboardInfos.size() > 1) {
  170 + throw new ScheduleException(String.format("第%d行,第1列的路牌在%s中重复",
  171 + rowNum + 1, this.line.getName()));
  172 + }
  173 + }
  174 + private void validateFcsjContent(int rowNum, int colNum, String fcsjContent) throws ScheduleException {
  175 + if (!this.importFormatType.validateFcsjContent(fcsjContent)) {
  176 + if (this.importFormatType == ImportFormatType.Dynamic) {
  177 + throw new ScheduleException(String.format(
  178 + "第%d行,第%d列的发车时间格式不正确,格式应为(报|出)hh:mm或hh:mm(X|※)",
  179 + rowNum + 1, colNum + 1));
  180 + } else {
  181 + throw new ScheduleException(String.format("第%d行,第%d列的发车时间格式不正确,格式应为hh:mm或hh,mm或hhmm",
  182 + rowNum + 1, colNum + 1));
  183 + }
  184 + }
  185 + }
  186 + private void validateXssjContent(int rowNum, int colNum, String xssjContent) throws ScheduleException {
  187 + if (!this.importFormatType.validateXssjContent(xssjContent)) {
  188 + throw new ScheduleException(String.format("第%d行,第%d列的行驶时间格式不正确,格式应为正整数",
  189 + rowNum + 1, colNum + 1));
  190 + }
  191 + }
  192 +
  193 + /**
  194 + * 验证Excel。
  195 + */
  196 + public void doValidate() throws Exception {
  197 + int rowCount = this.excelWorkBookSheet.getLastRowNum() + 1; // 基于0 base的,长度加1
  198 + int colCount = this.excelWorkBookSheet.getRow(0).getLastCellNum(); // 不需要加1,就是长度
  199 + if (rowCount == 0 || colCount == 0) { // 工作区是否为空
  200 + throw new ScheduleException(String.format("%s 工作区没有数据!", this.excelWorkBookSheet.getSheetName()));
  201 + }
  202 + if (rowCount <= 1 || colCount <= 1) {
  203 + throw new ScheduleException("工作区至少包含2行2列的数据");
  204 + }
  205 +
  206 + // 1、创建内部Excel单元格数组
  207 + this.initInternalExcelCells();
  208 +
  209 + // 2、验证单元格信息
  210 + // 2-1、验证第1行数据(表头行数据)
  211 + for (int colNum = 0; colNum < colCount; colNum ++) {
  212 + TimetableExcelInternalCell cell = this.internalExcelCells[0][colNum];
  213 + cell.isHeadCell = true;
  214 +
  215 + // 2-1-1、第一行,第一列必须路牌2个字
  216 + if (colNum == 0) {
  217 + if (!"路牌".equals(cell.cellContent)) {
  218 + throw new ScheduleException("第1行,第1列数据必须是路牌2个字");
  219 + }
  220 + cell.isLpNameCell = true;
  221 + continue;
  222 + }
  223 +
  224 + // 2-1-2、如果导入格式是Dynamic,忽略指定列
  225 + if (this.importFormatType == ImportFormatType.Dynamic) {
  226 + if ("报到".equals(cell.cellContent) ||
  227 + "到场".equals(cell.cellContent) ||
  228 + "离场".equals(cell.cellContent) ||
  229 + "总公里".equals(cell.cellContent) ||
  230 + "营业公里".equals(cell.cellContent) ||
  231 + "空驶公里".equals(cell.cellContent) ||
  232 + "总工时".equals(cell.cellContent) ||
  233 + "营业工时".equals(cell.cellContent) ||
  234 + "营运班次".equals(cell.cellContent)) {
  235 + // 这些列都忽略,不参与计算
  236 + cell.isEnable = false;
  237 + continue;
  238 + }
  239 + }
  240 +
  241 + // 2-1-3、出场,进场班次,不验证路由
  242 + if ("出场".equals(cell.cellContent)) {
  243 + cell.isBc = true;
  244 + cell.isOutBc = true;
  245 + continue;
  246 + }
  247 + if ("进场".equals(cell.cellContent)) {
  248 + cell.isBc = true;
  249 + cell.isInBc = true;
  250 + continue;
  251 + }
  252 +
  253 + // 2-1-4、如果导入类型是NormalWithXssj,空的列表表示行驶时间列,不做站点路由验证
  254 + if (this.importFormatType == ImportFormatType.NormalWithXssj) {
  255 + if ("".equals(cell.cellContent)) { // 空的cell默认是行驶时间列头
  256 + cell.isXssjCell = true;
  257 + continue;
  258 + }
  259 + }
  260 +
  261 + // 2-1-5、其他情况作为站点路由验证
  262 + cell.isBc = true;
  263 + cell.isFcsjCell = true;
  264 + validateRouteName(colNum, cell.cellContent); // 验证路由名字
  265 +
  266 + }
  267 +
  268 + // 2-2、根据第1行的单元格验证后的设置的属性,设置其余行单元格的属性
  269 + this.setInternalExcelCellPropertyWithFirstRowCell();
  270 +
  271 + // 2-3、验证具体路牌单元格(第1列)
  272 + Map<String, Integer> gbindexmap = new HashMap<>(); // 记录每个路牌在第几行
  273 + for (int rowNum = 1; rowNum < rowCount; rowNum ++) {
  274 + TimetableExcelInternalCell cell = this.internalExcelCells[rowNum][0];
  275 + if (StringUtils.isEmpty(cell.cellContent)) {
  276 + throw new ScheduleException(String.format("第%d行,第1列路牌无数据", rowNum + 1));
  277 + } else if (gbindexmap.get(cell.cellContent) != null) {
  278 + throw new ScheduleException(String.format("第%d行,第1列的路牌数据与第%d行,第1列数据重复",
  279 + rowNum + 1,
  280 + gbindexmap.get(cell.cellContent)));
  281 + } else {
  282 + validateGuideboardName(rowNum, cell.cellContent); // 验证路牌名字
  283 + gbindexmap.put(cell.cellContent, rowNum + 1);
  284 + }
  285 + }
  286 +
  287 + // 2-4、验证其余单元格(第2行,第2列开始)
  288 + for (int rowNum = 1; rowNum < rowCount; rowNum ++) {
  289 + for (int colNum = 1; colNum < colCount; colNum ++) {
  290 + TimetableExcelInternalCell cell = this.internalExcelCells[rowNum][colNum];
  291 + if (!cell.isEnable) {
  292 + continue;
  293 + }
  294 +
  295 + if (cell.isBc) {
  296 + // 对应路牌对应单元格没有发车班次
  297 + if (StringUtils.isNotEmpty(cell.cellContent)) {
  298 + validateFcsjContent(rowNum, colNum, cell.cellContent);
  299 + }
  300 + } else if (cell.isXssjCell) {
  301 + TimetableExcelInternalCell preCell = this.internalExcelCells[rowNum][colNum - 1];
  302 + if (StringUtils.isEmpty(cell.cellContent)) {
  303 + if (StringUtils.isEmpty(preCell.cellContent)) {
  304 + // 当前行驶时间单元格为空,前一个单元格也为空,跳过
  305 + continue;
  306 + } else {
  307 + throw new ScheduleException(String.format("第%d行,第%d列的行驶时间为空(前一个单元格不为空)!", rowNum + 1, colNum + 1));
  308 + }
  309 + } else {
  310 + if (StringUtils.isEmpty(preCell.cellContent)) {
  311 + throw new ScheduleException(String.format("第%d行,第%d列的行驶时间(前一个单元格为空)!", rowNum + 1, colNum + 1));
  312 + } else {
  313 + if (!preCell.isBc) {
  314 + throw new ScheduleException(String.format("第%d行,第%d列的行驶时间同行前一个单元格必须是班次发车时间!", rowNum + 1, colNum + 1));
  315 + } else if (preCell.isInBc) {
  316 + throw new ScheduleException(String.format("第%d行,第%d列的行驶时间同行前一个单元格不能是进场班次!", rowNum + 1, colNum + 1));
  317 + } else if (preCell.isOutBc) {
  318 + throw new ScheduleException(String.format("第%d行,第%d列的行驶时间同行前一个单元格不能是出场班次!", rowNum + 1, colNum + 1));
  319 + } else if (StringUtils.isEmpty(preCell.cellContent)) {
  320 + throw new ScheduleException(String.format("第%d行,第%d列的行驶时间同行前一个单元格的班次发车时间不能为空!", rowNum + 1, colNum + 1));
  321 + } else {
  322 + validateXssjContent(rowNum, colNum, cell.cellContent);
  323 + }
  324 + }
  325 + }
  326 + } else {
  327 + throw new ScheduleException(String.format("第%d行,第%d列的单元格内容既不是发车时间,也不是行驶时间!", rowNum + 1, colNum + 1));
  328 + }
  329 + }
  330 + }
  331 +
  332 + }
  333 + public static ValidateBuilder validateBuilder() {
  334 + return new ValidateBuilder();
  335 + }
  336 + public TimetableExcelData(ValidateBuilder validateBuilder) {
  337 + this.excelWorkBook = validateBuilder.excelWorkBook;
  338 + this.excelWorkBookSheet = validateBuilder.excelWorkBookSheet;
  339 + this.line = validateBuilder.line;
  340 + this.lsStationRouteList = validateBuilder.lsStationRouteList;
  341 + this.guideboardInfoList = validateBuilder.guideboardInfoList;
  342 + this.importFormatType = validateBuilder.importFormatType;
  343 + }
  344 + //-------------------- 验证相关属性,方法(如上:)------------------//
  345 +
  346 + //-------------------- 导入相关属性,方法(如下:)------------------//
  347 + /** 导入的Excel文件路径 */
  348 + private String excelFilePath;
  349 + /** 数据工具服务 */
  350 + private DataToolsService dataToolsService;
  351 + /** 配置数据导入导出用到的配置信息 */
  352 + private DataToolsProperties dataToolsProperties;
  353 + /** ktr转换所需参数对象 */
  354 + private Map<String, Object> ktrParams = new HashMap<>();
  355 + /**
  356 + * 导入Excel。
  357 + */
  358 + public void doImport() throws Exception {
  359 + // 注意:这里不做验证,业务上导入前必须验证的(调用验证用的builder)
  360 +
  361 + // 1、创建内部单元格数据
  362 + // 1-1、创建内部Excel单元格数组
  363 + this.initInternalExcelCells();
  364 + // 1-2、计算第一行,并设置单元格属性
  365 + for (int colNum = 0; colNum < this.internalExcelCells[0].length; colNum ++) {
  366 + TimetableExcelInternalCell cell = this.internalExcelCells[0][colNum];
  367 + cell.isHeadCell = true;
  368 + if (colNum == 0) {
  369 + cell.isLpNameCell = true;
  370 + continue;
  371 + }
  372 + if (this.importFormatType == ImportFormatType.Dynamic) {
  373 + if ("报到".equals(cell.cellContent) ||
  374 + "到场".equals(cell.cellContent) ||
  375 + "离场".equals(cell.cellContent) ||
  376 + "总公里".equals(cell.cellContent) ||
  377 + "营业公里".equals(cell.cellContent) ||
  378 + "空驶公里".equals(cell.cellContent) ||
  379 + "总工时".equals(cell.cellContent) ||
  380 + "营业工时".equals(cell.cellContent) ||
  381 + "营运班次".equals(cell.cellContent)) {
  382 + // 这些列都忽略,不参与计算
  383 + cell.isEnable = false;
  384 + continue;
  385 + }
  386 + }
  387 + // 2-1-3、出场,进场班次,不验证路由
  388 + if ("出场".equals(cell.cellContent)) {
  389 + cell.isBc = true;
  390 + cell.isOutBc = true;
  391 + continue;
  392 + }
  393 + if ("进场".equals(cell.cellContent)) {
  394 + cell.isBc = true;
  395 + cell.isInBc = true;
  396 + continue;
  397 + }
  398 +
  399 + // 2-1-4、如果导入类型是NormalWithXssj,空的列表表示行驶时间列,不做站点路由验证
  400 + if (this.importFormatType == ImportFormatType.NormalWithXssj) {
  401 + if ("".equals(cell.cellContent)) { // 空的cell默认是行驶时间列头
  402 + cell.isXssjCell = true;
  403 + continue;
  404 + }
  405 + }
  406 + // 2-1-5、其他情况作为站点路由验证
  407 + cell.isBc = true;
  408 + cell.isFcsjCell = true;
  409 +
  410 + }
  411 + // 1-3、根据第1行的单元格验证后的设置的属性,设置其余行单元格的属性
  412 + this.setInternalExcelCellPropertyWithFirstRowCell();
  413 +
  414 + // 2、重新构造一个新的单元格数组,去除enable=false的,合并发车时间和行驶时间
  415 + List<List<TimetableExcelInternalCell>> newEnabledExcelCells = new ArrayList<>();
  416 + for (int rowNum = 0; rowNum < this.internalExcelCells.length; rowNum ++) {
  417 + List<TimetableExcelInternalCell> newEnabledExcelRowCells = new ArrayList<>();
  418 + newEnabledExcelCells.add(newEnabledExcelRowCells);
  419 +
  420 + for (int colNum = 0; colNum < this.internalExcelCells[rowNum].length; colNum ++) {
  421 + TimetableExcelInternalCell cell = this.internalExcelCells[rowNum][colNum];
  422 + if (!cell.isEnable) {
  423 + continue;
  424 + }
  425 + if (cell.isXssjCell) { // 如果匹配到行驶时间单元格,需要合并到前一个单元格中
  426 + if (StringUtils.isNotEmpty(cell.cellContent)) {
  427 + // 前一个单元格就是当前已经保存的行单元格列表的最后一个
  428 + TimetableExcelInternalCell preNewEnabledCell =
  429 + newEnabledExcelRowCells.get(newEnabledExcelRowCells.size() - 1);
  430 + // 合并成 12:01->30 这种格式
  431 + preNewEnabledCell.cellContent = preNewEnabledCell.cellContent + "->" + cell.cellContent;
  432 + }
  433 + } else {
  434 + newEnabledExcelRowCells.add(cell);
  435 + }
  436 + }
  437 + }
  438 +
  439 + // 3、计算其他ktr参数
  440 + // 3-1、计算字段名相关参数
  441 + List<String> columnNames = new ArrayList<>();
  442 + for (int colNum = 0; colNum < newEnabledExcelCells.get(0).size(); colNum ++) {
  443 + TimetableExcelInternalCell cell = newEnabledExcelCells.get(0).get(colNum);
  444 + if (colNum == 0) {
  445 + columnNames.add(cell.cellContent);
  446 + } else {
  447 + columnNames.add(cell.cellContent + "->" + colNum);
  448 + }
  449 + }
  450 + LOG.info("表头参数={}", StringUtils.join(columnNames.toArray(), ","));
  451 + this.ktrParams.put("excelfieldnames", StringUtils.join(columnNames.toArray(), ",")); // 时刻表excel输入字段名,以逗号连接
  452 + columnNames.remove(0);
  453 + this.ktrParams.put("normalizefieldnames", StringUtils.join(columnNames.toArray(), ",")); // 数据范式化字段名,以逗号连接
  454 +
  455 + // 3-2、计算excel内容文件参数
  456 + File fileCal = new File(this.excelFilePath + "_stringType.xls");
  457 + WritableWorkbook writableWorkbook = jxl.Workbook.createWorkbook(fileCal);
  458 + WritableSheet sheet1 = writableWorkbook.createSheet(this.excelWorkBookSheet.getSheetName(), 0);
  459 + for (int rowNum = 0; rowNum < newEnabledExcelCells.size(); rowNum ++) {
  460 + for (int colNum = 0; colNum < newEnabledExcelCells.get(rowNum).size(); colNum ++) {
  461 + TimetableExcelInternalCell cell = newEnabledExcelCells.get(rowNum).get(colNum);
  462 + sheet1.addCell(new Label(colNum, rowNum, cell.cellContent));
  463 + }
  464 + }
  465 + writableWorkbook.write();
  466 + writableWorkbook.close();
  467 + this.ktrParams.put("filepath", fileCal.getAbsolutePath());
  468 +
  469 + // 3-3、计算ktr路径相关参数
  470 + // 元数据ktr
  471 + File mktrFile = new File(this.getClass().getResource(
  472 + dataToolsProperties.getTtinfodetailMetadatainputktr()).toURI());
  473 + this.ktrParams.put("transpath", mktrFile.getAbsolutePath());
  474 + // 实际数据ktr
  475 + if (this.importFormatType == ImportFormatType.NormalWithXssj) {
  476 + File normal_ktrFile = new File(this.getClass().getResource(
  477 + this.dataToolsProperties.getTtinfodetailDatainputktr2version()).toURI());
  478 + this.ktrParams.put("injectktrfile", normal_ktrFile.getAbsolutePath());
  479 + }
  480 + if (this.importFormatType == ImportFormatType.Dynamic) {
  481 + File dynamic_ktrFile = new File(this.getClass().getResource(
  482 + this.dataToolsProperties.getTtinfodetailDatainputktr2version2()).toURI());
  483 + this.ktrParams.put("injectktrfile", dynamic_ktrFile.getAbsolutePath());
  484 + }
  485 +
  486 + // 3-4、执行ktr
  487 + this.dataToolsService.importData(fileCal, this.ktrParams);
  488 +
  489 + }
  490 + public static ImportBuilder importBuilder() {
  491 + return new ImportBuilder();
  492 + }
  493 + public TimetableExcelData(ImportBuilder importBuilder) {
  494 + this.excelWorkBook = importBuilder.excelWorkBook;
  495 + this.excelWorkBookSheet = importBuilder.excelWorkBookSheet;
  496 + this.importFormatType = importBuilder.importFormatType;
  497 +
  498 + this.excelFilePath = importBuilder.excelFilePath;
  499 + this.dataToolsService = importBuilder.dataToolsService;
  500 + this.dataToolsProperties = importBuilder.dataToolsProperties;
  501 + this.ktrParams = importBuilder.ktrParams;
  502 +
  503 + LOG.info("参数组1, xls文件名={},sheet名字={}",
  504 + this.excelFilePath, this.ktrParams.get("sheetname"));
  505 + LOG.info("参数组2, 线路id={},线路名字={},线路版本={}",
  506 + this.ktrParams.get("xlid"), this.ktrParams.get("xlname"), this.ktrParams.get("lineversion"));
  507 + LOG.info("参数组3, 时刻表id={},时刻表名字={}",
  508 + this.ktrParams.get("ttid"), this.ktrParams.get("ttinfoname"));
  509 +
  510 + }
  511 + //-------------------- 导入相关属性,方法(如上:)------------------//
  512 +
  513 + /**
  514 + * excel导入格式。
  515 + */
  516 + public enum ImportFormatType {
  517 + NormalWithXssj("normal") { // 老系统格式(可以在发车时间后带一个行驶时间)
  518 + @Override
  519 + boolean validateFcsjContent(String fcsjContent) {
  520 + Matcher m1 = p1.matcher(fcsjContent.trim());
  521 + Matcher m2 = p2.matcher(fcsjContent.trim());
  522 + Matcher m3 = p3.matcher(fcsjContent.trim());
  523 + return m1.matches() || m2.matches() || m3.matches();
  524 + }
  525 + @Override
  526 + boolean validateXssjContent(String xssjContent) {
  527 + Matcher m1 = xssj_p.matcher(xssjContent.trim());
  528 + return m1.matches();
  529 + }
  530 + },
  531 + Dynamic("dynamic") { // 自动生成时刻表的导出格式
  532 + @Override
  533 + boolean validateFcsjContent(String fcsjContent) {
  534 + Matcher m1 = p1_1.matcher(fcsjContent.trim());
  535 + Matcher m2 = p2_1.matcher(fcsjContent.trim());
  536 + return m1.matches() || m2.matches();
  537 + }
  538 + @Override
  539 + boolean validateXssjContent(String xssjContent) {
  540 + throw new IllegalStateException("Dynamic导入格式下没有行驶时间单元格!");
  541 + }
  542 + };
  543 +
  544 + // NormalWithXssj格式下的发车时间格式
  545 + private static Pattern p1 = Pattern.compile("^([01]?[0-9]|2[0-3]):[0-5][0-9]$"); // hh:mm格式
  546 + private static Pattern p2 = Pattern.compile("^([01]?[0-9]|2[0-3]),[0-5][0-9]$"); // hh,mm格式
  547 + private static Pattern p3 = Pattern.compile("^([01]?[0-9]|2[0-3])[0-5][0-9]$"); // hhmm格式
  548 +
  549 + // Dynamic格式下的发车时间格式
  550 + private static Pattern p1_1 = Pattern.compile("^(\u62a5|\u51fa)?([01]?[0-9]|2[0-3]):[0-5][0-9]$"); // (报|出)hh:mm格式
  551 + private static Pattern p2_1 = Pattern.compile("^([01]?[0-9]|2[0-3]):[0-5][0-9](X|\u203b)?$"); // hh:mm(X|※)格式
  552 +
  553 + // NormalWithXssj格式下的行驶时时间格式
  554 + private static Pattern xssj_p = Pattern.compile("^[1-9]\\d*$"); // 正整数
  555 +
  556 + private static Map<String, ImportFormatType> descMapEnum = new HashMap<>();
  557 + static {
  558 + descMapEnum.put("normal", NormalWithXssj);
  559 + descMapEnum.put("dynamic", Dynamic);
  560 + }
  561 +
  562 + private String desc;
  563 +
  564 + @JsonValue
  565 + public String getDesc() {
  566 + return desc;
  567 + }
  568 + public void setDesc(String desc) {
  569 + this.desc = desc;
  570 + }
  571 +
  572 + @JsonCreator
  573 + ImportFormatType(String desc) {
  574 + this.desc = desc;
  575 + }
  576 +
  577 + public static ImportFormatType fromDesc(String desc) {
  578 + Assert.hasText(desc, "excel导入格式为空!");
  579 + Assert.notNull(descMapEnum.get(desc), "未知的excel导入格式[" + desc + "]!");
  580 + return descMapEnum.get(desc);
  581 + }
  582 +
  583 + /**
  584 + * 不同的excel导入格式验证发车时间内容。
  585 + * @param fcsjContent 发车时间
  586 + * @return true/通过,false/格式有问题
  587 + */
  588 + abstract boolean validateFcsjContent(String fcsjContent);
  589 +
  590 + /**
  591 + * 不同的excel导入格式验证行驶时间内容。
  592 + * @param xssjContent 行驶时间
  593 + * @return true/通过,false/格式有问题
  594 + */
  595 + abstract boolean validateXssjContent(String xssjContent);
  596 + }
  597 + // 验证数据用builder
  598 + public static class ValidateBuilder {
  599 + private ValidateBuilder() {}
  600 +
  601 + /** 导入的Excel文件路径 */
  602 + private String excelFilePath;
  603 + /** 导入的Excel sheet名字 */
  604 + private String excelSheetName;
  605 + /** 线路Id */
  606 + private Integer lineId;
  607 + /** 线路路由版本 */
  608 + private Integer lineRouteVersion;
  609 + /** 线路信息service */
  610 + private LineService lineService;
  611 + /** 站点路由信息service */
  612 + private StationRouteService stationRouteService;
  613 + /** 路牌信息service */
  614 + private GuideboardInfoService guideboardInfoService;
  615 + /** excel导入格式类型 */
  616 + private ImportFormatType importFormatType;
  617 +
  618 + public ValidateBuilder setExcelFilePath(String excelFilePath) {
  619 + this.excelFilePath = excelFilePath;
  620 + return this;
  621 + }
  622 +
  623 + public ValidateBuilder setExcelSheetName(String excelSheetName) {
  624 + this.excelSheetName = excelSheetName;
  625 + return this;
  626 + }
  627 +
  628 + public ValidateBuilder setLineId(Integer lineId) {
  629 + this.lineId = lineId;
  630 + return this;
  631 + }
  632 +
  633 + public ValidateBuilder setLineRouteVersion(Integer lineRouteVersion) {
  634 + this.lineRouteVersion = lineRouteVersion;
  635 + return this;
  636 + }
  637 + public ValidateBuilder setLineService(LineService lineService) {
  638 + this.lineService = lineService;
  639 + return this;
  640 + }
  641 + public ValidateBuilder setGuideboardInfoService(GuideboardInfoService guideboardInfoService) {
  642 + this.guideboardInfoService = guideboardInfoService;
  643 + return this;
  644 + }
  645 + public ValidateBuilder setStationRouteService(StationRouteService stationRouteService) {
  646 + this.stationRouteService = stationRouteService;
  647 + return this;
  648 + }
  649 + public ValidateBuilder setImportFormatType(ImportFormatType importFormatType) {
  650 + this.importFormatType = importFormatType;
  651 + return this;
  652 + }
  653 +
  654 + /** 待导入excel workbook对象 */
  655 + private Workbook excelWorkBook;
  656 + /** 待导入excel workbook工作区对象 */
  657 + private Sheet excelWorkBookSheet;
  658 + /** 线路信息 */
  659 + private Line line;
  660 + /** 线路站点路由列表(包含上下行的起终点站) */
  661 + private List<LsStationRoute> lsStationRouteList;
  662 + /** 路牌列表 */
  663 + private List<GuideboardInfo> guideboardInfoList;
  664 +
  665 + public TimetableExcelData build() throws ScheduleException {
  666 + // 0、检测excel导入业务格式
  667 + if (this.importFormatType == null) {
  668 + throw new ScheduleException("导入的Excel类型为空!");
  669 + }
  670 +
  671 + // 1、检测excel文件,创建excel workbook对象
  672 + // 1-1、检测文件是否存在
  673 + Assert.hasText(this.excelFilePath, "导入的Excel文件路径为空!");
  674 + File file = new File(this.excelFilePath);
  675 + if (!file.exists()) {
  676 + throw new ScheduleException("导入的Excel文件[" + this.excelFilePath + "]不存在!");
  677 + }
  678 + // 1-2、检测文件类型
  679 + DataToolsFile dataToolsFile = new DataToolsFile();
  680 + dataToolsFile.setFile(file);
  681 + if (DataToolsFileType.XLS.isThisType(file)) {
  682 + dataToolsFile.setFileType(DataToolsFileType.XLS);
  683 + } else if (DataToolsFileType.XLSX.isThisType(file)) {
  684 + dataToolsFile.setFileType(DataToolsFileType.XLSX);
  685 + } else {
  686 + throw new ScheduleException("导入的Excel文件[" + this.excelFilePath + "]内部不是xls,xlsx文件!");
  687 + }
  688 + // 1-3、创建workbook
  689 + this.excelWorkBook = dataToolsFile.getFileType().getWorkBook(dataToolsFile.getFile());
  690 + // 1-4、检测sheet名字
  691 + Assert.hasText(this.excelSheetName, "导入的Excel sheet名字为空!");
  692 + this.excelWorkBookSheet = this.excelWorkBook.getSheet(this.excelSheetName);
  693 + if (this.excelWorkBookSheet == null) {
  694 + throw new ScheduleException("导入的Excel文件sheet[" + this.excelSheetName + "]不存在!");
  695 + }
  696 +
  697 + // 2、获取线路信息,站点路由信息
  698 + // 2-1、线路信息
  699 + Assert.notNull(this.lineService, "线路信息service为空!");
  700 + Assert.notNull(this.lineId, "线路Id为空!");
  701 + this.line = this.lineService.findById(this.lineId);
  702 + if (this.line == null) {
  703 + throw new ScheduleException("线路[id=" + this.lineId + "]不存在!");
  704 + }
  705 + // 2-2、站点路由信息
  706 + Assert.notNull(this.stationRouteService, "站点路由信息service为空!");
  707 + Assert.notNull(this.lineRouteVersion, "线路站点路由版本为空!");
  708 + Map<String, Object> p1 = new HashMap<>();
  709 + p1.put("line.id_eq", this.lineId);
  710 + p1.put("stationMark_in", "B,E"); // 起点站
  711 + p1.put("destroy_eq", 0); // 未撤销
  712 + p1.put("versions_eq", this.lineRouteVersion); // 带线路版本
  713 + this.lsStationRouteList = (List<LsStationRoute>) this.stationRouteService.list_ls(p1);
  714 + if (CollectionUtils.isEmpty(this.lsStationRouteList)) {
  715 + throw new ScheduleException("线路[" + this.line.getName() + "],站点路由[版本=" + this.lineRouteVersion + "]信息为空");
  716 + }
  717 +
  718 + // 3、获取路牌信息
  719 + Assert.notNull(this.guideboardInfoService, "路牌信息service为空!");
  720 + p1.clear();
  721 + p1.put("xl.id_eq", this.lineId);
  722 + p1.put("isCancel_eq", false);
  723 + this.guideboardInfoList = guideboardInfoService.list(p1);
  724 + if (CollectionUtils.isEmpty(this.guideboardInfoList)) {
  725 + throw new ScheduleException("线路[" + this.line.getName() + "]路牌信息为空!");
  726 + }
  727 +
  728 + return new TimetableExcelData(this);
  729 + }
  730 + }
  731 + // 导入数据用
  732 + public static class ImportBuilder {
  733 + private ImportBuilder() {}
  734 +
  735 + /** 导入的Excel文件路径 */
  736 + private String excelFilePath;
  737 + /** 导入的Excel sheet名字 */
  738 + private String excelSheetName;
  739 + /** 时刻表Id */
  740 + private Long ttInfoId;
  741 + /** 线路Id */
  742 + private Integer lineId;
  743 + /** 线路标准信息Id */
  744 + private Integer lineInfoId;
  745 + /** 线路名字 */
  746 + private String lineName;
  747 + /** 时刻表名字 */
  748 + private String ttInfoName;
  749 + /** 线路路由版本 */
  750 + private Integer lineRouteVersion;
  751 + /** excel导入格式类型 */
  752 + private ImportFormatType importFormatType;
  753 + /** 数据工具服务 */
  754 + private DataToolsService dataToolsService;
  755 + /** 配置数据导入导出用到的配置信息 */
  756 + private DataToolsProperties dataToolsProperties;
  757 +
  758 + public ImportBuilder setExcelFilePath(String excelFilePath) {
  759 + this.excelFilePath = excelFilePath;
  760 + return this;
  761 + }
  762 +
  763 + public ImportBuilder setExcelSheetName(String excelSheetName) {
  764 + this.excelSheetName = excelSheetName;
  765 + return this;
  766 + }
  767 +
  768 + public ImportBuilder setTtInfoId(Long ttInfoId) {
  769 + this.ttInfoId = ttInfoId;
  770 + return this;
  771 + }
  772 +
  773 + public ImportBuilder setLineId(Integer lineId) {
  774 + this.lineId = lineId;
  775 + return this;
  776 + }
  777 +
  778 + public ImportBuilder setLineInfoId(Integer lineInfoId) {
  779 + this.lineInfoId = lineInfoId;
  780 + return this;
  781 + }
  782 +
  783 + public ImportBuilder setLineName(String lineName) {
  784 + this.lineName = lineName;
  785 + return this;
  786 + }
  787 +
  788 + public ImportBuilder setTtInfoName(String ttInfoName) {
  789 + this.ttInfoName = ttInfoName;
  790 + return this;
  791 + }
  792 +
  793 + public ImportBuilder setLineRouteVersion(Integer lineRouteVersion) {
  794 + this.lineRouteVersion = lineRouteVersion;
  795 + return this;
  796 + }
  797 +
  798 + public ImportBuilder setImportFormatType(ImportFormatType importFormatType) {
  799 + this.importFormatType = importFormatType;
  800 + return this;
  801 + }
  802 +
  803 + public ImportBuilder setDataToolsService(DataToolsService dataToolsService) {
  804 + this.dataToolsService = dataToolsService;
  805 + return this;
  806 + }
  807 +
  808 + public ImportBuilder setDataToolsProperties(DataToolsProperties dataToolsProperties) {
  809 + this.dataToolsProperties = dataToolsProperties;
  810 + return this;
  811 + }
  812 +
  813 + /** 待导入excel workbook对象 */
  814 + private Workbook excelWorkBook;
  815 + /** 待导入excel workbook工作区对象 */
  816 + private Sheet excelWorkBookSheet;
  817 + /** ktr转换所需参数对象 */
  818 + private Map<String, Object> ktrParams = new HashMap<>();
  819 +
  820 + public TimetableExcelData build() {
  821 + // 注意:这里不做验证,业务上导入前必须验证的(调用验证用的builder)
  822 + File file = new File(this.excelFilePath);
  823 + DataToolsFile dataToolsFile = new DataToolsFile();
  824 + dataToolsFile.setFile(file);
  825 + if (DataToolsFileType.XLS.isThisType(file)) {
  826 + dataToolsFile.setFileType(DataToolsFileType.XLS);
  827 + } else if (DataToolsFileType.XLSX.isThisType(file)) {
  828 + dataToolsFile.setFileType(DataToolsFileType.XLSX);
  829 + }
  830 + this.excelWorkBook = dataToolsFile.getFileType().getWorkBook(dataToolsFile.getFile());
  831 + this.excelWorkBookSheet = this.excelWorkBook.getSheet(this.excelSheetName);
  832 +
  833 + // 设置ktr转换参数
  834 + this.ktrParams.put("erroroutputdir", this.dataToolsProperties.getTransErrordir()); // 错误文件输出路径
  835 + this.ktrParams.put("sheetname", this.excelSheetName); // sheet工作区的名字
  836 + this.ktrParams.put("lineinfoid", this.lineInfoId); // 线路标准id
  837 + this.ktrParams.put("xlname", this.lineName); // 线路名称
  838 + this.ktrParams.put("xlid", this.lineId); // 线路id
  839 + this.ktrParams.put("ttinfoname", this.ttInfoName); // 时刻表名称
  840 + this.ktrParams.put("ttid", this.ttInfoId.intValue()); // 时刻表id
  841 + this.ktrParams.put("lineversion", this.lineRouteVersion); // 站点路由版本
  842 +
  843 + return new TimetableExcelData(this);
  844 + }
  845 + }
  846 +}
src/main/resources/datatools/ktrs/ttinfodetailDataInput2_version.ktr
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<transformation>  
3 - <info>  
4 - <name>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x5bfc;&#x5165;-&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;</name>  
5 - <description>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</description>  
6 - <extended_description>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#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 - </parameters>  
13 - <log>  
14 -<trans-log-table><connection/>  
15 -<schema/>  
16 -<table/>  
17 -<size_limit_lines/>  
18 -<interval/>  
19 -<timeout_days/>  
20 -<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>  
21 -<perf-log-table><connection/>  
22 -<schema/>  
23 -<table/>  
24 -<interval/>  
25 -<timeout_days/>  
26 -<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>  
27 -<channel-log-table><connection/>  
28 -<schema/>  
29 -<table/>  
30 -<timeout_days/>  
31 -<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>  
32 -<step-log-table><connection/>  
33 -<schema/>  
34 -<table/>  
35 -<timeout_days/>  
36 -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>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>  
37 -<metrics-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>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>  
42 - </log>  
43 - <maxdate>  
44 - <connection/>  
45 - <table/>  
46 - <field/>  
47 - <offset>0.0</offset>  
48 - <maxdiff>0.0</maxdiff>  
49 - </maxdate>  
50 - <size_rowset>10000</size_rowset>  
51 - <sleep_time_empty>50</sleep_time_empty>  
52 - <sleep_time_full>50</sleep_time_full>  
53 - <unique_connections>N</unique_connections>  
54 - <feedback_shown>Y</feedback_shown>  
55 - <feedback_size>50000</feedback_size>  
56 - <using_thread_priorities>Y</using_thread_priorities>  
57 - <shared_objects_file/>  
58 - <capture_step_performance>N</capture_step_performance>  
59 - <step_performance_capturing_delay>1000</step_performance_capturing_delay>  
60 - <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>  
61 - <dependencies>  
62 - </dependencies>  
63 - <partitionschemas>  
64 - </partitionschemas>  
65 - <slaveservers>  
66 - </slaveservers>  
67 - <clusterschemas>  
68 - </clusterschemas>  
69 - <created_user>-</created_user>  
70 - <created_date>2016&#x2f;06&#x2f;30 12&#x3a;21&#x3a;57.536</created_date>  
71 - <modified_user>-</modified_user>  
72 - <modified_date>2016&#x2f;06&#x2f;30 12&#x3a;21&#x3a;57.536</modified_date>  
73 - <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>  
74 - <is_key_private>N</is_key_private>  
75 - </info>  
76 - <notepads>  
77 - <notepad>  
78 - <note>&#x5b57;&#x5178;&#x8868;&#x5bf9;&#x5e94;&#xff08;&#x4ee5;&#x540e;&#x76f4;&#x63a5;&#x67e5;&#x627e;&#x8868; bsth_c_sys_dictionary&#xff09;&#xa;&#x7c7b;&#x578b; &#x4ee3;&#x7801; &#x540d;&#x79f0;&#xa;LineTrend 0 &#x4e0a;&#x884c;&#xa;LineTrend 1 &#x4e0b;&#x884c;&#xa;ScheduleType normal &#x6b63;&#x5e38;&#x73ed;&#x6b21;&#xa;ScheduleType out &#x51fa;&#x573a;&#xa;ScheduleType in &#x8fdb;&#x573a;&#xa;ScheduleType temp &#x4e34;&#x52a0;&#xa;ScheduleType region &#x533a;&#x95f4;&#xa;ScheduleType venting &#x653e;&#x7a7a;&#xa;ScheduleType major &#x653e;&#x5927;&#x7ad9;</note>  
79 - <xloc>606</xloc>  
80 - <yloc>129</yloc>  
81 - <width>332</width>  
82 - <heigth>186</heigth>  
83 - <fontname>YaHei Consolas Hybrid</fontname>  
84 - <fontsize>12</fontsize>  
85 - <fontbold>N</fontbold>  
86 - <fontitalic>N</fontitalic>  
87 - <fontcolorred>0</fontcolorred>  
88 - <fontcolorgreen>0</fontcolorgreen>  
89 - <fontcolorblue>0</fontcolorblue>  
90 - <backgroundcolorred>255</backgroundcolorred>  
91 - <backgroundcolorgreen>205</backgroundcolorgreen>  
92 - <backgroundcolorblue>112</backgroundcolorblue>  
93 - <bordercolorred>100</bordercolorred>  
94 - <bordercolorgreen>100</bordercolorgreen>  
95 - <bordercolorblue>100</bordercolorblue>  
96 - <drawshadow>Y</drawshadow>  
97 - </notepad>  
98 - <notepad>  
99 - <note>&#x56e0;&#x4e3a;&#x65f6;&#x523b;&#x8868;&#x8f93;&#x5165;&#x683c;&#x5f0f;&#x4e0d;&#x786e;&#x5b9a;&#x6027;&#xff0c;&#x4e3b;&#x8981;&#x56e0;&#x4e3a;&#x8868;&#x7ed3;&#x6784;&#x662f;&#x53cd;&#x8303;&#x5f0f;&#x5316;&#x7684;&#xff0c;&#xa;&#x6240;&#x4ee5;&#x9700;&#x8981;&#x5916;&#x90e8;&#x52a8;&#x6001;&#x6307;&#x5b9a;&#x613f;&#x6570;&#x636e;&#xff0c;&#x5934;&#x4e09;&#x4e2a;step&#x52a8;&#x6001;&#x6307;&#x5b9a;&#x613f;&#x6570;&#x636e;&#xa;&#xa;</note>  
100 - <xloc>79</xloc>  
101 - <yloc>206</yloc>  
102 - <width>346</width>  
103 - <heigth>74</heigth>  
104 - <fontname>YaHei Consolas Hybrid</fontname>  
105 - <fontsize>12</fontsize>  
106 - <fontbold>N</fontbold>  
107 - <fontitalic>N</fontitalic>  
108 - <fontcolorred>0</fontcolorred>  
109 - <fontcolorgreen>0</fontcolorgreen>  
110 - <fontcolorblue>0</fontcolorblue>  
111 - <backgroundcolorred>255</backgroundcolorred>  
112 - <backgroundcolorgreen>205</backgroundcolorgreen>  
113 - <backgroundcolorblue>112</backgroundcolorblue>  
114 - <bordercolorred>100</bordercolorred>  
115 - <bordercolorgreen>100</bordercolorgreen>  
116 - <bordercolorblue>100</bordercolorblue>  
117 - <drawshadow>Y</drawshadow>  
118 - </notepad>  
119 - <notepad>  
120 - <note>&#x8fd9;&#x91cc;&#x6709;&#x4e9b;&#x95ee;&#x9898;&#xa;&#x5728;window2012&#x7684;&#x73af;&#x5883;&#x4e0b;&#xff0c;&#xa;MySql&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x4e2d;&#x5982;&#x679c;&#x8fd4;&#x56de;&#x4e2d;&#x6587;&#x5185;&#x5bb9;&#x7684;&#x5b57;&#x6bb5;&#xff0c;&#x8fd9;&#x4e2a;&#x5185;&#x5bb9;&#x4e71;&#x7801;&#xa;&#x89e3;&#x51b3;&#x529e;&#x6cd5;&#xff0c;&#x5c31;&#x662f;&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x5168;&#x90e8;&#x7f13;&#x5b58;&#xff0c;&#x5c31;&#x4e0d;&#x4e71;&#x7801;&#xa;linux&#x73af;&#x5883;&#x4e0b;&#x6ca1;&#x95ee;&#x9898;</note>  
121 - <xloc>721</xloc>  
122 - <yloc>762</yloc>  
123 - <width>333</width>  
124 - <heigth>90</heigth>  
125 - <fontname>YaHei Consolas Hybrid</fontname>  
126 - <fontsize>12</fontsize>  
127 - <fontbold>N</fontbold>  
128 - <fontitalic>N</fontitalic>  
129 - <fontcolorred>0</fontcolorred>  
130 - <fontcolorgreen>0</fontcolorgreen>  
131 - <fontcolorblue>0</fontcolorblue>  
132 - <backgroundcolorred>255</backgroundcolorred>  
133 - <backgroundcolorgreen>205</backgroundcolorgreen>  
134 - <backgroundcolorblue>112</backgroundcolorblue>  
135 - <bordercolorred>100</bordercolorred>  
136 - <bordercolorgreen>100</bordercolorgreen>  
137 - <bordercolorblue>100</bordercolorblue>  
138 - <drawshadow>Y</drawshadow>  
139 - </notepad>  
140 - <notepad>  
141 - <note>&#x51fa;&#x573a;&#x73ed;&#x6b21;&#xff0c;&#x65b9;&#x5411;&#x6709;&#x65f6;&#x786e;&#x5b9a;&#x4e0d;&#x51c6;&#xff0c;&#xa;&#x7a7a;&#x7684;&#x60c5;&#x51b5;&#x4e0b;&#x8bbe;&#x5b9a;&#x4e3a;0&#xff08;&#x4e0a;&#x884c;&#xff09;</note>  
142 - <xloc>104</xloc>  
143 - <yloc>939</yloc>  
144 - <width>178</width>  
145 - <heigth>42</heigth>  
146 - <fontname>YaHei Consolas Hybrid</fontname>  
147 - <fontsize>12</fontsize>  
148 - <fontbold>N</fontbold>  
149 - <fontitalic>N</fontitalic>  
150 - <fontcolorred>0</fontcolorred>  
151 - <fontcolorgreen>0</fontcolorgreen>  
152 - <fontcolorblue>0</fontcolorblue>  
153 - <backgroundcolorred>255</backgroundcolorred>  
154 - <backgroundcolorgreen>205</backgroundcolorgreen>  
155 - <backgroundcolorblue>112</backgroundcolorblue>  
156 - <bordercolorred>100</bordercolorred>  
157 - <bordercolorgreen>100</bordercolorgreen>  
158 - <bordercolorblue>100</bordercolorblue>  
159 - <drawshadow>Y</drawshadow>  
160 - </notepad>  
161 - <notepad>  
162 - <note>&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#xff0c;&#x65b9;&#x5411;&#x6709;&#x65f6;&#x786e;&#x5b9a;&#x4e0d;&#x51c6;&#xff0c;&#xa;&#x7a7a;&#x7684;&#x60c5;&#x51b5;&#x4e0b;&#x8bbe;&#x5b9a;&#x4e3a;0&#xff08;&#x4e0a;&#x884c;&#xff09;</note>  
163 - <xloc>578</xloc>  
164 - <yloc>1084</yloc>  
165 - <width>178</width>  
166 - <heigth>42</heigth>  
167 - <fontname>YaHei Consolas Hybrid</fontname>  
168 - <fontsize>12</fontsize>  
169 - <fontbold>N</fontbold>  
170 - <fontitalic>N</fontitalic>  
171 - <fontcolorred>0</fontcolorred>  
172 - <fontcolorgreen>0</fontcolorgreen>  
173 - <fontcolorblue>0</fontcolorblue>  
174 - <backgroundcolorred>255</backgroundcolorred>  
175 - <backgroundcolorgreen>205</backgroundcolorgreen>  
176 - <backgroundcolorblue>112</backgroundcolorblue>  
177 - <bordercolorred>100</bordercolorred>  
178 - <bordercolorgreen>100</bordercolorgreen>  
179 - <bordercolorblue>100</bordercolorblue>  
180 - <drawshadow>Y</drawshadow>  
181 - </notepad>  
182 - </notepads>  
183 - <connection>  
184 - <name>192.168.168.1_jwgl_dw</name>  
185 - <server>192.168.168.1</server>  
186 - <type>ORACLE</type>  
187 - <access>Native</access>  
188 - <database>orcl</database>  
189 - <port>1521</port>  
190 - <username>jwgl_dw</username>  
191 - <password>Encrypted 2be98afc86aa7f2e4cb13b977d2adabcd</password>  
192 - <servername/>  
193 - <data_tablespace/>  
194 - <index_tablespace/>  
195 - <attributes>  
196 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
197 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
198 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
199 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
200 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
201 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
202 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
203 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
204 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
205 - </attributes>  
206 - </connection>  
207 - <connection>  
208 - <name>bus_control_variable</name>  
209 - <server>&#x24;&#x7b;v_db_ip&#x7d;</server>  
210 - <type>MYSQL</type>  
211 - <access>Native</access>  
212 - <database>&#x24;&#x7b;v_db_dname&#x7d;</database>  
213 - <port>3306</port>  
214 - <username>&#x24;&#x7b;v_db_uname&#x7d;</username>  
215 - <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>  
216 - <servername/>  
217 - <data_tablespace/>  
218 - <index_tablespace/>  
219 - <attributes>  
220 - <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute>  
221 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
222 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
223 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
224 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
225 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
226 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
227 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
228 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
229 - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>  
230 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
231 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
232 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
233 - </attributes>  
234 - </connection>  
235 - <connection>  
236 - <name>bus_control_&#x516c;&#x53f8;_201</name>  
237 - <server>localhost</server>  
238 - <type>MYSQL</type>  
239 - <access>Native</access>  
240 - <database>control</database>  
241 - <port>3306</port>  
242 - <username>root</username>  
243 - <password>Encrypted </password>  
244 - <servername/>  
245 - <data_tablespace/>  
246 - <index_tablespace/>  
247 - <attributes>  
248 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
249 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
250 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
251 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
252 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
253 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
254 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
255 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
256 - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>  
257 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
258 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
259 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
260 - </attributes>  
261 - </connection>  
262 - <connection>  
263 - <name>bus_control_&#x672c;&#x673a;</name>  
264 - <server>localhost</server>  
265 - <type>MYSQL</type>  
266 - <access>Native</access>  
267 - <database>control</database>  
268 - <port>3306</port>  
269 - <username>root</username>  
270 - <password>Encrypted </password>  
271 - <servername/>  
272 - <data_tablespace/>  
273 - <index_tablespace/>  
274 - <attributes>  
275 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
276 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
277 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
278 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
279 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
280 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
281 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
282 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
283 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
284 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
285 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
286 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
287 - </attributes>  
288 - </connection>  
289 - <connection>  
290 - <name>xlab_mysql_youle</name>  
291 - <server>101.231.124.8</server>  
292 - <type>MYSQL</type>  
293 - <access>Native</access>  
294 - <database>xlab_youle</database>  
295 - <port>45687</port>  
296 - <username>xlab-youle</username>  
297 - <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>  
298 - <servername/>  
299 - <data_tablespace/>  
300 - <index_tablespace/>  
301 - <attributes>  
302 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
303 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
304 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
305 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
306 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
307 - <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>  
308 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
309 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
310 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
311 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>  
312 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>  
313 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
314 - </attributes>  
315 - </connection>  
316 - <connection>  
317 - <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>  
318 - <server>localhost</server>  
319 - <type>MYSQL</type>  
320 - <access>Native</access>  
321 - <database>xlab_youle</database>  
322 - <port>3306</port>  
323 - <username>root</username>  
324 - <password>Encrypted </password>  
325 - <servername/>  
326 - <data_tablespace/>  
327 - <index_tablespace/>  
328 - <attributes>  
329 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
330 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
331 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
332 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
333 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
334 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
335 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
336 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
337 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
338 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>  
339 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>  
340 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
341 - </attributes>  
342 - </connection>  
343 - <connection>  
344 - <name>xlab_youle</name>  
345 - <server/>  
346 - <type>MYSQL</type>  
347 - <access>JNDI</access>  
348 - <database>xlab_youle</database>  
349 - <port>1521</port>  
350 - <username/>  
351 - <password>Encrypted </password>  
352 - <servername/>  
353 - <data_tablespace/>  
354 - <index_tablespace/>  
355 - <attributes>  
356 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
357 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
358 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
359 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
360 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
361 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
362 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
363 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
364 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
365 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
366 - </attributes>  
367 - </connection>  
368 - <order>  
369 - <hop> <from>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;Excel&#x8f93;&#x5165;</from><to>&#x73ed;&#x6b21;&#x6570;&#x636e;&#x8303;&#x5f0f;&#x5316;</to><enabled>Y</enabled> </hop>  
370 - <hop> <from>&#x6dfb;&#x52a0;&#x53d1;&#x8f66;&#x987a;&#x5e8f;&#x53f7;</from><to>&#x8fc7;&#x6ee4;&#x8bb0;&#x5f55;&#xff08;&#x53d1;&#x8f66;&#x65f6;&#x95f4;&#x4e3a;&#x7a7a;&#xff09;</to><enabled>Y</enabled> </hop>  
371 - <hop> <from>&#x8fc7;&#x6ee4;&#x8bb0;&#x5f55;&#xff08;&#x53d1;&#x8f66;&#x65f6;&#x95f4;&#x4e3a;&#x7a7a;&#xff09;</from><to>&#x6dfb;&#x52a0;&#x5bf9;&#x5e94;&#x73ed;&#x6b21;&#x6570;</to><enabled>Y</enabled> </hop>  
372 - <hop> <from>&#x6dfb;&#x52a0;&#x5bf9;&#x5e94;&#x73ed;&#x6b21;&#x6570;</from><to>&#x5904;&#x7406;&#x6570;&#x636e;</to><enabled>Y</enabled> </hop>  
373 - <hop> <from>&#x5904;&#x7406;&#x6570;&#x636e;</from><to>&#x5206;&#x7ec4;&#x5404;&#x4e2a;&#x8def;&#x724c;&#x7684;&#x7ad9;</to><enabled>Y</enabled> </hop>  
374 - <hop> <from>&#x67e5;&#x627e;&#x65f6;&#x523b;&#x8868;&#x57fa;&#x7840;&#x4fe1;&#x606f;&#x5173;&#x8054;</from><to>&#x67e5;&#x627e;&#x8def;&#x724c;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>  
375 - <hop> <from>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x5173;&#x8054;</from><to>&#x67e5;&#x627e;&#x65f6;&#x523b;&#x8868;&#x57fa;&#x7840;&#x4fe1;&#x606f;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>  
376 - <hop> <from>&#x4e0a;&#x4e0b;&#x884c;&#x5b57;&#x5178;</from><to>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178;</to><enabled>Y</enabled> </hop>  
377 - <hop> <from>&#x4e0a;&#x4e0b;&#x884c;&#x5b57;&#x5178; 2</from><to>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178; 2</to><enabled>Y</enabled> </hop>  
378 - <hop> <from>&#x4e0a;&#x4e0b;&#x884c;&#x5b57;&#x5178; 3</from><to>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178; 3</to><enabled>Y</enabled> </hop>  
379 - <hop> <from>&#x5339;&#x914d;&#x4e0a;&#x4e0b;&#x884c;&#x6b63;&#x5e38;&#x73ed;&#x6b21;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</from><to>&#x7c7b;&#x578b;&#x4fee;&#x6b63;</to><enabled>Y</enabled> </hop>  
380 - <hop> <from>&#x6309;&#x7167;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x8fc7;&#x6ee4;&#x6570;&#x636e;1</from><to>&#x6309;&#x7167;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x8fc7;&#x6ee4;&#x6570;&#x636e;2</to><enabled>Y</enabled> </hop>  
381 - <hop> <from>&#x6309;&#x7167;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x8fc7;&#x6ee4;&#x6570;&#x636e;1</from><to>&#x6b63;&#x5e38;&#x73ed;&#x6b21;&#x6570;&#x636e;</to><enabled>Y</enabled> </hop>  
382 - <hop> <from>&#x6309;&#x7167;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x8fc7;&#x6ee4;&#x6570;&#x636e;2</from><to>&#x51fa;&#x573a;&#x73ed;&#x6b21;&#x6570;&#x636e;</to><enabled>Y</enabled> </hop>  
383 - <hop> <from>&#x6309;&#x7167;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x8fc7;&#x6ee4;&#x6570;&#x636e;2</from><to>&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x6570;&#x636e;</to><enabled>Y</enabled> </hop>  
384 - <hop> <from>&#x67e5;&#x627e;&#x6240;&#x6709;&#x7ebf;&#x8def;&#x4e0a;&#x4e0b;&#x884c;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</from><to>&#x5339;&#x914d;&#x4e0a;&#x4e0b;&#x884c;&#x6b63;&#x5e38;&#x73ed;&#x6b21;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</to><enabled>Y</enabled> </hop>  
385 - <hop> <from>&#x67e5;&#x627e;&#x7ec8;&#x70b9;&#x7ad9;&#x5173;&#x8054;</from><to>&#x4e0a;&#x4e0b;&#x884c;&#x5b57;&#x5178;</to><enabled>Y</enabled> </hop>  
386 - <hop> <from>&#x67e5;&#x627e;&#x8d77;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x5e76;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</from><to>&#x67e5;&#x627e;&#x7ec8;&#x70b9;&#x7ad9;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>  
387 - <hop> <from>&#x6b63;&#x5e38;&#x73ed;&#x6b21;_&#x5904;&#x7406;&#x6570;&#x636e;</from><to>&#x67e5;&#x627e;&#x8d77;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x5e76;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</to><enabled>Y</enabled> </hop>  
388 - <hop> <from>&#x6b63;&#x5e38;&#x73ed;&#x6b21;&#x6570;&#x636e;</from><to>&#x6b63;&#x5e38;&#x73ed;&#x6b21;_&#x5904;&#x7406;&#x6570;&#x636e;</to><enabled>Y</enabled> </hop>  
389 - <hop> <from>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178;</from><to>&#x67e5;&#x627e;&#x6240;&#x6709;&#x7ebf;&#x8def;&#x4e0a;&#x4e0b;&#x884c;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</to><enabled>Y</enabled> </hop>  
390 - <hop> <from>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178; 2</from><to>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x51fa;&#x573a;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</to><enabled>Y</enabled> </hop>  
391 - <hop> <from>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178; 3</from><to>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x8fdb;&#x573a;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</to><enabled>Y</enabled> </hop>  
392 - <hop> <from>&#x8ba1;&#x7b97;&#x73ed;&#x6b21;&#x7c7b;&#x578b;</from><to>&#x6309;&#x7167;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x8fc7;&#x6ee4;&#x6570;&#x636e;1</to><enabled>Y</enabled> </hop>  
393 - <hop> <from>&#x51fa;&#x573a;&#x73ed;&#x6b21;&#x6570;&#x636e;</from><to>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;1</to><enabled>Y</enabled> </hop>  
394 - <hop> <from>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;1</from><to>&#x51fa;&#x573a;&#x73ed;&#x6b21;_&#x786e;&#x5b9a;&#x7ec8;&#x70b9;&#x7ad9;&#x540d;&#x5b57;</to><enabled>Y</enabled> </hop>  
395 - <hop> <from>&#x51fa;&#x573a;&#x73ed;&#x6b21;_&#x786e;&#x5b9a;&#x7ec8;&#x70b9;&#x7ad9;&#x540d;&#x5b57;</from><to>&#x67e5;&#x627e;&#x51fa;&#x573a;&#x7ec8;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x5e76;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</to><enabled>Y</enabled> </hop>  
396 - <hop> <from>&#x67e5;&#x627e;&#x51fa;&#x573a;&#x7ec8;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x5e76;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</from><to>&#x4e0a;&#x4e0b;&#x884c;&#x5b57;&#x5178; 2</to><enabled>Y</enabled> </hop>  
397 - <hop> <from>&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x6570;&#x636e;</from><to>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;2</to><enabled>Y</enabled> </hop>  
398 - <hop> <from>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;2</from><to>&#x8fdb;&#x573a;&#x73ed;&#x6b21;_&#x786e;&#x5b9a;&#x8d77;&#x70b9;&#x7ad9;&#x540d;&#x5b57;</to><enabled>Y</enabled> </hop>  
399 - <hop> <from>&#x8fdb;&#x573a;&#x73ed;&#x6b21;_&#x786e;&#x5b9a;&#x8d77;&#x70b9;&#x7ad9;&#x540d;&#x5b57;</from><to>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ebf;&#x8def;&#x65b9;&#x5411;</to><enabled>Y</enabled> </hop>  
400 - <hop> <from>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ebf;&#x8def;&#x65b9;&#x5411;</from><to>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ec8;&#x70b9;&#x7ad9;&#xff0c;&#x5e76;&#x4f5c;&#x4e3a;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x7684;&#x8d77;&#x70b9;&#x7ad9;</to><enabled>Y</enabled> </hop>  
401 - <hop> <from>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</from><to>&#x6dfb;&#x52a0;&#x53d1;&#x8f66;&#x987a;&#x5e8f;&#x53f7;</to><enabled>Y</enabled> </hop>  
402 - <hop> <from>&#x5206;&#x7ec4;&#x5404;&#x4e2a;&#x8def;&#x724c;&#x7684;&#x7ad9;</from><to>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>  
403 - <hop> <from>&#x589e;&#x52a0;&#x65f6;&#x523b;&#x8868;&#x540d;&#x5b57;&#xff0c;&#x7ebf;&#x8def;&#x540d;&#x5b57;&#xff0c;&#x505c;&#x8f66;&#x573a;&#x540d;&#x5b57;</from><to>&#x8bb0;&#x5f55;&#x5173;&#x8054; &#x28;&#x7b1b;&#x5361;&#x5c14;&#x8f93;&#x51fa;&#x29;</to><enabled>Y</enabled> </hop>  
404 - <hop> <from>&#x73ed;&#x6b21;&#x6570;&#x636e;&#x8303;&#x5f0f;&#x5316;</from><to>&#x8bb0;&#x5f55;&#x5173;&#x8054; &#x28;&#x7b1b;&#x5361;&#x5c14;&#x8f93;&#x51fa;&#x29;</to><enabled>Y</enabled> </hop>  
405 - <hop> <from>&#x8bb0;&#x5f55;&#x5173;&#x8054; &#x28;&#x7b1b;&#x5361;&#x5c14;&#x8f93;&#x51fa;&#x29;</from><to>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</to><enabled>Y</enabled> </hop>  
406 - <hop> <from>&#x7c7b;&#x578b;&#x4fee;&#x6b63;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail</to><enabled>Y</enabled> </hop>  
407 - <hop> <from>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ec8;&#x70b9;&#x7ad9;&#xff0c;&#x5e76;&#x4f5c;&#x4e3a;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x7684;&#x8d77;&#x70b9;&#x7ad9;</from><to>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x8d77;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</to><enabled>Y</enabled> </hop>  
408 - <hop> <from>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x8d77;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</from><to>&#x4e0a;&#x4e0b;&#x884c;&#x5b57;&#x5178; 3</to><enabled>Y</enabled> </hop>  
409 - <hop> <from>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x51fa;&#x573a;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</from><to>&#x5339;&#x914d;&#x51fa;&#x573a;&#x73ed;&#x6b21;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</to><enabled>Y</enabled> </hop>  
410 - <hop> <from>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x8fdb;&#x573a;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</from><to>&#x5339;&#x914d;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</to><enabled>Y</enabled> </hop>  
411 - <hop> <from>&#x5339;&#x914d;&#x51fa;&#x573a;&#x73ed;&#x6b21;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</from><to>&#x4e0a;&#x4e0b;&#x884c;NULL&#x5224;&#x5b9a;</to><enabled>Y</enabled> </hop>  
412 - <hop> <from>&#x4e0a;&#x4e0b;&#x884c;NULL&#x5224;&#x5b9a;</from><to>&#x7c7b;&#x578b;&#x4fee;&#x6b63; 2</to><enabled>Y</enabled> </hop>  
413 - <hop> <from>&#x7c7b;&#x578b;&#x4fee;&#x6b63; 2</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail 2</to><enabled>Y</enabled> </hop>  
414 - <hop> <from>&#x5339;&#x914d;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</from><to>&#x4e0a;&#x4e0b;&#x884c;&#x5224;&#x5b9a; 2</to><enabled>Y</enabled> </hop>  
415 - <hop> <from>&#x4e0a;&#x4e0b;&#x884c;&#x5224;&#x5b9a; 2</from><to>&#x7c7b;&#x578b;&#x4fee;&#x6b63; 3</to><enabled>Y</enabled> </hop>  
416 - <hop> <from>&#x7c7b;&#x578b;&#x4fee;&#x6b63; 3</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail 3</to><enabled>Y</enabled> </hop>  
417 - <hop> <from>&#x67e5;&#x627e;&#x8def;&#x724c;&#x5173;&#x8054;</from><to>&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;&#x7c7b;&#x578b;</to><enabled>Y</enabled> </hop>  
418 - <hop> <from>&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;&#x7c7b;&#x578b;</from><to>&#x8ba1;&#x7b97;&#x73ed;&#x6b21;&#x7c7b;&#x578b;</to><enabled>Y</enabled> </hop>  
419 - <hop> <from>&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;&#x7c7b;&#x578b;</from><to>&#x66f4;&#x65b0;&#x65f6;&#x523b;&#x8868;&#x4e3b;&#x8868;&#x7248;&#x672c;</to><enabled>Y</enabled> </hop>  
420 - </order>  
421 - <step>  
422 - <name>&#x4e0a;&#x4e0b;&#x884c;NULL&#x5224;&#x5b9a;</name>  
423 - <type>IfNull</type>  
424 - <description/>  
425 - <distribute>Y</distribute>  
426 - <custom_distribution/>  
427 - <copies>1</copies>  
428 - <partitioning>  
429 - <method>none</method>  
430 - <schema_name/>  
431 - </partitioning>  
432 - <replaceAllByValue/>  
433 - <replaceAllMask/>  
434 - <selectFields>Y</selectFields>  
435 - <selectValuesType>N</selectValuesType>  
436 - <setEmptyStringAll>N</setEmptyStringAll>  
437 - <valuetypes>  
438 - </valuetypes>  
439 - <fields>  
440 - <field>  
441 - <name>sxx</name>  
442 - <value>0</value>  
443 - <mask/>  
444 - <set_empty_string>N</set_empty_string>  
445 - </field>  
446 - </fields>  
447 - <cluster_schema/>  
448 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
449 - <xloc>335</xloc>  
450 - <yloc>938</yloc>  
451 - <draw>Y</draw>  
452 - </GUI>  
453 - </step>  
454 -  
455 - <step>  
456 - <name>&#x4e0a;&#x4e0b;&#x884c;&#x5224;&#x5b9a; 2</name>  
457 - <type>IfNull</type>  
458 - <description/>  
459 - <distribute>Y</distribute>  
460 - <custom_distribution/>  
461 - <copies>1</copies>  
462 - <partitioning>  
463 - <method>none</method>  
464 - <schema_name/>  
465 - </partitioning>  
466 - <replaceAllByValue/>  
467 - <replaceAllMask/>  
468 - <selectFields>Y</selectFields>  
469 - <selectValuesType>N</selectValuesType>  
470 - <setEmptyStringAll>N</setEmptyStringAll>  
471 - <valuetypes>  
472 - </valuetypes>  
473 - <fields>  
474 - <field>  
475 - <name>sxx2</name>  
476 - <value>0</value>  
477 - <mask/>  
478 - <set_empty_string>N</set_empty_string>  
479 - </field>  
480 - </fields>  
481 - <cluster_schema/>  
482 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
483 - <xloc>804</xloc>  
484 - <yloc>1081</yloc>  
485 - <draw>Y</draw>  
486 - </GUI>  
487 - </step>  
488 -  
489 - <step>  
490 - <name>&#x4e0a;&#x4e0b;&#x884c;&#x5b57;&#x5178;</name>  
491 - <type>ValueMapper</type>  
492 - <description/>  
493 - <distribute>Y</distribute>  
494 - <custom_distribution/>  
495 - <copies>1</copies>  
496 - <partitioning>  
497 - <method>none</method>  
498 - <schema_name/>  
499 - </partitioning>  
500 - <field_to_use>sxx</field_to_use>  
501 - <target_field>sxx_desc</target_field>  
502 - <non_match_default/>  
503 - <fields>  
504 - <field>  
505 - <source_value>0</source_value>  
506 - <target_value>&#x4e0a;&#x884c;</target_value>  
507 - </field>  
508 - <field>  
509 - <source_value>1</source_value>  
510 - <target_value>&#x4e0b;&#x884c;</target_value>  
511 - </field>  
512 - </fields>  
513 - <cluster_schema/>  
514 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
515 - <xloc>147</xloc>  
516 - <yloc>403</yloc>  
517 - <draw>Y</draw>  
518 - </GUI>  
519 - </step>  
520 -  
521 - <step>  
522 - <name>&#x4e0a;&#x4e0b;&#x884c;&#x5b57;&#x5178; 2</name>  
523 - <type>ValueMapper</type>  
524 - <description/>  
525 - <distribute>Y</distribute>  
526 - <custom_distribution/>  
527 - <copies>1</copies>  
528 - <partitioning>  
529 - <method>none</method>  
530 - <schema_name/>  
531 - </partitioning>  
532 - <field_to_use>sxx</field_to_use>  
533 - <target_field>sxx_desc</target_field>  
534 - <non_match_default/>  
535 - <fields>  
536 - <field>  
537 - <source_value>0</source_value>  
538 - <target_value>&#x4e0a;&#x884c;</target_value>  
539 - </field>  
540 - <field>  
541 - <source_value>1</source_value>  
542 - <target_value>&#x4e0b;&#x884c;</target_value>  
543 - </field>  
544 - </fields>  
545 - <cluster_schema/>  
546 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
547 - <xloc>331</xloc>  
548 - <yloc>598</yloc>  
549 - <draw>Y</draw>  
550 - </GUI>  
551 - </step>  
552 -  
553 - <step>  
554 - <name>&#x4e0a;&#x4e0b;&#x884c;&#x5b57;&#x5178; 3</name>  
555 - <type>ValueMapper</type>  
556 - <description/>  
557 - <distribute>Y</distribute>  
558 - <custom_distribution/>  
559 - <copies>1</copies>  
560 - <partitioning>  
561 - <method>none</method>  
562 - <schema_name/>  
563 - </partitioning>  
564 - <field_to_use>sxx</field_to_use>  
565 - <target_field>sxx_desc</target_field>  
566 - <non_match_default/>  
567 - <fields>  
568 - <field>  
569 - <source_value>0</source_value>  
570 - <target_value>&#x4e0a;&#x884c;</target_value>  
571 - </field>  
572 - <field>  
573 - <source_value>1</source_value>  
574 - <target_value>&#x4e0b;&#x884c;</target_value>  
575 - </field>  
576 - </fields>  
577 - <cluster_schema/>  
578 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
579 - <xloc>553</xloc>  
580 - <yloc>859</yloc>  
581 - <draw>Y</draw>  
582 - </GUI>  
583 - </step>  
584 -  
585 - <step>  
586 - <name>&#x51fa;&#x573a;&#x73ed;&#x6b21;_&#x786e;&#x5b9a;&#x7ec8;&#x70b9;&#x7ad9;&#x540d;&#x5b57;</name>  
587 - <type>ScriptValueMod</type>  
588 - <description/>  
589 - <distribute>Y</distribute>  
590 - <custom_distribution/>  
591 - <copies>1</copies>  
592 - <partitioning>  
593 - <method>none</method>  
594 - <schema_name/>  
595 - </partitioning>  
596 - <compatible>N</compatible>  
597 - <optimizationLevel>9</optimizationLevel>  
598 - <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>  
599 - <jsScript_name>Script 1</jsScript_name>  
600 - <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x6dfb;&#x52a0;&#x7ad9;&#x70b9;&#x6807;&#x8bc6;&#xa;var cc_groups &#x3d; qdzgroups.split&#x28;&#x22;,&#x22;&#x29;&#x3b; &#x2f;&#x2f; &#x6240;&#x6709;&#x73ed;&#x6b21;&#x8d77;&#x70b9;&#x7ad9;&#x6570;&#x7ec4;&#xa;var zdzname &#x3d; cc_groups&#x5b;gno&#x5d;&#x3b; &#x2f;&#x2f; &#x51fa;&#x573a;&#x73ed;&#x6b21;&#x7684;&#x7ec8;&#x70b9;&#x7ad9;&#x662f;&#x4e0b;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x8d77;&#x59cb;&#x7ad9;&#xa;var endZdtype &#x3d; &#x27;B&#x27;&#x3b;&#xa;&#x2f;&#x2f; var endZdtype &#x3d; &#x27;E&#x27;&#x3b;&#xa;&#xa;var destory &#x3d; 0&#x3b; &#x2f;&#x2f; &#x672a;&#x64a4;&#x9500;flag</jsScript_script>  
601 - </jsScript> </jsScripts> <fields> <field> <name>zdzname</name>  
602 - <rename>zdzname</rename>  
603 - <type>String</type>  
604 - <length>-1</length>  
605 - <precision>-1</precision>  
606 - <replace>N</replace>  
607 - </field> <field> <name>endZdtype</name>  
608 - <rename>endZdtype</rename>  
609 - <type>String</type>  
610 - <length>-1</length>  
611 - <precision>-1</precision>  
612 - <replace>N</replace>  
613 - </field> <field> <name>destory</name>  
614 - <rename>destory</rename>  
615 - <type>Integer</type>  
616 - <length>-1</length>  
617 - <precision>-1</precision>  
618 - <replace>N</replace>  
619 - </field> </fields> <cluster_schema/>  
620 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
621 - <xloc>575</xloc>  
622 - <yloc>502</yloc>  
623 - <draw>Y</draw>  
624 - </GUI>  
625 - </step>  
626 -  
627 - <step>  
628 - <name>&#x51fa;&#x573a;&#x73ed;&#x6b21;&#x6570;&#x636e;</name>  
629 - <type>Dummy</type>  
630 - <description/>  
631 - <distribute>Y</distribute>  
632 - <custom_distribution/>  
633 - <copies>1</copies>  
634 - <partitioning>  
635 - <method>none</method>  
636 - <schema_name/>  
637 - </partitioning>  
638 - <cluster_schema/>  
639 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
640 - <xloc>869</xloc>  
641 - <yloc>504</yloc>  
642 - <draw>Y</draw>  
643 - </GUI>  
644 - </step>  
645 -  
646 - <step>  
647 - <name>&#x5206;&#x7ec4;&#x5404;&#x4e2a;&#x8def;&#x724c;&#x7684;&#x7ad9;</name>  
648 - <type>GroupBy</type>  
649 - <description/>  
650 - <distribute>Y</distribute>  
651 - <custom_distribution/>  
652 - <copies>1</copies>  
653 - <partitioning>  
654 - <method>none</method>  
655 - <schema_name/>  
656 - </partitioning>  
657 - <all_rows>Y</all_rows>  
658 - <ignore_aggregate>N</ignore_aggregate>  
659 - <field_ignore/>  
660 - <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>  
661 - <prefix>grp</prefix>  
662 - <add_linenr>Y</add_linenr>  
663 - <linenr_fieldname>gno</linenr_fieldname>  
664 - <give_back_row>N</give_back_row>  
665 - <group>  
666 - <field>  
667 - <name>lp</name>  
668 - </field>  
669 - </group>  
670 - <fields>  
671 - <field>  
672 - <aggregate>qdzgroups</aggregate>  
673 - <subject>qdzname</subject>  
674 - <type>CONCAT_STRING</type>  
675 - <valuefield>,</valuefield>  
676 - </field>  
677 - </fields>  
678 - <cluster_schema/>  
679 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
680 - <xloc>892</xloc>  
681 - <yloc>44</yloc>  
682 - <draw>Y</draw>  
683 - </GUI>  
684 - </step>  
685 -  
686 - <step>  
687 - <name>&#x5339;&#x914d;&#x4e0a;&#x4e0b;&#x884c;&#x6b63;&#x5e38;&#x73ed;&#x6b21;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</name>  
688 - <type>ScriptValueMod</type>  
689 - <description/>  
690 - <distribute>Y</distribute>  
691 - <custom_distribution/>  
692 - <copies>1</copies>  
693 - <partitioning>  
694 - <method>none</method>  
695 - <schema_name/>  
696 - </partitioning>  
697 - <compatible>N</compatible>  
698 - <optimizationLevel>9</optimizationLevel>  
699 - <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>  
700 - <jsScript_name>Script 1</jsScript_name>  
701 - <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;var jhlc&#x3b; &#x2f;&#x2f; &#x8ba1;&#x5212;&#x91cc;&#x7a0b;&#xa;var bcsj&#x3b; &#x2f;&#x2f; &#x73ed;&#x6b21;&#x65f6;&#x95f4;&#xa;&#xa;&#x2f;&#x2f; &#x65f6;&#x95f4;&#x8303;&#x56f4;&#x6b63;&#x5219;&#x8868;&#x8fbe;&#x5f0f;&#xa;var timeRex &#x3d; &#x2f;&#x5e;&#x28;&#x5b;01&#x5d;&#x3f;&#x5b;0-9&#x5d;&#x7c;2&#x5b;0-3&#x5d;&#x29;&#x3a;&#x5b;0-5&#x5d;&#x5b;0-9&#x5d;&#x24;&#x2f;&#x3b;&#xa;&#x2f;&#x2f; &#x53d1;&#x8f66;&#x65f6;&#x95f4;&#x8f6c;&#x6362;&#x6210;&#x65e5;&#x671f;&#xa;var fcsj_hour &#x3d; str2num&#x28;sendtime_calcu.substr&#x28;0, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa;var fcsj_min &#x3d; str2num&#x28;sendtime_calcu.substr&#x28;3, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa;var fcsj_date &#x3d; new Date&#x28;2000,1,1,fcsj_hour,fcsj_min,0&#x29;&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x5224;&#x5b9a;&#x662f;&#x5426;&#x65e9;&#x9ad8;&#x5cf0;&#xa;var isZgf &#x3d; false&#x3b;&#xa;if &#x28;timeRex.test&#x28;early_start_time&#x29; &#x26;&#x26; timeRex.test&#x28;early_end_time&#x29; &#x26;&#x26; early_up_time &#x21;&#x3d; null &#x26;&#x26; early_down_time &#x21;&#x3d; null&#x29; &#x7b;&#xa; var early_s_hour &#x3d; str2num&#x28;early_start_time.substr&#x28;0, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa; var early_s_min &#x3d; str2num&#x28;early_start_time.substr&#x28;3, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa; var early_s_date &#x3d; new Date&#x28;2000,1,1,early_s_hour,early_s_min,0&#x29;&#x3b;&#xa;&#xa; var early_e_hour &#x3d; str2num&#x28;early_end_time.substr&#x28;0, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa; var early_e_min &#x3d; str2num&#x28;early_end_time.substr&#x28;3, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa; var early_e_date &#x3d; new Date&#x28;2000,1,1,early_e_hour,early_e_min,0&#x29;&#x3b;&#xa;&#xa; if &#x28;fcsj_date &#x3e;&#x3d; early_s_date &#x26;&#x26; fcsj_date &#x3c;&#x3d; early_e_date&#x29; &#x7b;&#xa; isZgf &#x3d; true&#x3b;&#xa; &#x7d;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x5224;&#x5b9a;&#x662f;&#x5426;&#x665a;&#x9ad8;&#x5cf0;&#xa;var isWgf &#x3d; false&#x3b;&#xa;if &#x28;timeRex.test&#x28;late_start_time&#x29; &#x26;&#x26; timeRex.test&#x28;late_end_time&#x29; &#x26;&#x26; late_up_time &#x21;&#x3d; null &#x26;&#x26; late_down_time &#x21;&#x3d; null&#x29; &#x7b;&#xa; var late_s_hour &#x3d; str2num&#x28;late_start_time.substr&#x28;0, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa; var late_s_min &#x3d; str2num&#x28;late_start_time.substr&#x28;3, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa; var late_s_date &#x3d; new Date&#x28;2000,1,1,late_s_hour,late_s_min,0&#x29;&#x3b;&#xa;&#xa; var late_e_hour &#x3d; str2num&#x28;late_end_time.substr&#x28;0, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa; var late_e_min &#x3d; str2num&#x28;late_end_time.substr&#x28;3, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa; var late_e_date &#x3d; new Date&#x28;2000,1,1,late_e_hour,late_e_min,0&#x29;&#x3b;&#xa;&#xa; if &#x28;fcsj_date &#x3e;&#x3d; late_s_date &#x26;&#x26; fcsj_date &#x3c;&#x3d; late_e_date&#x29; &#x7b;&#xa; isWgf &#x3d; true&#x3b;&#xa; &#x7d;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x5224;&#x5b9a;&#x662f;&#x5426;&#x665a;&#x9ad8;&#x5cf0;&#xa;&#xa;if &#x28;sxx &#x3d;&#x3d; 0&#x29; &#x7b; &#x2f;&#x2f; &#x4e0a;&#x884c;&#xa; if &#x28;isZgf&#x29; &#x7b;&#xa; jhlc &#x3d; up_mileage&#x3b;&#xa; bcsj &#x3d; early_up_time &#x21;&#x3d; 0 &#x3f; early_up_time &#x3a; up_travel_time&#x3b;&#xa; &#x7d; else if &#x28;isWgf&#x29; &#x7b;&#xa; jhlc &#x3d; up_mileage&#x3b;&#xa; bcsj &#x3d; late_up_time &#x21;&#x3d; 0 &#x3f; late_up_time &#x3a; up_travel_time&#x3b;&#xa; &#x7d; else &#x7b;&#xa; jhlc &#x3d; up_mileage&#x3b;&#xa; bcsj &#x3d; up_travel_time&#x3b;&#xa; &#x7d;&#xa;&#x7d; else &#x7b; &#x2f;&#x2f; sxx &#x3d;&#x3d; 1 &#x4e0b;&#x884c;&#xa; if &#x28;isZgf&#x29; &#x7b;&#xa; jhlc &#x3d; down_mileage&#x3b;&#xa; bcsj &#x3d; early_down_time &#x21;&#x3d; 0 &#x3f; early_down_time &#x3a; down_travel_time&#x3b;&#xa; &#x7d; else if &#x28;isWgf&#x29; &#x7b;&#xa; jhlc &#x3d; down_mileage&#x3b;&#xa; bcsj &#x3d; late_down_time &#x21;&#x3d; 0 &#x3f; late_down_time &#x3a; down_travel_time&#x3b;&#xa; &#x7d; else &#x7b;&#xa; jhlc &#x3d; down_mileage&#x3b;&#xa; bcsj &#x3d; down_travel_time&#x3b;&#xa; &#x7d;&#xa;&#x7d;</jsScript_script>  
702 - </jsScript> </jsScripts> <fields> <field> <name>jhlc</name>  
703 - <rename>jhlc</rename>  
704 - <type>String</type>  
705 - <length>-1</length>  
706 - <precision>-1</precision>  
707 - <replace>N</replace>  
708 - </field> <field> <name>bcsj</name>  
709 - <rename>bcsj</rename>  
710 - <type>String</type>  
711 - <length>-1</length>  
712 - <precision>-1</precision>  
713 - <replace>N</replace>  
714 - </field> </fields> <cluster_schema/>  
715 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
716 - <xloc>148</xloc>  
717 - <yloc>674</yloc>  
718 - <draw>Y</draw>  
719 - </GUI>  
720 - </step>  
721 -  
722 - <step>  
723 - <name>&#x5339;&#x914d;&#x51fa;&#x573a;&#x73ed;&#x6b21;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</name>  
724 - <type>ScriptValueMod</type>  
725 - <description/>  
726 - <distribute>Y</distribute>  
727 - <custom_distribution/>  
728 - <copies>1</copies>  
729 - <partitioning>  
730 - <method>none</method>  
731 - <schema_name/>  
732 - </partitioning>  
733 - <compatible>N</compatible>  
734 - <optimizationLevel>9</optimizationLevel>  
735 - <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>  
736 - <jsScript_name>Script 1</jsScript_name>  
737 - <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;var out_mileage&#x3b; &#x2f;&#x2f; &#x51fa;&#x573a;&#x8ba1;&#x5212;&#x91cc;&#x7a0b;&#xa;var out_time&#x3b; &#x2f;&#x2f; &#x51fa;&#x573a;&#x8ba1;&#x5212;&#x65f6;&#x95f4;&#xa;&#xa;if &#x28;sxx &#x3d;&#x3d; 0&#x29; &#x7b; &#x2f;&#x2f; &#x4e0a;&#x884c;&#xa; out_mileage &#x3d; up_out_mileage&#x3b;&#xa; out_time &#x3d; up_out_timer&#x3b;&#xa;&#x7d; else &#x7b; &#x2f;&#x2f; sxx &#x3d;&#x3d; 1 &#x4e0b;&#x884c;&#xa; out_mileage &#x3d; down_out_mileage&#x3b;&#xa; out_time &#x3d; down_out_timer&#x3b;&#xa;&#x7d;&#xa;&#xa;&#xa;&#xa;</jsScript_script>  
738 - </jsScript> </jsScripts> <fields> <field> <name>out_mileage</name>  
739 - <rename>out_mileage</rename>  
740 - <type>String</type>  
741 - <length>-1</length>  
742 - <precision>-1</precision>  
743 - <replace>N</replace>  
744 - </field> <field> <name>out_time</name>  
745 - <rename>out_time</rename>  
746 - <type>String</type>  
747 - <length>-1</length>  
748 - <precision>-1</precision>  
749 - <replace>N</replace>  
750 - </field> </fields> <cluster_schema/>  
751 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
752 - <xloc>336</xloc>  
753 - <yloc>862</yloc>  
754 - <draw>Y</draw>  
755 - </GUI>  
756 - </step>  
757 -  
758 - <step>  
759 - <name>&#x5339;&#x914d;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</name>  
760 - <type>ScriptValueMod</type>  
761 - <description/>  
762 - <distribute>Y</distribute>  
763 - <custom_distribution/>  
764 - <copies>1</copies>  
765 - <partitioning>  
766 - <method>none</method>  
767 - <schema_name/>  
768 - </partitioning>  
769 - <compatible>N</compatible>  
770 - <optimizationLevel>9</optimizationLevel>  
771 - <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>  
772 - <jsScript_name>Script 1</jsScript_name>  
773 - <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;var parade_mileage&#x3b; &#x2f;&#x2f; &#x8fdb;&#x573a;&#x8ba1;&#x5212;&#x91cc;&#x7a0b;&#xa;var parade_time&#x3b; &#x2f;&#x2f; &#x8fdb;&#x573a;&#x8ba1;&#x5212;&#x65f6;&#x95f4;&#xa;&#xa;if &#x28;sxx2 &#x3d;&#x3d; 0&#x29; &#x7b; &#x2f;&#x2f; &#x4e0a;&#x884c;&#xa; parade_mileage &#x3d; up_in_mileage&#x3b;&#xa; parade_time &#x3d; up_in_timer&#x3b;&#xa;&#x7d; else &#x7b; &#x2f;&#x2f; sxx &#x3d;&#x3d; 1 &#x4e0b;&#x884c;&#xa; parade_mileage &#x3d; down_in_mileage&#x3b;&#xa; parade_time &#x3d; down_in_timer&#x3b;&#xa;&#x7d;&#xa;&#xa;&#xa;&#xa;</jsScript_script>  
774 - </jsScript> </jsScripts> <fields> <field> <name>parade_mileage</name>  
775 - <rename>parade_mileage</rename>  
776 - <type>String</type>  
777 - <length>-1</length>  
778 - <precision>-1</precision>  
779 - <replace>N</replace>  
780 - </field> <field> <name>parade_time</name>  
781 - <rename>parade_time</rename>  
782 - <type>String</type>  
783 - <length>-1</length>  
784 - <precision>-1</precision>  
785 - <replace>N</replace>  
786 - </field> </fields> <cluster_schema/>  
787 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
788 - <xloc>726</xloc>  
789 - <yloc>1005</yloc>  
790 - <draw>Y</draw>  
791 - </GUI>  
792 - </step>  
793 -  
794 - <step>  
795 - <name>&#x589e;&#x52a0;&#x65f6;&#x523b;&#x8868;&#x540d;&#x5b57;&#xff0c;&#x7ebf;&#x8def;&#x540d;&#x5b57;&#xff0c;&#x505c;&#x8f66;&#x573a;&#x540d;&#x5b57;</name>  
796 - <type>DataGrid</type>  
797 - <description/>  
798 - <distribute>Y</distribute>  
799 - <custom_distribution/>  
800 - <copies>1</copies>  
801 - <partitioning>  
802 - <method>none</method>  
803 - <schema_name/>  
804 - </partitioning>  
805 - <fields>  
806 - </fields>  
807 - <data>  
808 - <line> </line>  
809 - </data>  
810 - <cluster_schema/>  
811 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
812 - <xloc>110</xloc>  
813 - <yloc>133</yloc>  
814 - <draw>Y</draw>  
815 - </GUI>  
816 - </step>  
817 -  
818 - <step>  
819 - <name>&#x5904;&#x7406;&#x6570;&#x636e;</name>  
820 - <type>ScriptValueMod</type>  
821 - <description/>  
822 - <distribute>Y</distribute>  
823 - <custom_distribution/>  
824 - <copies>1</copies>  
825 - <partitioning>  
826 - <method>none</method>  
827 - <schema_name/>  
828 - </partitioning>  
829 - <compatible>N</compatible>  
830 - <optimizationLevel>9</optimizationLevel>  
831 - <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>  
832 - <jsScript_name>Script 1</jsScript_name>  
833 - <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x5982;&#x679c;&#x7ad9;&#x540d;&#x4e2d;&#x6709;&#x7c7b;&#x4f3c;-&#x3e;&#x7b;&#x6570;&#x5b57;&#x7d;&#xff0c;&#x4f7f;&#x7528;&#x6b63;&#x5219;&#x8868;&#x8fbe;&#x5f0f;&#x8fc7;&#x6ee4;&#x6389;&#xa;qdzname &#x3d; qdzname.replace&#x28;&#x2f;-&#x3e;&#x5c;d&#x2b;&#x2f;g,&#x27;&#x27;&#x29;&#x3b;&#xa;if &#x28;qdzname &#x21;&#x3d; &#x22;&#x51fa;&#x573a;&#x22; &#x26;&#x26; qdzname &#x21;&#x3d; &#x22;&#x8fdb;&#x573a;&#x22;&#x29; &#x7b;&#xa; qdzname &#x3d; qdzname &#x2b; &#x22;&#x25;&#x22;&#x3b; &#x2f;&#x2f; &#x6a21;&#x7cca;&#x5339;&#x914d;&#x6807;&#x8bc6;&#x7b26;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; sendtime&#x5904;&#x7406;&#xff0c;hhmm&#xff0c;hh&#x3a;mm&#xff0c;hh,mm&#xa;var sendtime_calcu &#x3d; sendtime.replace&#x28;&#x2f;&#x5c;s&#x2f;g, &#x22;&#x22;&#x29;&#x3b;&#xa;if &#x28;sendtime.length &#x3d;&#x3d; 5&#x29; &#x7b; &#x2f;&#x2f; &#x6700;&#x957f;&#x683c;&#x5f0f;&#xff0c;&#x5305;&#x62ec;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x7edf;&#x4e00;&#x628a;&#x5206;&#x9694;&#x7b26;&#x66ff;&#x6362;&#x6210;&#x5192;&#x53f7;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 2&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;3, 2&#x29;&#x3b;&#xa;&#x7d; else if &#x28;sendtime.length &#x3d;&#x3d; 4&#x29; &#x7b;&#xa; if &#x28;sendtime.indexOf&#x28;&#x22;&#x3a;&#x22;&#x29; &#x3e; 0&#x29; &#x7b; &#x2f;&#x2f; &#x5192;&#x53f7;&#x5206;&#x9694;&#xff0c;&#x65e0;&#x9700;&#x4fee;&#x6539;&#xa; sendtime_calcu &#x3d; sendtime&#x3b;&#xa; &#x7d; else if &#x28;sendtime.indexOf&#x28;&#x22;,&#x22;&#x29; &#x3e; 0&#x29; &#x7b; &#x2f;&#x2f; &#x9017;&#x53f7;&#x5206;&#x9694;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 1&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;2, 2&#x29;&#x3b;&#xa; &#x7d; else &#x7b; &#x2f;&#x2f; &#x65e0;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 2&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;2, 2&#x29;&#x3b;&#xa; &#x7d;&#xa;&#x7d; else if &#x28;sendtime.length &#x3d;&#x3d; 3&#x29; &#x7b; &#x2f;&#x2f; &#x65e0;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime.substr&#x28;0, 1&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime.substr&#x28;1, 2&#x29;&#x3b;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x5168;&#x90e8;&#x4fee;&#x6b63;&#x5b8c;&#x6bd5;&#x540e;&#xff0c;&#x5982;&#x679c;&#x957f;&#x5ea6;&#x4e0d;&#x662f;5&#xff0c;&#x524d;&#x9762;&#x8865;0&#xa;if &#x28;sendtime_calcu.length &#x21;&#x3d; 5&#x29; &#x7b;&#xa; sendtime_calcu &#x3d; &#x22;0&#x22; &#x2b; sendtime_calcu&#x3b;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;&#x5206;&#x73ed;&#xa;var isfb &#x3d; 0&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;&#x505c;&#x9a76;&#xa;var ists &#x3d; 0&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;isCanceled&#xa;var iscanceled &#x3d; 0&#x3b;</jsScript_script>  
834 - </jsScript> </jsScripts> <fields> <field> <name>qdzname</name>  
835 - <rename>qdzname</rename>  
836 - <type>String</type>  
837 - <length>-1</length>  
838 - <precision>-1</precision>  
839 - <replace>Y</replace>  
840 - </field> <field> <name>isfb</name>  
841 - <rename>isfb</rename>  
842 - <type>Integer</type>  
843 - <length>-1</length>  
844 - <precision>-1</precision>  
845 - <replace>N</replace>  
846 - </field> <field> <name>iscanceled</name>  
847 - <rename>iscanceled</rename>  
848 - <type>Integer</type>  
849 - <length>-1</length>  
850 - <precision>-1</precision>  
851 - <replace>N</replace>  
852 - </field> <field> <name>sendtime_calcu</name>  
853 - <rename>sendtime_calcu</rename>  
854 - <type>String</type>  
855 - <length>-1</length>  
856 - <precision>-1</precision>  
857 - <replace>N</replace>  
858 - </field> <field> <name>ists</name>  
859 - <rename>ists</rename>  
860 - <type>Integer</type>  
861 - <length>-1</length>  
862 - <precision>-1</precision>  
863 - <replace>N</replace>  
864 - </field> </fields> <cluster_schema/>  
865 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
866 - <xloc>788</xloc>  
867 - <yloc>44</yloc>  
868 - <draw>Y</draw>  
869 - </GUI>  
870 - </step>  
871 -  
872 - <step>  
873 - <name>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</name>  
874 - <type>SelectValues</type>  
875 - <description/>  
876 - <distribute>Y</distribute>  
877 - <custom_distribution/>  
878 - <copies>1</copies>  
879 - <partitioning>  
880 - <method>none</method>  
881 - <schema_name/>  
882 - </partitioning>  
883 - <fields> <field> <name>&#x8def;&#x724c;</name>  
884 - <rename>lp</rename>  
885 - <length>-2</length>  
886 - <precision>-2</precision>  
887 - </field> <field> <name>&#x7ad9;&#x70b9;&#x540d;&#x79f0;</name>  
888 - <rename>qdzname</rename>  
889 - <length>-2</length>  
890 - <precision>-2</precision>  
891 - </field> <field> <name>&#x53d1;&#x8f66;&#x65f6;&#x95f4;</name>  
892 - <rename>sendtime</rename>  
893 - <length>-2</length>  
894 - <precision>-2</precision>  
895 - </field> <select_unspecified>Y</select_unspecified>  
896 - </fields> <cluster_schema/>  
897 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
898 - <xloc>444</xloc>  
899 - <yloc>131</yloc>  
900 - <draw>Y</draw>  
901 - </GUI>  
902 - </step>  
903 -  
904 - <step>  
905 - <name>&#x6309;&#x7167;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x8fc7;&#x6ee4;&#x6570;&#x636e;1</name>  
906 - <type>FilterRows</type>  
907 - <description/>  
908 - <distribute>Y</distribute>  
909 - <custom_distribution/>  
910 - <copies>1</copies>  
911 - <partitioning>  
912 - <method>none</method>  
913 - <schema_name/>  
914 - </partitioning>  
915 -<send_true_to>&#x6b63;&#x5e38;&#x73ed;&#x6b21;&#x6570;&#x636e;</send_true_to>  
916 -<send_false_to>&#x6309;&#x7167;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x8fc7;&#x6ee4;&#x6570;&#x636e;2</send_false_to>  
917 - <compare>  
918 -<condition>  
919 - <negated>N</negated>  
920 - <leftvalue>bctype</leftvalue>  
921 - <function>&#x3d;</function>  
922 - <rightvalue/>  
923 - <value><name>constant</name><type>String</type><text>&#x6b63;&#x5e38;&#x73ed;&#x6b21;</text><length>-1</length><precision>-1</precision><isnull>N</isnull><mask/></value> </condition>  
924 - </compare>  
925 - <cluster_schema/>  
926 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
927 - <xloc>860</xloc>  
928 - <yloc>401</yloc>  
929 - <draw>Y</draw>  
930 - </GUI>  
931 - </step>  
932 -  
933 - <step>  
934 - <name>&#x6309;&#x7167;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x8fc7;&#x6ee4;&#x6570;&#x636e;2</name>  
935 - <type>FilterRows</type>  
936 - <description/>  
937 - <distribute>Y</distribute>  
938 - <custom_distribution/>  
939 - <copies>1</copies>  
940 - <partitioning>  
941 - <method>none</method>  
942 - <schema_name/>  
943 - </partitioning>  
944 -<send_true_to>&#x51fa;&#x573a;&#x73ed;&#x6b21;&#x6570;&#x636e;</send_true_to>  
945 -<send_false_to>&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x6570;&#x636e;</send_false_to>  
946 - <compare>  
947 -<condition>  
948 - <negated>N</negated>  
949 - <leftvalue>bctype</leftvalue>  
950 - <function>&#x3d;</function>  
951 - <rightvalue/>  
952 - <value><name>constant</name><type>String</type><text>&#x51fa;&#x573a;</text><length>-1</length><precision>-1</precision><isnull>N</isnull><mask/></value> </condition>  
953 - </compare>  
954 - <cluster_schema/>  
955 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
956 - <xloc>995</xloc>  
957 - <yloc>503</yloc>  
958 - <draw>Y</draw>  
959 - </GUI>  
960 - </step>  
961 -  
962 - <step>  
963 - <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail</name>  
964 - <type>InsertUpdate</type>  
965 - <description/>  
966 - <distribute>Y</distribute>  
967 - <custom_distribution/>  
968 - <copies>1</copies>  
969 - <partitioning>  
970 - <method>none</method>  
971 - <schema_name/>  
972 - </partitioning>  
973 - <connection>bus_control_variable</connection>  
974 - <commit>100</commit>  
975 - <update_bypassed>N</update_bypassed>  
976 - <lookup>  
977 - <schema/>  
978 - <table>bsth_c_s_ttinfo_detail</table>  
979 - <key>  
980 - <name>xlid</name>  
981 - <field>xl</field>  
982 - <condition>&#x3d;</condition>  
983 - <name2/>  
984 - </key>  
985 - <key>  
986 - <name>ttid</name>  
987 - <field>ttinfo</field>  
988 - <condition>&#x3d;</condition>  
989 - <name2/>  
990 - </key>  
991 - <key>  
992 - <name>lpid</name>  
993 - <field>lp</field>  
994 - <condition>&#x3d;</condition>  
995 - <name2/>  
996 - </key>  
997 - <key>  
998 - <name>fcno</name>  
999 - <field>fcno</field>  
1000 - <condition>&#x3d;</condition>  
1001 - <name2/>  
1002 - </key>  
1003 - <key>  
1004 - <name>bcs</name>  
1005 - <field>bcs</field>  
1006 - <condition>&#x3d;</condition>  
1007 - <name2/>  
1008 - </key>  
1009 - <value>  
1010 - <name>lp</name>  
1011 - <rename>lpid</rename>  
1012 - <update>Y</update>  
1013 - </value>  
1014 - <value>  
1015 - <name>bc_type</name>  
1016 - <rename>bctype_code</rename>  
1017 - <update>Y</update>  
1018 - </value>  
1019 - <value>  
1020 - <name>bcs</name>  
1021 - <rename>bcs</rename>  
1022 - <update>Y</update>  
1023 - </value>  
1024 - <value>  
1025 - <name>bcsj</name>  
1026 - <rename>bcsj</rename>  
1027 - <update>Y</update>  
1028 - </value>  
1029 - <value>  
1030 - <name>fcno</name>  
1031 - <rename>fcno</rename>  
1032 - <update>Y</update>  
1033 - </value>  
1034 - <value>  
1035 - <name>jhlc</name>  
1036 - <rename>jhlc</rename>  
1037 - <update>Y</update>  
1038 - </value>  
1039 - <value>  
1040 - <name>fcsj</name>  
1041 - <rename>sendtime_calcu</rename>  
1042 - <update>Y</update>  
1043 - </value>  
1044 - <value>  
1045 - <name>ttinfo</name>  
1046 - <rename>ttid</rename>  
1047 - <update>Y</update>  
1048 - </value>  
1049 - <value>  
1050 - <name>xl</name>  
1051 - <rename>xlid</rename>  
1052 - <update>Y</update>  
1053 - </value>  
1054 - <value>  
1055 - <name>qdz</name>  
1056 - <rename>qdzid</rename>  
1057 - <update>Y</update>  
1058 - </value>  
1059 - <value>  
1060 - <name>zdz</name>  
1061 - <rename>zdzid</rename>  
1062 - <update>Y</update>  
1063 - </value>  
1064 - <value>  
1065 - <name>xl_dir</name>  
1066 - <rename>sxx</rename>  
1067 - <update>Y</update>  
1068 - </value>  
1069 - <value>  
1070 - <name>isfb</name>  
1071 - <rename>isfb</rename>  
1072 - <update>Y</update>  
1073 - </value>  
1074 - <value>  
1075 - <name>qdz_code</name>  
1076 - <rename>qdzcode</rename>  
1077 - <update>Y</update>  
1078 - </value>  
1079 - <value>  
1080 - <name>qdz_name</name>  
1081 - <rename>qdzname_</rename>  
1082 - <update>Y</update>  
1083 - </value>  
1084 - <value>  
1085 - <name>zdz_code</name>  
1086 - <rename>zdzcode</rename>  
1087 - <update>Y</update>  
1088 - </value>  
1089 - <value>  
1090 - <name>zdz_name</name>  
1091 - <rename>zdzname</rename>  
1092 - <update>Y</update>  
1093 - </value>  
1094 - <value>  
1095 - <name>ists</name>  
1096 - <rename>ists</rename>  
1097 - <update>Y</update>  
1098 - </value>  
1099 - <value>  
1100 - <name>line_version</name>  
1101 - <rename>version</rename>  
1102 - <update>Y</update>  
1103 - </value>  
1104 - </lookup>  
1105 - <cluster_schema/>  
1106 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1107 - <xloc>143</xloc>  
1108 - <yloc>860</yloc>  
1109 - <draw>Y</draw>  
1110 - </GUI>  
1111 - </step>  
1112 -  
1113 - <step>  
1114 - <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail 2</name>  
1115 - <type>InsertUpdate</type>  
1116 - <description/>  
1117 - <distribute>Y</distribute>  
1118 - <custom_distribution/>  
1119 - <copies>1</copies>  
1120 - <partitioning>  
1121 - <method>none</method>  
1122 - <schema_name/>  
1123 - </partitioning>  
1124 - <connection>bus_control_variable</connection>  
1125 - <commit>100</commit>  
1126 - <update_bypassed>N</update_bypassed>  
1127 - <lookup>  
1128 - <schema/>  
1129 - <table>bsth_c_s_ttinfo_detail</table>  
1130 - <key>  
1131 - <name>xlid</name>  
1132 - <field>xl</field>  
1133 - <condition>&#x3d;</condition>  
1134 - <name2/>  
1135 - </key>  
1136 - <key>  
1137 - <name>ttid</name>  
1138 - <field>ttinfo</field>  
1139 - <condition>&#x3d;</condition>  
1140 - <name2/>  
1141 - </key>  
1142 - <key>  
1143 - <name>lpid</name>  
1144 - <field>lp</field>  
1145 - <condition>&#x3d;</condition>  
1146 - <name2/>  
1147 - </key>  
1148 - <key>  
1149 - <name>fcno</name>  
1150 - <field>fcno</field>  
1151 - <condition>&#x3d;</condition>  
1152 - <name2/>  
1153 - </key>  
1154 - <key>  
1155 - <name>bcs</name>  
1156 - <field>bcs</field>  
1157 - <condition>&#x3d;</condition>  
1158 - <name2/>  
1159 - </key>  
1160 - <value>  
1161 - <name>tcc</name>  
1162 - <rename>qdzid</rename>  
1163 - <update>Y</update>  
1164 - </value>  
1165 - <value>  
1166 - <name>zdz</name>  
1167 - <rename>zdzid</rename>  
1168 - <update>Y</update>  
1169 - </value>  
1170 - <value>  
1171 - <name>xl</name>  
1172 - <rename>xlid</rename>  
1173 - <update>Y</update>  
1174 - </value>  
1175 - <value>  
1176 - <name>ttinfo</name>  
1177 - <rename>ttid</rename>  
1178 - <update>Y</update>  
1179 - </value>  
1180 - <value>  
1181 - <name>xl_dir</name>  
1182 - <rename>sxx</rename>  
1183 - <update>Y</update>  
1184 - </value>  
1185 - <value>  
1186 - <name>lp</name>  
1187 - <rename>lpid</rename>  
1188 - <update>Y</update>  
1189 - </value>  
1190 - <value>  
1191 - <name>jhlc</name>  
1192 - <rename>out_mileage</rename>  
1193 - <update>Y</update>  
1194 - </value>  
1195 - <value>  
1196 - <name>fcsj</name>  
1197 - <rename>sendtime_calcu</rename>  
1198 - <update>Y</update>  
1199 - </value>  
1200 - <value>  
1201 - <name>bcsj</name>  
1202 - <rename>out_time</rename>  
1203 - <update>Y</update>  
1204 - </value>  
1205 - <value>  
1206 - <name>bcs</name>  
1207 - <rename>bcs</rename>  
1208 - <update>Y</update>  
1209 - </value>  
1210 - <value>  
1211 - <name>fcno</name>  
1212 - <rename>fcno</rename>  
1213 - <update>Y</update>  
1214 - </value>  
1215 - <value>  
1216 - <name>bc_type</name>  
1217 - <rename>bctype_code</rename>  
1218 - <update>Y</update>  
1219 - </value>  
1220 - <value>  
1221 - <name>isfb</name>  
1222 - <rename>isfb</rename>  
1223 - <update>Y</update>  
1224 - </value>  
1225 - <value>  
1226 - <name>qdz_code</name>  
1227 - <rename>qdzcode</rename>  
1228 - <update>Y</update>  
1229 - </value>  
1230 - <value>  
1231 - <name>qdz_name</name>  
1232 - <rename>tn</rename>  
1233 - <update>Y</update>  
1234 - </value>  
1235 - <value>  
1236 - <name>zdz_code</name>  
1237 - <rename>zdzcode</rename>  
1238 - <update>Y</update>  
1239 - </value>  
1240 - <value>  
1241 - <name>zdz_name</name>  
1242 - <rename>zdzname_</rename>  
1243 - <update>Y</update>  
1244 - </value>  
1245 - <value>  
1246 - <name>ists</name>  
1247 - <rename>ists</rename>  
1248 - <update>Y</update>  
1249 - </value>  
1250 - <value>  
1251 - <name>line_version</name>  
1252 - <rename>version</rename>  
1253 - <update>Y</update>  
1254 - </value>  
1255 - </lookup>  
1256 - <cluster_schema/>  
1257 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1258 - <xloc>340</xloc>  
1259 - <yloc>1087</yloc>  
1260 - <draw>Y</draw>  
1261 - </GUI>  
1262 - </step>  
1263 -  
1264 - <step>  
1265 - <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail 3</name>  
1266 - <type>InsertUpdate</type>  
1267 - <description/>  
1268 - <distribute>Y</distribute>  
1269 - <custom_distribution/>  
1270 - <copies>1</copies>  
1271 - <partitioning>  
1272 - <method>none</method>  
1273 - <schema_name/>  
1274 - </partitioning>  
1275 - <connection>bus_control_variable</connection>  
1276 - <commit>100</commit>  
1277 - <update_bypassed>N</update_bypassed>  
1278 - <lookup>  
1279 - <schema/>  
1280 - <table>bsth_c_s_ttinfo_detail</table>  
1281 - <key>  
1282 - <name>xlid</name>  
1283 - <field>xl</field>  
1284 - <condition>&#x3d;</condition>  
1285 - <name2/>  
1286 - </key>  
1287 - <key>  
1288 - <name>ttid</name>  
1289 - <field>ttinfo</field>  
1290 - <condition>&#x3d;</condition>  
1291 - <name2/>  
1292 - </key>  
1293 - <key>  
1294 - <name>lpid</name>  
1295 - <field>lp</field>  
1296 - <condition>&#x3d;</condition>  
1297 - <name2/>  
1298 - </key>  
1299 - <key>  
1300 - <name>fcno</name>  
1301 - <field>fcno</field>  
1302 - <condition>&#x3d;</condition>  
1303 - <name2/>  
1304 - </key>  
1305 - <key>  
1306 - <name>bcs</name>  
1307 - <field>bcs</field>  
1308 - <condition>&#x3d;</condition>  
1309 - <name2/>  
1310 - </key>  
1311 - <value>  
1312 - <name>fcno</name>  
1313 - <rename>fcno</rename>  
1314 - <update>Y</update>  
1315 - </value>  
1316 - <value>  
1317 - <name>bcs</name>  
1318 - <rename>bcs</rename>  
1319 - <update>Y</update>  
1320 - </value>  
1321 - <value>  
1322 - <name>xl</name>  
1323 - <rename>xlid</rename>  
1324 - <update>Y</update>  
1325 - </value>  
1326 - <value>  
1327 - <name>ttinfo</name>  
1328 - <rename>ttid</rename>  
1329 - <update>Y</update>  
1330 - </value>  
1331 - <value>  
1332 - <name>lp</name>  
1333 - <rename>lpid</rename>  
1334 - <update>Y</update>  
1335 - </value>  
1336 - <value>  
1337 - <name>bc_type</name>  
1338 - <rename>bctype_code</rename>  
1339 - <update>Y</update>  
1340 - </value>  
1341 - <value>  
1342 - <name>bcsj</name>  
1343 - <rename>parade_time</rename>  
1344 - <update>Y</update>  
1345 - </value>  
1346 - <value>  
1347 - <name>jhlc</name>  
1348 - <rename>parade_mileage</rename>  
1349 - <update>Y</update>  
1350 - </value>  
1351 - <value>  
1352 - <name>fcsj</name>  
1353 - <rename>sendtime_calcu</rename>  
1354 - <update>Y</update>  
1355 - </value>  
1356 - <value>  
1357 - <name>xl_dir</name>  
1358 - <rename>sxx2</rename>  
1359 - <update>Y</update>  
1360 - </value>  
1361 - <value>  
1362 - <name>qdz</name>  
1363 - <rename>qdzid</rename>  
1364 - <update>Y</update>  
1365 - </value>  
1366 - <value>  
1367 - <name>tcc</name>  
1368 - <rename>zdzid</rename>  
1369 - <update>Y</update>  
1370 - </value>  
1371 - <value>  
1372 - <name>isfb</name>  
1373 - <rename>isfb</rename>  
1374 - <update>Y</update>  
1375 - </value>  
1376 - <value>  
1377 - <name>qdz_code</name>  
1378 - <rename>qdzcode</rename>  
1379 - <update>Y</update>  
1380 - </value>  
1381 - <value>  
1382 - <name>qdz_name</name>  
1383 - <rename>qname</rename>  
1384 - <update>Y</update>  
1385 - </value>  
1386 - <value>  
1387 - <name>zdz_code</name>  
1388 - <rename>zdzcode</rename>  
1389 - <update>Y</update>  
1390 - </value>  
1391 - <value>  
1392 - <name>zdz_name</name>  
1393 - <rename>tn</rename>  
1394 - <update>Y</update>  
1395 - </value>  
1396 - <value>  
1397 - <name>ists</name>  
1398 - <rename>ists</rename>  
1399 - <update>Y</update>  
1400 - </value>  
1401 - <value>  
1402 - <name>line_version</name>  
1403 - <rename>version</rename>  
1404 - <update>Y</update>  
1405 - </value>  
1406 - </lookup>  
1407 - <cluster_schema/>  
1408 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1409 - <xloc>845</xloc>  
1410 - <yloc>899</yloc>  
1411 - <draw>Y</draw>  
1412 - </GUI>  
1413 - </step>  
1414 -  
1415 - <step>  
1416 - <name>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;Excel&#x8f93;&#x5165;</name>  
1417 - <type>ExcelInput</type>  
1418 - <description/>  
1419 - <distribute>N</distribute>  
1420 - <custom_distribution/>  
1421 - <copies>1</copies>  
1422 - <partitioning>  
1423 - <method>none</method>  
1424 - <schema_name/>  
1425 - </partitioning>  
1426 - <header>Y</header>  
1427 - <noempty>Y</noempty>  
1428 - <stoponempty>N</stoponempty>  
1429 - <filefield/>  
1430 - <sheetfield/>  
1431 - <sheetrownumfield/>  
1432 - <rownumfield/>  
1433 - <sheetfield/>  
1434 - <filefield/>  
1435 - <limit>0</limit>  
1436 - <encoding/>  
1437 - <add_to_result_filenames>Y</add_to_result_filenames>  
1438 - <accept_filenames>N</accept_filenames>  
1439 - <accept_field/>  
1440 - <accept_stepname/>  
1441 - <file>  
1442 - <name/>  
1443 - <filemask/>  
1444 - <exclude_filemask/>  
1445 - <file_required>N</file_required>  
1446 - <include_subfolders>N</include_subfolders>  
1447 - </file>  
1448 - <fields>  
1449 - </fields>  
1450 - <sheets>  
1451 - <sheet>  
1452 - <name/>  
1453 - <startrow>0</startrow>  
1454 - <startcol>0</startcol>  
1455 - </sheet>  
1456 - </sheets>  
1457 - <strict_types>N</strict_types>  
1458 - <error_ignored>N</error_ignored>  
1459 - <error_line_skipped>N</error_line_skipped>  
1460 - <bad_line_files_destination_directory/>  
1461 - <bad_line_files_extension>warning</bad_line_files_extension>  
1462 - <error_line_files_destination_directory/>  
1463 - <error_line_files_extension>error</error_line_files_extension>  
1464 - <line_number_files_destination_directory/>  
1465 - <line_number_files_extension>line</line_number_files_extension>  
1466 - <shortFileFieldName/>  
1467 - <pathFieldName/>  
1468 - <hiddenFieldName/>  
1469 - <lastModificationTimeFieldName/>  
1470 - <uriNameFieldName/>  
1471 - <rootUriNameFieldName/>  
1472 - <extensionFieldName/>  
1473 - <sizeFieldName/>  
1474 - <spreadsheet_type>JXL</spreadsheet_type>  
1475 - <cluster_schema/>  
1476 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1477 - <xloc>112</xloc>  
1478 - <yloc>44</yloc>  
1479 - <draw>Y</draw>  
1480 - </GUI>  
1481 - </step>  
1482 -  
1483 - <step>  
1484 - <name>&#x66f4;&#x65b0;&#x65f6;&#x523b;&#x8868;&#x4e3b;&#x8868;&#x7248;&#x672c;</name>  
1485 - <type>Update</type>  
1486 - <description/>  
1487 - <distribute>Y</distribute>  
1488 - <custom_distribution/>  
1489 - <copies>1</copies>  
1490 - <partitioning>  
1491 - <method>none</method>  
1492 - <schema_name/>  
1493 - </partitioning>  
1494 - <connection>bus_control_variable</connection>  
1495 - <skip_lookup>N</skip_lookup>  
1496 - <commit>100</commit>  
1497 - <use_batch>N</use_batch>  
1498 - <error_ignored>N</error_ignored>  
1499 - <ignore_flag_field/>  
1500 - <lookup>  
1501 - <schema/>  
1502 - <table>bsth_c_s_ttinfo</table>  
1503 - <key>  
1504 - <name>ttid</name>  
1505 - <field>id</field>  
1506 - <condition>&#x3d;</condition>  
1507 - <name2/>  
1508 - </key>  
1509 - <value>  
1510 - <name>line_version</name>  
1511 - <rename>version</rename>  
1512 - </value>  
1513 - </lookup>  
1514 - <cluster_schema/>  
1515 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1516 - <xloc>863</xloc>  
1517 - <yloc>338</yloc>  
1518 - <draw>Y</draw>  
1519 - </GUI>  
1520 - </step>  
1521 -  
1522 - <step>  
1523 - <name>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;1</name>  
1524 - <type>DBLookup</type>  
1525 - <description/>  
1526 - <distribute>Y</distribute>  
1527 - <custom_distribution/>  
1528 - <copies>1</copies>  
1529 - <partitioning>  
1530 - <method>none</method>  
1531 - <schema_name/>  
1532 - </partitioning>  
1533 - <connection>bus_control_variable</connection>  
1534 - <cache>N</cache>  
1535 - <cache_load_all>N</cache_load_all>  
1536 - <cache_size>0</cache_size>  
1537 - <lookup>  
1538 - <schema/>  
1539 - <table>bsth_c_car_park</table>  
1540 - <orderby/>  
1541 - <fail_on_multiple>N</fail_on_multiple>  
1542 - <eat_row_on_failure>N</eat_row_on_failure>  
1543 - <key>  
1544 - <name>tccname_</name>  
1545 - <field>park_name</field>  
1546 - <condition>&#x3d;</condition>  
1547 - <name2/>  
1548 - </key>  
1549 - <value>  
1550 - <name>id</name>  
1551 - <rename>qdzid</rename>  
1552 - <default/>  
1553 - <type>Integer</type>  
1554 - </value>  
1555 - <value>  
1556 - <name>park_code</name>  
1557 - <rename>qdzcode</rename>  
1558 - <default/>  
1559 - <type>String</type>  
1560 - </value>  
1561 - <value>  
1562 - <name>park_name</name>  
1563 - <rename>tn</rename>  
1564 - <default/>  
1565 - <type>String</type>  
1566 - </value>  
1567 - </lookup>  
1568 - <cluster_schema/>  
1569 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1570 - <xloc>755</xloc>  
1571 - <yloc>504</yloc>  
1572 - <draw>Y</draw>  
1573 - </GUI>  
1574 - </step>  
1575 -  
1576 - <step>  
1577 - <name>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;2</name>  
1578 - <type>DBLookup</type>  
1579 - <description/>  
1580 - <distribute>Y</distribute>  
1581 - <custom_distribution/>  
1582 - <copies>1</copies>  
1583 - <partitioning>  
1584 - <method>none</method>  
1585 - <schema_name/>  
1586 - </partitioning>  
1587 - <connection>bus_control_variable</connection>  
1588 - <cache>N</cache>  
1589 - <cache_load_all>N</cache_load_all>  
1590 - <cache_size>0</cache_size>  
1591 - <lookup>  
1592 - <schema/>  
1593 - <table>bsth_c_car_park</table>  
1594 - <orderby/>  
1595 - <fail_on_multiple>N</fail_on_multiple>  
1596 - <eat_row_on_failure>N</eat_row_on_failure>  
1597 - <key>  
1598 - <name>tccname_</name>  
1599 - <field>park_name</field>  
1600 - <condition>&#x3d;</condition>  
1601 - <name2/>  
1602 - </key>  
1603 - <value>  
1604 - <name>id</name>  
1605 - <rename>zdzid</rename>  
1606 - <default/>  
1607 - <type>Integer</type>  
1608 - </value>  
1609 - <value>  
1610 - <name>park_code</name>  
1611 - <rename>zdzcode</rename>  
1612 - <default/>  
1613 - <type>String</type>  
1614 - </value>  
1615 - <value>  
1616 - <name>park_name</name>  
1617 - <rename>tn</rename>  
1618 - <default/>  
1619 - <type>String</type>  
1620 - </value>  
1621 - </lookup>  
1622 - <cluster_schema/>  
1623 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1624 - <xloc>887</xloc>  
1625 - <yloc>608</yloc>  
1626 - <draw>Y</draw>  
1627 - </GUI>  
1628 - </step>  
1629 -  
1630 - <step>  
1631 - <name>&#x67e5;&#x627e;&#x51fa;&#x573a;&#x7ec8;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x5e76;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</name>  
1632 - <type>DBLookup</type>  
1633 - <description/>  
1634 - <distribute>Y</distribute>  
1635 - <custom_distribution/>  
1636 - <copies>1</copies>  
1637 - <partitioning>  
1638 - <method>none</method>  
1639 - <schema_name/>  
1640 - </partitioning>  
1641 - <connection>bus_control_variable</connection>  
1642 - <cache>N</cache>  
1643 - <cache_load_all>N</cache_load_all>  
1644 - <cache_size>0</cache_size>  
1645 - <lookup>  
1646 - <schema/>  
1647 - <table>bsth_c_ls_stationroute</table>  
1648 - <orderby/>  
1649 - <fail_on_multiple>N</fail_on_multiple>  
1650 - <eat_row_on_failure>N</eat_row_on_failure>  
1651 - <key>  
1652 - <name>xlid</name>  
1653 - <field>line</field>  
1654 - <condition>&#x3d;</condition>  
1655 - <name2/>  
1656 - </key>  
1657 - <key>  
1658 - <name>version</name>  
1659 - <field>versions</field>  
1660 - <condition>&#x3d;</condition>  
1661 - <name2/>  
1662 - </key>  
1663 - <key>  
1664 - <name>zdzname</name>  
1665 - <field>station_name</field>  
1666 - <condition>LIKE</condition>  
1667 - <name2/>  
1668 - </key>  
1669 - <key>  
1670 - <name>endZdtype</name>  
1671 - <field>station_mark</field>  
1672 - <condition>&#x3d;</condition>  
1673 - <name2/>  
1674 - </key>  
1675 - <key>  
1676 - <name>destory</name>  
1677 - <field>destroy</field>  
1678 - <condition>&#x3d;</condition>  
1679 - <name2/>  
1680 - </key>  
1681 - <value>  
1682 - <name>station</name>  
1683 - <rename>zdzid</rename>  
1684 - <default/>  
1685 - <type>Integer</type>  
1686 - </value>  
1687 - <value>  
1688 - <name>directions</name>  
1689 - <rename>sxx</rename>  
1690 - <default/>  
1691 - <type>Integer</type>  
1692 - </value>  
1693 - <value>  
1694 - <name>station_code</name>  
1695 - <rename>zdzcode</rename>  
1696 - <default/>  
1697 - <type>String</type>  
1698 - </value>  
1699 - <value>  
1700 - <name>station_name</name>  
1701 - <rename>zdzname_</rename>  
1702 - <default/>  
1703 - <type>String</type>  
1704 - </value>  
1705 - </lookup>  
1706 - <cluster_schema/>  
1707 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1708 - <xloc>329</xloc>  
1709 - <yloc>505</yloc>  
1710 - <draw>Y</draw>  
1711 - </GUI>  
1712 - </step>  
1713 -  
1714 - <step>  
1715 - <name>&#x67e5;&#x627e;&#x6240;&#x6709;&#x7ebf;&#x8def;&#x4e0a;&#x4e0b;&#x884c;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</name>  
1716 - <type>DBLookup</type>  
1717 - <description/>  
1718 - <distribute>Y</distribute>  
1719 - <custom_distribution/>  
1720 - <copies>1</copies>  
1721 - <partitioning>  
1722 - <method>none</method>  
1723 - <schema_name/>  
1724 - </partitioning>  
1725 - <connection>bus_control_variable</connection>  
1726 - <cache>N</cache>  
1727 - <cache_load_all>N</cache_load_all>  
1728 - <cache_size>0</cache_size>  
1729 - <lookup>  
1730 - <schema/>  
1731 - <table>bsth_c_line_information</table>  
1732 - <orderby/>  
1733 - <fail_on_multiple>N</fail_on_multiple>  
1734 - <eat_row_on_failure>N</eat_row_on_failure>  
1735 - <key>  
1736 - <name>xlid</name>  
1737 - <field>line</field>  
1738 - <condition>&#x3d;</condition>  
1739 - <name2/>  
1740 - </key>  
1741 - <value>  
1742 - <name>up_mileage</name>  
1743 - <rename>up_mileage</rename>  
1744 - <default/>  
1745 - <type>Number</type>  
1746 - </value>  
1747 - <value>  
1748 - <name>down_mileage</name>  
1749 - <rename>down_mileage</rename>  
1750 - <default/>  
1751 - <type>Number</type>  
1752 - </value>  
1753 - <value>  
1754 - <name>up_travel_time</name>  
1755 - <rename>up_travel_time</rename>  
1756 - <default/>  
1757 - <type>Number</type>  
1758 - </value>  
1759 - <value>  
1760 - <name>down_travel_time</name>  
1761 - <rename>down_travel_time</rename>  
1762 - <default/>  
1763 - <type>Number</type>  
1764 - </value>  
1765 - <value>  
1766 - <name>early_start_time</name>  
1767 - <rename>early_start_time</rename>  
1768 - <default/>  
1769 - <type>String</type>  
1770 - </value>  
1771 - <value>  
1772 - <name>early_end_time</name>  
1773 - <rename>early_end_time</rename>  
1774 - <default/>  
1775 - <type>String</type>  
1776 - </value>  
1777 - <value>  
1778 - <name>early_up_time</name>  
1779 - <rename>early_up_time</rename>  
1780 - <default/>  
1781 - <type>Number</type>  
1782 - </value>  
1783 - <value>  
1784 - <name>early_down_time</name>  
1785 - <rename>early_down_time</rename>  
1786 - <default/>  
1787 - <type>Number</type>  
1788 - </value>  
1789 - <value>  
1790 - <name>late_start_time</name>  
1791 - <rename>late_start_time</rename>  
1792 - <default/>  
1793 - <type>String</type>  
1794 - </value>  
1795 - <value>  
1796 - <name>late_end_time</name>  
1797 - <rename>late_end_time</rename>  
1798 - <default/>  
1799 - <type>String</type>  
1800 - </value>  
1801 - <value>  
1802 - <name>late_up_time</name>  
1803 - <rename>late_up_time</rename>  
1804 - <default/>  
1805 - <type>Number</type>  
1806 - </value>  
1807 - <value>  
1808 - <name>late_down_time</name>  
1809 - <rename>late_down_time</rename>  
1810 - <default/>  
1811 - <type>Number</type>  
1812 - </value>  
1813 - </lookup>  
1814 - <cluster_schema/>  
1815 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1816 - <xloc>149</xloc>  
1817 - <yloc>581</yloc>  
1818 - <draw>Y</draw>  
1819 - </GUI>  
1820 - </step>  
1821 -  
1822 - <step>  
1823 - <name>&#x67e5;&#x627e;&#x65f6;&#x523b;&#x8868;&#x57fa;&#x7840;&#x4fe1;&#x606f;&#x5173;&#x8054;</name>  
1824 - <type>DBLookup</type>  
1825 - <description/>  
1826 - <distribute>Y</distribute>  
1827 - <custom_distribution/>  
1828 - <copies>1</copies>  
1829 - <partitioning>  
1830 - <method>none</method>  
1831 - <schema_name/>  
1832 - </partitioning>  
1833 - <connection>bus_control_variable</connection>  
1834 - <cache>N</cache>  
1835 - <cache_load_all>N</cache_load_all>  
1836 - <cache_size>0</cache_size>  
1837 - <lookup>  
1838 - <schema/>  
1839 - <table>bsth_c_s_ttinfo</table>  
1840 - <orderby/>  
1841 - <fail_on_multiple>N</fail_on_multiple>  
1842 - <eat_row_on_failure>N</eat_row_on_failure>  
1843 - <key>  
1844 - <name>xlid</name>  
1845 - <field>xl</field>  
1846 - <condition>&#x3d;</condition>  
1847 - <name2/>  
1848 - </key>  
1849 - <key>  
1850 - <name>ttinfoname_</name>  
1851 - <field>name</field>  
1852 - <condition>&#x3d;</condition>  
1853 - <name2/>  
1854 - </key>  
1855 - <key>  
1856 - <name>iscanceled</name>  
1857 - <field>is_cancel</field>  
1858 - <condition>&#x3d;</condition>  
1859 - <name2/>  
1860 - </key>  
1861 - <value>  
1862 - <name>id</name>  
1863 - <rename>ttid</rename>  
1864 - <default/>  
1865 - <type>Integer</type>  
1866 - </value>  
1867 - </lookup>  
1868 - <cluster_schema/>  
1869 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1870 - <xloc>1011</xloc>  
1871 - <yloc>134</yloc>  
1872 - <draw>Y</draw>  
1873 - </GUI>  
1874 - </step>  
1875 -  
1876 - <step>  
1877 - <name>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x5173;&#x8054;</name>  
1878 - <type>DBLookup</type>  
1879 - <description/>  
1880 - <distribute>Y</distribute>  
1881 - <custom_distribution/>  
1882 - <copies>1</copies>  
1883 - <partitioning>  
1884 - <method>none</method>  
1885 - <schema_name/>  
1886 - </partitioning>  
1887 - <connection>bus_control_variable</connection>  
1888 - <cache>N</cache>  
1889 - <cache_load_all>N</cache_load_all>  
1890 - <cache_size>0</cache_size>  
1891 - <lookup>  
1892 - <schema/>  
1893 - <table>bsth_c_line</table>  
1894 - <orderby/>  
1895 - <fail_on_multiple>N</fail_on_multiple>  
1896 - <eat_row_on_failure>N</eat_row_on_failure>  
1897 - <key>  
1898 - <name>xlname_</name>  
1899 - <field>name</field>  
1900 - <condition>&#x3d;</condition>  
1901 - <name2/>  
1902 - </key>  
1903 - <key>  
1904 - <name>iscanceled</name>  
1905 - <field>destroy</field>  
1906 - <condition>&#x3d;</condition>  
1907 - <name2/>  
1908 - </key>  
1909 - <value>  
1910 - <name>id</name>  
1911 - <rename>xlid</rename>  
1912 - <default/>  
1913 - <type>Integer</type>  
1914 - </value>  
1915 - </lookup>  
1916 - <cluster_schema/>  
1917 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1918 - <xloc>1007</xloc>  
1919 - <yloc>43</yloc>  
1920 - <draw>Y</draw>  
1921 - </GUI>  
1922 - </step>  
1923 -  
1924 - <step>  
1925 - <name>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x51fa;&#x573a;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</name>  
1926 - <type>DBLookup</type>  
1927 - <description/>  
1928 - <distribute>Y</distribute>  
1929 - <custom_distribution/>  
1930 - <copies>1</copies>  
1931 - <partitioning>  
1932 - <method>none</method>  
1933 - <schema_name/>  
1934 - </partitioning>  
1935 - <connection>bus_control_variable</connection>  
1936 - <cache>N</cache>  
1937 - <cache_load_all>N</cache_load_all>  
1938 - <cache_size>0</cache_size>  
1939 - <lookup>  
1940 - <schema/>  
1941 - <table>bsth_c_line_information</table>  
1942 - <orderby/>  
1943 - <fail_on_multiple>N</fail_on_multiple>  
1944 - <eat_row_on_failure>N</eat_row_on_failure>  
1945 - <key>  
1946 - <name>xlid</name>  
1947 - <field>line</field>  
1948 - <condition>&#x3d;</condition>  
1949 - <name2/>  
1950 - </key>  
1951 - <value>  
1952 - <name>up_out_timer</name>  
1953 - <rename>up_out_timer</rename>  
1954 - <default/>  
1955 - <type>Number</type>  
1956 - </value>  
1957 - <value>  
1958 - <name>up_out_mileage</name>  
1959 - <rename>up_out_mileage</rename>  
1960 - <default/>  
1961 - <type>Number</type>  
1962 - </value>  
1963 - <value>  
1964 - <name>down_out_timer</name>  
1965 - <rename>down_out_timer</rename>  
1966 - <default/>  
1967 - <type>Number</type>  
1968 - </value>  
1969 - <value>  
1970 - <name>down_out_mileage</name>  
1971 - <rename>down_out_mileage</rename>  
1972 - <default/>  
1973 - <type>Number</type>  
1974 - </value>  
1975 - </lookup>  
1976 - <cluster_schema/>  
1977 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1978 - <xloc>335</xloc>  
1979 - <yloc>763</yloc>  
1980 - <draw>Y</draw>  
1981 - </GUI>  
1982 - </step>  
1983 -  
1984 - <step>  
1985 - <name>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x8fdb;&#x573a;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</name>  
1986 - <type>DBLookup</type>  
1987 - <description/>  
1988 - <distribute>Y</distribute>  
1989 - <custom_distribution/>  
1990 - <copies>1</copies>  
1991 - <partitioning>  
1992 - <method>none</method>  
1993 - <schema_name/>  
1994 - </partitioning>  
1995 - <connection>bus_control_variable</connection>  
1996 - <cache>N</cache>  
1997 - <cache_load_all>N</cache_load_all>  
1998 - <cache_size>0</cache_size>  
1999 - <lookup>  
2000 - <schema/>  
2001 - <table>bsth_c_line_information</table>  
2002 - <orderby/>  
2003 - <fail_on_multiple>N</fail_on_multiple>  
2004 - <eat_row_on_failure>N</eat_row_on_failure>  
2005 - <key>  
2006 - <name>xlid</name>  
2007 - <field>line</field>  
2008 - <condition>&#x3d;</condition>  
2009 - <name2/>  
2010 - </key>  
2011 - <value>  
2012 - <name>up_in_mileage</name>  
2013 - <rename>up_in_mileage</rename>  
2014 - <default/>  
2015 - <type>Number</type>  
2016 - </value>  
2017 - <value>  
2018 - <name>up_in_timer</name>  
2019 - <rename>up_in_timer</rename>  
2020 - <default/>  
2021 - <type>Number</type>  
2022 - </value>  
2023 - <value>  
2024 - <name>down_in_mileage</name>  
2025 - <rename>down_in_mileage</rename>  
2026 - <default/>  
2027 - <type>Number</type>  
2028 - </value>  
2029 - <value>  
2030 - <name>down_in_timer</name>  
2031 - <rename>down_in_timer</rename>  
2032 - <default/>  
2033 - <type>Number</type>  
2034 - </value>  
2035 - </lookup>  
2036 - <cluster_schema/>  
2037 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2038 - <xloc>553</xloc>  
2039 - <yloc>1004</yloc>  
2040 - <draw>Y</draw>  
2041 - </GUI>  
2042 - </step>  
2043 -  
2044 - <step>  
2045 - <name>&#x67e5;&#x627e;&#x7ec8;&#x70b9;&#x7ad9;&#x5173;&#x8054;</name>  
2046 - <type>DBLookup</type>  
2047 - <description/>  
2048 - <distribute>Y</distribute>  
2049 - <custom_distribution/>  
2050 - <copies>1</copies>  
2051 - <partitioning>  
2052 - <method>none</method>  
2053 - <schema_name/>  
2054 - </partitioning>  
2055 - <connection>bus_control_variable</connection>  
2056 - <cache>N</cache>  
2057 - <cache_load_all>N</cache_load_all>  
2058 - <cache_size>0</cache_size>  
2059 - <lookup>  
2060 - <schema/>  
2061 - <table>bsth_c_ls_stationroute</table>  
2062 - <orderby/>  
2063 - <fail_on_multiple>N</fail_on_multiple>  
2064 - <eat_row_on_failure>N</eat_row_on_failure>  
2065 - <key>  
2066 - <name>xlid</name>  
2067 - <field>line</field>  
2068 - <condition>&#x3d;</condition>  
2069 - <name2/>  
2070 - </key>  
2071 - <key>  
2072 - <name>version</name>  
2073 - <field>versions</field>  
2074 - <condition>&#x3d;</condition>  
2075 - <name2/>  
2076 - </key>  
2077 - <key>  
2078 - <name>sxx</name>  
2079 - <field>directions</field>  
2080 - <condition>&#x3d;</condition>  
2081 - <name2/>  
2082 - </key>  
2083 - <key>  
2084 - <name>endZdtype</name>  
2085 - <field>station_mark</field>  
2086 - <condition>&#x3d;</condition>  
2087 - <name2/>  
2088 - </key>  
2089 - <key>  
2090 - <name>destory</name>  
2091 - <field>destroy</field>  
2092 - <condition>&#x3d;</condition>  
2093 - <name2/>  
2094 - </key>  
2095 - <value>  
2096 - <name>station_name</name>  
2097 - <rename>zdzname</rename>  
2098 - <default/>  
2099 - <type>String</type>  
2100 - </value>  
2101 - <value>  
2102 - <name>station</name>  
2103 - <rename>zdzid</rename>  
2104 - <default/>  
2105 - <type>Integer</type>  
2106 - </value>  
2107 - <value>  
2108 - <name>station_code</name>  
2109 - <rename>zdzcode</rename>  
2110 - <default/>  
2111 - <type>String</type>  
2112 - </value>  
2113 - </lookup>  
2114 - <cluster_schema/>  
2115 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2116 - <xloc>280</xloc>  
2117 - <yloc>404</yloc>  
2118 - <draw>Y</draw>  
2119 - </GUI>  
2120 - </step>  
2121 -  
2122 - <step>  
2123 - <name>&#x67e5;&#x627e;&#x8d77;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x5e76;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</name>  
2124 - <type>DBLookup</type>  
2125 - <description/>  
2126 - <distribute>Y</distribute>  
2127 - <custom_distribution/>  
2128 - <copies>1</copies>  
2129 - <partitioning>  
2130 - <method>none</method>  
2131 - <schema_name/>  
2132 - </partitioning>  
2133 - <connection>bus_control_variable</connection>  
2134 - <cache>N</cache>  
2135 - <cache_load_all>N</cache_load_all>  
2136 - <cache_size>0</cache_size>  
2137 - <lookup>  
2138 - <schema/>  
2139 - <table>bsth_c_ls_stationroute</table>  
2140 - <orderby/>  
2141 - <fail_on_multiple>N</fail_on_multiple>  
2142 - <eat_row_on_failure>N</eat_row_on_failure>  
2143 - <key>  
2144 - <name>xlid</name>  
2145 - <field>line</field>  
2146 - <condition>&#x3d;</condition>  
2147 - <name2/>  
2148 - </key>  
2149 - <key>  
2150 - <name>version</name>  
2151 - <field>versions</field>  
2152 - <condition>&#x3d;</condition>  
2153 - <name2/>  
2154 - </key>  
2155 - <key>  
2156 - <name>qdzname</name>  
2157 - <field>station_name</field>  
2158 - <condition>LIKE</condition>  
2159 - <name2/>  
2160 - </key>  
2161 - <key>  
2162 - <name>sendZdtype</name>  
2163 - <field>station_mark</field>  
2164 - <condition>&#x3d;</condition>  
2165 - <name2/>  
2166 - </key>  
2167 - <key>  
2168 - <name>destory</name>  
2169 - <field>destroy</field>  
2170 - <condition>&#x3d;</condition>  
2171 - <name2/>  
2172 - </key>  
2173 - <value>  
2174 - <name>station</name>  
2175 - <rename>qdzid</rename>  
2176 - <default/>  
2177 - <type>Integer</type>  
2178 - </value>  
2179 - <value>  
2180 - <name>directions</name>  
2181 - <rename>sxx</rename>  
2182 - <default/>  
2183 - <type>Integer</type>  
2184 - </value>  
2185 - <value>  
2186 - <name>station_code</name>  
2187 - <rename>qdzcode</rename>  
2188 - <default/>  
2189 - <type>String</type>  
2190 - </value>  
2191 - <value>  
2192 - <name>station_name</name>  
2193 - <rename>qdzname_</rename>  
2194 - <default/>  
2195 - <type>String</type>  
2196 - </value>  
2197 - </lookup>  
2198 - <cluster_schema/>  
2199 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2200 - <xloc>430</xloc>  
2201 - <yloc>403</yloc>  
2202 - <draw>Y</draw>  
2203 - </GUI>  
2204 - </step>  
2205 -  
2206 - <step>  
2207 - <name>&#x67e5;&#x627e;&#x8def;&#x724c;&#x5173;&#x8054;</name>  
2208 - <type>DBLookup</type>  
2209 - <description/>  
2210 - <distribute>Y</distribute>  
2211 - <custom_distribution/>  
2212 - <copies>1</copies>  
2213 - <partitioning>  
2214 - <method>none</method>  
2215 - <schema_name/>  
2216 - </partitioning>  
2217 - <connection>bus_control_variable</connection>  
2218 - <cache>N</cache>  
2219 - <cache_load_all>N</cache_load_all>  
2220 - <cache_size>0</cache_size>  
2221 - <lookup>  
2222 - <schema/>  
2223 - <table>bsth_c_s_gbi</table>  
2224 - <orderby/>  
2225 - <fail_on_multiple>N</fail_on_multiple>  
2226 - <eat_row_on_failure>N</eat_row_on_failure>  
2227 - <key>  
2228 - <name>xlid</name>  
2229 - <field>xl</field>  
2230 - <condition>&#x3d;</condition>  
2231 - <name2/>  
2232 - </key>  
2233 - <key>  
2234 - <name>lp</name>  
2235 - <field>lp_name</field>  
2236 - <condition>&#x3d;</condition>  
2237 - <name2/>  
2238 - </key>  
2239 - <key>  
2240 - <name>iscanceled</name>  
2241 - <field>is_cancel</field>  
2242 - <condition>&#x3d;</condition>  
2243 - <name2/>  
2244 - </key>  
2245 - <value>  
2246 - <name>id</name>  
2247 - <rename>lpid</rename>  
2248 - <default/>  
2249 - <type>Integer</type>  
2250 - </value>  
2251 - </lookup>  
2252 - <cluster_schema/>  
2253 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2254 - <xloc>1013</xloc>  
2255 - <yloc>221</yloc>  
2256 - <draw>Y</draw>  
2257 - </GUI>  
2258 - </step>  
2259 -  
2260 - <step>  
2261 - <name>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ebf;&#x8def;&#x65b9;&#x5411;</name>  
2262 - <type>DBLookup</type>  
2263 - <description/>  
2264 - <distribute>Y</distribute>  
2265 - <custom_distribution/>  
2266 - <copies>1</copies>  
2267 - <partitioning>  
2268 - <method>none</method>  
2269 - <schema_name/>  
2270 - </partitioning>  
2271 - <connection>bus_control_variable</connection>  
2272 - <cache>N</cache>  
2273 - <cache_load_all>N</cache_load_all>  
2274 - <cache_size>0</cache_size>  
2275 - <lookup>  
2276 - <schema/>  
2277 - <table>bsth_c_ls_stationroute</table>  
2278 - <orderby/>  
2279 - <fail_on_multiple>N</fail_on_multiple>  
2280 - <eat_row_on_failure>N</eat_row_on_failure>  
2281 - <key>  
2282 - <name>xlid</name>  
2283 - <field>line</field>  
2284 - <condition>&#x3d;</condition>  
2285 - <name2/>  
2286 - </key>  
2287 - <key>  
2288 - <name>version</name>  
2289 - <field>versions</field>  
2290 - <condition>&#x3d;</condition>  
2291 - <name2/>  
2292 - </key>  
2293 - <key>  
2294 - <name>startZdtype_calcu</name>  
2295 - <field>station_mark</field>  
2296 - <condition>&#x3d;</condition>  
2297 - <name2/>  
2298 - </key>  
2299 - <key>  
2300 - <name>qdzname_calcu</name>  
2301 - <field>station_name</field>  
2302 - <condition>LIKE</condition>  
2303 - <name2/>  
2304 - </key>  
2305 - <key>  
2306 - <name>destory</name>  
2307 - <field>destroy</field>  
2308 - <condition>&#x3d;</condition>  
2309 - <name2/>  
2310 - </key>  
2311 - <value>  
2312 - <name>directions</name>  
2313 - <rename>sxx</rename>  
2314 - <default/>  
2315 - <type>String</type>  
2316 - </value>  
2317 - </lookup>  
2318 - <cluster_schema/>  
2319 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2320 - <xloc>548</xloc>  
2321 - <yloc>610</yloc>  
2322 - <draw>Y</draw>  
2323 - </GUI>  
2324 - </step>  
2325 -  
2326 - <step>  
2327 - <name>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ec8;&#x70b9;&#x7ad9;&#xff0c;&#x5e76;&#x4f5c;&#x4e3a;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x7684;&#x8d77;&#x70b9;&#x7ad9;</name>  
2328 - <type>DBLookup</type>  
2329 - <description/>  
2330 - <distribute>Y</distribute>  
2331 - <custom_distribution/>  
2332 - <copies>1</copies>  
2333 - <partitioning>  
2334 - <method>none</method>  
2335 - <schema_name/>  
2336 - </partitioning>  
2337 - <connection>bus_control_variable</connection>  
2338 - <cache>N</cache>  
2339 - <cache_load_all>Y</cache_load_all>  
2340 - <cache_size>0</cache_size>  
2341 - <lookup>  
2342 - <schema/>  
2343 - <table>bsth_c_ls_stationroute</table>  
2344 - <orderby/>  
2345 - <fail_on_multiple>N</fail_on_multiple>  
2346 - <eat_row_on_failure>N</eat_row_on_failure>  
2347 - <key>  
2348 - <name>xlid</name>  
2349 - <field>line</field>  
2350 - <condition>&#x3d;</condition>  
2351 - <name2/>  
2352 - </key>  
2353 - <key>  
2354 - <name>version</name>  
2355 - <field>versions</field>  
2356 - <condition>&#x3d;</condition>  
2357 - <name2/>  
2358 - </key>  
2359 - <key>  
2360 - <name>endZdtype_calcu</name>  
2361 - <field>station_mark</field>  
2362 - <condition>&#x3d;</condition>  
2363 - <name2/>  
2364 - </key>  
2365 - <key>  
2366 - <name>sxx</name>  
2367 - <field>directions</field>  
2368 - <condition>&#x3d;</condition>  
2369 - <name2/>  
2370 - </key>  
2371 - <key>  
2372 - <name>destory</name>  
2373 - <field>destroy</field>  
2374 - <condition>&#x3d;</condition>  
2375 - <name2/>  
2376 - </key>  
2377 - <value>  
2378 - <name>station_name</name>  
2379 - <rename>zdzname_calcu</rename>  
2380 - <default/>  
2381 - <type>Integer</type>  
2382 - </value>  
2383 - </lookup>  
2384 - <cluster_schema/>  
2385 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2386 - <xloc>550</xloc>  
2387 - <yloc>701</yloc>  
2388 - <draw>Y</draw>  
2389 - </GUI>  
2390 - </step>  
2391 -  
2392 - <step>  
2393 - <name>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x8d77;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</name>  
2394 - <type>DBLookup</type>  
2395 - <description/>  
2396 - <distribute>Y</distribute>  
2397 - <custom_distribution/>  
2398 - <copies>1</copies>  
2399 - <partitioning>  
2400 - <method>none</method>  
2401 - <schema_name/>  
2402 - </partitioning>  
2403 - <connection>bus_control_variable</connection>  
2404 - <cache>N</cache>  
2405 - <cache_load_all>N</cache_load_all>  
2406 - <cache_size>0</cache_size>  
2407 - <lookup>  
2408 - <schema/>  
2409 - <table>bsth_c_ls_stationroute</table>  
2410 - <orderby/>  
2411 - <fail_on_multiple>N</fail_on_multiple>  
2412 - <eat_row_on_failure>N</eat_row_on_failure>  
2413 - <key>  
2414 - <name>xlid</name>  
2415 - <field>line</field>  
2416 - <condition>&#x3d;</condition>  
2417 - <name2/>  
2418 - </key>  
2419 - <key>  
2420 - <name>version</name>  
2421 - <field>versions</field>  
2422 - <condition>&#x3d;</condition>  
2423 - <name2/>  
2424 - </key>  
2425 - <key>  
2426 - <name>zdzname_calcu</name>  
2427 - <field>station_name</field>  
2428 - <condition>&#x3d;</condition>  
2429 - <name2/>  
2430 - </key>  
2431 - <key>  
2432 - <name>startZdtype_calcu</name>  
2433 - <field>station_mark</field>  
2434 - <condition>&#x3d;</condition>  
2435 - <name2/>  
2436 - </key>  
2437 - <key>  
2438 - <name>destory</name>  
2439 - <field>destroy</field>  
2440 - <condition>&#x3d;</condition>  
2441 - <name2/>  
2442 - </key>  
2443 - <value>  
2444 - <name>directions</name>  
2445 - <rename>sxx2</rename>  
2446 - <default/>  
2447 - <type>Integer</type>  
2448 - </value>  
2449 - <value>  
2450 - <name>station</name>  
2451 - <rename>qdzid</rename>  
2452 - <default/>  
2453 - <type>Integer</type>  
2454 - </value>  
2455 - <value>  
2456 - <name>station_code</name>  
2457 - <rename>qdzcode</rename>  
2458 - <default/>  
2459 - <type>String</type>  
2460 - </value>  
2461 - <value>  
2462 - <name>station_name</name>  
2463 - <rename>qname</rename>  
2464 - <default/>  
2465 - <type>String</type>  
2466 - </value>  
2467 - </lookup>  
2468 - <cluster_schema/>  
2469 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2470 - <xloc>551</xloc>  
2471 - <yloc>782</yloc>  
2472 - <draw>Y</draw>  
2473 - </GUI>  
2474 - </step>  
2475 -  
2476 - <step>  
2477 - <name>&#x6b63;&#x5e38;&#x73ed;&#x6b21;_&#x5904;&#x7406;&#x6570;&#x636e;</name>  
2478 - <type>ScriptValueMod</type>  
2479 - <description/>  
2480 - <distribute>Y</distribute>  
2481 - <custom_distribution/>  
2482 - <copies>1</copies>  
2483 - <partitioning>  
2484 - <method>none</method>  
2485 - <schema_name/>  
2486 - </partitioning>  
2487 - <compatible>N</compatible>  
2488 - <optimizationLevel>9</optimizationLevel>  
2489 - <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>  
2490 - <jsScript_name>Script 1</jsScript_name>  
2491 - <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x6dfb;&#x52a0;&#x7ad9;&#x70b9;&#x6807;&#x8bc6;&#xa;var sendZdtype &#x3d; &#x27;B&#x27;&#x3b;&#xa;var endZdtype &#x3d; &#x27;E&#x27;&#x3b;&#xa;&#xa;var destory &#x3d; 0&#x3b; &#x2f;&#x2f; &#x672a;&#x64a4;&#x9500;flag</jsScript_script>  
2492 - </jsScript> </jsScripts> <fields> <field> <name>sendZdtype</name>  
2493 - <rename>sendZdtype</rename>  
2494 - <type>String</type>  
2495 - <length>-1</length>  
2496 - <precision>-1</precision>  
2497 - <replace>N</replace>  
2498 - </field> <field> <name>endZdtype</name>  
2499 - <rename>endZdtype</rename>  
2500 - <type>String</type>  
2501 - <length>-1</length>  
2502 - <precision>-1</precision>  
2503 - <replace>N</replace>  
2504 - </field> <field> <name>destory</name>  
2505 - <rename>destory</rename>  
2506 - <type>Integer</type>  
2507 - <length>-1</length>  
2508 - <precision>-1</precision>  
2509 - <replace>N</replace>  
2510 - </field> </fields> <cluster_schema/>  
2511 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2512 - <xloc>588</xloc>  
2513 - <yloc>403</yloc>  
2514 - <draw>Y</draw>  
2515 - </GUI>  
2516 - </step>  
2517 -  
2518 - <step>  
2519 - <name>&#x6b63;&#x5e38;&#x73ed;&#x6b21;&#x6570;&#x636e;</name>  
2520 - <type>Dummy</type>  
2521 - <description/>  
2522 - <distribute>Y</distribute>  
2523 - <custom_distribution/>  
2524 - <copies>1</copies>  
2525 - <partitioning>  
2526 - <method>none</method>  
2527 - <schema_name/>  
2528 - </partitioning>  
2529 - <cluster_schema/>  
2530 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2531 - <xloc>725</xloc>  
2532 - <yloc>404</yloc>  
2533 - <draw>Y</draw>  
2534 - </GUI>  
2535 - </step>  
2536 -  
2537 - <step>  
2538 - <name>&#x6dfb;&#x52a0;&#x53d1;&#x8f66;&#x987a;&#x5e8f;&#x53f7;</name>  
2539 - <type>GroupBy</type>  
2540 - <description/>  
2541 - <distribute>Y</distribute>  
2542 - <custom_distribution/>  
2543 - <copies>1</copies>  
2544 - <partitioning>  
2545 - <method>none</method>  
2546 - <schema_name/>  
2547 - </partitioning>  
2548 - <all_rows>Y</all_rows>  
2549 - <ignore_aggregate>N</ignore_aggregate>  
2550 - <field_ignore/>  
2551 - <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>  
2552 - <prefix>grp</prefix>  
2553 - <add_linenr>Y</add_linenr>  
2554 - <linenr_fieldname>fcno</linenr_fieldname>  
2555 - <give_back_row>N</give_back_row>  
2556 - <group>  
2557 - <field>  
2558 - <name>lp</name>  
2559 - </field>  
2560 - </group>  
2561 - <fields>  
2562 - </fields>  
2563 - <cluster_schema/>  
2564 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2565 - <xloc>442</xloc>  
2566 - <yloc>44</yloc>  
2567 - <draw>Y</draw>  
2568 - </GUI>  
2569 - </step>  
2570 -  
2571 - <step>  
2572 - <name>&#x6dfb;&#x52a0;&#x5bf9;&#x5e94;&#x73ed;&#x6b21;&#x6570;</name>  
2573 - <type>GroupBy</type>  
2574 - <description/>  
2575 - <distribute>Y</distribute>  
2576 - <custom_distribution/>  
2577 - <copies>1</copies>  
2578 - <partitioning>  
2579 - <method>none</method>  
2580 - <schema_name/>  
2581 - </partitioning>  
2582 - <all_rows>Y</all_rows>  
2583 - <ignore_aggregate>N</ignore_aggregate>  
2584 - <field_ignore/>  
2585 - <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>  
2586 - <prefix>grp</prefix>  
2587 - <add_linenr>Y</add_linenr>  
2588 - <linenr_fieldname>bcs</linenr_fieldname>  
2589 - <give_back_row>N</give_back_row>  
2590 - <group>  
2591 - </group>  
2592 - <fields>  
2593 - </fields>  
2594 - <cluster_schema/>  
2595 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2596 - <xloc>692</xloc>  
2597 - <yloc>44</yloc>  
2598 - <draw>Y</draw>  
2599 - </GUI>  
2600 - </step>  
2601 -  
2602 - <step>  
2603 - <name>&#x73ed;&#x6b21;&#x6570;&#x636e;&#x8303;&#x5f0f;&#x5316;</name>  
2604 - <type>Normaliser</type>  
2605 - <description/>  
2606 - <distribute>Y</distribute>  
2607 - <custom_distribution/>  
2608 - <copies>1</copies>  
2609 - <partitioning>  
2610 - <method>none</method>  
2611 - <schema_name/>  
2612 - </partitioning>  
2613 - <typefield>&#x7ad9;&#x70b9;&#x540d;&#x79f0;</typefield>  
2614 - <fields> </fields> <cluster_schema/>  
2615 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2616 - <xloc>248</xloc>  
2617 - <yloc>44</yloc>  
2618 - <draw>Y</draw>  
2619 - </GUI>  
2620 - </step>  
2621 -  
2622 - <step>  
2623 - <name>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178;</name>  
2624 - <type>ValueMapper</type>  
2625 - <description/>  
2626 - <distribute>Y</distribute>  
2627 - <custom_distribution/>  
2628 - <copies>1</copies>  
2629 - <partitioning>  
2630 - <method>none</method>  
2631 - <schema_name/>  
2632 - </partitioning>  
2633 - <field_to_use>bctype</field_to_use>  
2634 - <target_field>bctype_code</target_field>  
2635 - <non_match_default>&#x672a;&#x77e5;&#x7c7b;&#x578b;</non_match_default>  
2636 - <fields>  
2637 - <field>  
2638 - <source_value>&#x6b63;&#x5e38;&#x73ed;&#x6b21;</source_value>  
2639 - <target_value>normal</target_value>  
2640 - </field>  
2641 - <field>  
2642 - <source_value>&#x51fa;&#x573a;</source_value>  
2643 - <target_value>out</target_value>  
2644 - </field>  
2645 - <field>  
2646 - <source_value>&#x8fdb;&#x573a;</source_value>  
2647 - <target_value>in</target_value>  
2648 - </field>  
2649 - <field>  
2650 - <source_value>&#x52a0;&#x6cb9;</source_value>  
2651 - <target_value>oil</target_value>  
2652 - </field>  
2653 - <field>  
2654 - <source_value>&#x4e34;&#x52a0;</source_value>  
2655 - <target_value>temp</target_value>  
2656 - </field>  
2657 - <field>  
2658 - <source_value>&#x533a;&#x95f4;</source_value>  
2659 - <target_value>region</target_value>  
2660 - </field>  
2661 - <field>  
2662 - <source_value>&#x653e;&#x7a7a;</source_value>  
2663 - <target_value>venting</target_value>  
2664 - </field>  
2665 - <field>  
2666 - <source_value>&#x653e;&#x5927;&#x7ad9;</source_value>  
2667 - <target_value>major</target_value>  
2668 - </field>  
2669 - </fields>  
2670 - <cluster_schema/>  
2671 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2672 - <xloc>149</xloc>  
2673 - <yloc>491</yloc>  
2674 - <draw>Y</draw>  
2675 - </GUI>  
2676 - </step>  
2677 -  
2678 - <step>  
2679 - <name>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178; 2</name>  
2680 - <type>ValueMapper</type>  
2681 - <description/>  
2682 - <distribute>Y</distribute>  
2683 - <custom_distribution/>  
2684 - <copies>1</copies>  
2685 - <partitioning>  
2686 - <method>none</method>  
2687 - <schema_name/>  
2688 - </partitioning>  
2689 - <field_to_use>bctype</field_to_use>  
2690 - <target_field>bctype_code</target_field>  
2691 - <non_match_default>&#x672a;&#x77e5;&#x7c7b;&#x578b;</non_match_default>  
2692 - <fields>  
2693 - <field>  
2694 - <source_value>&#x6b63;&#x5e38;&#x73ed;&#x6b21;</source_value>  
2695 - <target_value>normal</target_value>  
2696 - </field>  
2697 - <field>  
2698 - <source_value>&#x51fa;&#x573a;</source_value>  
2699 - <target_value>out</target_value>  
2700 - </field>  
2701 - <field>  
2702 - <source_value>&#x8fdb;&#x573a;</source_value>  
2703 - <target_value>in</target_value>  
2704 - </field>  
2705 - <field>  
2706 - <source_value>&#x52a0;&#x6cb9;</source_value>  
2707 - <target_value>oil</target_value>  
2708 - </field>  
2709 - <field>  
2710 - <source_value>&#x4e34;&#x52a0;</source_value>  
2711 - <target_value>temp</target_value>  
2712 - </field>  
2713 - <field>  
2714 - <source_value>&#x533a;&#x95f4;</source_value>  
2715 - <target_value>region</target_value>  
2716 - </field>  
2717 - <field>  
2718 - <source_value>&#x653e;&#x7a7a;</source_value>  
2719 - <target_value>venting</target_value>  
2720 - </field>  
2721 - <field>  
2722 - <source_value>&#x653e;&#x5927;&#x7ad9;</source_value>  
2723 - <target_value>major</target_value>  
2724 - </field>  
2725 - </fields>  
2726 - <cluster_schema/>  
2727 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2728 - <xloc>333</xloc>  
2729 - <yloc>681</yloc>  
2730 - <draw>Y</draw>  
2731 - </GUI>  
2732 - </step>  
2733 -  
2734 - <step>  
2735 - <name>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178; 3</name>  
2736 - <type>ValueMapper</type>  
2737 - <description/>  
2738 - <distribute>Y</distribute>  
2739 - <custom_distribution/>  
2740 - <copies>1</copies>  
2741 - <partitioning>  
2742 - <method>none</method>  
2743 - <schema_name/>  
2744 - </partitioning>  
2745 - <field_to_use>bctype</field_to_use>  
2746 - <target_field>bctype_code</target_field>  
2747 - <non_match_default>&#x672a;&#x77e5;&#x7c7b;&#x578b;</non_match_default>  
2748 - <fields>  
2749 - <field>  
2750 - <source_value>&#x6b63;&#x5e38;&#x73ed;&#x6b21;</source_value>  
2751 - <target_value>normal</target_value>  
2752 - </field>  
2753 - <field>  
2754 - <source_value>&#x51fa;&#x573a;</source_value>  
2755 - <target_value>out</target_value>  
2756 - </field>  
2757 - <field>  
2758 - <source_value>&#x8fdb;&#x573a;</source_value>  
2759 - <target_value>in</target_value>  
2760 - </field>  
2761 - <field>  
2762 - <source_value>&#x52a0;&#x6cb9;</source_value>  
2763 - <target_value>oil</target_value>  
2764 - </field>  
2765 - <field>  
2766 - <source_value>&#x4e34;&#x52a0;</source_value>  
2767 - <target_value>temp</target_value>  
2768 - </field>  
2769 - <field>  
2770 - <source_value>&#x533a;&#x95f4;</source_value>  
2771 - <target_value>region</target_value>  
2772 - </field>  
2773 - <field>  
2774 - <source_value>&#x653e;&#x7a7a;</source_value>  
2775 - <target_value>venting</target_value>  
2776 - </field>  
2777 - <field>  
2778 - <source_value>&#x653e;&#x5927;&#x7ad9;</source_value>  
2779 - <target_value>major</target_value>  
2780 - </field>  
2781 - </fields>  
2782 - <cluster_schema/>  
2783 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2784 - <xloc>551</xloc>  
2785 - <yloc>928</yloc>  
2786 - <draw>Y</draw>  
2787 - </GUI>  
2788 - </step>  
2789 -  
2790 - <step>  
2791 - <name>&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;&#x7c7b;&#x578b;</name>  
2792 - <type>SelectValues</type>  
2793 - <description/>  
2794 - <distribute>N</distribute>  
2795 - <custom_distribution/>  
2796 - <copies>1</copies>  
2797 - <partitioning>  
2798 - <method>none</method>  
2799 - <schema_name/>  
2800 - </partitioning>  
2801 - <fields> <select_unspecified>Y</select_unspecified>  
2802 - <meta> <name>zdlyversion_</name>  
2803 - <rename>version</rename>  
2804 - <type>Integer</type>  
2805 - <length>-2</length>  
2806 - <precision>-2</precision>  
2807 - <conversion_mask/>  
2808 - <date_format_lenient>false</date_format_lenient>  
2809 - <date_format_locale/>  
2810 - <date_format_timezone/>  
2811 - <lenient_string_to_number>false</lenient_string_to_number>  
2812 - <encoding/>  
2813 - <decimal_symbol/>  
2814 - <grouping_symbol/>  
2815 - <currency_symbol/>  
2816 - <storage_type/>  
2817 - </meta> </fields> <cluster_schema/>  
2818 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2819 - <xloc>1016</xloc>  
2820 - <yloc>305</yloc>  
2821 - <draw>Y</draw>  
2822 - </GUI>  
2823 - </step>  
2824 -  
2825 - <step>  
2826 - <name>&#x7c7b;&#x578b;&#x4fee;&#x6b63;</name>  
2827 - <type>SelectValues</type>  
2828 - <description/>  
2829 - <distribute>Y</distribute>  
2830 - <custom_distribution/>  
2831 - <copies>1</copies>  
2832 - <partitioning>  
2833 - <method>none</method>  
2834 - <schema_name/>  
2835 - </partitioning>  
2836 - <fields> <select_unspecified>N</select_unspecified>  
2837 - <meta> <name>jhlc</name>  
2838 - <rename>jhlc</rename>  
2839 - <type>Number</type>  
2840 - <length>-2</length>  
2841 - <precision>-2</precision>  
2842 - <conversion_mask/>  
2843 - <date_format_lenient>false</date_format_lenient>  
2844 - <date_format_locale/>  
2845 - <date_format_timezone/>  
2846 - <lenient_string_to_number>false</lenient_string_to_number>  
2847 - <encoding/>  
2848 - <decimal_symbol/>  
2849 - <grouping_symbol/>  
2850 - <currency_symbol/>  
2851 - <storage_type/>  
2852 - </meta> <meta> <name>bcsj</name>  
2853 - <rename>bcsj</rename>  
2854 - <type>Integer</type>  
2855 - <length>-2</length>  
2856 - <precision>-2</precision>  
2857 - <conversion_mask/>  
2858 - <date_format_lenient>false</date_format_lenient>  
2859 - <date_format_locale/>  
2860 - <date_format_timezone/>  
2861 - <lenient_string_to_number>false</lenient_string_to_number>  
2862 - <encoding/>  
2863 - <decimal_symbol/>  
2864 - <grouping_symbol/>  
2865 - <currency_symbol/>  
2866 - <storage_type/>  
2867 - </meta> </fields> <cluster_schema/>  
2868 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2869 - <xloc>146</xloc>  
2870 - <yloc>768</yloc>  
2871 - <draw>Y</draw>  
2872 - </GUI>  
2873 - </step>  
2874 -  
2875 - <step>  
2876 - <name>&#x7c7b;&#x578b;&#x4fee;&#x6b63; 2</name>  
2877 - <type>SelectValues</type>  
2878 - <description/>  
2879 - <distribute>Y</distribute>  
2880 - <custom_distribution/>  
2881 - <copies>1</copies>  
2882 - <partitioning>  
2883 - <method>none</method>  
2884 - <schema_name/>  
2885 - </partitioning>  
2886 - <fields> <select_unspecified>N</select_unspecified>  
2887 - <meta> <name>out_mileage</name>  
2888 - <rename>out_mileage</rename>  
2889 - <type>Number</type>  
2890 - <length>-2</length>  
2891 - <precision>-2</precision>  
2892 - <conversion_mask/>  
2893 - <date_format_lenient>false</date_format_lenient>  
2894 - <date_format_locale/>  
2895 - <date_format_timezone/>  
2896 - <lenient_string_to_number>false</lenient_string_to_number>  
2897 - <encoding/>  
2898 - <decimal_symbol/>  
2899 - <grouping_symbol/>  
2900 - <currency_symbol/>  
2901 - <storage_type/>  
2902 - </meta> <meta> <name>out_time</name>  
2903 - <rename>out_time</rename>  
2904 - <type>Integer</type>  
2905 - <length>-2</length>  
2906 - <precision>-2</precision>  
2907 - <conversion_mask/>  
2908 - <date_format_lenient>false</date_format_lenient>  
2909 - <date_format_locale/>  
2910 - <date_format_timezone/>  
2911 - <lenient_string_to_number>false</lenient_string_to_number>  
2912 - <encoding/>  
2913 - <decimal_symbol/>  
2914 - <grouping_symbol/>  
2915 - <currency_symbol/>  
2916 - <storage_type/>  
2917 - </meta> <meta> <name>sxx</name>  
2918 - <rename>sxx</rename>  
2919 - <type>Integer</type>  
2920 - <length>-2</length>  
2921 - <precision>-2</precision>  
2922 - <conversion_mask/>  
2923 - <date_format_lenient>false</date_format_lenient>  
2924 - <date_format_locale/>  
2925 - <date_format_timezone/>  
2926 - <lenient_string_to_number>false</lenient_string_to_number>  
2927 - <encoding/>  
2928 - <decimal_symbol/>  
2929 - <grouping_symbol/>  
2930 - <currency_symbol/>  
2931 - <storage_type/>  
2932 - </meta> </fields> <cluster_schema/>  
2933 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2934 - <xloc>338</xloc>  
2935 - <yloc>1008</yloc>  
2936 - <draw>Y</draw>  
2937 - </GUI>  
2938 - </step>  
2939 -  
2940 - <step>  
2941 - <name>&#x7c7b;&#x578b;&#x4fee;&#x6b63; 3</name>  
2942 - <type>SelectValues</type>  
2943 - <description/>  
2944 - <distribute>Y</distribute>  
2945 - <custom_distribution/>  
2946 - <copies>1</copies>  
2947 - <partitioning>  
2948 - <method>none</method>  
2949 - <schema_name/>  
2950 - </partitioning>  
2951 - <fields> <select_unspecified>N</select_unspecified>  
2952 - <meta> <name>parade_mileage</name>  
2953 - <rename>parade_mileage</rename>  
2954 - <type>Number</type>  
2955 - <length>-2</length>  
2956 - <precision>-2</precision>  
2957 - <conversion_mask/>  
2958 - <date_format_lenient>false</date_format_lenient>  
2959 - <date_format_locale/>  
2960 - <date_format_timezone/>  
2961 - <lenient_string_to_number>false</lenient_string_to_number>  
2962 - <encoding/>  
2963 - <decimal_symbol/>  
2964 - <grouping_symbol/>  
2965 - <currency_symbol/>  
2966 - <storage_type/>  
2967 - </meta> <meta> <name>parade_time</name>  
2968 - <rename>parade_time</rename>  
2969 - <type>Integer</type>  
2970 - <length>-2</length>  
2971 - <precision>-2</precision>  
2972 - <conversion_mask/>  
2973 - <date_format_lenient>false</date_format_lenient>  
2974 - <date_format_locale/>  
2975 - <date_format_timezone/>  
2976 - <lenient_string_to_number>false</lenient_string_to_number>  
2977 - <encoding/>  
2978 - <decimal_symbol/>  
2979 - <grouping_symbol/>  
2980 - <currency_symbol/>  
2981 - <storage_type/>  
2982 - </meta> <meta> <name>sxx2</name>  
2983 - <rename>sxx2</rename>  
2984 - <type>Integer</type>  
2985 - <length>-2</length>  
2986 - <precision>-2</precision>  
2987 - <conversion_mask/>  
2988 - <date_format_lenient>false</date_format_lenient>  
2989 - <date_format_locale/>  
2990 - <date_format_timezone/>  
2991 - <lenient_string_to_number>false</lenient_string_to_number>  
2992 - <encoding/>  
2993 - <decimal_symbol/>  
2994 - <grouping_symbol/>  
2995 - <currency_symbol/>  
2996 - <storage_type/>  
2997 - </meta> </fields> <cluster_schema/>  
2998 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
2999 - <xloc>847</xloc>  
3000 - <yloc>1003</yloc>  
3001 - <draw>Y</draw>  
3002 - </GUI>  
3003 - </step>  
3004 -  
3005 - <step>  
3006 - <name>&#x8ba1;&#x7b97;&#x73ed;&#x6b21;&#x7c7b;&#x578b;</name>  
3007 - <type>ValueMapper</type>  
3008 - <description/>  
3009 - <distribute>Y</distribute>  
3010 - <custom_distribution/>  
3011 - <copies>1</copies>  
3012 - <partitioning>  
3013 - <method>none</method>  
3014 - <schema_name/>  
3015 - </partitioning>  
3016 - <field_to_use>qdzname</field_to_use>  
3017 - <target_field>bctype</target_field>  
3018 - <non_match_default>&#x6b63;&#x5e38;&#x73ed;&#x6b21;</non_match_default>  
3019 - <fields>  
3020 - <field>  
3021 - <source_value>&#x51fa;&#x573a;</source_value>  
3022 - <target_value>&#x51fa;&#x573a;</target_value>  
3023 - </field>  
3024 - <field>  
3025 - <source_value>&#x8fdb;&#x573a;</source_value>  
3026 - <target_value>&#x8fdb;&#x573a;</target_value>  
3027 - </field>  
3028 - </fields>  
3029 - <cluster_schema/>  
3030 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
3031 - <xloc>1014</xloc>  
3032 - <yloc>401</yloc>  
3033 - <draw>Y</draw>  
3034 - </GUI>  
3035 - </step>  
3036 -  
3037 - <step>  
3038 - <name>&#x8bb0;&#x5f55;&#x5173;&#x8054; &#x28;&#x7b1b;&#x5361;&#x5c14;&#x8f93;&#x51fa;&#x29;</name>  
3039 - <type>JoinRows</type>  
3040 - <description/>  
3041 - <distribute>Y</distribute>  
3042 - <custom_distribution/>  
3043 - <copies>1</copies>  
3044 - <partitioning>  
3045 - <method>none</method>  
3046 - <schema_name/>  
3047 - </partitioning>  
3048 - <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>  
3049 - <prefix>out</prefix>  
3050 - <cache_size>500</cache_size>  
3051 - <main/>  
3052 - <compare>  
3053 -<condition>  
3054 - <negated>N</negated>  
3055 - <leftvalue/>  
3056 - <function>&#x3d;</function>  
3057 - <rightvalue/>  
3058 - </condition>  
3059 - </compare>  
3060 - <cluster_schema/>  
3061 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
3062 - <xloc>310</xloc>  
3063 - <yloc>133</yloc>  
3064 - <draw>Y</draw>  
3065 - </GUI>  
3066 - </step>  
3067 -  
3068 - <step>  
3069 - <name>&#x8fc7;&#x6ee4;&#x8bb0;&#x5f55;&#xff08;&#x53d1;&#x8f66;&#x65f6;&#x95f4;&#x4e3a;&#x7a7a;&#xff09;</name>  
3070 - <type>FilterRows</type>  
3071 - <description/>  
3072 - <distribute>Y</distribute>  
3073 - <custom_distribution/>  
3074 - <copies>1</copies>  
3075 - <partitioning>  
3076 - <method>none</method>  
3077 - <schema_name/>  
3078 - </partitioning>  
3079 -<send_true_to/>  
3080 -<send_false_to/>  
3081 - <compare>  
3082 -<condition>  
3083 - <negated>N</negated>  
3084 - <leftvalue>sendtime</leftvalue>  
3085 - <function>IS NOT NULL</function>  
3086 - <rightvalue/>  
3087 - </condition>  
3088 - </compare>  
3089 - <cluster_schema/>  
3090 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
3091 - <xloc>571</xloc>  
3092 - <yloc>44</yloc>  
3093 - <draw>Y</draw>  
3094 - </GUI>  
3095 - </step>  
3096 -  
3097 - <step>  
3098 - <name>&#x8fdb;&#x573a;&#x73ed;&#x6b21;_&#x786e;&#x5b9a;&#x8d77;&#x70b9;&#x7ad9;&#x540d;&#x5b57;</name>  
3099 - <type>ScriptValueMod</type>  
3100 - <description/>  
3101 - <distribute>Y</distribute>  
3102 - <custom_distribution/>  
3103 - <copies>1</copies>  
3104 - <partitioning>  
3105 - <method>none</method>  
3106 - <schema_name/>  
3107 - </partitioning>  
3108 - <compatible>N</compatible>  
3109 - <optimizationLevel>9</optimizationLevel>  
3110 - <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>  
3111 - <jsScript_name>Script 1</jsScript_name>  
3112 - <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x6dfb;&#x52a0;&#x7ad9;&#x70b9;&#x6807;&#x8bc6;&#xa;var cc_groups &#x3d; qdzgroups.split&#x28;&#x22;,&#x22;&#x29;&#x3b; &#x2f;&#x2f; &#x6240;&#x6709;&#x73ed;&#x6b21;&#x8d77;&#x70b9;&#x7ad9;&#x6570;&#x7ec4;&#xa;var qdzname_calcu &#x3d; cc_groups&#x5b;gno - 2&#x5d;&#x3b; &#x2f;&#x2f; &#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x7684;&#x8d77;&#x70b9;&#x7ad9;&#x662f;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ec8;&#x70b9;&#x7ad9;&#xff0c;&#x8fd9;&#x91cc;&#x53ea;&#x6709;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x8d77;&#x70b9;&#x7ad9;&#xff0c;&#x8fd8;&#x9700;&#x8981;&#x8ba1;&#x7b97;&#xa;var startZdtype_calcu &#x3d; &#x27;B&#x27;&#x3b;&#xa;var endZdtype_calcu &#x3d; &#x27;E&#x27;&#x3b;&#xa;&#xa;var destory &#x3d; 0&#x3b; &#x2f;&#x2f; &#x672a;&#x64a4;&#x9500;flag</jsScript_script>  
3113 - </jsScript> </jsScripts> <fields> <field> <name>qdzname_calcu</name>  
3114 - <rename>qdzname_calcu</rename>  
3115 - <type>String</type>  
3116 - <length>-1</length>  
3117 - <precision>-1</precision>  
3118 - <replace>N</replace>  
3119 - </field> <field> <name>startZdtype_calcu</name>  
3120 - <rename>startZdtype_calcu</rename>  
3121 - <type>String</type>  
3122 - <length>-1</length>  
3123 - <precision>-1</precision>  
3124 - <replace>N</replace>  
3125 - </field> <field> <name>endZdtype_calcu</name>  
3126 - <rename>endZdtype_calcu</rename>  
3127 - <type>String</type>  
3128 - <length>-1</length>  
3129 - <precision>-1</precision>  
3130 - <replace>N</replace>  
3131 - </field> <field> <name>destory</name>  
3132 - <rename>destory</rename>  
3133 - <type>Integer</type>  
3134 - <length>-1</length>  
3135 - <precision>-1</precision>  
3136 - <replace>N</replace>  
3137 - </field> </fields> <cluster_schema/>  
3138 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
3139 - <xloc>754</xloc>  
3140 - <yloc>610</yloc>  
3141 - <draw>Y</draw>  
3142 - </GUI>  
3143 - </step>  
3144 -  
3145 - <step>  
3146 - <name>&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x6570;&#x636e;</name>  
3147 - <type>Dummy</type>  
3148 - <description/>  
3149 - <distribute>Y</distribute>  
3150 - <custom_distribution/>  
3151 - <copies>1</copies>  
3152 - <partitioning>  
3153 - <method>none</method>  
3154 - <schema_name/>  
3155 - </partitioning>  
3156 - <cluster_schema/>  
3157 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
3158 - <xloc>997</xloc>  
3159 - <yloc>606</yloc>  
3160 - <draw>Y</draw>  
3161 - </GUI>  
3162 - </step>  
3163 -  
3164 - <step_error_handling>  
3165 - <error>  
3166 - <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail</source_step>  
3167 - <target_step/>  
3168 - <is_enabled>Y</is_enabled>  
3169 - <nr_valuename>c1</nr_valuename>  
3170 - <descriptions_valuename>c2</descriptions_valuename>  
3171 - <fields_valuename>c3</fields_valuename>  
3172 - <codes_valuename>c4</codes_valuename>  
3173 - <max_errors/>  
3174 - <max_pct_errors/>  
3175 - <min_pct_rows/>  
3176 - </error>  
3177 - </step_error_handling>  
3178 - <slave-step-copy-partition-distribution>  
3179 -</slave-step-copy-partition-distribution>  
3180 - <slave_transformation>N</slave_transformation>  
3181 -  
3182 -</transformation> 1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<transformation>
  3 + <info>
  4 + <name>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x5bfc;&#x5165;-&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;</name>
  5 + <description>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</description>
  6 + <extended_description>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#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 + </parameters>
  13 + <log>
  14 +<trans-log-table><connection/>
  15 +<schema/>
  16 +<table/>
  17 +<size_limit_lines/>
  18 +<interval/>
  19 +<timeout_days/>
  20 +<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>
  21 +<perf-log-table><connection/>
  22 +<schema/>
  23 +<table/>
  24 +<interval/>
  25 +<timeout_days/>
  26 +<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>
  27 +<channel-log-table><connection/>
  28 +<schema/>
  29 +<table/>
  30 +<timeout_days/>
  31 +<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>
  32 +<step-log-table><connection/>
  33 +<schema/>
  34 +<table/>
  35 +<timeout_days/>
  36 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>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>
  37 +<metrics-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>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>
  42 + </log>
  43 + <maxdate>
  44 + <connection/>
  45 + <table/>
  46 + <field/>
  47 + <offset>0.0</offset>
  48 + <maxdiff>0.0</maxdiff>
  49 + </maxdate>
  50 + <size_rowset>10000</size_rowset>
  51 + <sleep_time_empty>50</sleep_time_empty>
  52 + <sleep_time_full>50</sleep_time_full>
  53 + <unique_connections>N</unique_connections>
  54 + <feedback_shown>Y</feedback_shown>
  55 + <feedback_size>50000</feedback_size>
  56 + <using_thread_priorities>Y</using_thread_priorities>
  57 + <shared_objects_file/>
  58 + <capture_step_performance>N</capture_step_performance>
  59 + <step_performance_capturing_delay>1000</step_performance_capturing_delay>
  60 + <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
  61 + <dependencies>
  62 + </dependencies>
  63 + <partitionschemas>
  64 + </partitionschemas>
  65 + <slaveservers>
  66 + </slaveservers>
  67 + <clusterschemas>
  68 + </clusterschemas>
  69 + <created_user>-</created_user>
  70 + <created_date>2016&#x2f;06&#x2f;30 12&#x3a;21&#x3a;57.536</created_date>
  71 + <modified_user>-</modified_user>
  72 + <modified_date>2016&#x2f;06&#x2f;30 12&#x3a;21&#x3a;57.536</modified_date>
  73 + <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>
  74 + <is_key_private>N</is_key_private>
  75 + </info>
  76 + <notepads>
  77 + <notepad>
  78 + <note>&#x5b57;&#x5178;&#x8868;&#x5bf9;&#x5e94;&#xff08;&#x4ee5;&#x540e;&#x76f4;&#x63a5;&#x67e5;&#x627e;&#x8868; bsth_c_sys_dictionary&#xff09;&#xa;&#x7c7b;&#x578b; &#x4ee3;&#x7801; &#x540d;&#x79f0;&#xa;LineTrend 0 &#x4e0a;&#x884c;&#xa;LineTrend 1 &#x4e0b;&#x884c;&#xa;ScheduleType normal &#x6b63;&#x5e38;&#x73ed;&#x6b21;&#xa;ScheduleType out &#x51fa;&#x573a;&#xa;ScheduleType in &#x8fdb;&#x573a;&#xa;ScheduleType temp &#x4e34;&#x52a0;&#xa;ScheduleType region &#x533a;&#x95f4;&#xa;ScheduleType venting &#x653e;&#x7a7a;&#xa;ScheduleType major &#x653e;&#x5927;&#x7ad9;</note>
  79 + <xloc>606</xloc>
  80 + <yloc>129</yloc>
  81 + <width>332</width>
  82 + <heigth>186</heigth>
  83 + <fontname>YaHei Consolas Hybrid</fontname>
  84 + <fontsize>12</fontsize>
  85 + <fontbold>N</fontbold>
  86 + <fontitalic>N</fontitalic>
  87 + <fontcolorred>0</fontcolorred>
  88 + <fontcolorgreen>0</fontcolorgreen>
  89 + <fontcolorblue>0</fontcolorblue>
  90 + <backgroundcolorred>255</backgroundcolorred>
  91 + <backgroundcolorgreen>205</backgroundcolorgreen>
  92 + <backgroundcolorblue>112</backgroundcolorblue>
  93 + <bordercolorred>100</bordercolorred>
  94 + <bordercolorgreen>100</bordercolorgreen>
  95 + <bordercolorblue>100</bordercolorblue>
  96 + <drawshadow>Y</drawshadow>
  97 + </notepad>
  98 + <notepad>
  99 + <note>&#x56e0;&#x4e3a;&#x65f6;&#x523b;&#x8868;&#x8f93;&#x5165;&#x683c;&#x5f0f;&#x4e0d;&#x786e;&#x5b9a;&#x6027;&#xff0c;&#x4e3b;&#x8981;&#x56e0;&#x4e3a;&#x8868;&#x7ed3;&#x6784;&#x662f;&#x53cd;&#x8303;&#x5f0f;&#x5316;&#x7684;&#xff0c;&#xa;&#x6240;&#x4ee5;&#x9700;&#x8981;&#x5916;&#x90e8;&#x52a8;&#x6001;&#x6307;&#x5b9a;&#x613f;&#x6570;&#x636e;&#xff0c;&#x5934;&#x4e09;&#x4e2a;step&#x52a8;&#x6001;&#x6307;&#x5b9a;&#x613f;&#x6570;&#x636e;&#xa;&#xa;</note>
  100 + <xloc>79</xloc>
  101 + <yloc>206</yloc>
  102 + <width>346</width>
  103 + <heigth>74</heigth>
  104 + <fontname>YaHei Consolas Hybrid</fontname>
  105 + <fontsize>12</fontsize>
  106 + <fontbold>N</fontbold>
  107 + <fontitalic>N</fontitalic>
  108 + <fontcolorred>0</fontcolorred>
  109 + <fontcolorgreen>0</fontcolorgreen>
  110 + <fontcolorblue>0</fontcolorblue>
  111 + <backgroundcolorred>255</backgroundcolorred>
  112 + <backgroundcolorgreen>205</backgroundcolorgreen>
  113 + <backgroundcolorblue>112</backgroundcolorblue>
  114 + <bordercolorred>100</bordercolorred>
  115 + <bordercolorgreen>100</bordercolorgreen>
  116 + <bordercolorblue>100</bordercolorblue>
  117 + <drawshadow>Y</drawshadow>
  118 + </notepad>
  119 + <notepad>
  120 + <note>&#x8fd9;&#x91cc;&#x6709;&#x4e9b;&#x95ee;&#x9898;&#xa;&#x5728;window2012&#x7684;&#x73af;&#x5883;&#x4e0b;&#xff0c;&#xa;MySql&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x4e2d;&#x5982;&#x679c;&#x8fd4;&#x56de;&#x4e2d;&#x6587;&#x5185;&#x5bb9;&#x7684;&#x5b57;&#x6bb5;&#xff0c;&#x8fd9;&#x4e2a;&#x5185;&#x5bb9;&#x4e71;&#x7801;&#xa;&#x89e3;&#x51b3;&#x529e;&#x6cd5;&#xff0c;&#x5c31;&#x662f;&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x5168;&#x90e8;&#x7f13;&#x5b58;&#xff0c;&#x5c31;&#x4e0d;&#x4e71;&#x7801;&#xa;linux&#x73af;&#x5883;&#x4e0b;&#x6ca1;&#x95ee;&#x9898;</note>
  121 + <xloc>721</xloc>
  122 + <yloc>762</yloc>
  123 + <width>333</width>
  124 + <heigth>90</heigth>
  125 + <fontname>YaHei Consolas Hybrid</fontname>
  126 + <fontsize>12</fontsize>
  127 + <fontbold>N</fontbold>
  128 + <fontitalic>N</fontitalic>
  129 + <fontcolorred>0</fontcolorred>
  130 + <fontcolorgreen>0</fontcolorgreen>
  131 + <fontcolorblue>0</fontcolorblue>
  132 + <backgroundcolorred>255</backgroundcolorred>
  133 + <backgroundcolorgreen>205</backgroundcolorgreen>
  134 + <backgroundcolorblue>112</backgroundcolorblue>
  135 + <bordercolorred>100</bordercolorred>
  136 + <bordercolorgreen>100</bordercolorgreen>
  137 + <bordercolorblue>100</bordercolorblue>
  138 + <drawshadow>Y</drawshadow>
  139 + </notepad>
  140 + <notepad>
  141 + <note>&#x51fa;&#x573a;&#x73ed;&#x6b21;&#xff0c;&#x65b9;&#x5411;&#x6709;&#x65f6;&#x786e;&#x5b9a;&#x4e0d;&#x51c6;&#xff0c;&#xa;&#x7a7a;&#x7684;&#x60c5;&#x51b5;&#x4e0b;&#x8bbe;&#x5b9a;&#x4e3a;0&#xff08;&#x4e0a;&#x884c;&#xff09;</note>
  142 + <xloc>104</xloc>
  143 + <yloc>939</yloc>
  144 + <width>178</width>
  145 + <heigth>42</heigth>
  146 + <fontname>YaHei Consolas Hybrid</fontname>
  147 + <fontsize>12</fontsize>
  148 + <fontbold>N</fontbold>
  149 + <fontitalic>N</fontitalic>
  150 + <fontcolorred>0</fontcolorred>
  151 + <fontcolorgreen>0</fontcolorgreen>
  152 + <fontcolorblue>0</fontcolorblue>
  153 + <backgroundcolorred>255</backgroundcolorred>
  154 + <backgroundcolorgreen>205</backgroundcolorgreen>
  155 + <backgroundcolorblue>112</backgroundcolorblue>
  156 + <bordercolorred>100</bordercolorred>
  157 + <bordercolorgreen>100</bordercolorgreen>
  158 + <bordercolorblue>100</bordercolorblue>
  159 + <drawshadow>Y</drawshadow>
  160 + </notepad>
  161 + <notepad>
  162 + <note>&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#xff0c;&#x65b9;&#x5411;&#x6709;&#x65f6;&#x786e;&#x5b9a;&#x4e0d;&#x51c6;&#xff0c;&#xa;&#x7a7a;&#x7684;&#x60c5;&#x51b5;&#x4e0b;&#x8bbe;&#x5b9a;&#x4e3a;0&#xff08;&#x4e0a;&#x884c;&#xff09;</note>
  163 + <xloc>578</xloc>
  164 + <yloc>1084</yloc>
  165 + <width>178</width>
  166 + <heigth>42</heigth>
  167 + <fontname>YaHei Consolas Hybrid</fontname>
  168 + <fontsize>12</fontsize>
  169 + <fontbold>N</fontbold>
  170 + <fontitalic>N</fontitalic>
  171 + <fontcolorred>0</fontcolorred>
  172 + <fontcolorgreen>0</fontcolorgreen>
  173 + <fontcolorblue>0</fontcolorblue>
  174 + <backgroundcolorred>255</backgroundcolorred>
  175 + <backgroundcolorgreen>205</backgroundcolorgreen>
  176 + <backgroundcolorblue>112</backgroundcolorblue>
  177 + <bordercolorred>100</bordercolorred>
  178 + <bordercolorgreen>100</bordercolorgreen>
  179 + <bordercolorblue>100</bordercolorblue>
  180 + <drawshadow>Y</drawshadow>
  181 + </notepad>
  182 + </notepads>
  183 + <connection>
  184 + <name>192.168.168.1_jwgl_dw</name>
  185 + <server>192.168.168.1</server>
  186 + <type>ORACLE</type>
  187 + <access>Native</access>
  188 + <database>orcl</database>
  189 + <port>1521</port>
  190 + <username>jwgl_dw</username>
  191 + <password>Encrypted 2be98afc86aa7f2e4cb13b977d2adabcd</password>
  192 + <servername/>
  193 + <data_tablespace/>
  194 + <index_tablespace/>
  195 + <attributes>
  196 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  197 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  198 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  199 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  200 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  201 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  202 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  203 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  204 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  205 + </attributes>
  206 + </connection>
  207 + <connection>
  208 + <name>bus_control_variable</name>
  209 + <server>&#x24;&#x7b;v_db_ip&#x7d;</server>
  210 + <type>MYSQL</type>
  211 + <access>Native</access>
  212 + <database>&#x24;&#x7b;v_db_dname&#x7d;</database>
  213 + <port>3306</port>
  214 + <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
  215 + <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>
  216 + <servername/>
  217 + <data_tablespace/>
  218 + <index_tablespace/>
  219 + <attributes>
  220 + <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute>
  221 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  222 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  223 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  224 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  225 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  226 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  227 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  228 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  229 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  230 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  231 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  232 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  233 + </attributes>
  234 + </connection>
  235 + <connection>
  236 + <name>bus_control_&#x516c;&#x53f8;_201</name>
  237 + <server>localhost</server>
  238 + <type>MYSQL</type>
  239 + <access>Native</access>
  240 + <database>control</database>
  241 + <port>3306</port>
  242 + <username>root</username>
  243 + <password>Encrypted </password>
  244 + <servername/>
  245 + <data_tablespace/>
  246 + <index_tablespace/>
  247 + <attributes>
  248 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  249 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  250 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  251 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  252 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  253 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  254 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  255 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  256 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  257 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  258 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  259 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  260 + </attributes>
  261 + </connection>
  262 + <connection>
  263 + <name>bus_control_&#x672c;&#x673a;</name>
  264 + <server>localhost</server>
  265 + <type>MYSQL</type>
  266 + <access>Native</access>
  267 + <database>control</database>
  268 + <port>3306</port>
  269 + <username>root</username>
  270 + <password>Encrypted </password>
  271 + <servername/>
  272 + <data_tablespace/>
  273 + <index_tablespace/>
  274 + <attributes>
  275 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  276 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  277 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  278 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  279 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  280 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  281 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  282 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  283 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  284 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  285 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  286 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  287 + </attributes>
  288 + </connection>
  289 + <connection>
  290 + <name>control_jndi</name>
  291 + <server/>
  292 + <type>MYSQL</type>
  293 + <access>JNDI</access>
  294 + <database>control_jndi</database>
  295 + <port>1521</port>
  296 + <username/>
  297 + <password>Encrypted </password>
  298 + <servername/>
  299 + <data_tablespace/>
  300 + <index_tablespace/>
  301 + <attributes>
  302 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  303 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  304 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  305 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  306 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  307 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  308 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  309 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  310 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  311 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  312 + </attributes>
  313 + </connection>
  314 + <connection>
  315 + <name>JGJW_VM</name>
  316 + <server>192.168.198.240</server>
  317 + <type>ORACLE</type>
  318 + <access>Native</access>
  319 + <database>orcl</database>
  320 + <port>1521</port>
  321 + <username>jwgl</username>
  322 + <password>Encrypted 2be98afc86aa7f2e4cb79ce10d485a8d6</password>
  323 + <servername/>
  324 + <data_tablespace/>
  325 + <index_tablespace/>
  326 + <attributes>
  327 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  328 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  329 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  330 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  331 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  332 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  333 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  334 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  335 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  336 + </attributes>
  337 + </connection>
  338 + <connection>
  339 + <name>NHJW_VM</name>
  340 + <server>192.168.198.240</server>
  341 + <type>ORACLE</type>
  342 + <access>Native</access>
  343 + <database>orcl</database>
  344 + <port>1521</port>
  345 + <username>nhjw</username>
  346 + <password>Encrypted 2be98afc86aa7f2e4cb79ce10d09aa5cd</password>
  347 + <servername/>
  348 + <data_tablespace/>
  349 + <index_tablespace/>
  350 + <attributes>
  351 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  352 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  353 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  354 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  355 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  356 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  357 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  358 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  359 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  360 + </attributes>
  361 + </connection>
  362 + <connection>
  363 + <name>PDGJ_VM</name>
  364 + <server>192.168.198.240</server>
  365 + <type>ORACLE</type>
  366 + <access>Native</access>
  367 + <database>orcl</database>
  368 + <port>1521</port>
  369 + <username>pdgj</username>
  370 + <password>Encrypted 2be98afc86aa7f2e4cb79ce10ce96a8d0</password>
  371 + <servername/>
  372 + <data_tablespace/>
  373 + <index_tablespace/>
  374 + <attributes>
  375 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  376 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  377 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  378 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  379 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  380 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  381 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  382 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  383 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  384 + </attributes>
  385 + </connection>
  386 + <connection>
  387 + <name>repair_dw_mysql_jndi</name>
  388 + <server/>
  389 + <type>MYSQL</type>
  390 + <access>JNDI</access>
  391 + <database>repair_dw_mysql</database>
  392 + <port>1521</port>
  393 + <username/>
  394 + <password>Encrypted </password>
  395 + <servername/>
  396 + <data_tablespace/>
  397 + <index_tablespace/>
  398 + <attributes>
  399 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  400 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  401 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  402 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  403 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  404 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  405 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  406 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  407 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  408 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  409 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  410 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  411 + </attributes>
  412 + </connection>
  413 + <connection>
  414 + <name>repair_dw&#xff08;&#x672c;&#x673a;&#xff09;</name>
  415 + <server>localhost</server>
  416 + <type>MYSQL</type>
  417 + <access>Native</access>
  418 + <database>ruoyi-vue-3.5</database>
  419 + <port>3306</port>
  420 + <username>root</username>
  421 + <password>Encrypted </password>
  422 + <servername/>
  423 + <data_tablespace/>
  424 + <index_tablespace/>
  425 + <attributes>
  426 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  427 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  428 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  429 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  430 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  431 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  432 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  433 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  434 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  435 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  436 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  437 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  438 + </attributes>
  439 + </connection>
  440 + <connection>
  441 + <name>repair_real_h2</name>
  442 + <server/>
  443 + <type>H2</type>
  444 + <access>JNDI</access>
  445 + <database>repair_real_h2</database>
  446 + <port>1521</port>
  447 + <username/>
  448 + <password>Encrypted </password>
  449 + <servername/>
  450 + <data_tablespace/>
  451 + <index_tablespace/>
  452 + <attributes>
  453 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  454 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  455 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  456 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  457 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  458 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  459 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  460 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  461 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  462 + </attributes>
  463 + </connection>
  464 + <connection>
  465 + <name>SNJW_VM</name>
  466 + <server>192.168.198.240</server>
  467 + <type>ORACLE</type>
  468 + <access>Native</access>
  469 + <database>orcl</database>
  470 + <port>1521</port>
  471 + <username>snjw</username>
  472 + <password>Encrypted 2be98afc86aa7f2e4cb79ce10cd9ca5cd</password>
  473 + <servername/>
  474 + <data_tablespace/>
  475 + <index_tablespace/>
  476 + <attributes>
  477 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  478 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  479 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  480 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  481 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  482 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  483 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  484 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  485 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  486 + </attributes>
  487 + </connection>
  488 + <connection>
  489 + <name>test_control&#xff08;&#x672c;&#x673a;&#xff09;</name>
  490 + <server>127.0.0.1</server>
  491 + <type>MYSQL</type>
  492 + <access>Native</access>
  493 + <database>test_control</database>
  494 + <port>3306</port>
  495 + <username>root</username>
  496 + <password>Encrypted </password>
  497 + <servername/>
  498 + <data_tablespace/>
  499 + <index_tablespace/>
  500 + <attributes>
  501 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  502 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  503 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  504 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  505 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  506 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  507 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  508 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  509 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  510 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  511 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  512 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  513 + </attributes>
  514 + </connection>
  515 + <connection>
  516 + <name>xlab_mysql_youle</name>
  517 + <server>101.231.124.8</server>
  518 + <type>MYSQL</type>
  519 + <access>Native</access>
  520 + <database>xlab_youle</database>
  521 + <port>45687</port>
  522 + <username>xlab-youle</username>
  523 + <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>
  524 + <servername/>
  525 + <data_tablespace/>
  526 + <index_tablespace/>
  527 + <attributes>
  528 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  529 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  530 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  531 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  532 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  533 + <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>
  534 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  535 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  536 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  537 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  538 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  539 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  540 + </attributes>
  541 + </connection>
  542 + <connection>
  543 + <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>
  544 + <server>localhost</server>
  545 + <type>MYSQL</type>
  546 + <access>Native</access>
  547 + <database>xlab_youle</database>
  548 + <port>3306</port>
  549 + <username>root</username>
  550 + <password>Encrypted </password>
  551 + <servername/>
  552 + <data_tablespace/>
  553 + <index_tablespace/>
  554 + <attributes>
  555 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  556 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  557 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  558 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  559 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  560 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  561 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  562 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  563 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  564 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  565 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  566 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  567 + </attributes>
  568 + </connection>
  569 + <connection>
  570 + <name>xlab_youle</name>
  571 + <server/>
  572 + <type>MYSQL</type>
  573 + <access>JNDI</access>
  574 + <database>xlab_youle</database>
  575 + <port>1521</port>
  576 + <username/>
  577 + <password>Encrypted </password>
  578 + <servername/>
  579 + <data_tablespace/>
  580 + <index_tablespace/>
  581 + <attributes>
  582 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  583 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  584 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  585 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  586 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  587 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  588 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  589 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  590 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  591 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  592 + </attributes>
  593 + </connection>
  594 + <connection>
  595 + <name>YGJW_VM</name>
  596 + <server>192.168.198.240</server>
  597 + <type>ORACLE</type>
  598 + <access>Native</access>
  599 + <database>orcl</database>
  600 + <port>1521</port>
  601 + <username>ygjw</username>
  602 + <password>Encrypted 2be98afc86aa7f2e4cb79ce10c795a5cd</password>
  603 + <servername/>
  604 + <data_tablespace/>
  605 + <index_tablespace/>
  606 + <attributes>
  607 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  608 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  609 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  610 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  611 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  612 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  613 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  614 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  615 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  616 + </attributes>
  617 + </connection>
  618 + <connection>
  619 + <name>&#x516c;&#x53f8;jgjw</name>
  620 + <server>192.168.168.1</server>
  621 + <type>ORACLE</type>
  622 + <access>Native</access>
  623 + <database>orcl</database>
  624 + <port>1521</port>
  625 + <username>jwgl</username>
  626 + <password>Encrypted 2be98afc86aa7f2e4cb79ce10d485a8d6</password>
  627 + <servername/>
  628 + <data_tablespace/>
  629 + <index_tablespace/>
  630 + <attributes>
  631 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  632 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  633 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  634 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  635 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  636 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  637 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  638 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  639 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  640 + </attributes>
  641 + </connection>
  642 + <connection>
  643 + <name>&#x516c;&#x53f8;snjw</name>
  644 + <server>192.168.168.1</server>
  645 + <type>ORACLE</type>
  646 + <access>Native</access>
  647 + <database>orcl</database>
  648 + <port>1521</port>
  649 + <username>snjw</username>
  650 + <password>Encrypted 2be98afc86aa7f2e4cb79ce10cd9ca5cd</password>
  651 + <servername/>
  652 + <data_tablespace/>
  653 + <index_tablespace/>
  654 + <attributes>
  655 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  656 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  657 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  658 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  659 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  660 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  661 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  662 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  663 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  664 + </attributes>
  665 + </connection>
  666 + <connection>
  667 + <name>&#x516c;&#x53f8;ygjw</name>
  668 + <server>192.168.168.1</server>
  669 + <type>ORACLE</type>
  670 + <access>Native</access>
  671 + <database>orcl</database>
  672 + <port>1521</port>
  673 + <username>ygjw</username>
  674 + <password>Encrypted 2be98afc86aa7f2e4cb79ce10c795a5cd</password>
  675 + <servername/>
  676 + <data_tablespace/>
  677 + <index_tablespace/>
  678 + <attributes>
  679 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  680 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  681 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  682 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  683 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  684 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  685 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  686 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  687 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  688 + </attributes>
  689 + </connection>
  690 + <order>
  691 + <hop> <from>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;Excel&#x8f93;&#x5165;</from><to>&#x73ed;&#x6b21;&#x6570;&#x636e;&#x8303;&#x5f0f;&#x5316;</to><enabled>Y</enabled> </hop>
  692 + <hop> <from>&#x6dfb;&#x52a0;&#x53d1;&#x8f66;&#x987a;&#x5e8f;&#x53f7;</from><to>&#x8fc7;&#x6ee4;&#x8bb0;&#x5f55;&#xff08;&#x53d1;&#x8f66;&#x65f6;&#x95f4;&#x4e3a;&#x7a7a;&#xff09;</to><enabled>Y</enabled> </hop>
  693 + <hop> <from>&#x8fc7;&#x6ee4;&#x8bb0;&#x5f55;&#xff08;&#x53d1;&#x8f66;&#x65f6;&#x95f4;&#x4e3a;&#x7a7a;&#xff09;</from><to>&#x6dfb;&#x52a0;&#x5bf9;&#x5e94;&#x73ed;&#x6b21;&#x6570;</to><enabled>Y</enabled> </hop>
  694 + <hop> <from>&#x6dfb;&#x52a0;&#x5bf9;&#x5e94;&#x73ed;&#x6b21;&#x6570;</from><to>&#x5904;&#x7406;&#x6570;&#x636e;</to><enabled>Y</enabled> </hop>
  695 + <hop> <from>&#x5904;&#x7406;&#x6570;&#x636e;</from><to>&#x5206;&#x7ec4;&#x5404;&#x4e2a;&#x8def;&#x724c;&#x7684;&#x7ad9;</to><enabled>Y</enabled> </hop>
  696 + <hop> <from>&#x67e5;&#x627e;&#x65f6;&#x523b;&#x8868;&#x57fa;&#x7840;&#x4fe1;&#x606f;&#x5173;&#x8054;</from><to>&#x67e5;&#x627e;&#x8def;&#x724c;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>
  697 + <hop> <from>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x5173;&#x8054;</from><to>&#x67e5;&#x627e;&#x65f6;&#x523b;&#x8868;&#x57fa;&#x7840;&#x4fe1;&#x606f;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>
  698 + <hop> <from>&#x4e0a;&#x4e0b;&#x884c;&#x5b57;&#x5178;</from><to>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178;</to><enabled>Y</enabled> </hop>
  699 + <hop> <from>&#x4e0a;&#x4e0b;&#x884c;&#x5b57;&#x5178; 2</from><to>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178; 2</to><enabled>Y</enabled> </hop>
  700 + <hop> <from>&#x4e0a;&#x4e0b;&#x884c;&#x5b57;&#x5178; 3</from><to>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178; 3</to><enabled>Y</enabled> </hop>
  701 + <hop> <from>&#x5339;&#x914d;&#x4e0a;&#x4e0b;&#x884c;&#x6b63;&#x5e38;&#x73ed;&#x6b21;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</from><to>&#x7c7b;&#x578b;&#x4fee;&#x6b63;</to><enabled>Y</enabled> </hop>
  702 + <hop> <from>&#x6309;&#x7167;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x8fc7;&#x6ee4;&#x6570;&#x636e;1</from><to>&#x6309;&#x7167;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x8fc7;&#x6ee4;&#x6570;&#x636e;2</to><enabled>Y</enabled> </hop>
  703 + <hop> <from>&#x6309;&#x7167;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x8fc7;&#x6ee4;&#x6570;&#x636e;1</from><to>&#x6b63;&#x5e38;&#x73ed;&#x6b21;&#x6570;&#x636e;</to><enabled>Y</enabled> </hop>
  704 + <hop> <from>&#x6309;&#x7167;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x8fc7;&#x6ee4;&#x6570;&#x636e;2</from><to>&#x51fa;&#x573a;&#x73ed;&#x6b21;&#x6570;&#x636e;</to><enabled>Y</enabled> </hop>
  705 + <hop> <from>&#x6309;&#x7167;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x8fc7;&#x6ee4;&#x6570;&#x636e;2</from><to>&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x6570;&#x636e;</to><enabled>Y</enabled> </hop>
  706 + <hop> <from>&#x67e5;&#x627e;&#x6240;&#x6709;&#x7ebf;&#x8def;&#x4e0a;&#x4e0b;&#x884c;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</from><to>&#x5339;&#x914d;&#x4e0a;&#x4e0b;&#x884c;&#x6b63;&#x5e38;&#x73ed;&#x6b21;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</to><enabled>Y</enabled> </hop>
  707 + <hop> <from>&#x67e5;&#x627e;&#x7ec8;&#x70b9;&#x7ad9;&#x5173;&#x8054;</from><to>&#x4e0a;&#x4e0b;&#x884c;&#x5b57;&#x5178;</to><enabled>Y</enabled> </hop>
  708 + <hop> <from>&#x67e5;&#x627e;&#x8d77;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x5e76;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</from><to>&#x67e5;&#x627e;&#x7ec8;&#x70b9;&#x7ad9;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>
  709 + <hop> <from>&#x6b63;&#x5e38;&#x73ed;&#x6b21;_&#x5904;&#x7406;&#x6570;&#x636e;</from><to>&#x67e5;&#x627e;&#x8d77;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x5e76;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</to><enabled>Y</enabled> </hop>
  710 + <hop> <from>&#x6b63;&#x5e38;&#x73ed;&#x6b21;&#x6570;&#x636e;</from><to>&#x6b63;&#x5e38;&#x73ed;&#x6b21;_&#x5904;&#x7406;&#x6570;&#x636e;</to><enabled>Y</enabled> </hop>
  711 + <hop> <from>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178;</from><to>&#x67e5;&#x627e;&#x6240;&#x6709;&#x7ebf;&#x8def;&#x4e0a;&#x4e0b;&#x884c;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</to><enabled>Y</enabled> </hop>
  712 + <hop> <from>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178; 2</from><to>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x51fa;&#x573a;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</to><enabled>Y</enabled> </hop>
  713 + <hop> <from>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178; 3</from><to>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x8fdb;&#x573a;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</to><enabled>Y</enabled> </hop>
  714 + <hop> <from>&#x8ba1;&#x7b97;&#x73ed;&#x6b21;&#x7c7b;&#x578b;</from><to>&#x6309;&#x7167;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x8fc7;&#x6ee4;&#x6570;&#x636e;1</to><enabled>Y</enabled> </hop>
  715 + <hop> <from>&#x51fa;&#x573a;&#x73ed;&#x6b21;&#x6570;&#x636e;</from><to>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;1</to><enabled>Y</enabled> </hop>
  716 + <hop> <from>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;1</from><to>&#x51fa;&#x573a;&#x73ed;&#x6b21;_&#x786e;&#x5b9a;&#x7ec8;&#x70b9;&#x7ad9;&#x540d;&#x5b57;</to><enabled>Y</enabled> </hop>
  717 + <hop> <from>&#x51fa;&#x573a;&#x73ed;&#x6b21;_&#x786e;&#x5b9a;&#x7ec8;&#x70b9;&#x7ad9;&#x540d;&#x5b57;</from><to>&#x67e5;&#x627e;&#x51fa;&#x573a;&#x7ec8;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x5e76;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</to><enabled>Y</enabled> </hop>
  718 + <hop> <from>&#x67e5;&#x627e;&#x51fa;&#x573a;&#x7ec8;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x5e76;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</from><to>&#x4e0a;&#x4e0b;&#x884c;&#x5b57;&#x5178; 2</to><enabled>Y</enabled> </hop>
  719 + <hop> <from>&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x6570;&#x636e;</from><to>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;2</to><enabled>Y</enabled> </hop>
  720 + <hop> <from>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;2</from><to>&#x8fdb;&#x573a;&#x73ed;&#x6b21;_&#x786e;&#x5b9a;&#x8d77;&#x70b9;&#x7ad9;&#x540d;&#x5b57;</to><enabled>Y</enabled> </hop>
  721 + <hop> <from>&#x8fdb;&#x573a;&#x73ed;&#x6b21;_&#x786e;&#x5b9a;&#x8d77;&#x70b9;&#x7ad9;&#x540d;&#x5b57;</from><to>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ebf;&#x8def;&#x65b9;&#x5411;</to><enabled>Y</enabled> </hop>
  722 + <hop> <from>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ebf;&#x8def;&#x65b9;&#x5411;</from><to>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ec8;&#x70b9;&#x7ad9;&#xff0c;&#x5e76;&#x4f5c;&#x4e3a;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x7684;&#x8d77;&#x70b9;&#x7ad9;</to><enabled>Y</enabled> </hop>
  723 + <hop> <from>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</from><to>&#x6dfb;&#x52a0;&#x53d1;&#x8f66;&#x987a;&#x5e8f;&#x53f7;</to><enabled>Y</enabled> </hop>
  724 + <hop> <from>&#x5206;&#x7ec4;&#x5404;&#x4e2a;&#x8def;&#x724c;&#x7684;&#x7ad9;</from><to>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x5173;&#x8054;</to><enabled>Y</enabled> </hop>
  725 + <hop> <from>&#x589e;&#x52a0;&#x65f6;&#x523b;&#x8868;&#x540d;&#x5b57;&#xff0c;&#x7ebf;&#x8def;&#x540d;&#x5b57;&#xff0c;&#x505c;&#x8f66;&#x573a;&#x540d;&#x5b57;</from><to>&#x8bb0;&#x5f55;&#x5173;&#x8054; &#x28;&#x7b1b;&#x5361;&#x5c14;&#x8f93;&#x51fa;&#x29;</to><enabled>Y</enabled> </hop>
  726 + <hop> <from>&#x73ed;&#x6b21;&#x6570;&#x636e;&#x8303;&#x5f0f;&#x5316;</from><to>&#x8bb0;&#x5f55;&#x5173;&#x8054; &#x28;&#x7b1b;&#x5361;&#x5c14;&#x8f93;&#x51fa;&#x29;</to><enabled>Y</enabled> </hop>
  727 + <hop> <from>&#x8bb0;&#x5f55;&#x5173;&#x8054; &#x28;&#x7b1b;&#x5361;&#x5c14;&#x8f93;&#x51fa;&#x29;</from><to>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</to><enabled>Y</enabled> </hop>
  728 + <hop> <from>&#x7c7b;&#x578b;&#x4fee;&#x6b63;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail</to><enabled>Y</enabled> </hop>
  729 + <hop> <from>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ec8;&#x70b9;&#x7ad9;&#xff0c;&#x5e76;&#x4f5c;&#x4e3a;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x7684;&#x8d77;&#x70b9;&#x7ad9;</from><to>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x8d77;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</to><enabled>Y</enabled> </hop>
  730 + <hop> <from>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x8d77;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</from><to>&#x4e0a;&#x4e0b;&#x884c;&#x5b57;&#x5178; 3</to><enabled>Y</enabled> </hop>
  731 + <hop> <from>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x51fa;&#x573a;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</from><to>&#x5339;&#x914d;&#x51fa;&#x573a;&#x73ed;&#x6b21;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</to><enabled>Y</enabled> </hop>
  732 + <hop> <from>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x8fdb;&#x573a;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</from><to>&#x5339;&#x914d;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</to><enabled>Y</enabled> </hop>
  733 + <hop> <from>&#x5339;&#x914d;&#x51fa;&#x573a;&#x73ed;&#x6b21;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</from><to>&#x4e0a;&#x4e0b;&#x884c;NULL&#x5224;&#x5b9a;</to><enabled>Y</enabled> </hop>
  734 + <hop> <from>&#x4e0a;&#x4e0b;&#x884c;NULL&#x5224;&#x5b9a;</from><to>&#x7c7b;&#x578b;&#x4fee;&#x6b63; 2</to><enabled>Y</enabled> </hop>
  735 + <hop> <from>&#x7c7b;&#x578b;&#x4fee;&#x6b63; 2</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail 2</to><enabled>Y</enabled> </hop>
  736 + <hop> <from>&#x5339;&#x914d;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</from><to>&#x4e0a;&#x4e0b;&#x884c;&#x5224;&#x5b9a; 2</to><enabled>Y</enabled> </hop>
  737 + <hop> <from>&#x4e0a;&#x4e0b;&#x884c;&#x5224;&#x5b9a; 2</from><to>&#x7c7b;&#x578b;&#x4fee;&#x6b63; 3</to><enabled>Y</enabled> </hop>
  738 + <hop> <from>&#x7c7b;&#x578b;&#x4fee;&#x6b63; 3</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail 3</to><enabled>Y</enabled> </hop>
  739 + <hop> <from>&#x67e5;&#x627e;&#x8def;&#x724c;&#x5173;&#x8054;</from><to>&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;&#x7c7b;&#x578b;</to><enabled>Y</enabled> </hop>
  740 + <hop> <from>&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;&#x7c7b;&#x578b;</from><to>&#x8ba1;&#x7b97;&#x73ed;&#x6b21;&#x7c7b;&#x578b;</to><enabled>Y</enabled> </hop>
  741 + <hop> <from>&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;&#x7c7b;&#x578b;</from><to>&#x66f4;&#x65b0;&#x65f6;&#x523b;&#x8868;&#x4e3b;&#x8868;&#x7248;&#x672c;</to><enabled>Y</enabled> </hop>
  742 + </order>
  743 + <step>
  744 + <name>&#x4e0a;&#x4e0b;&#x884c;NULL&#x5224;&#x5b9a;</name>
  745 + <type>IfNull</type>
  746 + <description/>
  747 + <distribute>Y</distribute>
  748 + <custom_distribution/>
  749 + <copies>1</copies>
  750 + <partitioning>
  751 + <method>none</method>
  752 + <schema_name/>
  753 + </partitioning>
  754 + <replaceAllByValue/>
  755 + <replaceAllMask/>
  756 + <selectFields>Y</selectFields>
  757 + <selectValuesType>N</selectValuesType>
  758 + <setEmptyStringAll>N</setEmptyStringAll>
  759 + <valuetypes>
  760 + </valuetypes>
  761 + <fields>
  762 + <field>
  763 + <name>sxx</name>
  764 + <value>0</value>
  765 + <mask/>
  766 + <set_empty_string>N</set_empty_string>
  767 + </field>
  768 + </fields>
  769 + <cluster_schema/>
  770 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  771 + <xloc>335</xloc>
  772 + <yloc>938</yloc>
  773 + <draw>Y</draw>
  774 + </GUI>
  775 + </step>
  776 +
  777 + <step>
  778 + <name>&#x4e0a;&#x4e0b;&#x884c;&#x5224;&#x5b9a; 2</name>
  779 + <type>IfNull</type>
  780 + <description/>
  781 + <distribute>Y</distribute>
  782 + <custom_distribution/>
  783 + <copies>1</copies>
  784 + <partitioning>
  785 + <method>none</method>
  786 + <schema_name/>
  787 + </partitioning>
  788 + <replaceAllByValue/>
  789 + <replaceAllMask/>
  790 + <selectFields>Y</selectFields>
  791 + <selectValuesType>N</selectValuesType>
  792 + <setEmptyStringAll>N</setEmptyStringAll>
  793 + <valuetypes>
  794 + </valuetypes>
  795 + <fields>
  796 + <field>
  797 + <name>sxx2</name>
  798 + <value>0</value>
  799 + <mask/>
  800 + <set_empty_string>N</set_empty_string>
  801 + </field>
  802 + </fields>
  803 + <cluster_schema/>
  804 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  805 + <xloc>804</xloc>
  806 + <yloc>1081</yloc>
  807 + <draw>Y</draw>
  808 + </GUI>
  809 + </step>
  810 +
  811 + <step>
  812 + <name>&#x4e0a;&#x4e0b;&#x884c;&#x5b57;&#x5178;</name>
  813 + <type>ValueMapper</type>
  814 + <description/>
  815 + <distribute>Y</distribute>
  816 + <custom_distribution/>
  817 + <copies>1</copies>
  818 + <partitioning>
  819 + <method>none</method>
  820 + <schema_name/>
  821 + </partitioning>
  822 + <field_to_use>sxx</field_to_use>
  823 + <target_field>sxx_desc</target_field>
  824 + <non_match_default/>
  825 + <fields>
  826 + <field>
  827 + <source_value>0</source_value>
  828 + <target_value>&#x4e0a;&#x884c;</target_value>
  829 + </field>
  830 + <field>
  831 + <source_value>1</source_value>
  832 + <target_value>&#x4e0b;&#x884c;</target_value>
  833 + </field>
  834 + </fields>
  835 + <cluster_schema/>
  836 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  837 + <xloc>147</xloc>
  838 + <yloc>403</yloc>
  839 + <draw>Y</draw>
  840 + </GUI>
  841 + </step>
  842 +
  843 + <step>
  844 + <name>&#x4e0a;&#x4e0b;&#x884c;&#x5b57;&#x5178; 2</name>
  845 + <type>ValueMapper</type>
  846 + <description/>
  847 + <distribute>Y</distribute>
  848 + <custom_distribution/>
  849 + <copies>1</copies>
  850 + <partitioning>
  851 + <method>none</method>
  852 + <schema_name/>
  853 + </partitioning>
  854 + <field_to_use>sxx</field_to_use>
  855 + <target_field>sxx_desc</target_field>
  856 + <non_match_default/>
  857 + <fields>
  858 + <field>
  859 + <source_value>0</source_value>
  860 + <target_value>&#x4e0a;&#x884c;</target_value>
  861 + </field>
  862 + <field>
  863 + <source_value>1</source_value>
  864 + <target_value>&#x4e0b;&#x884c;</target_value>
  865 + </field>
  866 + </fields>
  867 + <cluster_schema/>
  868 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  869 + <xloc>331</xloc>
  870 + <yloc>598</yloc>
  871 + <draw>Y</draw>
  872 + </GUI>
  873 + </step>
  874 +
  875 + <step>
  876 + <name>&#x4e0a;&#x4e0b;&#x884c;&#x5b57;&#x5178; 3</name>
  877 + <type>ValueMapper</type>
  878 + <description/>
  879 + <distribute>Y</distribute>
  880 + <custom_distribution/>
  881 + <copies>1</copies>
  882 + <partitioning>
  883 + <method>none</method>
  884 + <schema_name/>
  885 + </partitioning>
  886 + <field_to_use>sxx</field_to_use>
  887 + <target_field>sxx_desc</target_field>
  888 + <non_match_default/>
  889 + <fields>
  890 + <field>
  891 + <source_value>0</source_value>
  892 + <target_value>&#x4e0a;&#x884c;</target_value>
  893 + </field>
  894 + <field>
  895 + <source_value>1</source_value>
  896 + <target_value>&#x4e0b;&#x884c;</target_value>
  897 + </field>
  898 + </fields>
  899 + <cluster_schema/>
  900 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  901 + <xloc>553</xloc>
  902 + <yloc>859</yloc>
  903 + <draw>Y</draw>
  904 + </GUI>
  905 + </step>
  906 +
  907 + <step>
  908 + <name>&#x51fa;&#x573a;&#x73ed;&#x6b21;_&#x786e;&#x5b9a;&#x7ec8;&#x70b9;&#x7ad9;&#x540d;&#x5b57;</name>
  909 + <type>ScriptValueMod</type>
  910 + <description/>
  911 + <distribute>Y</distribute>
  912 + <custom_distribution/>
  913 + <copies>1</copies>
  914 + <partitioning>
  915 + <method>none</method>
  916 + <schema_name/>
  917 + </partitioning>
  918 + <compatible>N</compatible>
  919 + <optimizationLevel>9</optimizationLevel>
  920 + <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
  921 + <jsScript_name>Script 1</jsScript_name>
  922 + <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x6dfb;&#x52a0;&#x7ad9;&#x70b9;&#x6807;&#x8bc6;&#xa;var cc_groups &#x3d; qdzgroups.split&#x28;&#x22;,&#x22;&#x29;&#x3b; &#x2f;&#x2f; &#x6240;&#x6709;&#x73ed;&#x6b21;&#x8d77;&#x70b9;&#x7ad9;&#x6570;&#x7ec4;&#xa;var zdzname &#x3d; cc_groups&#x5b;gno&#x5d;&#x3b; &#x2f;&#x2f; &#x51fa;&#x573a;&#x73ed;&#x6b21;&#x7684;&#x7ec8;&#x70b9;&#x7ad9;&#x662f;&#x4e0b;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x8d77;&#x59cb;&#x7ad9;&#xa;var endZdtype &#x3d; &#x27;B&#x27;&#x3b;&#xa;&#x2f;&#x2f; var endZdtype &#x3d; &#x27;E&#x27;&#x3b;&#xa;&#xa;var destory &#x3d; 0&#x3b; &#x2f;&#x2f; &#x672a;&#x64a4;&#x9500;flag</jsScript_script>
  923 + </jsScript> </jsScripts> <fields> <field> <name>zdzname</name>
  924 + <rename>zdzname</rename>
  925 + <type>String</type>
  926 + <length>-1</length>
  927 + <precision>-1</precision>
  928 + <replace>N</replace>
  929 + </field> <field> <name>endZdtype</name>
  930 + <rename>endZdtype</rename>
  931 + <type>String</type>
  932 + <length>-1</length>
  933 + <precision>-1</precision>
  934 + <replace>N</replace>
  935 + </field> <field> <name>destory</name>
  936 + <rename>destory</rename>
  937 + <type>Integer</type>
  938 + <length>-1</length>
  939 + <precision>-1</precision>
  940 + <replace>N</replace>
  941 + </field> </fields> <cluster_schema/>
  942 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  943 + <xloc>575</xloc>
  944 + <yloc>502</yloc>
  945 + <draw>Y</draw>
  946 + </GUI>
  947 + </step>
  948 +
  949 + <step>
  950 + <name>&#x51fa;&#x573a;&#x73ed;&#x6b21;&#x6570;&#x636e;</name>
  951 + <type>Dummy</type>
  952 + <description/>
  953 + <distribute>Y</distribute>
  954 + <custom_distribution/>
  955 + <copies>1</copies>
  956 + <partitioning>
  957 + <method>none</method>
  958 + <schema_name/>
  959 + </partitioning>
  960 + <cluster_schema/>
  961 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  962 + <xloc>869</xloc>
  963 + <yloc>504</yloc>
  964 + <draw>Y</draw>
  965 + </GUI>
  966 + </step>
  967 +
  968 + <step>
  969 + <name>&#x5206;&#x7ec4;&#x5404;&#x4e2a;&#x8def;&#x724c;&#x7684;&#x7ad9;</name>
  970 + <type>GroupBy</type>
  971 + <description/>
  972 + <distribute>Y</distribute>
  973 + <custom_distribution/>
  974 + <copies>1</copies>
  975 + <partitioning>
  976 + <method>none</method>
  977 + <schema_name/>
  978 + </partitioning>
  979 + <all_rows>Y</all_rows>
  980 + <ignore_aggregate>N</ignore_aggregate>
  981 + <field_ignore/>
  982 + <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>
  983 + <prefix>grp</prefix>
  984 + <add_linenr>Y</add_linenr>
  985 + <linenr_fieldname>gno</linenr_fieldname>
  986 + <give_back_row>N</give_back_row>
  987 + <group>
  988 + <field>
  989 + <name>lp</name>
  990 + </field>
  991 + </group>
  992 + <fields>
  993 + <field>
  994 + <aggregate>qdzgroups</aggregate>
  995 + <subject>qdzname</subject>
  996 + <type>CONCAT_STRING</type>
  997 + <valuefield>,</valuefield>
  998 + </field>
  999 + </fields>
  1000 + <cluster_schema/>
  1001 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1002 + <xloc>892</xloc>
  1003 + <yloc>44</yloc>
  1004 + <draw>Y</draw>
  1005 + </GUI>
  1006 + </step>
  1007 +
  1008 + <step>
  1009 + <name>&#x5339;&#x914d;&#x4e0a;&#x4e0b;&#x884c;&#x6b63;&#x5e38;&#x73ed;&#x6b21;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</name>
  1010 + <type>ScriptValueMod</type>
  1011 + <description/>
  1012 + <distribute>Y</distribute>
  1013 + <custom_distribution/>
  1014 + <copies>1</copies>
  1015 + <partitioning>
  1016 + <method>none</method>
  1017 + <schema_name/>
  1018 + </partitioning>
  1019 + <compatible>N</compatible>
  1020 + <optimizationLevel>9</optimizationLevel>
  1021 + <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
  1022 + <jsScript_name>Script 1</jsScript_name>
  1023 + <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;var jhlc&#x3b; &#x2f;&#x2f; &#x8ba1;&#x5212;&#x91cc;&#x7a0b;&#xa;var bcsj&#x3b; &#x2f;&#x2f; &#x73ed;&#x6b21;&#x65f6;&#x95f4;&#xa;&#xa;&#x2f;&#x2f; &#x65f6;&#x95f4;&#x8303;&#x56f4;&#x6b63;&#x5219;&#x8868;&#x8fbe;&#x5f0f;&#xa;var timeRex &#x3d; &#x2f;&#x5e;&#x28;&#x5b;01&#x5d;&#x3f;&#x5b;0-9&#x5d;&#x7c;2&#x5b;0-3&#x5d;&#x29;&#x3a;&#x5b;0-5&#x5d;&#x5b;0-9&#x5d;&#x24;&#x2f;&#x3b;&#xa;&#x2f;&#x2f; &#x53d1;&#x8f66;&#x65f6;&#x95f4;&#x8f6c;&#x6362;&#x6210;&#x65e5;&#x671f;&#xa;var fcsj_hour &#x3d; str2num&#x28;sendtime_calcu.substr&#x28;0, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa;var fcsj_min &#x3d; str2num&#x28;sendtime_calcu.substr&#x28;3, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa;var fcsj_date &#x3d; new Date&#x28;2000,1,1,fcsj_hour,fcsj_min,0&#x29;&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x5224;&#x5b9a;&#x662f;&#x5426;&#x65e9;&#x9ad8;&#x5cf0;&#xa;var isZgf &#x3d; false&#x3b;&#xa;if &#x28;timeRex.test&#x28;early_start_time&#x29; &#x26;&#x26; timeRex.test&#x28;early_end_time&#x29; &#x26;&#x26; early_up_time &#x21;&#x3d; null &#x26;&#x26; early_down_time &#x21;&#x3d; null&#x29; &#x7b;&#xa; var early_s_hour &#x3d; str2num&#x28;early_start_time.substr&#x28;0, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa; var early_s_min &#x3d; str2num&#x28;early_start_time.substr&#x28;3, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa; var early_s_date &#x3d; new Date&#x28;2000,1,1,early_s_hour,early_s_min,0&#x29;&#x3b;&#xa;&#xa; var early_e_hour &#x3d; str2num&#x28;early_end_time.substr&#x28;0, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa; var early_e_min &#x3d; str2num&#x28;early_end_time.substr&#x28;3, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa; var early_e_date &#x3d; new Date&#x28;2000,1,1,early_e_hour,early_e_min,0&#x29;&#x3b;&#xa;&#xa; if &#x28;fcsj_date &#x3e;&#x3d; early_s_date &#x26;&#x26; fcsj_date &#x3c;&#x3d; early_e_date&#x29; &#x7b;&#xa; isZgf &#x3d; true&#x3b;&#xa; &#x7d;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x5224;&#x5b9a;&#x662f;&#x5426;&#x665a;&#x9ad8;&#x5cf0;&#xa;var isWgf &#x3d; false&#x3b;&#xa;if &#x28;timeRex.test&#x28;late_start_time&#x29; &#x26;&#x26; timeRex.test&#x28;late_end_time&#x29; &#x26;&#x26; late_up_time &#x21;&#x3d; null &#x26;&#x26; late_down_time &#x21;&#x3d; null&#x29; &#x7b;&#xa; var late_s_hour &#x3d; str2num&#x28;late_start_time.substr&#x28;0, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa; var late_s_min &#x3d; str2num&#x28;late_start_time.substr&#x28;3, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa; var late_s_date &#x3d; new Date&#x28;2000,1,1,late_s_hour,late_s_min,0&#x29;&#x3b;&#xa;&#xa; var late_e_hour &#x3d; str2num&#x28;late_end_time.substr&#x28;0, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa; var late_e_min &#x3d; str2num&#x28;late_end_time.substr&#x28;3, 2&#x29;, &#x22;&#x23;&#x22;&#x29;&#x3b;&#xa; var late_e_date &#x3d; new Date&#x28;2000,1,1,late_e_hour,late_e_min,0&#x29;&#x3b;&#xa;&#xa; if &#x28;fcsj_date &#x3e;&#x3d; late_s_date &#x26;&#x26; fcsj_date &#x3c;&#x3d; late_e_date&#x29; &#x7b;&#xa; isWgf &#x3d; true&#x3b;&#xa; &#x7d;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x5224;&#x5b9a;&#x662f;&#x5426;&#x665a;&#x9ad8;&#x5cf0;&#xa;&#xa;if &#x28;sxx &#x3d;&#x3d; 0&#x29; &#x7b; &#x2f;&#x2f; &#x4e0a;&#x884c;&#xa; if &#x28;isZgf&#x29; &#x7b;&#xa; jhlc &#x3d; up_mileage&#x3b;&#xa; bcsj &#x3d; early_up_time &#x21;&#x3d; 0 &#x3f; early_up_time &#x3a; up_travel_time&#x3b;&#xa; &#x7d; else if &#x28;isWgf&#x29; &#x7b;&#xa; jhlc &#x3d; up_mileage&#x3b;&#xa; bcsj &#x3d; late_up_time &#x21;&#x3d; 0 &#x3f; late_up_time &#x3a; up_travel_time&#x3b;&#xa; &#x7d; else &#x7b;&#xa; jhlc &#x3d; up_mileage&#x3b;&#xa; bcsj &#x3d; up_travel_time&#x3b;&#xa; &#x7d;&#xa;&#x7d; else &#x7b; &#x2f;&#x2f; sxx &#x3d;&#x3d; 1 &#x4e0b;&#x884c;&#xa; if &#x28;isZgf&#x29; &#x7b;&#xa; jhlc &#x3d; down_mileage&#x3b;&#xa; bcsj &#x3d; early_down_time &#x21;&#x3d; 0 &#x3f; early_down_time &#x3a; down_travel_time&#x3b;&#xa; &#x7d; else if &#x28;isWgf&#x29; &#x7b;&#xa; jhlc &#x3d; down_mileage&#x3b;&#xa; bcsj &#x3d; late_down_time &#x21;&#x3d; 0 &#x3f; late_down_time &#x3a; down_travel_time&#x3b;&#xa; &#x7d; else &#x7b;&#xa; jhlc &#x3d; down_mileage&#x3b;&#xa; bcsj &#x3d; down_travel_time&#x3b;&#xa; &#x7d;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x5982;&#x679c;&#x5df2;&#x7ecf;&#x6307;&#x5b9a;&#x4e86;&#x884c;&#x9a76;&#x65f6;&#x95f4;&#xff0c;&#x5c31;&#x4e0d;&#x4f7f;&#x7528;&#x4e0a;&#x9762;&#x8ba1;&#x7b97;&#x7684;&#x65f6;&#x95f4;&#xa;if &#x28;xssj_cal&#x29; &#x7b;&#xa; bcsj &#x3d; xssj_cal&#x3b;&#xa;&#x7d;&#xa;</jsScript_script>
  1024 + </jsScript> </jsScripts> <fields> <field> <name>jhlc</name>
  1025 + <rename>jhlc</rename>
  1026 + <type>String</type>
  1027 + <length>-1</length>
  1028 + <precision>-1</precision>
  1029 + <replace>N</replace>
  1030 + </field> <field> <name>bcsj</name>
  1031 + <rename>bcsj</rename>
  1032 + <type>String</type>
  1033 + <length>-1</length>
  1034 + <precision>-1</precision>
  1035 + <replace>N</replace>
  1036 + </field> </fields> <cluster_schema/>
  1037 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1038 + <xloc>148</xloc>
  1039 + <yloc>674</yloc>
  1040 + <draw>Y</draw>
  1041 + </GUI>
  1042 + </step>
  1043 +
  1044 + <step>
  1045 + <name>&#x5339;&#x914d;&#x51fa;&#x573a;&#x73ed;&#x6b21;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</name>
  1046 + <type>ScriptValueMod</type>
  1047 + <description/>
  1048 + <distribute>Y</distribute>
  1049 + <custom_distribution/>
  1050 + <copies>1</copies>
  1051 + <partitioning>
  1052 + <method>none</method>
  1053 + <schema_name/>
  1054 + </partitioning>
  1055 + <compatible>N</compatible>
  1056 + <optimizationLevel>9</optimizationLevel>
  1057 + <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
  1058 + <jsScript_name>Script 1</jsScript_name>
  1059 + <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;var out_mileage&#x3b; &#x2f;&#x2f; &#x51fa;&#x573a;&#x8ba1;&#x5212;&#x91cc;&#x7a0b;&#xa;var out_time&#x3b; &#x2f;&#x2f; &#x51fa;&#x573a;&#x8ba1;&#x5212;&#x65f6;&#x95f4;&#xa;&#xa;if &#x28;sxx &#x3d;&#x3d; 0&#x29; &#x7b; &#x2f;&#x2f; &#x4e0a;&#x884c;&#xa; out_mileage &#x3d; up_out_mileage&#x3b;&#xa; out_time &#x3d; up_out_timer&#x3b;&#xa;&#x7d; else &#x7b; &#x2f;&#x2f; sxx &#x3d;&#x3d; 1 &#x4e0b;&#x884c;&#xa; out_mileage &#x3d; down_out_mileage&#x3b;&#xa; out_time &#x3d; down_out_timer&#x3b;&#xa;&#x7d;&#xa;&#xa;&#xa;&#xa;</jsScript_script>
  1060 + </jsScript> </jsScripts> <fields> <field> <name>out_mileage</name>
  1061 + <rename>out_mileage</rename>
  1062 + <type>String</type>
  1063 + <length>-1</length>
  1064 + <precision>-1</precision>
  1065 + <replace>N</replace>
  1066 + </field> <field> <name>out_time</name>
  1067 + <rename>out_time</rename>
  1068 + <type>String</type>
  1069 + <length>-1</length>
  1070 + <precision>-1</precision>
  1071 + <replace>N</replace>
  1072 + </field> </fields> <cluster_schema/>
  1073 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1074 + <xloc>336</xloc>
  1075 + <yloc>862</yloc>
  1076 + <draw>Y</draw>
  1077 + </GUI>
  1078 + </step>
  1079 +
  1080 + <step>
  1081 + <name>&#x5339;&#x914d;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</name>
  1082 + <type>ScriptValueMod</type>
  1083 + <description/>
  1084 + <distribute>Y</distribute>
  1085 + <custom_distribution/>
  1086 + <copies>1</copies>
  1087 + <partitioning>
  1088 + <method>none</method>
  1089 + <schema_name/>
  1090 + </partitioning>
  1091 + <compatible>N</compatible>
  1092 + <optimizationLevel>9</optimizationLevel>
  1093 + <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
  1094 + <jsScript_name>Script 1</jsScript_name>
  1095 + <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;var parade_mileage&#x3b; &#x2f;&#x2f; &#x8fdb;&#x573a;&#x8ba1;&#x5212;&#x91cc;&#x7a0b;&#xa;var parade_time&#x3b; &#x2f;&#x2f; &#x8fdb;&#x573a;&#x8ba1;&#x5212;&#x65f6;&#x95f4;&#xa;&#xa;if &#x28;sxx2 &#x3d;&#x3d; 0&#x29; &#x7b; &#x2f;&#x2f; &#x4e0a;&#x884c;&#xa; parade_mileage &#x3d; up_in_mileage&#x3b;&#xa; parade_time &#x3d; up_in_timer&#x3b;&#xa;&#x7d; else &#x7b; &#x2f;&#x2f; sxx &#x3d;&#x3d; 1 &#x4e0b;&#x884c;&#xa; parade_mileage &#x3d; down_in_mileage&#x3b;&#xa; parade_time &#x3d; down_in_timer&#x3b;&#xa;&#x7d;&#xa;&#xa;&#xa;&#xa;</jsScript_script>
  1096 + </jsScript> </jsScripts> <fields> <field> <name>parade_mileage</name>
  1097 + <rename>parade_mileage</rename>
  1098 + <type>String</type>
  1099 + <length>-1</length>
  1100 + <precision>-1</precision>
  1101 + <replace>N</replace>
  1102 + </field> <field> <name>parade_time</name>
  1103 + <rename>parade_time</rename>
  1104 + <type>String</type>
  1105 + <length>-1</length>
  1106 + <precision>-1</precision>
  1107 + <replace>N</replace>
  1108 + </field> </fields> <cluster_schema/>
  1109 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1110 + <xloc>726</xloc>
  1111 + <yloc>1005</yloc>
  1112 + <draw>Y</draw>
  1113 + </GUI>
  1114 + </step>
  1115 +
  1116 + <step>
  1117 + <name>&#x589e;&#x52a0;&#x65f6;&#x523b;&#x8868;&#x540d;&#x5b57;&#xff0c;&#x7ebf;&#x8def;&#x540d;&#x5b57;&#xff0c;&#x505c;&#x8f66;&#x573a;&#x540d;&#x5b57;</name>
  1118 + <type>DataGrid</type>
  1119 + <description/>
  1120 + <distribute>Y</distribute>
  1121 + <custom_distribution/>
  1122 + <copies>1</copies>
  1123 + <partitioning>
  1124 + <method>none</method>
  1125 + <schema_name/>
  1126 + </partitioning>
  1127 + <fields>
  1128 + </fields>
  1129 + <data>
  1130 + <line> </line>
  1131 + </data>
  1132 + <cluster_schema/>
  1133 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1134 + <xloc>110</xloc>
  1135 + <yloc>133</yloc>
  1136 + <draw>Y</draw>
  1137 + </GUI>
  1138 + </step>
  1139 +
  1140 + <step>
  1141 + <name>&#x5904;&#x7406;&#x6570;&#x636e;</name>
  1142 + <type>ScriptValueMod</type>
  1143 + <description/>
  1144 + <distribute>Y</distribute>
  1145 + <custom_distribution/>
  1146 + <copies>1</copies>
  1147 + <partitioning>
  1148 + <method>none</method>
  1149 + <schema_name/>
  1150 + </partitioning>
  1151 + <compatible>N</compatible>
  1152 + <optimizationLevel>9</optimizationLevel>
  1153 + <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
  1154 + <jsScript_name>Script 1</jsScript_name>
  1155 + <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x5982;&#x679c;&#x7ad9;&#x540d;&#x4e2d;&#x6709;&#x7c7b;&#x4f3c;-&#x3e;&#x7b;&#x6570;&#x5b57;&#x7d;&#xff0c;&#x4f7f;&#x7528;&#x6b63;&#x5219;&#x8868;&#x8fbe;&#x5f0f;&#x8fc7;&#x6ee4;&#x6389;&#xa;qdzname &#x3d; qdzname.replace&#x28;&#x2f;-&#x3e;&#x5c;d&#x2b;&#x2f;g,&#x27;&#x27;&#x29;&#x3b;&#xa;if &#x28;qdzname &#x21;&#x3d; &#x22;&#x51fa;&#x573a;&#x22; &#x26;&#x26; qdzname &#x21;&#x3d; &#x22;&#x8fdb;&#x573a;&#x22;&#x29; &#x7b;&#xa; qdzname &#x3d; qdzname &#x2b; &#x22;&#x25;&#x22;&#x3b; &#x2f;&#x2f; &#x6a21;&#x7cca;&#x5339;&#x914d;&#x6807;&#x8bc6;&#x7b26;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x53d1;&#x8f66;&#x65f6;&#x95f4;&#x548c;&#x884c;&#x9a76;&#x65f6;&#x95f4;&#x53ef;&#x80fd;&#x5408;&#x5e76;&#xff0c;&#x683c;&#x5f0f;&#x5982;&#xff1a;10&#x3a;01-&#x3e;40&#xff0c;&#x9700;&#x8981;&#x5224;&#x5b9a;&#xa;var sendtime_ori &#x3d; sendtime&#x3b;&#xa;var xssj_cal &#x3d; null&#x3b;&#xa;if &#x28;sendtime.search&#x28;&#x2f;-&#x3e;&#x5c;d&#x2b;&#x2f;g&#x29; &#x3e; 0&#x29; &#x7b;&#xa; sendtime_ori &#x3d; sendtime.replace&#x28;&#x2f;-&#x3e;&#x5c;d&#x2b;&#x2f;g,&#x27;&#x27;&#x29;&#x3b;&#xa; xssj_cal &#x3d; sendtime.substr&#x28;sendtime.search&#x28;&#x2f;-&#x3e;&#x5c;d&#x2b;&#x2f;g&#x29; &#x2b; 2&#x29;&#x3b;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; sendtime&#x5904;&#x7406;&#xff0c;hhmm&#xff0c;hh&#x3a;mm&#xff0c;hh,mm&#xa;var sendtime_calcu &#x3d; sendtime_ori.replace&#x28;&#x2f;&#x5c;s&#x2f;g, &#x22;&#x22;&#x29;&#x3b;&#xa;if &#x28;sendtime_ori.length &#x3d;&#x3d; 5&#x29; &#x7b; &#x2f;&#x2f; &#x6700;&#x957f;&#x683c;&#x5f0f;&#xff0c;&#x5305;&#x62ec;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x7edf;&#x4e00;&#x628a;&#x5206;&#x9694;&#x7b26;&#x66ff;&#x6362;&#x6210;&#x5192;&#x53f7;&#xa; sendtime_calcu &#x3d; sendtime_ori.substr&#x28;0, 2&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime_ori.substr&#x28;3, 2&#x29;&#x3b;&#xa;&#x7d; else if &#x28;sendtime_ori.length &#x3d;&#x3d; 4&#x29; &#x7b;&#xa; if &#x28;sendtime_ori.indexOf&#x28;&#x22;&#x3a;&#x22;&#x29; &#x3e; 0&#x29; &#x7b; &#x2f;&#x2f; &#x5192;&#x53f7;&#x5206;&#x9694;&#xff0c;&#x65e0;&#x9700;&#x4fee;&#x6539;&#xa; sendtime_calcu &#x3d; sendtime_ori&#x3b;&#xa; &#x7d; else if &#x28;sendtime_ori.indexOf&#x28;&#x22;,&#x22;&#x29; &#x3e; 0&#x29; &#x7b; &#x2f;&#x2f; &#x9017;&#x53f7;&#x5206;&#x9694;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime_ori.substr&#x28;0, 1&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime_ori.substr&#x28;2, 2&#x29;&#x3b;&#xa; &#x7d; else &#x7b; &#x2f;&#x2f; &#x65e0;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime_ori.substr&#x28;0, 2&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime_ori.substr&#x28;2, 2&#x29;&#x3b;&#xa; &#x7d;&#xa;&#x7d; else if &#x28;sendtime_ori.length &#x3d;&#x3d; 3&#x29; &#x7b; &#x2f;&#x2f; &#x65e0;&#x5206;&#x9694;&#x7b26;&#xff0c;&#x6539;&#x6210;&#x5192;&#x53f7;&#x5206;&#x9694;&#xa; sendtime_calcu &#x3d; sendtime_ori.substr&#x28;0, 1&#x29; &#x2b; &#x22;&#x3a;&#x22; &#x2b; sendtime_ori.substr&#x28;1, 2&#x29;&#x3b;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x5168;&#x90e8;&#x4fee;&#x6b63;&#x5b8c;&#x6bd5;&#x540e;&#xff0c;&#x5982;&#x679c;&#x957f;&#x5ea6;&#x4e0d;&#x662f;5&#xff0c;&#x524d;&#x9762;&#x8865;0&#xa;if &#x28;sendtime_calcu.length &#x21;&#x3d; 5&#x29; &#x7b;&#xa; sendtime_calcu &#x3d; &#x22;0&#x22; &#x2b; sendtime_calcu&#x3b;&#xa;&#x7d;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;&#x5206;&#x73ed;&#xa;var isfb &#x3d; 0&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;&#x505c;&#x9a76;&#xa;var ists &#x3d; 0&#x3b;&#xa;&#xa;&#x2f;&#x2f; &#x8bbe;&#x7f6e;isCanceled&#xa;var iscanceled &#x3d; 0&#x3b;</jsScript_script>
  1156 + </jsScript> </jsScripts> <fields> <field> <name>qdzname</name>
  1157 + <rename>qdzname</rename>
  1158 + <type>String</type>
  1159 + <length>-1</length>
  1160 + <precision>-1</precision>
  1161 + <replace>Y</replace>
  1162 + </field> <field> <name>isfb</name>
  1163 + <rename>isfb</rename>
  1164 + <type>Integer</type>
  1165 + <length>-1</length>
  1166 + <precision>-1</precision>
  1167 + <replace>N</replace>
  1168 + </field> <field> <name>iscanceled</name>
  1169 + <rename>iscanceled</rename>
  1170 + <type>Integer</type>
  1171 + <length>-1</length>
  1172 + <precision>-1</precision>
  1173 + <replace>N</replace>
  1174 + </field> <field> <name>sendtime_calcu</name>
  1175 + <rename>sendtime_calcu</rename>
  1176 + <type>String</type>
  1177 + <length>-1</length>
  1178 + <precision>-1</precision>
  1179 + <replace>N</replace>
  1180 + </field> <field> <name>xssj_cal</name>
  1181 + <rename>xssj_cal</rename>
  1182 + <type>Integer</type>
  1183 + <length>-1</length>
  1184 + <precision>-1</precision>
  1185 + <replace>N</replace>
  1186 + </field> <field> <name>ists</name>
  1187 + <rename>ists</rename>
  1188 + <type>Integer</type>
  1189 + <length>-1</length>
  1190 + <precision>-1</precision>
  1191 + <replace>N</replace>
  1192 + </field> </fields> <cluster_schema/>
  1193 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1194 + <xloc>788</xloc>
  1195 + <yloc>44</yloc>
  1196 + <draw>Y</draw>
  1197 + </GUI>
  1198 + </step>
  1199 +
  1200 + <step>
  1201 + <name>&#x5b57;&#x6bb5;&#x9009;&#x62e9;</name>
  1202 + <type>SelectValues</type>
  1203 + <description/>
  1204 + <distribute>Y</distribute>
  1205 + <custom_distribution/>
  1206 + <copies>1</copies>
  1207 + <partitioning>
  1208 + <method>none</method>
  1209 + <schema_name/>
  1210 + </partitioning>
  1211 + <fields> <field> <name>&#x8def;&#x724c;</name>
  1212 + <rename>lp</rename>
  1213 + <length>-2</length>
  1214 + <precision>-2</precision>
  1215 + </field> <field> <name>&#x7ad9;&#x70b9;&#x540d;&#x79f0;</name>
  1216 + <rename>qdzname</rename>
  1217 + <length>-2</length>
  1218 + <precision>-2</precision>
  1219 + </field> <field> <name>&#x53d1;&#x8f66;&#x65f6;&#x95f4;</name>
  1220 + <rename>sendtime</rename>
  1221 + <length>-2</length>
  1222 + <precision>-2</precision>
  1223 + </field> <select_unspecified>Y</select_unspecified>
  1224 + </fields> <cluster_schema/>
  1225 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1226 + <xloc>444</xloc>
  1227 + <yloc>131</yloc>
  1228 + <draw>Y</draw>
  1229 + </GUI>
  1230 + </step>
  1231 +
  1232 + <step>
  1233 + <name>&#x6309;&#x7167;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x8fc7;&#x6ee4;&#x6570;&#x636e;1</name>
  1234 + <type>FilterRows</type>
  1235 + <description/>
  1236 + <distribute>Y</distribute>
  1237 + <custom_distribution/>
  1238 + <copies>1</copies>
  1239 + <partitioning>
  1240 + <method>none</method>
  1241 + <schema_name/>
  1242 + </partitioning>
  1243 +<send_true_to>&#x6b63;&#x5e38;&#x73ed;&#x6b21;&#x6570;&#x636e;</send_true_to>
  1244 +<send_false_to>&#x6309;&#x7167;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x8fc7;&#x6ee4;&#x6570;&#x636e;2</send_false_to>
  1245 + <compare>
  1246 +<condition>
  1247 + <negated>N</negated>
  1248 + <leftvalue>bctype</leftvalue>
  1249 + <function>&#x3d;</function>
  1250 + <rightvalue/>
  1251 + <value><name>constant</name><type>String</type><text>&#x6b63;&#x5e38;&#x73ed;&#x6b21;</text><length>-1</length><precision>-1</precision><isnull>N</isnull><mask/></value> </condition>
  1252 + </compare>
  1253 + <cluster_schema/>
  1254 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1255 + <xloc>860</xloc>
  1256 + <yloc>401</yloc>
  1257 + <draw>Y</draw>
  1258 + </GUI>
  1259 + </step>
  1260 +
  1261 + <step>
  1262 + <name>&#x6309;&#x7167;&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x8fc7;&#x6ee4;&#x6570;&#x636e;2</name>
  1263 + <type>FilterRows</type>
  1264 + <description/>
  1265 + <distribute>Y</distribute>
  1266 + <custom_distribution/>
  1267 + <copies>1</copies>
  1268 + <partitioning>
  1269 + <method>none</method>
  1270 + <schema_name/>
  1271 + </partitioning>
  1272 +<send_true_to>&#x51fa;&#x573a;&#x73ed;&#x6b21;&#x6570;&#x636e;</send_true_to>
  1273 +<send_false_to>&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x6570;&#x636e;</send_false_to>
  1274 + <compare>
  1275 +<condition>
  1276 + <negated>N</negated>
  1277 + <leftvalue>bctype</leftvalue>
  1278 + <function>&#x3d;</function>
  1279 + <rightvalue/>
  1280 + <value><name>constant</name><type>String</type><text>&#x51fa;&#x573a;</text><length>-1</length><precision>-1</precision><isnull>N</isnull><mask/></value> </condition>
  1281 + </compare>
  1282 + <cluster_schema/>
  1283 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1284 + <xloc>995</xloc>
  1285 + <yloc>503</yloc>
  1286 + <draw>Y</draw>
  1287 + </GUI>
  1288 + </step>
  1289 +
  1290 + <step>
  1291 + <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail</name>
  1292 + <type>InsertUpdate</type>
  1293 + <description/>
  1294 + <distribute>Y</distribute>
  1295 + <custom_distribution/>
  1296 + <copies>1</copies>
  1297 + <partitioning>
  1298 + <method>none</method>
  1299 + <schema_name/>
  1300 + </partitioning>
  1301 + <connection>bus_control_variable</connection>
  1302 + <commit>100</commit>
  1303 + <update_bypassed>N</update_bypassed>
  1304 + <lookup>
  1305 + <schema/>
  1306 + <table>bsth_c_s_ttinfo_detail</table>
  1307 + <key>
  1308 + <name>xlid</name>
  1309 + <field>xl</field>
  1310 + <condition>&#x3d;</condition>
  1311 + <name2/>
  1312 + </key>
  1313 + <key>
  1314 + <name>ttid</name>
  1315 + <field>ttinfo</field>
  1316 + <condition>&#x3d;</condition>
  1317 + <name2/>
  1318 + </key>
  1319 + <key>
  1320 + <name>lpid</name>
  1321 + <field>lp</field>
  1322 + <condition>&#x3d;</condition>
  1323 + <name2/>
  1324 + </key>
  1325 + <key>
  1326 + <name>fcno</name>
  1327 + <field>fcno</field>
  1328 + <condition>&#x3d;</condition>
  1329 + <name2/>
  1330 + </key>
  1331 + <key>
  1332 + <name>bcs</name>
  1333 + <field>bcs</field>
  1334 + <condition>&#x3d;</condition>
  1335 + <name2/>
  1336 + </key>
  1337 + <value>
  1338 + <name>lp</name>
  1339 + <rename>lpid</rename>
  1340 + <update>Y</update>
  1341 + </value>
  1342 + <value>
  1343 + <name>bc_type</name>
  1344 + <rename>bctype_code</rename>
  1345 + <update>Y</update>
  1346 + </value>
  1347 + <value>
  1348 + <name>bcs</name>
  1349 + <rename>bcs</rename>
  1350 + <update>Y</update>
  1351 + </value>
  1352 + <value>
  1353 + <name>bcsj</name>
  1354 + <rename>bcsj</rename>
  1355 + <update>Y</update>
  1356 + </value>
  1357 + <value>
  1358 + <name>fcno</name>
  1359 + <rename>fcno</rename>
  1360 + <update>Y</update>
  1361 + </value>
  1362 + <value>
  1363 + <name>jhlc</name>
  1364 + <rename>jhlc</rename>
  1365 + <update>Y</update>
  1366 + </value>
  1367 + <value>
  1368 + <name>fcsj</name>
  1369 + <rename>sendtime_calcu</rename>
  1370 + <update>Y</update>
  1371 + </value>
  1372 + <value>
  1373 + <name>ttinfo</name>
  1374 + <rename>ttid</rename>
  1375 + <update>Y</update>
  1376 + </value>
  1377 + <value>
  1378 + <name>xl</name>
  1379 + <rename>xlid</rename>
  1380 + <update>Y</update>
  1381 + </value>
  1382 + <value>
  1383 + <name>qdz</name>
  1384 + <rename>qdzid</rename>
  1385 + <update>Y</update>
  1386 + </value>
  1387 + <value>
  1388 + <name>zdz</name>
  1389 + <rename>zdzid</rename>
  1390 + <update>Y</update>
  1391 + </value>
  1392 + <value>
  1393 + <name>xl_dir</name>
  1394 + <rename>sxx</rename>
  1395 + <update>Y</update>
  1396 + </value>
  1397 + <value>
  1398 + <name>isfb</name>
  1399 + <rename>isfb</rename>
  1400 + <update>Y</update>
  1401 + </value>
  1402 + <value>
  1403 + <name>qdz_code</name>
  1404 + <rename>qdzcode</rename>
  1405 + <update>Y</update>
  1406 + </value>
  1407 + <value>
  1408 + <name>qdz_name</name>
  1409 + <rename>qdzname_</rename>
  1410 + <update>Y</update>
  1411 + </value>
  1412 + <value>
  1413 + <name>zdz_code</name>
  1414 + <rename>zdzcode</rename>
  1415 + <update>Y</update>
  1416 + </value>
  1417 + <value>
  1418 + <name>zdz_name</name>
  1419 + <rename>zdzname</rename>
  1420 + <update>Y</update>
  1421 + </value>
  1422 + <value>
  1423 + <name>ists</name>
  1424 + <rename>ists</rename>
  1425 + <update>Y</update>
  1426 + </value>
  1427 + <value>
  1428 + <name>line_version</name>
  1429 + <rename>version</rename>
  1430 + <update>Y</update>
  1431 + </value>
  1432 + </lookup>
  1433 + <cluster_schema/>
  1434 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1435 + <xloc>143</xloc>
  1436 + <yloc>860</yloc>
  1437 + <draw>Y</draw>
  1438 + </GUI>
  1439 + </step>
  1440 +
  1441 + <step>
  1442 + <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail 2</name>
  1443 + <type>InsertUpdate</type>
  1444 + <description/>
  1445 + <distribute>Y</distribute>
  1446 + <custom_distribution/>
  1447 + <copies>1</copies>
  1448 + <partitioning>
  1449 + <method>none</method>
  1450 + <schema_name/>
  1451 + </partitioning>
  1452 + <connection>bus_control_variable</connection>
  1453 + <commit>100</commit>
  1454 + <update_bypassed>N</update_bypassed>
  1455 + <lookup>
  1456 + <schema/>
  1457 + <table>bsth_c_s_ttinfo_detail</table>
  1458 + <key>
  1459 + <name>xlid</name>
  1460 + <field>xl</field>
  1461 + <condition>&#x3d;</condition>
  1462 + <name2/>
  1463 + </key>
  1464 + <key>
  1465 + <name>ttid</name>
  1466 + <field>ttinfo</field>
  1467 + <condition>&#x3d;</condition>
  1468 + <name2/>
  1469 + </key>
  1470 + <key>
  1471 + <name>lpid</name>
  1472 + <field>lp</field>
  1473 + <condition>&#x3d;</condition>
  1474 + <name2/>
  1475 + </key>
  1476 + <key>
  1477 + <name>fcno</name>
  1478 + <field>fcno</field>
  1479 + <condition>&#x3d;</condition>
  1480 + <name2/>
  1481 + </key>
  1482 + <key>
  1483 + <name>bcs</name>
  1484 + <field>bcs</field>
  1485 + <condition>&#x3d;</condition>
  1486 + <name2/>
  1487 + </key>
  1488 + <value>
  1489 + <name>tcc</name>
  1490 + <rename>qdzid</rename>
  1491 + <update>Y</update>
  1492 + </value>
  1493 + <value>
  1494 + <name>zdz</name>
  1495 + <rename>zdzid</rename>
  1496 + <update>Y</update>
  1497 + </value>
  1498 + <value>
  1499 + <name>xl</name>
  1500 + <rename>xlid</rename>
  1501 + <update>Y</update>
  1502 + </value>
  1503 + <value>
  1504 + <name>ttinfo</name>
  1505 + <rename>ttid</rename>
  1506 + <update>Y</update>
  1507 + </value>
  1508 + <value>
  1509 + <name>xl_dir</name>
  1510 + <rename>sxx</rename>
  1511 + <update>Y</update>
  1512 + </value>
  1513 + <value>
  1514 + <name>lp</name>
  1515 + <rename>lpid</rename>
  1516 + <update>Y</update>
  1517 + </value>
  1518 + <value>
  1519 + <name>jhlc</name>
  1520 + <rename>out_mileage</rename>
  1521 + <update>Y</update>
  1522 + </value>
  1523 + <value>
  1524 + <name>fcsj</name>
  1525 + <rename>sendtime_calcu</rename>
  1526 + <update>Y</update>
  1527 + </value>
  1528 + <value>
  1529 + <name>bcsj</name>
  1530 + <rename>out_time</rename>
  1531 + <update>Y</update>
  1532 + </value>
  1533 + <value>
  1534 + <name>bcs</name>
  1535 + <rename>bcs</rename>
  1536 + <update>Y</update>
  1537 + </value>
  1538 + <value>
  1539 + <name>fcno</name>
  1540 + <rename>fcno</rename>
  1541 + <update>Y</update>
  1542 + </value>
  1543 + <value>
  1544 + <name>bc_type</name>
  1545 + <rename>bctype_code</rename>
  1546 + <update>Y</update>
  1547 + </value>
  1548 + <value>
  1549 + <name>isfb</name>
  1550 + <rename>isfb</rename>
  1551 + <update>Y</update>
  1552 + </value>
  1553 + <value>
  1554 + <name>qdz_code</name>
  1555 + <rename>qdzcode</rename>
  1556 + <update>Y</update>
  1557 + </value>
  1558 + <value>
  1559 + <name>qdz_name</name>
  1560 + <rename>tn</rename>
  1561 + <update>Y</update>
  1562 + </value>
  1563 + <value>
  1564 + <name>zdz_code</name>
  1565 + <rename>zdzcode</rename>
  1566 + <update>Y</update>
  1567 + </value>
  1568 + <value>
  1569 + <name>zdz_name</name>
  1570 + <rename>zdzname_</rename>
  1571 + <update>Y</update>
  1572 + </value>
  1573 + <value>
  1574 + <name>ists</name>
  1575 + <rename>ists</rename>
  1576 + <update>Y</update>
  1577 + </value>
  1578 + <value>
  1579 + <name>line_version</name>
  1580 + <rename>version</rename>
  1581 + <update>Y</update>
  1582 + </value>
  1583 + </lookup>
  1584 + <cluster_schema/>
  1585 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1586 + <xloc>340</xloc>
  1587 + <yloc>1087</yloc>
  1588 + <draw>Y</draw>
  1589 + </GUI>
  1590 + </step>
  1591 +
  1592 + <step>
  1593 + <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail 3</name>
  1594 + <type>InsertUpdate</type>
  1595 + <description/>
  1596 + <distribute>Y</distribute>
  1597 + <custom_distribution/>
  1598 + <copies>1</copies>
  1599 + <partitioning>
  1600 + <method>none</method>
  1601 + <schema_name/>
  1602 + </partitioning>
  1603 + <connection>bus_control_variable</connection>
  1604 + <commit>100</commit>
  1605 + <update_bypassed>N</update_bypassed>
  1606 + <lookup>
  1607 + <schema/>
  1608 + <table>bsth_c_s_ttinfo_detail</table>
  1609 + <key>
  1610 + <name>xlid</name>
  1611 + <field>xl</field>
  1612 + <condition>&#x3d;</condition>
  1613 + <name2/>
  1614 + </key>
  1615 + <key>
  1616 + <name>ttid</name>
  1617 + <field>ttinfo</field>
  1618 + <condition>&#x3d;</condition>
  1619 + <name2/>
  1620 + </key>
  1621 + <key>
  1622 + <name>lpid</name>
  1623 + <field>lp</field>
  1624 + <condition>&#x3d;</condition>
  1625 + <name2/>
  1626 + </key>
  1627 + <key>
  1628 + <name>fcno</name>
  1629 + <field>fcno</field>
  1630 + <condition>&#x3d;</condition>
  1631 + <name2/>
  1632 + </key>
  1633 + <key>
  1634 + <name>bcs</name>
  1635 + <field>bcs</field>
  1636 + <condition>&#x3d;</condition>
  1637 + <name2/>
  1638 + </key>
  1639 + <value>
  1640 + <name>fcno</name>
  1641 + <rename>fcno</rename>
  1642 + <update>Y</update>
  1643 + </value>
  1644 + <value>
  1645 + <name>bcs</name>
  1646 + <rename>bcs</rename>
  1647 + <update>Y</update>
  1648 + </value>
  1649 + <value>
  1650 + <name>xl</name>
  1651 + <rename>xlid</rename>
  1652 + <update>Y</update>
  1653 + </value>
  1654 + <value>
  1655 + <name>ttinfo</name>
  1656 + <rename>ttid</rename>
  1657 + <update>Y</update>
  1658 + </value>
  1659 + <value>
  1660 + <name>lp</name>
  1661 + <rename>lpid</rename>
  1662 + <update>Y</update>
  1663 + </value>
  1664 + <value>
  1665 + <name>bc_type</name>
  1666 + <rename>bctype_code</rename>
  1667 + <update>Y</update>
  1668 + </value>
  1669 + <value>
  1670 + <name>bcsj</name>
  1671 + <rename>parade_time</rename>
  1672 + <update>Y</update>
  1673 + </value>
  1674 + <value>
  1675 + <name>jhlc</name>
  1676 + <rename>parade_mileage</rename>
  1677 + <update>Y</update>
  1678 + </value>
  1679 + <value>
  1680 + <name>fcsj</name>
  1681 + <rename>sendtime_calcu</rename>
  1682 + <update>Y</update>
  1683 + </value>
  1684 + <value>
  1685 + <name>xl_dir</name>
  1686 + <rename>sxx2</rename>
  1687 + <update>Y</update>
  1688 + </value>
  1689 + <value>
  1690 + <name>qdz</name>
  1691 + <rename>qdzid</rename>
  1692 + <update>Y</update>
  1693 + </value>
  1694 + <value>
  1695 + <name>tcc</name>
  1696 + <rename>zdzid</rename>
  1697 + <update>Y</update>
  1698 + </value>
  1699 + <value>
  1700 + <name>isfb</name>
  1701 + <rename>isfb</rename>
  1702 + <update>Y</update>
  1703 + </value>
  1704 + <value>
  1705 + <name>qdz_code</name>
  1706 + <rename>qdzcode</rename>
  1707 + <update>Y</update>
  1708 + </value>
  1709 + <value>
  1710 + <name>qdz_name</name>
  1711 + <rename>qname</rename>
  1712 + <update>Y</update>
  1713 + </value>
  1714 + <value>
  1715 + <name>zdz_code</name>
  1716 + <rename>zdzcode</rename>
  1717 + <update>Y</update>
  1718 + </value>
  1719 + <value>
  1720 + <name>zdz_name</name>
  1721 + <rename>tn</rename>
  1722 + <update>Y</update>
  1723 + </value>
  1724 + <value>
  1725 + <name>ists</name>
  1726 + <rename>ists</rename>
  1727 + <update>Y</update>
  1728 + </value>
  1729 + <value>
  1730 + <name>line_version</name>
  1731 + <rename>version</rename>
  1732 + <update>Y</update>
  1733 + </value>
  1734 + </lookup>
  1735 + <cluster_schema/>
  1736 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1737 + <xloc>845</xloc>
  1738 + <yloc>899</yloc>
  1739 + <draw>Y</draw>
  1740 + </GUI>
  1741 + </step>
  1742 +
  1743 + <step>
  1744 + <name>&#x65f6;&#x523b;&#x8868;&#x660e;&#x7ec6;&#x4fe1;&#x606f;Excel&#x8f93;&#x5165;</name>
  1745 + <type>ExcelInput</type>
  1746 + <description/>
  1747 + <distribute>N</distribute>
  1748 + <custom_distribution/>
  1749 + <copies>1</copies>
  1750 + <partitioning>
  1751 + <method>none</method>
  1752 + <schema_name/>
  1753 + </partitioning>
  1754 + <header>Y</header>
  1755 + <noempty>Y</noempty>
  1756 + <stoponempty>N</stoponempty>
  1757 + <filefield/>
  1758 + <sheetfield/>
  1759 + <sheetrownumfield/>
  1760 + <rownumfield/>
  1761 + <sheetfield/>
  1762 + <filefield/>
  1763 + <limit>0</limit>
  1764 + <encoding/>
  1765 + <add_to_result_filenames>Y</add_to_result_filenames>
  1766 + <accept_filenames>N</accept_filenames>
  1767 + <accept_field/>
  1768 + <accept_stepname/>
  1769 + <file>
  1770 + <name/>
  1771 + <filemask/>
  1772 + <exclude_filemask/>
  1773 + <file_required>N</file_required>
  1774 + <include_subfolders>N</include_subfolders>
  1775 + </file>
  1776 + <fields>
  1777 + </fields>
  1778 + <sheets>
  1779 + <sheet>
  1780 + <name/>
  1781 + <startrow>0</startrow>
  1782 + <startcol>0</startcol>
  1783 + </sheet>
  1784 + </sheets>
  1785 + <strict_types>N</strict_types>
  1786 + <error_ignored>N</error_ignored>
  1787 + <error_line_skipped>N</error_line_skipped>
  1788 + <bad_line_files_destination_directory/>
  1789 + <bad_line_files_extension>warning</bad_line_files_extension>
  1790 + <error_line_files_destination_directory/>
  1791 + <error_line_files_extension>error</error_line_files_extension>
  1792 + <line_number_files_destination_directory/>
  1793 + <line_number_files_extension>line</line_number_files_extension>
  1794 + <shortFileFieldName/>
  1795 + <pathFieldName/>
  1796 + <hiddenFieldName/>
  1797 + <lastModificationTimeFieldName/>
  1798 + <uriNameFieldName/>
  1799 + <rootUriNameFieldName/>
  1800 + <extensionFieldName/>
  1801 + <sizeFieldName/>
  1802 + <spreadsheet_type>JXL</spreadsheet_type>
  1803 + <cluster_schema/>
  1804 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1805 + <xloc>112</xloc>
  1806 + <yloc>44</yloc>
  1807 + <draw>Y</draw>
  1808 + </GUI>
  1809 + </step>
  1810 +
  1811 + <step>
  1812 + <name>&#x66f4;&#x65b0;&#x65f6;&#x523b;&#x8868;&#x4e3b;&#x8868;&#x7248;&#x672c;</name>
  1813 + <type>Update</type>
  1814 + <description/>
  1815 + <distribute>Y</distribute>
  1816 + <custom_distribution/>
  1817 + <copies>1</copies>
  1818 + <partitioning>
  1819 + <method>none</method>
  1820 + <schema_name/>
  1821 + </partitioning>
  1822 + <connection>bus_control_variable</connection>
  1823 + <skip_lookup>N</skip_lookup>
  1824 + <commit>100</commit>
  1825 + <use_batch>N</use_batch>
  1826 + <error_ignored>N</error_ignored>
  1827 + <ignore_flag_field/>
  1828 + <lookup>
  1829 + <schema/>
  1830 + <table>bsth_c_s_ttinfo</table>
  1831 + <key>
  1832 + <name>ttid</name>
  1833 + <field>id</field>
  1834 + <condition>&#x3d;</condition>
  1835 + <name2/>
  1836 + </key>
  1837 + <value>
  1838 + <name>line_version</name>
  1839 + <rename>version</rename>
  1840 + </value>
  1841 + </lookup>
  1842 + <cluster_schema/>
  1843 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1844 + <xloc>863</xloc>
  1845 + <yloc>338</yloc>
  1846 + <draw>Y</draw>
  1847 + </GUI>
  1848 + </step>
  1849 +
  1850 + <step>
  1851 + <name>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;1</name>
  1852 + <type>DBLookup</type>
  1853 + <description/>
  1854 + <distribute>Y</distribute>
  1855 + <custom_distribution/>
  1856 + <copies>1</copies>
  1857 + <partitioning>
  1858 + <method>none</method>
  1859 + <schema_name/>
  1860 + </partitioning>
  1861 + <connection>bus_control_variable</connection>
  1862 + <cache>N</cache>
  1863 + <cache_load_all>N</cache_load_all>
  1864 + <cache_size>0</cache_size>
  1865 + <lookup>
  1866 + <schema/>
  1867 + <table>bsth_c_car_park</table>
  1868 + <orderby/>
  1869 + <fail_on_multiple>N</fail_on_multiple>
  1870 + <eat_row_on_failure>N</eat_row_on_failure>
  1871 + <key>
  1872 + <name>tccname_</name>
  1873 + <field>park_name</field>
  1874 + <condition>&#x3d;</condition>
  1875 + <name2/>
  1876 + </key>
  1877 + <value>
  1878 + <name>id</name>
  1879 + <rename>qdzid</rename>
  1880 + <default/>
  1881 + <type>Integer</type>
  1882 + </value>
  1883 + <value>
  1884 + <name>park_code</name>
  1885 + <rename>qdzcode</rename>
  1886 + <default/>
  1887 + <type>String</type>
  1888 + </value>
  1889 + <value>
  1890 + <name>park_name</name>
  1891 + <rename>tn</rename>
  1892 + <default/>
  1893 + <type>String</type>
  1894 + </value>
  1895 + </lookup>
  1896 + <cluster_schema/>
  1897 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1898 + <xloc>755</xloc>
  1899 + <yloc>504</yloc>
  1900 + <draw>Y</draw>
  1901 + </GUI>
  1902 + </step>
  1903 +
  1904 + <step>
  1905 + <name>&#x67e5;&#x627e;&#x505c;&#x8f66;&#x573a;2</name>
  1906 + <type>DBLookup</type>
  1907 + <description/>
  1908 + <distribute>Y</distribute>
  1909 + <custom_distribution/>
  1910 + <copies>1</copies>
  1911 + <partitioning>
  1912 + <method>none</method>
  1913 + <schema_name/>
  1914 + </partitioning>
  1915 + <connection>bus_control_variable</connection>
  1916 + <cache>N</cache>
  1917 + <cache_load_all>N</cache_load_all>
  1918 + <cache_size>0</cache_size>
  1919 + <lookup>
  1920 + <schema/>
  1921 + <table>bsth_c_car_park</table>
  1922 + <orderby/>
  1923 + <fail_on_multiple>N</fail_on_multiple>
  1924 + <eat_row_on_failure>N</eat_row_on_failure>
  1925 + <key>
  1926 + <name>tccname_</name>
  1927 + <field>park_name</field>
  1928 + <condition>&#x3d;</condition>
  1929 + <name2/>
  1930 + </key>
  1931 + <value>
  1932 + <name>id</name>
  1933 + <rename>zdzid</rename>
  1934 + <default/>
  1935 + <type>Integer</type>
  1936 + </value>
  1937 + <value>
  1938 + <name>park_code</name>
  1939 + <rename>zdzcode</rename>
  1940 + <default/>
  1941 + <type>String</type>
  1942 + </value>
  1943 + <value>
  1944 + <name>park_name</name>
  1945 + <rename>tn</rename>
  1946 + <default/>
  1947 + <type>String</type>
  1948 + </value>
  1949 + </lookup>
  1950 + <cluster_schema/>
  1951 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1952 + <xloc>887</xloc>
  1953 + <yloc>608</yloc>
  1954 + <draw>Y</draw>
  1955 + </GUI>
  1956 + </step>
  1957 +
  1958 + <step>
  1959 + <name>&#x67e5;&#x627e;&#x51fa;&#x573a;&#x7ec8;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x5e76;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</name>
  1960 + <type>DBLookup</type>
  1961 + <description/>
  1962 + <distribute>Y</distribute>
  1963 + <custom_distribution/>
  1964 + <copies>1</copies>
  1965 + <partitioning>
  1966 + <method>none</method>
  1967 + <schema_name/>
  1968 + </partitioning>
  1969 + <connection>bus_control_variable</connection>
  1970 + <cache>N</cache>
  1971 + <cache_load_all>N</cache_load_all>
  1972 + <cache_size>0</cache_size>
  1973 + <lookup>
  1974 + <schema/>
  1975 + <table>bsth_c_ls_stationroute</table>
  1976 + <orderby/>
  1977 + <fail_on_multiple>N</fail_on_multiple>
  1978 + <eat_row_on_failure>N</eat_row_on_failure>
  1979 + <key>
  1980 + <name>xlid</name>
  1981 + <field>line</field>
  1982 + <condition>&#x3d;</condition>
  1983 + <name2/>
  1984 + </key>
  1985 + <key>
  1986 + <name>version</name>
  1987 + <field>versions</field>
  1988 + <condition>&#x3d;</condition>
  1989 + <name2/>
  1990 + </key>
  1991 + <key>
  1992 + <name>zdzname</name>
  1993 + <field>station_name</field>
  1994 + <condition>LIKE</condition>
  1995 + <name2/>
  1996 + </key>
  1997 + <key>
  1998 + <name>endZdtype</name>
  1999 + <field>station_mark</field>
  2000 + <condition>&#x3d;</condition>
  2001 + <name2/>
  2002 + </key>
  2003 + <key>
  2004 + <name>destory</name>
  2005 + <field>destroy</field>
  2006 + <condition>&#x3d;</condition>
  2007 + <name2/>
  2008 + </key>
  2009 + <value>
  2010 + <name>station</name>
  2011 + <rename>zdzid</rename>
  2012 + <default/>
  2013 + <type>Integer</type>
  2014 + </value>
  2015 + <value>
  2016 + <name>directions</name>
  2017 + <rename>sxx</rename>
  2018 + <default/>
  2019 + <type>Integer</type>
  2020 + </value>
  2021 + <value>
  2022 + <name>station_code</name>
  2023 + <rename>zdzcode</rename>
  2024 + <default/>
  2025 + <type>String</type>
  2026 + </value>
  2027 + <value>
  2028 + <name>station_name</name>
  2029 + <rename>zdzname_</rename>
  2030 + <default/>
  2031 + <type>String</type>
  2032 + </value>
  2033 + </lookup>
  2034 + <cluster_schema/>
  2035 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2036 + <xloc>329</xloc>
  2037 + <yloc>505</yloc>
  2038 + <draw>Y</draw>
  2039 + </GUI>
  2040 + </step>
  2041 +
  2042 + <step>
  2043 + <name>&#x67e5;&#x627e;&#x6240;&#x6709;&#x7ebf;&#x8def;&#x4e0a;&#x4e0b;&#x884c;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</name>
  2044 + <type>DBLookup</type>
  2045 + <description/>
  2046 + <distribute>Y</distribute>
  2047 + <custom_distribution/>
  2048 + <copies>1</copies>
  2049 + <partitioning>
  2050 + <method>none</method>
  2051 + <schema_name/>
  2052 + </partitioning>
  2053 + <connection>bus_control_variable</connection>
  2054 + <cache>N</cache>
  2055 + <cache_load_all>N</cache_load_all>
  2056 + <cache_size>0</cache_size>
  2057 + <lookup>
  2058 + <schema/>
  2059 + <table>bsth_c_line_information</table>
  2060 + <orderby/>
  2061 + <fail_on_multiple>N</fail_on_multiple>
  2062 + <eat_row_on_failure>N</eat_row_on_failure>
  2063 + <key>
  2064 + <name>xlid</name>
  2065 + <field>line</field>
  2066 + <condition>&#x3d;</condition>
  2067 + <name2/>
  2068 + </key>
  2069 + <value>
  2070 + <name>up_mileage</name>
  2071 + <rename>up_mileage</rename>
  2072 + <default/>
  2073 + <type>Number</type>
  2074 + </value>
  2075 + <value>
  2076 + <name>down_mileage</name>
  2077 + <rename>down_mileage</rename>
  2078 + <default/>
  2079 + <type>Number</type>
  2080 + </value>
  2081 + <value>
  2082 + <name>up_travel_time</name>
  2083 + <rename>up_travel_time</rename>
  2084 + <default/>
  2085 + <type>Number</type>
  2086 + </value>
  2087 + <value>
  2088 + <name>down_travel_time</name>
  2089 + <rename>down_travel_time</rename>
  2090 + <default/>
  2091 + <type>Number</type>
  2092 + </value>
  2093 + <value>
  2094 + <name>early_start_time</name>
  2095 + <rename>early_start_time</rename>
  2096 + <default/>
  2097 + <type>String</type>
  2098 + </value>
  2099 + <value>
  2100 + <name>early_end_time</name>
  2101 + <rename>early_end_time</rename>
  2102 + <default/>
  2103 + <type>String</type>
  2104 + </value>
  2105 + <value>
  2106 + <name>early_up_time</name>
  2107 + <rename>early_up_time</rename>
  2108 + <default/>
  2109 + <type>Number</type>
  2110 + </value>
  2111 + <value>
  2112 + <name>early_down_time</name>
  2113 + <rename>early_down_time</rename>
  2114 + <default/>
  2115 + <type>Number</type>
  2116 + </value>
  2117 + <value>
  2118 + <name>late_start_time</name>
  2119 + <rename>late_start_time</rename>
  2120 + <default/>
  2121 + <type>String</type>
  2122 + </value>
  2123 + <value>
  2124 + <name>late_end_time</name>
  2125 + <rename>late_end_time</rename>
  2126 + <default/>
  2127 + <type>String</type>
  2128 + </value>
  2129 + <value>
  2130 + <name>late_up_time</name>
  2131 + <rename>late_up_time</rename>
  2132 + <default/>
  2133 + <type>Number</type>
  2134 + </value>
  2135 + <value>
  2136 + <name>late_down_time</name>
  2137 + <rename>late_down_time</rename>
  2138 + <default/>
  2139 + <type>Number</type>
  2140 + </value>
  2141 + </lookup>
  2142 + <cluster_schema/>
  2143 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2144 + <xloc>149</xloc>
  2145 + <yloc>581</yloc>
  2146 + <draw>Y</draw>
  2147 + </GUI>
  2148 + </step>
  2149 +
  2150 + <step>
  2151 + <name>&#x67e5;&#x627e;&#x65f6;&#x523b;&#x8868;&#x57fa;&#x7840;&#x4fe1;&#x606f;&#x5173;&#x8054;</name>
  2152 + <type>DBLookup</type>
  2153 + <description/>
  2154 + <distribute>Y</distribute>
  2155 + <custom_distribution/>
  2156 + <copies>1</copies>
  2157 + <partitioning>
  2158 + <method>none</method>
  2159 + <schema_name/>
  2160 + </partitioning>
  2161 + <connection>bus_control_variable</connection>
  2162 + <cache>N</cache>
  2163 + <cache_load_all>N</cache_load_all>
  2164 + <cache_size>0</cache_size>
  2165 + <lookup>
  2166 + <schema/>
  2167 + <table>bsth_c_s_ttinfo</table>
  2168 + <orderby/>
  2169 + <fail_on_multiple>N</fail_on_multiple>
  2170 + <eat_row_on_failure>N</eat_row_on_failure>
  2171 + <key>
  2172 + <name>xlid</name>
  2173 + <field>xl</field>
  2174 + <condition>&#x3d;</condition>
  2175 + <name2/>
  2176 + </key>
  2177 + <key>
  2178 + <name>ttinfoname_</name>
  2179 + <field>name</field>
  2180 + <condition>&#x3d;</condition>
  2181 + <name2/>
  2182 + </key>
  2183 + <key>
  2184 + <name>iscanceled</name>
  2185 + <field>is_cancel</field>
  2186 + <condition>&#x3d;</condition>
  2187 + <name2/>
  2188 + </key>
  2189 + <value>
  2190 + <name>id</name>
  2191 + <rename>ttid</rename>
  2192 + <default/>
  2193 + <type>Integer</type>
  2194 + </value>
  2195 + </lookup>
  2196 + <cluster_schema/>
  2197 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2198 + <xloc>1011</xloc>
  2199 + <yloc>134</yloc>
  2200 + <draw>Y</draw>
  2201 + </GUI>
  2202 + </step>
  2203 +
  2204 + <step>
  2205 + <name>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x5173;&#x8054;</name>
  2206 + <type>DBLookup</type>
  2207 + <description/>
  2208 + <distribute>Y</distribute>
  2209 + <custom_distribution/>
  2210 + <copies>1</copies>
  2211 + <partitioning>
  2212 + <method>none</method>
  2213 + <schema_name/>
  2214 + </partitioning>
  2215 + <connection>bus_control_variable</connection>
  2216 + <cache>N</cache>
  2217 + <cache_load_all>N</cache_load_all>
  2218 + <cache_size>0</cache_size>
  2219 + <lookup>
  2220 + <schema/>
  2221 + <table>bsth_c_line</table>
  2222 + <orderby/>
  2223 + <fail_on_multiple>N</fail_on_multiple>
  2224 + <eat_row_on_failure>N</eat_row_on_failure>
  2225 + <key>
  2226 + <name>xlname_</name>
  2227 + <field>name</field>
  2228 + <condition>&#x3d;</condition>
  2229 + <name2/>
  2230 + </key>
  2231 + <key>
  2232 + <name>iscanceled</name>
  2233 + <field>destroy</field>
  2234 + <condition>&#x3d;</condition>
  2235 + <name2/>
  2236 + </key>
  2237 + <value>
  2238 + <name>id</name>
  2239 + <rename>xlid</rename>
  2240 + <default/>
  2241 + <type>Integer</type>
  2242 + </value>
  2243 + </lookup>
  2244 + <cluster_schema/>
  2245 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2246 + <xloc>1007</xloc>
  2247 + <yloc>43</yloc>
  2248 + <draw>Y</draw>
  2249 + </GUI>
  2250 + </step>
  2251 +
  2252 + <step>
  2253 + <name>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x51fa;&#x573a;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</name>
  2254 + <type>DBLookup</type>
  2255 + <description/>
  2256 + <distribute>Y</distribute>
  2257 + <custom_distribution/>
  2258 + <copies>1</copies>
  2259 + <partitioning>
  2260 + <method>none</method>
  2261 + <schema_name/>
  2262 + </partitioning>
  2263 + <connection>bus_control_variable</connection>
  2264 + <cache>N</cache>
  2265 + <cache_load_all>N</cache_load_all>
  2266 + <cache_size>0</cache_size>
  2267 + <lookup>
  2268 + <schema/>
  2269 + <table>bsth_c_line_information</table>
  2270 + <orderby/>
  2271 + <fail_on_multiple>N</fail_on_multiple>
  2272 + <eat_row_on_failure>N</eat_row_on_failure>
  2273 + <key>
  2274 + <name>xlid</name>
  2275 + <field>line</field>
  2276 + <condition>&#x3d;</condition>
  2277 + <name2/>
  2278 + </key>
  2279 + <value>
  2280 + <name>up_out_timer</name>
  2281 + <rename>up_out_timer</rename>
  2282 + <default/>
  2283 + <type>Number</type>
  2284 + </value>
  2285 + <value>
  2286 + <name>up_out_mileage</name>
  2287 + <rename>up_out_mileage</rename>
  2288 + <default/>
  2289 + <type>Number</type>
  2290 + </value>
  2291 + <value>
  2292 + <name>down_out_timer</name>
  2293 + <rename>down_out_timer</rename>
  2294 + <default/>
  2295 + <type>Number</type>
  2296 + </value>
  2297 + <value>
  2298 + <name>down_out_mileage</name>
  2299 + <rename>down_out_mileage</rename>
  2300 + <default/>
  2301 + <type>Number</type>
  2302 + </value>
  2303 + </lookup>
  2304 + <cluster_schema/>
  2305 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2306 + <xloc>335</xloc>
  2307 + <yloc>763</yloc>
  2308 + <draw>Y</draw>
  2309 + </GUI>
  2310 + </step>
  2311 +
  2312 + <step>
  2313 + <name>&#x67e5;&#x627e;&#x7ebf;&#x8def;&#x8fdb;&#x573a;&#x91cc;&#x7a0b;&#x65f6;&#x95f4;</name>
  2314 + <type>DBLookup</type>
  2315 + <description/>
  2316 + <distribute>Y</distribute>
  2317 + <custom_distribution/>
  2318 + <copies>1</copies>
  2319 + <partitioning>
  2320 + <method>none</method>
  2321 + <schema_name/>
  2322 + </partitioning>
  2323 + <connection>bus_control_variable</connection>
  2324 + <cache>N</cache>
  2325 + <cache_load_all>N</cache_load_all>
  2326 + <cache_size>0</cache_size>
  2327 + <lookup>
  2328 + <schema/>
  2329 + <table>bsth_c_line_information</table>
  2330 + <orderby/>
  2331 + <fail_on_multiple>N</fail_on_multiple>
  2332 + <eat_row_on_failure>N</eat_row_on_failure>
  2333 + <key>
  2334 + <name>xlid</name>
  2335 + <field>line</field>
  2336 + <condition>&#x3d;</condition>
  2337 + <name2/>
  2338 + </key>
  2339 + <value>
  2340 + <name>up_in_mileage</name>
  2341 + <rename>up_in_mileage</rename>
  2342 + <default/>
  2343 + <type>Number</type>
  2344 + </value>
  2345 + <value>
  2346 + <name>up_in_timer</name>
  2347 + <rename>up_in_timer</rename>
  2348 + <default/>
  2349 + <type>Number</type>
  2350 + </value>
  2351 + <value>
  2352 + <name>down_in_mileage</name>
  2353 + <rename>down_in_mileage</rename>
  2354 + <default/>
  2355 + <type>Number</type>
  2356 + </value>
  2357 + <value>
  2358 + <name>down_in_timer</name>
  2359 + <rename>down_in_timer</rename>
  2360 + <default/>
  2361 + <type>Number</type>
  2362 + </value>
  2363 + </lookup>
  2364 + <cluster_schema/>
  2365 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2366 + <xloc>553</xloc>
  2367 + <yloc>1004</yloc>
  2368 + <draw>Y</draw>
  2369 + </GUI>
  2370 + </step>
  2371 +
  2372 + <step>
  2373 + <name>&#x67e5;&#x627e;&#x7ec8;&#x70b9;&#x7ad9;&#x5173;&#x8054;</name>
  2374 + <type>DBLookup</type>
  2375 + <description/>
  2376 + <distribute>Y</distribute>
  2377 + <custom_distribution/>
  2378 + <copies>1</copies>
  2379 + <partitioning>
  2380 + <method>none</method>
  2381 + <schema_name/>
  2382 + </partitioning>
  2383 + <connection>bus_control_variable</connection>
  2384 + <cache>N</cache>
  2385 + <cache_load_all>N</cache_load_all>
  2386 + <cache_size>0</cache_size>
  2387 + <lookup>
  2388 + <schema/>
  2389 + <table>bsth_c_ls_stationroute</table>
  2390 + <orderby/>
  2391 + <fail_on_multiple>N</fail_on_multiple>
  2392 + <eat_row_on_failure>N</eat_row_on_failure>
  2393 + <key>
  2394 + <name>xlid</name>
  2395 + <field>line</field>
  2396 + <condition>&#x3d;</condition>
  2397 + <name2/>
  2398 + </key>
  2399 + <key>
  2400 + <name>version</name>
  2401 + <field>versions</field>
  2402 + <condition>&#x3d;</condition>
  2403 + <name2/>
  2404 + </key>
  2405 + <key>
  2406 + <name>sxx</name>
  2407 + <field>directions</field>
  2408 + <condition>&#x3d;</condition>
  2409 + <name2/>
  2410 + </key>
  2411 + <key>
  2412 + <name>endZdtype</name>
  2413 + <field>station_mark</field>
  2414 + <condition>&#x3d;</condition>
  2415 + <name2/>
  2416 + </key>
  2417 + <key>
  2418 + <name>destory</name>
  2419 + <field>destroy</field>
  2420 + <condition>&#x3d;</condition>
  2421 + <name2/>
  2422 + </key>
  2423 + <value>
  2424 + <name>station_name</name>
  2425 + <rename>zdzname</rename>
  2426 + <default/>
  2427 + <type>String</type>
  2428 + </value>
  2429 + <value>
  2430 + <name>station</name>
  2431 + <rename>zdzid</rename>
  2432 + <default/>
  2433 + <type>Integer</type>
  2434 + </value>
  2435 + <value>
  2436 + <name>station_code</name>
  2437 + <rename>zdzcode</rename>
  2438 + <default/>
  2439 + <type>String</type>
  2440 + </value>
  2441 + </lookup>
  2442 + <cluster_schema/>
  2443 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2444 + <xloc>280</xloc>
  2445 + <yloc>404</yloc>
  2446 + <draw>Y</draw>
  2447 + </GUI>
  2448 + </step>
  2449 +
  2450 + <step>
  2451 + <name>&#x67e5;&#x627e;&#x8d77;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x5e76;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</name>
  2452 + <type>DBLookup</type>
  2453 + <description/>
  2454 + <distribute>Y</distribute>
  2455 + <custom_distribution/>
  2456 + <copies>1</copies>
  2457 + <partitioning>
  2458 + <method>none</method>
  2459 + <schema_name/>
  2460 + </partitioning>
  2461 + <connection>bus_control_variable</connection>
  2462 + <cache>N</cache>
  2463 + <cache_load_all>N</cache_load_all>
  2464 + <cache_size>0</cache_size>
  2465 + <lookup>
  2466 + <schema/>
  2467 + <table>bsth_c_ls_stationroute</table>
  2468 + <orderby/>
  2469 + <fail_on_multiple>N</fail_on_multiple>
  2470 + <eat_row_on_failure>N</eat_row_on_failure>
  2471 + <key>
  2472 + <name>xlid</name>
  2473 + <field>line</field>
  2474 + <condition>&#x3d;</condition>
  2475 + <name2/>
  2476 + </key>
  2477 + <key>
  2478 + <name>version</name>
  2479 + <field>versions</field>
  2480 + <condition>&#x3d;</condition>
  2481 + <name2/>
  2482 + </key>
  2483 + <key>
  2484 + <name>qdzname</name>
  2485 + <field>station_name</field>
  2486 + <condition>LIKE</condition>
  2487 + <name2/>
  2488 + </key>
  2489 + <key>
  2490 + <name>sendZdtype</name>
  2491 + <field>station_mark</field>
  2492 + <condition>&#x3d;</condition>
  2493 + <name2/>
  2494 + </key>
  2495 + <key>
  2496 + <name>destory</name>
  2497 + <field>destroy</field>
  2498 + <condition>&#x3d;</condition>
  2499 + <name2/>
  2500 + </key>
  2501 + <value>
  2502 + <name>station</name>
  2503 + <rename>qdzid</rename>
  2504 + <default/>
  2505 + <type>Integer</type>
  2506 + </value>
  2507 + <value>
  2508 + <name>directions</name>
  2509 + <rename>sxx</rename>
  2510 + <default/>
  2511 + <type>Integer</type>
  2512 + </value>
  2513 + <value>
  2514 + <name>station_code</name>
  2515 + <rename>qdzcode</rename>
  2516 + <default/>
  2517 + <type>String</type>
  2518 + </value>
  2519 + <value>
  2520 + <name>station_name</name>
  2521 + <rename>qdzname_</rename>
  2522 + <default/>
  2523 + <type>String</type>
  2524 + </value>
  2525 + </lookup>
  2526 + <cluster_schema/>
  2527 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2528 + <xloc>430</xloc>
  2529 + <yloc>403</yloc>
  2530 + <draw>Y</draw>
  2531 + </GUI>
  2532 + </step>
  2533 +
  2534 + <step>
  2535 + <name>&#x67e5;&#x627e;&#x8def;&#x724c;&#x5173;&#x8054;</name>
  2536 + <type>DBLookup</type>
  2537 + <description/>
  2538 + <distribute>Y</distribute>
  2539 + <custom_distribution/>
  2540 + <copies>1</copies>
  2541 + <partitioning>
  2542 + <method>none</method>
  2543 + <schema_name/>
  2544 + </partitioning>
  2545 + <connection>bus_control_variable</connection>
  2546 + <cache>N</cache>
  2547 + <cache_load_all>N</cache_load_all>
  2548 + <cache_size>0</cache_size>
  2549 + <lookup>
  2550 + <schema/>
  2551 + <table>bsth_c_s_gbi</table>
  2552 + <orderby/>
  2553 + <fail_on_multiple>N</fail_on_multiple>
  2554 + <eat_row_on_failure>N</eat_row_on_failure>
  2555 + <key>
  2556 + <name>xlid</name>
  2557 + <field>xl</field>
  2558 + <condition>&#x3d;</condition>
  2559 + <name2/>
  2560 + </key>
  2561 + <key>
  2562 + <name>lp</name>
  2563 + <field>lp_name</field>
  2564 + <condition>&#x3d;</condition>
  2565 + <name2/>
  2566 + </key>
  2567 + <key>
  2568 + <name>iscanceled</name>
  2569 + <field>is_cancel</field>
  2570 + <condition>&#x3d;</condition>
  2571 + <name2/>
  2572 + </key>
  2573 + <value>
  2574 + <name>id</name>
  2575 + <rename>lpid</rename>
  2576 + <default/>
  2577 + <type>Integer</type>
  2578 + </value>
  2579 + </lookup>
  2580 + <cluster_schema/>
  2581 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2582 + <xloc>1013</xloc>
  2583 + <yloc>221</yloc>
  2584 + <draw>Y</draw>
  2585 + </GUI>
  2586 + </step>
  2587 +
  2588 + <step>
  2589 + <name>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ebf;&#x8def;&#x65b9;&#x5411;</name>
  2590 + <type>DBLookup</type>
  2591 + <description/>
  2592 + <distribute>Y</distribute>
  2593 + <custom_distribution/>
  2594 + <copies>1</copies>
  2595 + <partitioning>
  2596 + <method>none</method>
  2597 + <schema_name/>
  2598 + </partitioning>
  2599 + <connection>bus_control_variable</connection>
  2600 + <cache>N</cache>
  2601 + <cache_load_all>N</cache_load_all>
  2602 + <cache_size>0</cache_size>
  2603 + <lookup>
  2604 + <schema/>
  2605 + <table>bsth_c_ls_stationroute</table>
  2606 + <orderby/>
  2607 + <fail_on_multiple>N</fail_on_multiple>
  2608 + <eat_row_on_failure>N</eat_row_on_failure>
  2609 + <key>
  2610 + <name>xlid</name>
  2611 + <field>line</field>
  2612 + <condition>&#x3d;</condition>
  2613 + <name2/>
  2614 + </key>
  2615 + <key>
  2616 + <name>version</name>
  2617 + <field>versions</field>
  2618 + <condition>&#x3d;</condition>
  2619 + <name2/>
  2620 + </key>
  2621 + <key>
  2622 + <name>startZdtype_calcu</name>
  2623 + <field>station_mark</field>
  2624 + <condition>&#x3d;</condition>
  2625 + <name2/>
  2626 + </key>
  2627 + <key>
  2628 + <name>qdzname_calcu</name>
  2629 + <field>station_name</field>
  2630 + <condition>LIKE</condition>
  2631 + <name2/>
  2632 + </key>
  2633 + <key>
  2634 + <name>destory</name>
  2635 + <field>destroy</field>
  2636 + <condition>&#x3d;</condition>
  2637 + <name2/>
  2638 + </key>
  2639 + <value>
  2640 + <name>directions</name>
  2641 + <rename>sxx</rename>
  2642 + <default/>
  2643 + <type>String</type>
  2644 + </value>
  2645 + </lookup>
  2646 + <cluster_schema/>
  2647 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2648 + <xloc>548</xloc>
  2649 + <yloc>610</yloc>
  2650 + <draw>Y</draw>
  2651 + </GUI>
  2652 + </step>
  2653 +
  2654 + <step>
  2655 + <name>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ec8;&#x70b9;&#x7ad9;&#xff0c;&#x5e76;&#x4f5c;&#x4e3a;&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x7684;&#x8d77;&#x70b9;&#x7ad9;</name>
  2656 + <type>DBLookup</type>
  2657 + <description/>
  2658 + <distribute>Y</distribute>
  2659 + <custom_distribution/>
  2660 + <copies>1</copies>
  2661 + <partitioning>
  2662 + <method>none</method>
  2663 + <schema_name/>
  2664 + </partitioning>
  2665 + <connection>bus_control_variable</connection>
  2666 + <cache>N</cache>
  2667 + <cache_load_all>Y</cache_load_all>
  2668 + <cache_size>0</cache_size>
  2669 + <lookup>
  2670 + <schema/>
  2671 + <table>bsth_c_ls_stationroute</table>
  2672 + <orderby/>
  2673 + <fail_on_multiple>N</fail_on_multiple>
  2674 + <eat_row_on_failure>N</eat_row_on_failure>
  2675 + <key>
  2676 + <name>xlid</name>
  2677 + <field>line</field>
  2678 + <condition>&#x3d;</condition>
  2679 + <name2/>
  2680 + </key>
  2681 + <key>
  2682 + <name>version</name>
  2683 + <field>versions</field>
  2684 + <condition>&#x3d;</condition>
  2685 + <name2/>
  2686 + </key>
  2687 + <key>
  2688 + <name>endZdtype_calcu</name>
  2689 + <field>station_mark</field>
  2690 + <condition>&#x3d;</condition>
  2691 + <name2/>
  2692 + </key>
  2693 + <key>
  2694 + <name>sxx</name>
  2695 + <field>directions</field>
  2696 + <condition>&#x3d;</condition>
  2697 + <name2/>
  2698 + </key>
  2699 + <key>
  2700 + <name>destory</name>
  2701 + <field>destroy</field>
  2702 + <condition>&#x3d;</condition>
  2703 + <name2/>
  2704 + </key>
  2705 + <value>
  2706 + <name>station_name</name>
  2707 + <rename>zdzname_calcu</rename>
  2708 + <default/>
  2709 + <type>Integer</type>
  2710 + </value>
  2711 + </lookup>
  2712 + <cluster_schema/>
  2713 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2714 + <xloc>550</xloc>
  2715 + <yloc>701</yloc>
  2716 + <draw>Y</draw>
  2717 + </GUI>
  2718 + </step>
  2719 +
  2720 + <step>
  2721 + <name>&#x67e5;&#x627e;&#x8fdb;&#x573a;&#x8d77;&#x70b9;&#x7ad9;&#x5173;&#x8054;&#x786e;&#x5b9a;&#x4e0a;&#x4e0b;&#x884c;</name>
  2722 + <type>DBLookup</type>
  2723 + <description/>
  2724 + <distribute>Y</distribute>
  2725 + <custom_distribution/>
  2726 + <copies>1</copies>
  2727 + <partitioning>
  2728 + <method>none</method>
  2729 + <schema_name/>
  2730 + </partitioning>
  2731 + <connection>bus_control_variable</connection>
  2732 + <cache>N</cache>
  2733 + <cache_load_all>N</cache_load_all>
  2734 + <cache_size>0</cache_size>
  2735 + <lookup>
  2736 + <schema/>
  2737 + <table>bsth_c_ls_stationroute</table>
  2738 + <orderby/>
  2739 + <fail_on_multiple>N</fail_on_multiple>
  2740 + <eat_row_on_failure>N</eat_row_on_failure>
  2741 + <key>
  2742 + <name>xlid</name>
  2743 + <field>line</field>
  2744 + <condition>&#x3d;</condition>
  2745 + <name2/>
  2746 + </key>
  2747 + <key>
  2748 + <name>version</name>
  2749 + <field>versions</field>
  2750 + <condition>&#x3d;</condition>
  2751 + <name2/>
  2752 + </key>
  2753 + <key>
  2754 + <name>zdzname_calcu</name>
  2755 + <field>station_name</field>
  2756 + <condition>&#x3d;</condition>
  2757 + <name2/>
  2758 + </key>
  2759 + <key>
  2760 + <name>startZdtype_calcu</name>
  2761 + <field>station_mark</field>
  2762 + <condition>&#x3d;</condition>
  2763 + <name2/>
  2764 + </key>
  2765 + <key>
  2766 + <name>destory</name>
  2767 + <field>destroy</field>
  2768 + <condition>&#x3d;</condition>
  2769 + <name2/>
  2770 + </key>
  2771 + <value>
  2772 + <name>directions</name>
  2773 + <rename>sxx2</rename>
  2774 + <default/>
  2775 + <type>Integer</type>
  2776 + </value>
  2777 + <value>
  2778 + <name>station</name>
  2779 + <rename>qdzid</rename>
  2780 + <default/>
  2781 + <type>Integer</type>
  2782 + </value>
  2783 + <value>
  2784 + <name>station_code</name>
  2785 + <rename>qdzcode</rename>
  2786 + <default/>
  2787 + <type>String</type>
  2788 + </value>
  2789 + <value>
  2790 + <name>station_name</name>
  2791 + <rename>qname</rename>
  2792 + <default/>
  2793 + <type>String</type>
  2794 + </value>
  2795 + </lookup>
  2796 + <cluster_schema/>
  2797 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2798 + <xloc>551</xloc>
  2799 + <yloc>782</yloc>
  2800 + <draw>Y</draw>
  2801 + </GUI>
  2802 + </step>
  2803 +
  2804 + <step>
  2805 + <name>&#x6b63;&#x5e38;&#x73ed;&#x6b21;_&#x5904;&#x7406;&#x6570;&#x636e;</name>
  2806 + <type>ScriptValueMod</type>
  2807 + <description/>
  2808 + <distribute>Y</distribute>
  2809 + <custom_distribution/>
  2810 + <copies>1</copies>
  2811 + <partitioning>
  2812 + <method>none</method>
  2813 + <schema_name/>
  2814 + </partitioning>
  2815 + <compatible>N</compatible>
  2816 + <optimizationLevel>9</optimizationLevel>
  2817 + <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
  2818 + <jsScript_name>Script 1</jsScript_name>
  2819 + <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x6dfb;&#x52a0;&#x7ad9;&#x70b9;&#x6807;&#x8bc6;&#xa;var sendZdtype &#x3d; &#x27;B&#x27;&#x3b;&#xa;var endZdtype &#x3d; &#x27;E&#x27;&#x3b;&#xa;&#xa;var destory &#x3d; 0&#x3b; &#x2f;&#x2f; &#x672a;&#x64a4;&#x9500;flag</jsScript_script>
  2820 + </jsScript> </jsScripts> <fields> <field> <name>sendZdtype</name>
  2821 + <rename>sendZdtype</rename>
  2822 + <type>String</type>
  2823 + <length>-1</length>
  2824 + <precision>-1</precision>
  2825 + <replace>N</replace>
  2826 + </field> <field> <name>endZdtype</name>
  2827 + <rename>endZdtype</rename>
  2828 + <type>String</type>
  2829 + <length>-1</length>
  2830 + <precision>-1</precision>
  2831 + <replace>N</replace>
  2832 + </field> <field> <name>destory</name>
  2833 + <rename>destory</rename>
  2834 + <type>Integer</type>
  2835 + <length>-1</length>
  2836 + <precision>-1</precision>
  2837 + <replace>N</replace>
  2838 + </field> </fields> <cluster_schema/>
  2839 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2840 + <xloc>588</xloc>
  2841 + <yloc>403</yloc>
  2842 + <draw>Y</draw>
  2843 + </GUI>
  2844 + </step>
  2845 +
  2846 + <step>
  2847 + <name>&#x6b63;&#x5e38;&#x73ed;&#x6b21;&#x6570;&#x636e;</name>
  2848 + <type>Dummy</type>
  2849 + <description/>
  2850 + <distribute>Y</distribute>
  2851 + <custom_distribution/>
  2852 + <copies>1</copies>
  2853 + <partitioning>
  2854 + <method>none</method>
  2855 + <schema_name/>
  2856 + </partitioning>
  2857 + <cluster_schema/>
  2858 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2859 + <xloc>725</xloc>
  2860 + <yloc>404</yloc>
  2861 + <draw>Y</draw>
  2862 + </GUI>
  2863 + </step>
  2864 +
  2865 + <step>
  2866 + <name>&#x6dfb;&#x52a0;&#x53d1;&#x8f66;&#x987a;&#x5e8f;&#x53f7;</name>
  2867 + <type>GroupBy</type>
  2868 + <description/>
  2869 + <distribute>Y</distribute>
  2870 + <custom_distribution/>
  2871 + <copies>1</copies>
  2872 + <partitioning>
  2873 + <method>none</method>
  2874 + <schema_name/>
  2875 + </partitioning>
  2876 + <all_rows>Y</all_rows>
  2877 + <ignore_aggregate>N</ignore_aggregate>
  2878 + <field_ignore/>
  2879 + <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>
  2880 + <prefix>grp</prefix>
  2881 + <add_linenr>Y</add_linenr>
  2882 + <linenr_fieldname>fcno</linenr_fieldname>
  2883 + <give_back_row>N</give_back_row>
  2884 + <group>
  2885 + <field>
  2886 + <name>lp</name>
  2887 + </field>
  2888 + </group>
  2889 + <fields>
  2890 + </fields>
  2891 + <cluster_schema/>
  2892 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2893 + <xloc>442</xloc>
  2894 + <yloc>44</yloc>
  2895 + <draw>Y</draw>
  2896 + </GUI>
  2897 + </step>
  2898 +
  2899 + <step>
  2900 + <name>&#x6dfb;&#x52a0;&#x5bf9;&#x5e94;&#x73ed;&#x6b21;&#x6570;</name>
  2901 + <type>GroupBy</type>
  2902 + <description/>
  2903 + <distribute>Y</distribute>
  2904 + <custom_distribution/>
  2905 + <copies>1</copies>
  2906 + <partitioning>
  2907 + <method>none</method>
  2908 + <schema_name/>
  2909 + </partitioning>
  2910 + <all_rows>Y</all_rows>
  2911 + <ignore_aggregate>N</ignore_aggregate>
  2912 + <field_ignore/>
  2913 + <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>
  2914 + <prefix>grp</prefix>
  2915 + <add_linenr>Y</add_linenr>
  2916 + <linenr_fieldname>bcs</linenr_fieldname>
  2917 + <give_back_row>N</give_back_row>
  2918 + <group>
  2919 + </group>
  2920 + <fields>
  2921 + </fields>
  2922 + <cluster_schema/>
  2923 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2924 + <xloc>692</xloc>
  2925 + <yloc>44</yloc>
  2926 + <draw>Y</draw>
  2927 + </GUI>
  2928 + </step>
  2929 +
  2930 + <step>
  2931 + <name>&#x73ed;&#x6b21;&#x6570;&#x636e;&#x8303;&#x5f0f;&#x5316;</name>
  2932 + <type>Normaliser</type>
  2933 + <description/>
  2934 + <distribute>Y</distribute>
  2935 + <custom_distribution/>
  2936 + <copies>1</copies>
  2937 + <partitioning>
  2938 + <method>none</method>
  2939 + <schema_name/>
  2940 + </partitioning>
  2941 + <typefield>&#x7ad9;&#x70b9;&#x540d;&#x79f0;</typefield>
  2942 + <fields> </fields> <cluster_schema/>
  2943 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  2944 + <xloc>248</xloc>
  2945 + <yloc>44</yloc>
  2946 + <draw>Y</draw>
  2947 + </GUI>
  2948 + </step>
  2949 +
  2950 + <step>
  2951 + <name>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178;</name>
  2952 + <type>ValueMapper</type>
  2953 + <description/>
  2954 + <distribute>Y</distribute>
  2955 + <custom_distribution/>
  2956 + <copies>1</copies>
  2957 + <partitioning>
  2958 + <method>none</method>
  2959 + <schema_name/>
  2960 + </partitioning>
  2961 + <field_to_use>bctype</field_to_use>
  2962 + <target_field>bctype_code</target_field>
  2963 + <non_match_default>&#x672a;&#x77e5;&#x7c7b;&#x578b;</non_match_default>
  2964 + <fields>
  2965 + <field>
  2966 + <source_value>&#x6b63;&#x5e38;&#x73ed;&#x6b21;</source_value>
  2967 + <target_value>normal</target_value>
  2968 + </field>
  2969 + <field>
  2970 + <source_value>&#x51fa;&#x573a;</source_value>
  2971 + <target_value>out</target_value>
  2972 + </field>
  2973 + <field>
  2974 + <source_value>&#x8fdb;&#x573a;</source_value>
  2975 + <target_value>in</target_value>
  2976 + </field>
  2977 + <field>
  2978 + <source_value>&#x52a0;&#x6cb9;</source_value>
  2979 + <target_value>oil</target_value>
  2980 + </field>
  2981 + <field>
  2982 + <source_value>&#x4e34;&#x52a0;</source_value>
  2983 + <target_value>temp</target_value>
  2984 + </field>
  2985 + <field>
  2986 + <source_value>&#x533a;&#x95f4;</source_value>
  2987 + <target_value>region</target_value>
  2988 + </field>
  2989 + <field>
  2990 + <source_value>&#x653e;&#x7a7a;</source_value>
  2991 + <target_value>venting</target_value>
  2992 + </field>
  2993 + <field>
  2994 + <source_value>&#x653e;&#x5927;&#x7ad9;</source_value>
  2995 + <target_value>major</target_value>
  2996 + </field>
  2997 + </fields>
  2998 + <cluster_schema/>
  2999 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  3000 + <xloc>149</xloc>
  3001 + <yloc>491</yloc>
  3002 + <draw>Y</draw>
  3003 + </GUI>
  3004 + </step>
  3005 +
  3006 + <step>
  3007 + <name>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178; 2</name>
  3008 + <type>ValueMapper</type>
  3009 + <description/>
  3010 + <distribute>Y</distribute>
  3011 + <custom_distribution/>
  3012 + <copies>1</copies>
  3013 + <partitioning>
  3014 + <method>none</method>
  3015 + <schema_name/>
  3016 + </partitioning>
  3017 + <field_to_use>bctype</field_to_use>
  3018 + <target_field>bctype_code</target_field>
  3019 + <non_match_default>&#x672a;&#x77e5;&#x7c7b;&#x578b;</non_match_default>
  3020 + <fields>
  3021 + <field>
  3022 + <source_value>&#x6b63;&#x5e38;&#x73ed;&#x6b21;</source_value>
  3023 + <target_value>normal</target_value>
  3024 + </field>
  3025 + <field>
  3026 + <source_value>&#x51fa;&#x573a;</source_value>
  3027 + <target_value>out</target_value>
  3028 + </field>
  3029 + <field>
  3030 + <source_value>&#x8fdb;&#x573a;</source_value>
  3031 + <target_value>in</target_value>
  3032 + </field>
  3033 + <field>
  3034 + <source_value>&#x52a0;&#x6cb9;</source_value>
  3035 + <target_value>oil</target_value>
  3036 + </field>
  3037 + <field>
  3038 + <source_value>&#x4e34;&#x52a0;</source_value>
  3039 + <target_value>temp</target_value>
  3040 + </field>
  3041 + <field>
  3042 + <source_value>&#x533a;&#x95f4;</source_value>
  3043 + <target_value>region</target_value>
  3044 + </field>
  3045 + <field>
  3046 + <source_value>&#x653e;&#x7a7a;</source_value>
  3047 + <target_value>venting</target_value>
  3048 + </field>
  3049 + <field>
  3050 + <source_value>&#x653e;&#x5927;&#x7ad9;</source_value>
  3051 + <target_value>major</target_value>
  3052 + </field>
  3053 + </fields>
  3054 + <cluster_schema/>
  3055 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  3056 + <xloc>333</xloc>
  3057 + <yloc>681</yloc>
  3058 + <draw>Y</draw>
  3059 + </GUI>
  3060 + </step>
  3061 +
  3062 + <step>
  3063 + <name>&#x73ed;&#x6b21;&#x7c7b;&#x578b;&#x5b57;&#x5178; 3</name>
  3064 + <type>ValueMapper</type>
  3065 + <description/>
  3066 + <distribute>Y</distribute>
  3067 + <custom_distribution/>
  3068 + <copies>1</copies>
  3069 + <partitioning>
  3070 + <method>none</method>
  3071 + <schema_name/>
  3072 + </partitioning>
  3073 + <field_to_use>bctype</field_to_use>
  3074 + <target_field>bctype_code</target_field>
  3075 + <non_match_default>&#x672a;&#x77e5;&#x7c7b;&#x578b;</non_match_default>
  3076 + <fields>
  3077 + <field>
  3078 + <source_value>&#x6b63;&#x5e38;&#x73ed;&#x6b21;</source_value>
  3079 + <target_value>normal</target_value>
  3080 + </field>
  3081 + <field>
  3082 + <source_value>&#x51fa;&#x573a;</source_value>
  3083 + <target_value>out</target_value>
  3084 + </field>
  3085 + <field>
  3086 + <source_value>&#x8fdb;&#x573a;</source_value>
  3087 + <target_value>in</target_value>
  3088 + </field>
  3089 + <field>
  3090 + <source_value>&#x52a0;&#x6cb9;</source_value>
  3091 + <target_value>oil</target_value>
  3092 + </field>
  3093 + <field>
  3094 + <source_value>&#x4e34;&#x52a0;</source_value>
  3095 + <target_value>temp</target_value>
  3096 + </field>
  3097 + <field>
  3098 + <source_value>&#x533a;&#x95f4;</source_value>
  3099 + <target_value>region</target_value>
  3100 + </field>
  3101 + <field>
  3102 + <source_value>&#x653e;&#x7a7a;</source_value>
  3103 + <target_value>venting</target_value>
  3104 + </field>
  3105 + <field>
  3106 + <source_value>&#x653e;&#x5927;&#x7ad9;</source_value>
  3107 + <target_value>major</target_value>
  3108 + </field>
  3109 + </fields>
  3110 + <cluster_schema/>
  3111 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  3112 + <xloc>551</xloc>
  3113 + <yloc>928</yloc>
  3114 + <draw>Y</draw>
  3115 + </GUI>
  3116 + </step>
  3117 +
  3118 + <step>
  3119 + <name>&#x7ad9;&#x70b9;&#x8def;&#x7531;&#x7248;&#x672c;&#x7c7b;&#x578b;</name>
  3120 + <type>SelectValues</type>
  3121 + <description/>
  3122 + <distribute>N</distribute>
  3123 + <custom_distribution/>
  3124 + <copies>1</copies>
  3125 + <partitioning>
  3126 + <method>none</method>
  3127 + <schema_name/>
  3128 + </partitioning>
  3129 + <fields> <select_unspecified>Y</select_unspecified>
  3130 + <meta> <name>zdlyversion_</name>
  3131 + <rename>version</rename>
  3132 + <type>Integer</type>
  3133 + <length>-2</length>
  3134 + <precision>-2</precision>
  3135 + <conversion_mask/>
  3136 + <date_format_lenient>false</date_format_lenient>
  3137 + <date_format_locale/>
  3138 + <date_format_timezone/>
  3139 + <lenient_string_to_number>false</lenient_string_to_number>
  3140 + <encoding/>
  3141 + <decimal_symbol/>
  3142 + <grouping_symbol/>
  3143 + <currency_symbol/>
  3144 + <storage_type/>
  3145 + </meta> </fields> <cluster_schema/>
  3146 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  3147 + <xloc>1016</xloc>
  3148 + <yloc>305</yloc>
  3149 + <draw>Y</draw>
  3150 + </GUI>
  3151 + </step>
  3152 +
  3153 + <step>
  3154 + <name>&#x7c7b;&#x578b;&#x4fee;&#x6b63;</name>
  3155 + <type>SelectValues</type>
  3156 + <description/>
  3157 + <distribute>Y</distribute>
  3158 + <custom_distribution/>
  3159 + <copies>1</copies>
  3160 + <partitioning>
  3161 + <method>none</method>
  3162 + <schema_name/>
  3163 + </partitioning>
  3164 + <fields> <select_unspecified>N</select_unspecified>
  3165 + <meta> <name>jhlc</name>
  3166 + <rename>jhlc</rename>
  3167 + <type>Number</type>
  3168 + <length>-2</length>
  3169 + <precision>-2</precision>
  3170 + <conversion_mask/>
  3171 + <date_format_lenient>false</date_format_lenient>
  3172 + <date_format_locale/>
  3173 + <date_format_timezone/>
  3174 + <lenient_string_to_number>false</lenient_string_to_number>
  3175 + <encoding/>
  3176 + <decimal_symbol/>
  3177 + <grouping_symbol/>
  3178 + <currency_symbol/>
  3179 + <storage_type/>
  3180 + </meta> <meta> <name>bcsj</name>
  3181 + <rename>bcsj</rename>
  3182 + <type>Integer</type>
  3183 + <length>-2</length>
  3184 + <precision>-2</precision>
  3185 + <conversion_mask/>
  3186 + <date_format_lenient>false</date_format_lenient>
  3187 + <date_format_locale/>
  3188 + <date_format_timezone/>
  3189 + <lenient_string_to_number>false</lenient_string_to_number>
  3190 + <encoding/>
  3191 + <decimal_symbol/>
  3192 + <grouping_symbol/>
  3193 + <currency_symbol/>
  3194 + <storage_type/>
  3195 + </meta> </fields> <cluster_schema/>
  3196 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  3197 + <xloc>146</xloc>
  3198 + <yloc>768</yloc>
  3199 + <draw>Y</draw>
  3200 + </GUI>
  3201 + </step>
  3202 +
  3203 + <step>
  3204 + <name>&#x7c7b;&#x578b;&#x4fee;&#x6b63; 2</name>
  3205 + <type>SelectValues</type>
  3206 + <description/>
  3207 + <distribute>Y</distribute>
  3208 + <custom_distribution/>
  3209 + <copies>1</copies>
  3210 + <partitioning>
  3211 + <method>none</method>
  3212 + <schema_name/>
  3213 + </partitioning>
  3214 + <fields> <select_unspecified>N</select_unspecified>
  3215 + <meta> <name>out_mileage</name>
  3216 + <rename>out_mileage</rename>
  3217 + <type>Number</type>
  3218 + <length>-2</length>
  3219 + <precision>-2</precision>
  3220 + <conversion_mask/>
  3221 + <date_format_lenient>false</date_format_lenient>
  3222 + <date_format_locale/>
  3223 + <date_format_timezone/>
  3224 + <lenient_string_to_number>false</lenient_string_to_number>
  3225 + <encoding/>
  3226 + <decimal_symbol/>
  3227 + <grouping_symbol/>
  3228 + <currency_symbol/>
  3229 + <storage_type/>
  3230 + </meta> <meta> <name>out_time</name>
  3231 + <rename>out_time</rename>
  3232 + <type>Integer</type>
  3233 + <length>-2</length>
  3234 + <precision>-2</precision>
  3235 + <conversion_mask/>
  3236 + <date_format_lenient>false</date_format_lenient>
  3237 + <date_format_locale/>
  3238 + <date_format_timezone/>
  3239 + <lenient_string_to_number>false</lenient_string_to_number>
  3240 + <encoding/>
  3241 + <decimal_symbol/>
  3242 + <grouping_symbol/>
  3243 + <currency_symbol/>
  3244 + <storage_type/>
  3245 + </meta> <meta> <name>sxx</name>
  3246 + <rename>sxx</rename>
  3247 + <type>Integer</type>
  3248 + <length>-2</length>
  3249 + <precision>-2</precision>
  3250 + <conversion_mask/>
  3251 + <date_format_lenient>false</date_format_lenient>
  3252 + <date_format_locale/>
  3253 + <date_format_timezone/>
  3254 + <lenient_string_to_number>false</lenient_string_to_number>
  3255 + <encoding/>
  3256 + <decimal_symbol/>
  3257 + <grouping_symbol/>
  3258 + <currency_symbol/>
  3259 + <storage_type/>
  3260 + </meta> </fields> <cluster_schema/>
  3261 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  3262 + <xloc>338</xloc>
  3263 + <yloc>1008</yloc>
  3264 + <draw>Y</draw>
  3265 + </GUI>
  3266 + </step>
  3267 +
  3268 + <step>
  3269 + <name>&#x7c7b;&#x578b;&#x4fee;&#x6b63; 3</name>
  3270 + <type>SelectValues</type>
  3271 + <description/>
  3272 + <distribute>Y</distribute>
  3273 + <custom_distribution/>
  3274 + <copies>1</copies>
  3275 + <partitioning>
  3276 + <method>none</method>
  3277 + <schema_name/>
  3278 + </partitioning>
  3279 + <fields> <select_unspecified>N</select_unspecified>
  3280 + <meta> <name>parade_mileage</name>
  3281 + <rename>parade_mileage</rename>
  3282 + <type>Number</type>
  3283 + <length>-2</length>
  3284 + <precision>-2</precision>
  3285 + <conversion_mask/>
  3286 + <date_format_lenient>false</date_format_lenient>
  3287 + <date_format_locale/>
  3288 + <date_format_timezone/>
  3289 + <lenient_string_to_number>false</lenient_string_to_number>
  3290 + <encoding/>
  3291 + <decimal_symbol/>
  3292 + <grouping_symbol/>
  3293 + <currency_symbol/>
  3294 + <storage_type/>
  3295 + </meta> <meta> <name>parade_time</name>
  3296 + <rename>parade_time</rename>
  3297 + <type>Integer</type>
  3298 + <length>-2</length>
  3299 + <precision>-2</precision>
  3300 + <conversion_mask/>
  3301 + <date_format_lenient>false</date_format_lenient>
  3302 + <date_format_locale/>
  3303 + <date_format_timezone/>
  3304 + <lenient_string_to_number>false</lenient_string_to_number>
  3305 + <encoding/>
  3306 + <decimal_symbol/>
  3307 + <grouping_symbol/>
  3308 + <currency_symbol/>
  3309 + <storage_type/>
  3310 + </meta> <meta> <name>sxx2</name>
  3311 + <rename>sxx2</rename>
  3312 + <type>Integer</type>
  3313 + <length>-2</length>
  3314 + <precision>-2</precision>
  3315 + <conversion_mask/>
  3316 + <date_format_lenient>false</date_format_lenient>
  3317 + <date_format_locale/>
  3318 + <date_format_timezone/>
  3319 + <lenient_string_to_number>false</lenient_string_to_number>
  3320 + <encoding/>
  3321 + <decimal_symbol/>
  3322 + <grouping_symbol/>
  3323 + <currency_symbol/>
  3324 + <storage_type/>
  3325 + </meta> </fields> <cluster_schema/>
  3326 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  3327 + <xloc>847</xloc>
  3328 + <yloc>1003</yloc>
  3329 + <draw>Y</draw>
  3330 + </GUI>
  3331 + </step>
  3332 +
  3333 + <step>
  3334 + <name>&#x8ba1;&#x7b97;&#x73ed;&#x6b21;&#x7c7b;&#x578b;</name>
  3335 + <type>ValueMapper</type>
  3336 + <description/>
  3337 + <distribute>Y</distribute>
  3338 + <custom_distribution/>
  3339 + <copies>1</copies>
  3340 + <partitioning>
  3341 + <method>none</method>
  3342 + <schema_name/>
  3343 + </partitioning>
  3344 + <field_to_use>qdzname</field_to_use>
  3345 + <target_field>bctype</target_field>
  3346 + <non_match_default>&#x6b63;&#x5e38;&#x73ed;&#x6b21;</non_match_default>
  3347 + <fields>
  3348 + <field>
  3349 + <source_value>&#x51fa;&#x573a;</source_value>
  3350 + <target_value>&#x51fa;&#x573a;</target_value>
  3351 + </field>
  3352 + <field>
  3353 + <source_value>&#x8fdb;&#x573a;</source_value>
  3354 + <target_value>&#x8fdb;&#x573a;</target_value>
  3355 + </field>
  3356 + </fields>
  3357 + <cluster_schema/>
  3358 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  3359 + <xloc>1014</xloc>
  3360 + <yloc>401</yloc>
  3361 + <draw>Y</draw>
  3362 + </GUI>
  3363 + </step>
  3364 +
  3365 + <step>
  3366 + <name>&#x8bb0;&#x5f55;&#x5173;&#x8054; &#x28;&#x7b1b;&#x5361;&#x5c14;&#x8f93;&#x51fa;&#x29;</name>
  3367 + <type>JoinRows</type>
  3368 + <description/>
  3369 + <distribute>Y</distribute>
  3370 + <custom_distribution/>
  3371 + <copies>1</copies>
  3372 + <partitioning>
  3373 + <method>none</method>
  3374 + <schema_name/>
  3375 + </partitioning>
  3376 + <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>
  3377 + <prefix>out</prefix>
  3378 + <cache_size>500</cache_size>
  3379 + <main/>
  3380 + <compare>
  3381 +<condition>
  3382 + <negated>N</negated>
  3383 + <leftvalue/>
  3384 + <function>&#x3d;</function>
  3385 + <rightvalue/>
  3386 + </condition>
  3387 + </compare>
  3388 + <cluster_schema/>
  3389 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  3390 + <xloc>310</xloc>
  3391 + <yloc>133</yloc>
  3392 + <draw>Y</draw>
  3393 + </GUI>
  3394 + </step>
  3395 +
  3396 + <step>
  3397 + <name>&#x8fc7;&#x6ee4;&#x8bb0;&#x5f55;&#xff08;&#x53d1;&#x8f66;&#x65f6;&#x95f4;&#x4e3a;&#x7a7a;&#xff09;</name>
  3398 + <type>FilterRows</type>
  3399 + <description/>
  3400 + <distribute>Y</distribute>
  3401 + <custom_distribution/>
  3402 + <copies>1</copies>
  3403 + <partitioning>
  3404 + <method>none</method>
  3405 + <schema_name/>
  3406 + </partitioning>
  3407 +<send_true_to/>
  3408 +<send_false_to/>
  3409 + <compare>
  3410 +<condition>
  3411 + <negated>N</negated>
  3412 + <leftvalue>sendtime</leftvalue>
  3413 + <function>IS NOT NULL</function>
  3414 + <rightvalue/>
  3415 + </condition>
  3416 + </compare>
  3417 + <cluster_schema/>
  3418 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  3419 + <xloc>571</xloc>
  3420 + <yloc>44</yloc>
  3421 + <draw>Y</draw>
  3422 + </GUI>
  3423 + </step>
  3424 +
  3425 + <step>
  3426 + <name>&#x8fdb;&#x573a;&#x73ed;&#x6b21;_&#x786e;&#x5b9a;&#x8d77;&#x70b9;&#x7ad9;&#x540d;&#x5b57;</name>
  3427 + <type>ScriptValueMod</type>
  3428 + <description/>
  3429 + <distribute>Y</distribute>
  3430 + <custom_distribution/>
  3431 + <copies>1</copies>
  3432 + <partitioning>
  3433 + <method>none</method>
  3434 + <schema_name/>
  3435 + </partitioning>
  3436 + <compatible>N</compatible>
  3437 + <optimizationLevel>9</optimizationLevel>
  3438 + <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
  3439 + <jsScript_name>Script 1</jsScript_name>
  3440 + <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;&#x2f;&#x2f; &#x6dfb;&#x52a0;&#x7ad9;&#x70b9;&#x6807;&#x8bc6;&#xa;var cc_groups &#x3d; qdzgroups.split&#x28;&#x22;,&#x22;&#x29;&#x3b; &#x2f;&#x2f; &#x6240;&#x6709;&#x73ed;&#x6b21;&#x8d77;&#x70b9;&#x7ad9;&#x6570;&#x7ec4;&#xa;var qdzname_calcu &#x3d; cc_groups&#x5b;gno - 2&#x5d;&#x3b; &#x2f;&#x2f; &#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x7684;&#x8d77;&#x70b9;&#x7ad9;&#x662f;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x7ec8;&#x70b9;&#x7ad9;&#xff0c;&#x8fd9;&#x91cc;&#x53ea;&#x6709;&#x4e0a;&#x4e00;&#x4e2a;&#x73ed;&#x6b21;&#x7684;&#x8d77;&#x70b9;&#x7ad9;&#xff0c;&#x8fd8;&#x9700;&#x8981;&#x8ba1;&#x7b97;&#xa;var startZdtype_calcu &#x3d; &#x27;B&#x27;&#x3b;&#xa;var endZdtype_calcu &#x3d; &#x27;E&#x27;&#x3b;&#xa;&#xa;var destory &#x3d; 0&#x3b; &#x2f;&#x2f; &#x672a;&#x64a4;&#x9500;flag</jsScript_script>
  3441 + </jsScript> </jsScripts> <fields> <field> <name>qdzname_calcu</name>
  3442 + <rename>qdzname_calcu</rename>
  3443 + <type>String</type>
  3444 + <length>-1</length>
  3445 + <precision>-1</precision>
  3446 + <replace>N</replace>
  3447 + </field> <field> <name>startZdtype_calcu</name>
  3448 + <rename>startZdtype_calcu</rename>
  3449 + <type>String</type>
  3450 + <length>-1</length>
  3451 + <precision>-1</precision>
  3452 + <replace>N</replace>
  3453 + </field> <field> <name>endZdtype_calcu</name>
  3454 + <rename>endZdtype_calcu</rename>
  3455 + <type>String</type>
  3456 + <length>-1</length>
  3457 + <precision>-1</precision>
  3458 + <replace>N</replace>
  3459 + </field> <field> <name>destory</name>
  3460 + <rename>destory</rename>
  3461 + <type>Integer</type>
  3462 + <length>-1</length>
  3463 + <precision>-1</precision>
  3464 + <replace>N</replace>
  3465 + </field> </fields> <cluster_schema/>
  3466 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  3467 + <xloc>754</xloc>
  3468 + <yloc>610</yloc>
  3469 + <draw>Y</draw>
  3470 + </GUI>
  3471 + </step>
  3472 +
  3473 + <step>
  3474 + <name>&#x8fdb;&#x573a;&#x73ed;&#x6b21;&#x6570;&#x636e;</name>
  3475 + <type>Dummy</type>
  3476 + <description/>
  3477 + <distribute>Y</distribute>
  3478 + <custom_distribution/>
  3479 + <copies>1</copies>
  3480 + <partitioning>
  3481 + <method>none</method>
  3482 + <schema_name/>
  3483 + </partitioning>
  3484 + <cluster_schema/>
  3485 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  3486 + <xloc>997</xloc>
  3487 + <yloc>606</yloc>
  3488 + <draw>Y</draw>
  3489 + </GUI>
  3490 + </step>
  3491 +
  3492 + <step_error_handling>
  3493 + <error>
  3494 + <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ttinfo_detail</source_step>
  3495 + <target_step/>
  3496 + <is_enabled>Y</is_enabled>
  3497 + <nr_valuename>c1</nr_valuename>
  3498 + <descriptions_valuename>c2</descriptions_valuename>
  3499 + <fields_valuename>c3</fields_valuename>
  3500 + <codes_valuename>c4</codes_valuename>
  3501 + <max_errors/>
  3502 + <max_pct_errors/>
  3503 + <min_pct_rows/>
  3504 + </error>
  3505 + </step_error_handling>
  3506 + <slave-step-copy-partition-distribution>
  3507 +</slave-step-copy-partition-distribution>
  3508 + <slave_transformation>N</slave_transformation>
  3509 +
  3510 +</transformation>