Commit dd8b08bd52595d9513dc5852458021ac24fd8a51
1 parent
0a2f209c
Update
Showing
22 changed files
with
2506 additions
and
2126 deletions
src/main/java/com/bsth/controller/schedule/core/GuideboardInfoController.java
| ... | ... | @@ -6,9 +6,7 @@ import com.bsth.entity.schedule.GuideboardInfo; |
| 6 | 6 | import com.bsth.repository.schedule.GuideboardInfoRepository; |
| 7 | 7 | import com.bsth.service.schedule.GuideboardInfoService; |
| 8 | 8 | import com.bsth.service.schedule.exception.ScheduleException; |
| 9 | -import com.bsth.service.schedule.utils.DataToolsProperties; | |
| 10 | 9 | import org.springframework.beans.factory.annotation.Autowired; |
| 11 | -import org.springframework.boot.context.properties.EnableConfigurationProperties; | |
| 12 | 10 | import org.springframework.web.bind.annotation.RequestMapping; |
| 13 | 11 | import org.springframework.web.bind.annotation.RequestMethod; |
| 14 | 12 | import org.springframework.web.bind.annotation.RequestParam; |
| ... | ... | @@ -23,7 +21,6 @@ import java.util.Map; |
| 23 | 21 | */ |
| 24 | 22 | @RestController |
| 25 | 23 | @RequestMapping("gic") |
| 26 | -@EnableConfigurationProperties(DataToolsProperties.class) | |
| 27 | 24 | public class GuideboardInfoController extends BController<GuideboardInfo, Long> { |
| 28 | 25 | @Autowired |
| 29 | 26 | private GuideboardInfoService guideboardInfoService; | ... | ... |
src/main/java/com/bsth/controller/schedule/core/TTInfoController.java
| ... | ... | @@ -3,8 +3,8 @@ package com.bsth.controller.schedule.core; |
| 3 | 3 | import com.bsth.common.ResponseCode; |
| 4 | 4 | import com.bsth.controller.schedule.BController; |
| 5 | 5 | import com.bsth.entity.schedule.TTInfo; |
| 6 | -import com.bsth.service.schedule.exception.ScheduleException; | |
| 7 | 6 | import com.bsth.service.schedule.TTInfoService; |
| 7 | +import com.bsth.service.schedule.exception.ScheduleException; | |
| 8 | 8 | import org.springframework.beans.factory.annotation.Autowired; |
| 9 | 9 | import org.springframework.web.bind.annotation.RequestMapping; |
| 10 | 10 | import org.springframework.web.bind.annotation.RequestMethod; | ... | ... |
src/main/java/com/bsth/service/schedule/datatools/CarConfigInfoDataToolsImpl.java
| 1 | 1 | package com.bsth.service.schedule.datatools; |
| 2 | 2 | |
| 3 | +import com.bsth.service.schedule.exception.ScheduleException; | |
| 4 | +import com.bsth.service.schedule.utils.DataToolsProperties; | |
| 5 | +import com.bsth.service.schedule.utils.DataToolsService; | |
| 6 | +import jxl.Cell; | |
| 7 | +import jxl.Sheet; | |
| 8 | +import jxl.Workbook; | |
| 9 | +import jxl.write.Label; | |
| 10 | +import jxl.write.WritableSheet; | |
| 11 | +import jxl.write.WritableWorkbook; | |
| 12 | +import org.slf4j.Logger; | |
| 13 | +import org.slf4j.LoggerFactory; | |
| 14 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 15 | +import org.springframework.beans.factory.annotation.Qualifier; | |
| 16 | +import org.springframework.boot.context.properties.EnableConfigurationProperties; | |
| 17 | +import org.springframework.stereotype.Service; | |
| 18 | + | |
| 19 | +import java.io.File; | |
| 20 | +import java.io.PrintWriter; | |
| 21 | +import java.io.StringWriter; | |
| 22 | +import java.util.HashMap; | |
| 23 | +import java.util.Map; | |
| 24 | + | |
| 3 | 25 | /** |
| 4 | 26 | * Created by xu on 17/5/16. |
| 5 | 27 | */ |
| 6 | -public class CarConfigInfoDataToolsImpl { | |
| 28 | +@EnableConfigurationProperties(DataToolsProperties.class) | |
| 29 | +@Service(value = "carConfig_dataTool") | |
| 30 | +public class CarConfigInfoDataToolsImpl implements DataToolsService { | |
| 31 | + /** 日志记录器 */ | |
| 32 | + private final static Logger LOGGER = LoggerFactory.getLogger(CarConfigInfoDataToolsImpl.class); | |
| 33 | + | |
| 34 | + @Autowired | |
| 35 | + @Qualifier(value = "dataToolsServiceImpl") | |
| 36 | + private DataToolsService dataToolsService; | |
| 37 | + | |
| 38 | + @Autowired | |
| 39 | + private DataToolsProperties dataToolsProperties; | |
| 40 | + | |
| 41 | + @Override | |
| 42 | + public File uploadFile(String filename, byte[] filedata) throws ScheduleException { | |
| 43 | + try { | |
| 44 | + // 对上传的excel文件做处理,将第一个sheet名字设定为工作表1 | |
| 45 | + File file = dataToolsService.uploadFile(filename, filedata); | |
| 46 | + Workbook workbook = Workbook.getWorkbook(file); | |
| 47 | + Sheet sheet = workbook.getSheet(0); | |
| 48 | + | |
| 49 | + File fileCal = new File(file.getAbsolutePath() + "_sheetChange.xls"); | |
| 50 | + WritableWorkbook writableWorkbook = Workbook.createWorkbook(fileCal); | |
| 51 | + WritableSheet writableSheet = writableWorkbook.createSheet("工作表1", 0); | |
| 52 | + for (int i = 0; i < sheet.getRows(); i++) { | |
| 53 | + Cell[] cells = sheet.getRow(i); | |
| 54 | + for (int j = 0; j < cells.length; j++) { | |
| 55 | + writableSheet.addCell(new Label(j, i, cells[j].getContents())); | |
| 56 | + } | |
| 57 | + } | |
| 58 | + writableWorkbook.write(); | |
| 59 | + writableWorkbook.close(); | |
| 60 | + | |
| 61 | + return fileCal; | |
| 62 | + | |
| 63 | + } catch (Exception exp) { | |
| 64 | + throw new ScheduleException(exp); | |
| 65 | + } | |
| 66 | + } | |
| 67 | + | |
| 68 | + @Override | |
| 69 | + public void importData(File file, Map<String, Object> params) throws ScheduleException { | |
| 70 | + try { | |
| 71 | + LOGGER.info("//---------------- 导入车辆配置信息 start... ----------------//"); | |
| 72 | + // 创建ktr转换所需参数 | |
| 73 | + Map<String, Object> ktrParms = new HashMap<>(); | |
| 74 | + File ktrFile = new File(this.getClass().getResource( | |
| 75 | + dataToolsProperties.getCarsconfigDatainputktr()).toURI()); | |
| 76 | + | |
| 77 | + // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径 | |
| 78 | + ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 79 | + ktrParms.put("filepath", file.getAbsolutePath()); | |
| 80 | + ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir()); | |
| 81 | + | |
| 82 | + ktrParms.putAll(params); | |
| 83 | + | |
| 84 | + dataToolsService.importData(file, ktrParms); | |
| 85 | + | |
| 86 | + LOGGER.info("//---------------- 导入车辆配置信息 success... ----------------//"); | |
| 87 | + } catch (Exception exp) { | |
| 88 | + LOGGER.info("//---------------- 导入车辆配置信息 failed... ----------------//"); | |
| 89 | + | |
| 90 | + StringWriter sw = new StringWriter(); | |
| 91 | + exp.printStackTrace(new PrintWriter(sw)); | |
| 92 | + LOGGER.info(sw.toString()); | |
| 93 | + | |
| 94 | + throw new ScheduleException(exp.getMessage()); | |
| 95 | + } | |
| 96 | + } | |
| 97 | + | |
| 98 | + @Override | |
| 99 | + public File exportData(Map<String, Object> params) throws ScheduleException { | |
| 100 | + try { | |
| 101 | + LOGGER.info("//---------------- 导出车辆配置信息 start... ----------------//"); | |
| 102 | + // 创建ktr转换所需参数 | |
| 103 | + Map<String, Object> ktrParms = new HashMap<>(); | |
| 104 | + File ktrFile = new File(this.getClass().getResource( | |
| 105 | + dataToolsProperties.getCarsconfigDataoutputktr()).toURI()); | |
| 106 | + | |
| 107 | + // 通用参数,转换文件路径,excel输出文件名 | |
| 108 | + ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 109 | + ktrParms.put("filename", "车辆配置信息_download-"); | |
| 110 | + | |
| 111 | + ktrParms.putAll(params); | |
| 112 | + | |
| 113 | + File file = dataToolsService.exportData(ktrParms); | |
| 114 | + | |
| 115 | + LOGGER.info("//---------------- 导出车辆配置信息 success... ----------------//"); | |
| 116 | + | |
| 117 | + return file; | |
| 118 | + | |
| 119 | + } catch (Exception exp) { | |
| 120 | + LOGGER.info("//---------------- 导出车辆配置信息 failed... ----------------//"); | |
| 121 | + | |
| 122 | + StringWriter sw = new StringWriter(); | |
| 123 | + exp.printStackTrace(new PrintWriter(sw)); | |
| 124 | + LOGGER.info(sw.toString()); | |
| 125 | + | |
| 126 | + throw new ScheduleException(exp.getMessage()); | |
| 127 | + } | |
| 128 | + } | |
| 7 | 129 | } | ... | ... |
src/main/java/com/bsth/service/schedule/datatools/CarsDataToolsImpl.java
| 1 | 1 | package com.bsth.service.schedule.datatools; |
| 2 | 2 | |
| 3 | +import com.bsth.service.schedule.exception.ScheduleException; | |
| 4 | +import com.bsth.service.schedule.utils.DataToolsProperties; | |
| 5 | +import com.bsth.service.schedule.utils.DataToolsService; | |
| 6 | +import jxl.Cell; | |
| 7 | +import jxl.Sheet; | |
| 8 | +import jxl.Workbook; | |
| 9 | +import jxl.write.Label; | |
| 10 | +import jxl.write.WritableSheet; | |
| 11 | +import jxl.write.WritableWorkbook; | |
| 12 | +import org.slf4j.Logger; | |
| 13 | +import org.slf4j.LoggerFactory; | |
| 14 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 15 | +import org.springframework.beans.factory.annotation.Qualifier; | |
| 16 | +import org.springframework.boot.context.properties.EnableConfigurationProperties; | |
| 17 | +import org.springframework.stereotype.Service; | |
| 18 | + | |
| 19 | +import java.io.File; | |
| 20 | +import java.io.PrintWriter; | |
| 21 | +import java.io.StringWriter; | |
| 22 | +import java.util.HashMap; | |
| 23 | +import java.util.Map; | |
| 24 | + | |
| 3 | 25 | /** |
| 4 | 26 | * Created by xu on 17/5/16. |
| 5 | 27 | */ |
| 6 | -public class CarsDataToolsImpl { | |
| 28 | +@EnableConfigurationProperties(DataToolsProperties.class) | |
| 29 | +@Service(value = "cars_dataTool") | |
| 30 | +public class CarsDataToolsImpl implements DataToolsService { | |
| 31 | + /** 日志记录器 */ | |
| 32 | + private final static Logger LOGGER = LoggerFactory.getLogger(CarsDataToolsImpl.class); | |
| 33 | + | |
| 34 | + @Autowired | |
| 35 | + @Qualifier(value = "dataToolsServiceImpl") | |
| 36 | + private DataToolsService dataToolsService; | |
| 37 | + | |
| 38 | + @Autowired | |
| 39 | + private DataToolsProperties dataToolsProperties; | |
| 40 | + | |
| 41 | + @Override | |
| 42 | + public File uploadFile(String filename, byte[] filedata) throws ScheduleException { | |
| 43 | + try { | |
| 44 | + // 对上传的excel文件做处理,将第一个sheet名字设定为工作表1 | |
| 45 | + File file = dataToolsService.uploadFile(filename, filedata); | |
| 46 | + Workbook workbook = Workbook.getWorkbook(file); | |
| 47 | + Sheet sheet = workbook.getSheet(0); | |
| 48 | + | |
| 49 | + File fileCal = new File(file.getAbsolutePath() + "_sheetChange.xls"); | |
| 50 | + WritableWorkbook writableWorkbook = Workbook.createWorkbook(fileCal); | |
| 51 | + WritableSheet writableSheet = writableWorkbook.createSheet("工作表1", 0); | |
| 52 | + for (int i = 0; i < sheet.getRows(); i++) { | |
| 53 | + Cell[] cells = sheet.getRow(i); | |
| 54 | + for (int j = 0; j < cells.length; j++) { | |
| 55 | + writableSheet.addCell(new Label(j, i, cells[j].getContents())); | |
| 56 | + } | |
| 57 | + } | |
| 58 | + writableWorkbook.write(); | |
| 59 | + writableWorkbook.close(); | |
| 60 | + | |
| 61 | + return fileCal; | |
| 62 | + | |
| 63 | + } catch (Exception exp) { | |
| 64 | + throw new ScheduleException(exp); | |
| 65 | + } | |
| 66 | + } | |
| 67 | + | |
| 68 | + @Override | |
| 69 | + public void importData(File file, Map<String, Object> params) throws ScheduleException { | |
| 70 | + try { | |
| 71 | + LOGGER.info("//---------------- 导入车辆基础信息 start... ----------------//"); | |
| 72 | + // 创建ktr转换所需参数 | |
| 73 | + Map<String, Object> ktrParms = new HashMap<>(); | |
| 74 | + File ktrFile = new File(this.getClass().getResource( | |
| 75 | + dataToolsProperties.getCarsDatainputktr()).toURI()); | |
| 76 | + | |
| 77 | + // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径 | |
| 78 | + ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 79 | + ktrParms.put("filepath", file.getAbsolutePath()); | |
| 80 | + ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir()); | |
| 81 | + | |
| 82 | + dataToolsService.importData(file, ktrParms); | |
| 83 | + | |
| 84 | + LOGGER.info("//---------------- 导入车辆基础信息 success... ----------------//"); | |
| 85 | + } catch (Exception exp) { | |
| 86 | + LOGGER.info("//---------------- 导入车辆基础信息 failed... ----------------//"); | |
| 87 | + | |
| 88 | + StringWriter sw = new StringWriter(); | |
| 89 | + exp.printStackTrace(new PrintWriter(sw)); | |
| 90 | + LOGGER.info(sw.toString()); | |
| 91 | + | |
| 92 | + throw new ScheduleException(exp.getMessage()); | |
| 93 | + } | |
| 94 | + } | |
| 95 | + | |
| 96 | + @Override | |
| 97 | + public File exportData(Map<String, Object> params) throws ScheduleException { | |
| 98 | + try { | |
| 99 | + LOGGER.info("//---------------- 导出车辆基础信息 start... ----------------//"); | |
| 100 | + // 创建ktr转换所需参数 | |
| 101 | + Map<String, Object> ktrParms = new HashMap<>(); | |
| 102 | + File ktrFile = new File(this.getClass().getResource( | |
| 103 | + dataToolsProperties.getCarsDataoutputktr()).toURI()); | |
| 104 | + | |
| 105 | + // 通用参数,转换文件路径,excel输出文件名 | |
| 106 | + ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 107 | + ktrParms.put("filename", "车辆基础信息_download-"); | |
| 108 | + | |
| 109 | + File file = dataToolsService.exportData(ktrParms); | |
| 110 | + | |
| 111 | + LOGGER.info("//---------------- 导出车辆基础信息 success... ----------------//"); | |
| 112 | + | |
| 113 | + return file; | |
| 114 | + | |
| 115 | + } catch (Exception exp) { | |
| 116 | + LOGGER.info("//---------------- 导出车辆基础信息 failed... ----------------//"); | |
| 117 | + | |
| 118 | + StringWriter sw = new StringWriter(); | |
| 119 | + exp.printStackTrace(new PrintWriter(sw)); | |
| 120 | + LOGGER.info(sw.toString()); | |
| 121 | + | |
| 122 | + throw new ScheduleException(exp.getMessage()); | |
| 123 | + } | |
| 124 | + } | |
| 7 | 125 | } | ... | ... |
src/main/java/com/bsth/service/schedule/datatools/EmployeeConfigInfoDataToolsImpl.java
| 1 | 1 | package com.bsth.service.schedule.datatools; |
| 2 | 2 | |
| 3 | +import com.bsth.service.schedule.exception.ScheduleException; | |
| 4 | +import com.bsth.service.schedule.utils.DataToolsProperties; | |
| 5 | +import com.bsth.service.schedule.utils.DataToolsService; | |
| 6 | +import jxl.Cell; | |
| 7 | +import jxl.Sheet; | |
| 8 | +import jxl.Workbook; | |
| 9 | +import jxl.write.Label; | |
| 10 | +import jxl.write.WritableSheet; | |
| 11 | +import jxl.write.WritableWorkbook; | |
| 12 | +import org.slf4j.Logger; | |
| 13 | +import org.slf4j.LoggerFactory; | |
| 14 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 15 | +import org.springframework.beans.factory.annotation.Qualifier; | |
| 16 | +import org.springframework.boot.context.properties.EnableConfigurationProperties; | |
| 17 | +import org.springframework.stereotype.Service; | |
| 18 | + | |
| 19 | +import java.io.File; | |
| 20 | +import java.io.PrintWriter; | |
| 21 | +import java.io.StringWriter; | |
| 22 | +import java.util.HashMap; | |
| 23 | +import java.util.Map; | |
| 24 | + | |
| 3 | 25 | /** |
| 4 | 26 | * Created by xu on 17/5/16. |
| 5 | 27 | */ |
| 6 | -public class EmployeeConfigInfoDataToolsImpl { | |
| 28 | +@EnableConfigurationProperties(DataToolsProperties.class) | |
| 29 | +@Service(value = "employeeConfig_dataTool") | |
| 30 | +public class EmployeeConfigInfoDataToolsImpl implements DataToolsService { | |
| 31 | + /** 日志记录器 */ | |
| 32 | + private static final Logger LOGGER = LoggerFactory.getLogger(EmployeeConfigInfoDataToolsImpl.class); | |
| 33 | + | |
| 34 | + @Autowired | |
| 35 | + @Qualifier(value = "dataToolsServiceImpl") | |
| 36 | + private DataToolsService dataToolsService; | |
| 37 | + | |
| 38 | + @Autowired | |
| 39 | + private DataToolsProperties dataToolsProperties; | |
| 40 | + | |
| 41 | + @Override | |
| 42 | + public File uploadFile(String filename, byte[] filedata) throws ScheduleException { | |
| 43 | + try { | |
| 44 | + // 对上传的excel文件做处理,将第一个sheet名字设定为工作表1 | |
| 45 | + File file = dataToolsService.uploadFile(filename, filedata); | |
| 46 | + Workbook workbook = Workbook.getWorkbook(file); | |
| 47 | + Sheet sheet = workbook.getSheet(0); | |
| 48 | + | |
| 49 | + File fileCal = new File(file.getAbsolutePath() + "_sheetChange.xls"); | |
| 50 | + WritableWorkbook writableWorkbook = Workbook.createWorkbook(fileCal); | |
| 51 | + WritableSheet writableSheet = writableWorkbook.createSheet("工作表1", 0); | |
| 52 | + for (int i = 0; i < sheet.getRows(); i++) { | |
| 53 | + Cell[] cells = sheet.getRow(i); | |
| 54 | + for (int j = 0; j < cells.length; j++) { | |
| 55 | + writableSheet.addCell(new Label(j, i, cells[j].getContents())); | |
| 56 | + } | |
| 57 | + } | |
| 58 | + writableWorkbook.write(); | |
| 59 | + writableWorkbook.close(); | |
| 60 | + | |
| 61 | + return fileCal; | |
| 62 | + | |
| 63 | + } catch (Exception exp) { | |
| 64 | + throw new ScheduleException(exp); | |
| 65 | + } | |
| 66 | + } | |
| 67 | + | |
| 68 | + @Override | |
| 69 | + public void importData(File file, Map<String, Object> params) throws ScheduleException { | |
| 70 | + try { | |
| 71 | + LOGGER.info("//---------------- 导入人员配置信息 start... ----------------//"); | |
| 72 | + // 创建ktr转换所需参数 | |
| 73 | + Map<String, Object> ktrParms = new HashMap<>(); | |
| 74 | + File ktrFile = new File(this.getClass().getResource( | |
| 75 | + dataToolsProperties.getEmployeesconfigDatainputktr()).toURI()); | |
| 76 | + | |
| 77 | + // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径 | |
| 78 | + ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 79 | + ktrParms.put("filepath", file.getAbsolutePath()); | |
| 80 | + ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir()); | |
| 81 | + | |
| 82 | + ktrParms.putAll(params); | |
| 83 | + | |
| 84 | + dataToolsService.importData(file, ktrParms); | |
| 85 | + | |
| 86 | + LOGGER.info("//---------------- 导入人员配置信息 success... ----------------//"); | |
| 87 | + } catch (Exception exp) { | |
| 88 | + LOGGER.info("//---------------- 导入人员配置信息 failed... ----------------//"); | |
| 89 | + | |
| 90 | + StringWriter sw = new StringWriter(); | |
| 91 | + exp.printStackTrace(new PrintWriter(sw)); | |
| 92 | + LOGGER.info(sw.toString()); | |
| 93 | + | |
| 94 | + throw new ScheduleException(exp.getMessage()); | |
| 95 | + } | |
| 96 | + } | |
| 97 | + | |
| 98 | + @Override | |
| 99 | + public File exportData(Map<String, Object> params) throws ScheduleException { | |
| 100 | + try { | |
| 101 | + LOGGER.info("//---------------- 导出人员配置信息 start... ----------------//"); | |
| 102 | + // 创建ktr转换所需参数 | |
| 103 | + Map<String, Object> ktrParms = new HashMap<>(); | |
| 104 | + File ktrFile = new File(this.getClass().getResource( | |
| 105 | + dataToolsProperties.getEmployeesconfigDataoutputktr()).toURI()); | |
| 106 | + | |
| 107 | + // 通用参数,转换文件路径,excel输出文件名 | |
| 108 | + ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 109 | + ktrParms.put("filename", "人员配置信息_download-"); | |
| 110 | + | |
| 111 | + ktrParms.putAll(params); | |
| 112 | + | |
| 113 | + File file = dataToolsService.exportData(ktrParms); | |
| 114 | + | |
| 115 | + LOGGER.info("//---------------- 导出人员配置信息 success... ----------------//"); | |
| 116 | + | |
| 117 | + return file; | |
| 118 | + | |
| 119 | + } catch (Exception exp) { | |
| 120 | + LOGGER.info("//---------------- 导出人员配置信息 failed... ----------------//"); | |
| 121 | + | |
| 122 | + StringWriter sw = new StringWriter(); | |
| 123 | + exp.printStackTrace(new PrintWriter(sw)); | |
| 124 | + LOGGER.info(sw.toString()); | |
| 125 | + | |
| 126 | + throw new ScheduleException(exp.getMessage()); | |
| 127 | + } | |
| 128 | + } | |
| 7 | 129 | } | ... | ... |
src/main/java/com/bsth/service/schedule/datatools/EmployeeDataToolsImpl.java
| 1 | 1 | package com.bsth.service.schedule.datatools; |
| 2 | 2 | |
| 3 | +import com.bsth.service.schedule.exception.ScheduleException; | |
| 4 | +import com.bsth.service.schedule.utils.DataToolsProperties; | |
| 5 | +import com.bsth.service.schedule.utils.DataToolsService; | |
| 6 | +import jxl.Cell; | |
| 7 | +import jxl.Sheet; | |
| 8 | +import jxl.Workbook; | |
| 9 | +import jxl.write.Label; | |
| 10 | +import jxl.write.WritableSheet; | |
| 11 | +import jxl.write.WritableWorkbook; | |
| 12 | +import org.slf4j.Logger; | |
| 13 | +import org.slf4j.LoggerFactory; | |
| 14 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 15 | +import org.springframework.beans.factory.annotation.Qualifier; | |
| 16 | +import org.springframework.boot.context.properties.EnableConfigurationProperties; | |
| 17 | +import org.springframework.stereotype.Service; | |
| 18 | + | |
| 19 | +import java.io.File; | |
| 20 | +import java.io.PrintWriter; | |
| 21 | +import java.io.StringWriter; | |
| 22 | +import java.util.HashMap; | |
| 23 | +import java.util.Map; | |
| 24 | + | |
| 3 | 25 | /** |
| 4 | 26 | * Created by xu on 17/5/16. |
| 5 | 27 | */ |
| 6 | -public class EmployeeDataToolsImpl { | |
| 28 | +@EnableConfigurationProperties(DataToolsProperties.class) | |
| 29 | +@Service(value = "employee_dataTool") | |
| 30 | +public class EmployeeDataToolsImpl implements DataToolsService { | |
| 31 | + /** 日志记录器 */ | |
| 32 | + private final static Logger LOGGER = LoggerFactory.getLogger(EmployeeDataToolsImpl.class); | |
| 33 | + | |
| 34 | + @Autowired | |
| 35 | + @Qualifier(value = "dataToolsServiceImpl") | |
| 36 | + private DataToolsService dataToolsService; | |
| 37 | + | |
| 38 | + @Autowired | |
| 39 | + private DataToolsProperties dataToolsProperties; | |
| 40 | + | |
| 41 | + @Override | |
| 42 | + public File uploadFile(String filename, byte[] filedata) throws ScheduleException { | |
| 43 | + try { | |
| 44 | + // 对上传的excel文件做处理,将第一个sheet名字设定为工作表1 | |
| 45 | + File file = dataToolsService.uploadFile(filename, filedata); | |
| 46 | + Workbook workbook = Workbook.getWorkbook(file); | |
| 47 | + Sheet sheet = workbook.getSheet(0); | |
| 48 | + | |
| 49 | + File fileCal = new File(file.getAbsolutePath() + "_sheetChange.xls"); | |
| 50 | + WritableWorkbook writableWorkbook = Workbook.createWorkbook(fileCal); | |
| 51 | + WritableSheet writableSheet = writableWorkbook.createSheet("工作表1", 0); | |
| 52 | + for (int i = 0; i < sheet.getRows(); i++) { | |
| 53 | + Cell[] cells = sheet.getRow(i); | |
| 54 | + for (int j = 0; j < cells.length; j++) { | |
| 55 | + writableSheet.addCell(new Label(j, i, cells[j].getContents())); | |
| 56 | + } | |
| 57 | + } | |
| 58 | + writableWorkbook.write(); | |
| 59 | + writableWorkbook.close(); | |
| 60 | + | |
| 61 | + return fileCal; | |
| 62 | + | |
| 63 | + } catch (Exception exp) { | |
| 64 | + throw new ScheduleException(exp); | |
| 65 | + } | |
| 66 | + } | |
| 67 | + | |
| 68 | + @Override | |
| 69 | + public void importData(File file, Map<String, Object> params) throws ScheduleException { | |
| 70 | + try { | |
| 71 | + LOGGER.info("//---------------- 导入人员基础信息 start... ----------------//"); | |
| 72 | + // 创建ktr转换所需参数 | |
| 73 | + Map<String, Object> ktrParms = new HashMap<>(); | |
| 74 | + File ktrFile = new File(this.getClass().getResource( | |
| 75 | + dataToolsProperties.getEmployeesDatainputktr()).toURI()); | |
| 76 | + | |
| 77 | + // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径 | |
| 78 | + ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 79 | + ktrParms.put("filepath", file.getAbsolutePath()); | |
| 80 | + ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir()); | |
| 81 | + | |
| 82 | + dataToolsService.importData(file, ktrParms); | |
| 83 | + | |
| 84 | + LOGGER.info("//---------------- 导入人员基础信息 success... ----------------//"); | |
| 85 | + } catch (Exception exp) { | |
| 86 | + LOGGER.info("//---------------- 导入人员基础信息 failed... ----------------//"); | |
| 87 | + | |
| 88 | + StringWriter sw = new StringWriter(); | |
| 89 | + exp.printStackTrace(new PrintWriter(sw)); | |
| 90 | + LOGGER.info(sw.toString()); | |
| 91 | + | |
| 92 | + throw new ScheduleException(exp.getMessage()); | |
| 93 | + } | |
| 94 | + } | |
| 95 | + | |
| 96 | + @Override | |
| 97 | + public File exportData(Map<String, Object> params) throws ScheduleException { | |
| 98 | + try { | |
| 99 | + LOGGER.info("//---------------- 导出人员基础信息 start... ----------------//"); | |
| 100 | + // 创建ktr转换所需参数 | |
| 101 | + Map<String, Object> ktrParms = new HashMap<>(); | |
| 102 | + File ktrFile = new File(this.getClass().getResource( | |
| 103 | + dataToolsProperties.getEmployeesDataoutputktr()).toURI()); | |
| 104 | + | |
| 105 | + // 通用参数,转换文件路径,excel输出文件名 | |
| 106 | + ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 107 | + ktrParms.put("filename", "人员基础信息_download-"); | |
| 108 | + | |
| 109 | + File file = dataToolsService.exportData(ktrParms); | |
| 110 | + | |
| 111 | + LOGGER.info("//---------------- 导出人员基础信息 success... ----------------//"); | |
| 112 | + | |
| 113 | + return file; | |
| 114 | + | |
| 115 | + } catch (Exception exp) { | |
| 116 | + LOGGER.info("//---------------- 导出人员基础信息 failed... ----------------//"); | |
| 117 | + | |
| 118 | + StringWriter sw = new StringWriter(); | |
| 119 | + exp.printStackTrace(new PrintWriter(sw)); | |
| 120 | + LOGGER.info(sw.toString()); | |
| 121 | + | |
| 122 | + throw new ScheduleException(exp.getMessage()); | |
| 123 | + } | |
| 124 | + } | |
| 7 | 125 | } | ... | ... |
src/main/java/com/bsth/service/schedule/datatools/GuideboardInfoDataToolsImpl.java
| 1 | 1 | package com.bsth.service.schedule.datatools; |
| 2 | 2 | |
| 3 | +import com.bsth.service.schedule.exception.ScheduleException; | |
| 4 | +import com.bsth.service.schedule.utils.DataToolsProperties; | |
| 5 | +import com.bsth.service.schedule.utils.DataToolsService; | |
| 6 | +import jxl.Cell; | |
| 7 | +import jxl.Sheet; | |
| 8 | +import jxl.Workbook; | |
| 9 | +import jxl.write.Label; | |
| 10 | +import jxl.write.WritableSheet; | |
| 11 | +import jxl.write.WritableWorkbook; | |
| 12 | +import org.slf4j.Logger; | |
| 13 | +import org.slf4j.LoggerFactory; | |
| 14 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 15 | +import org.springframework.beans.factory.annotation.Qualifier; | |
| 16 | +import org.springframework.boot.context.properties.EnableConfigurationProperties; | |
| 17 | +import org.springframework.stereotype.Service; | |
| 18 | + | |
| 19 | +import java.io.File; | |
| 20 | +import java.io.PrintWriter; | |
| 21 | +import java.io.StringWriter; | |
| 22 | +import java.util.HashMap; | |
| 23 | +import java.util.Map; | |
| 24 | + | |
| 3 | 25 | /** |
| 4 | 26 | * Created by xu on 17/5/16. |
| 5 | 27 | */ |
| 6 | -public class GuideboardInfoDataToolsImpl { | |
| 28 | +@EnableConfigurationProperties(DataToolsProperties.class) | |
| 29 | +@Service(value = "gbInfo_dataTool") | |
| 30 | +public class GuideboardInfoDataToolsImpl implements DataToolsService { | |
| 31 | + /** 日志记录器 */ | |
| 32 | + private final static Logger LOGGER = LoggerFactory.getLogger(GuideboardInfoDataToolsImpl.class); | |
| 33 | + | |
| 34 | + @Autowired | |
| 35 | + @Qualifier(value = "dataToolsServiceImpl") | |
| 36 | + private DataToolsService dataToolsService; | |
| 37 | + | |
| 38 | + @Autowired | |
| 39 | + private DataToolsProperties dataToolsProperties; | |
| 40 | + | |
| 41 | + @Override | |
| 42 | + public File uploadFile(String filename, byte[] filedata) throws ScheduleException { | |
| 43 | + try { | |
| 44 | + // 对上传的excel文件做处理,将第一个sheet名字设定为工作表1 | |
| 45 | + File file = dataToolsService.uploadFile(filename, filedata); | |
| 46 | + Workbook workbook = Workbook.getWorkbook(file); | |
| 47 | + Sheet sheet = workbook.getSheet(0); | |
| 48 | + | |
| 49 | + File fileCal = new File(file.getAbsolutePath() + "_sheetChange.xls"); | |
| 50 | + WritableWorkbook writableWorkbook = Workbook.createWorkbook(fileCal); | |
| 51 | + WritableSheet writableSheet = writableWorkbook.createSheet("工作表1", 0); | |
| 52 | + for (int i = 0; i < sheet.getRows(); i++) { | |
| 53 | + Cell[] cells = sheet.getRow(i); | |
| 54 | + for (int j = 0; j < cells.length; j++) { | |
| 55 | + writableSheet.addCell(new Label(j, i, cells[j].getContents())); | |
| 56 | + } | |
| 57 | + } | |
| 58 | + writableWorkbook.write(); | |
| 59 | + writableWorkbook.close(); | |
| 60 | + | |
| 61 | + return fileCal; | |
| 62 | + | |
| 63 | + } catch (Exception exp) { | |
| 64 | + throw new ScheduleException(exp); | |
| 65 | + } | |
| 66 | + } | |
| 67 | + | |
| 68 | + @Override | |
| 69 | + public void importData(File file, Map<String, Object> params) throws ScheduleException { | |
| 70 | + try { | |
| 71 | + LOGGER.info("//---------------- 导入路牌信息 start... ----------------//"); | |
| 72 | + // 创建ktr转换所需参数 | |
| 73 | + Map<String, Object> ktrParms = new HashMap<>(); | |
| 74 | + File ktrFile = new File(this.getClass().getResource( | |
| 75 | + dataToolsProperties.getGuideboardsDatainputktr()).toURI()); | |
| 76 | + | |
| 77 | + // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径 | |
| 78 | + ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 79 | + ktrParms.put("filepath", file.getAbsolutePath()); | |
| 80 | + ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir()); | |
| 81 | + | |
| 82 | + ktrParms.putAll(params); | |
| 83 | + | |
| 84 | + dataToolsService.importData(file, ktrParms); | |
| 85 | + | |
| 86 | + LOGGER.info("//---------------- 导入路牌信息 success... ----------------//"); | |
| 87 | + } catch (Exception exp) { | |
| 88 | + LOGGER.info("//---------------- 导入路牌信息 failed... ----------------//"); | |
| 89 | + | |
| 90 | + StringWriter sw = new StringWriter(); | |
| 91 | + exp.printStackTrace(new PrintWriter(sw)); | |
| 92 | + LOGGER.info(sw.toString()); | |
| 93 | + | |
| 94 | + throw new ScheduleException(exp.getMessage()); | |
| 95 | + } | |
| 96 | + } | |
| 97 | + | |
| 98 | + @Override | |
| 99 | + public File exportData(Map<String, Object> params) throws ScheduleException { | |
| 100 | + try { | |
| 101 | + LOGGER.info("//---------------- 导出路牌信息 start... ----------------//"); | |
| 102 | + // 创建ktr转换所需参数 | |
| 103 | + Map<String, Object> ktrParms = new HashMap<>(); | |
| 104 | + File ktrFile = new File(this.getClass().getResource( | |
| 105 | + dataToolsProperties.getGuideboardsDataoutputktr()).toURI()); | |
| 106 | + | |
| 107 | + // 通用参数,转换文件路径,excel输出文件名 | |
| 108 | + ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 109 | + ktrParms.put("filename", "路牌信息_download-"); | |
| 110 | + | |
| 111 | + ktrParms.putAll(params); | |
| 112 | + | |
| 113 | + File file = dataToolsService.exportData(ktrParms); | |
| 114 | + | |
| 115 | + LOGGER.info("//---------------- 导出路牌信息 success... ----------------//"); | |
| 116 | + | |
| 117 | + return file; | |
| 118 | + | |
| 119 | + } catch (Exception exp) { | |
| 120 | + LOGGER.info("//---------------- 导出路牌信息 failed... ----------------//"); | |
| 121 | + | |
| 122 | + StringWriter sw = new StringWriter(); | |
| 123 | + exp.printStackTrace(new PrintWriter(sw)); | |
| 124 | + LOGGER.info(sw.toString()); | |
| 125 | + | |
| 126 | + throw new ScheduleException(exp.getMessage()); | |
| 127 | + } | |
| 128 | + } | |
| 7 | 129 | } | ... | ... |
src/main/java/com/bsth/service/schedule/datatools/ScheduleRule1FlatDataToolsImpl.java
| 1 | 1 | package com.bsth.service.schedule.datatools; |
| 2 | 2 | |
| 3 | +import com.bsth.service.schedule.exception.ScheduleException; | |
| 4 | +import com.bsth.service.schedule.utils.DataToolsProperties; | |
| 5 | +import com.bsth.service.schedule.utils.DataToolsService; | |
| 6 | +import jxl.Cell; | |
| 7 | +import jxl.Sheet; | |
| 8 | +import jxl.Workbook; | |
| 9 | +import jxl.write.Label; | |
| 10 | +import jxl.write.WritableSheet; | |
| 11 | +import jxl.write.WritableWorkbook; | |
| 12 | +import org.slf4j.Logger; | |
| 13 | +import org.slf4j.LoggerFactory; | |
| 14 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 15 | +import org.springframework.beans.factory.annotation.Qualifier; | |
| 16 | +import org.springframework.boot.context.properties.EnableConfigurationProperties; | |
| 17 | +import org.springframework.stereotype.Service; | |
| 18 | + | |
| 19 | +import java.io.File; | |
| 20 | +import java.io.PrintWriter; | |
| 21 | +import java.io.StringWriter; | |
| 22 | +import java.util.HashMap; | |
| 23 | +import java.util.Map; | |
| 24 | + | |
| 3 | 25 | /** |
| 4 | 26 | * Created by xu on 17/5/16. |
| 5 | 27 | */ |
| 6 | -public class ScheduleRule1FlatDataToolsImpl { | |
| 28 | +@EnableConfigurationProperties(DataToolsProperties.class) | |
| 29 | +@Service(value = "scheduleRule_dataTool") | |
| 30 | +public class ScheduleRule1FlatDataToolsImpl implements DataToolsService { | |
| 31 | + /** 日志记录器 */ | |
| 32 | + private final static Logger LOGGER = LoggerFactory.getLogger(ScheduleRule1FlatDataToolsImpl.class); | |
| 33 | + | |
| 34 | + @Autowired | |
| 35 | + @Qualifier(value = "dataToolsServiceImpl") | |
| 36 | + private DataToolsService dataToolsService; | |
| 37 | + | |
| 38 | + @Autowired | |
| 39 | + private DataToolsProperties dataToolsProperties; | |
| 40 | + | |
| 41 | + @Override | |
| 42 | + public File uploadFile(String filename, byte[] filedata) throws ScheduleException { | |
| 43 | + try { | |
| 44 | + // 对上传的excel文件做处理,将第一个sheet名字设定为工作表1 | |
| 45 | + File file = dataToolsService.uploadFile(filename, filedata); | |
| 46 | + Workbook workbook = Workbook.getWorkbook(file); | |
| 47 | + Sheet sheet = workbook.getSheet(0); | |
| 48 | + | |
| 49 | + File fileCal = new File(file.getAbsolutePath() + "_sheetChange.xls"); | |
| 50 | + WritableWorkbook writableWorkbook = Workbook.createWorkbook(fileCal); | |
| 51 | + WritableSheet writableSheet = writableWorkbook.createSheet("工作表1", 0); | |
| 52 | + for (int i = 0; i < sheet.getRows(); i++) { | |
| 53 | + Cell[] cells = sheet.getRow(i); | |
| 54 | + for (int j = 0; j < cells.length; j++) { | |
| 55 | + writableSheet.addCell(new Label(j, i, cells[j].getContents())); | |
| 56 | + } | |
| 57 | + } | |
| 58 | + writableWorkbook.write(); | |
| 59 | + writableWorkbook.close(); | |
| 60 | + | |
| 61 | + return fileCal; | |
| 62 | + | |
| 63 | + } catch (Exception exp) { | |
| 64 | + throw new ScheduleException(exp); | |
| 65 | + } | |
| 66 | + } | |
| 67 | + | |
| 68 | + @Override | |
| 69 | + public void importData(File file, Map<String, Object> params) throws ScheduleException { | |
| 70 | + try { | |
| 71 | + LOGGER.info("//---------------- 导入排版规则信息 start... ----------------//"); | |
| 72 | + // 创建ktr转换所需参数 | |
| 73 | + Map<String, Object> ktrParms = new HashMap<>(); | |
| 74 | + File ktrFile = new File(this.getClass().getResource( | |
| 75 | + dataToolsProperties.getScheduleruleDatainputktr()).toURI()); | |
| 76 | + | |
| 77 | + // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径 | |
| 78 | + ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 79 | + ktrParms.put("filepath", file.getAbsolutePath()); | |
| 80 | + ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir()); | |
| 81 | + | |
| 82 | + ktrParms.putAll(params); | |
| 83 | + | |
| 84 | + dataToolsService.importData(file, ktrParms); | |
| 85 | + | |
| 86 | + LOGGER.info("//---------------- 导入排版规则信息 success... ----------------//"); | |
| 87 | + } catch (Exception exp) { | |
| 88 | + LOGGER.info("//---------------- 导入排版规则信息 failed... ----------------//"); | |
| 89 | + | |
| 90 | + StringWriter sw = new StringWriter(); | |
| 91 | + exp.printStackTrace(new PrintWriter(sw)); | |
| 92 | + LOGGER.info(sw.toString()); | |
| 93 | + | |
| 94 | + throw new ScheduleException(exp.getMessage()); | |
| 95 | + } | |
| 96 | + } | |
| 97 | + | |
| 98 | + @Override | |
| 99 | + public File exportData(Map<String, Object> params) throws ScheduleException { | |
| 100 | + try { | |
| 101 | + LOGGER.info("//---------------- 导出排版规则信息 start... ----------------//"); | |
| 102 | + // 创建ktr转换所需参数 | |
| 103 | + Map<String, Object> ktrParms = new HashMap<>(); | |
| 104 | + File ktrFile = new File(this.getClass().getResource( | |
| 105 | + dataToolsProperties.getScheduleruleOutput()).toURI()); | |
| 106 | + | |
| 107 | + // 通用参数,转换文件路径,excel输出文件名 | |
| 108 | + ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 109 | + ktrParms.put("filename", "排版规则信息_download-"); | |
| 110 | + | |
| 111 | + ktrParms.putAll(params); | |
| 112 | + | |
| 113 | + File file = dataToolsService.exportData(ktrParms); | |
| 114 | + | |
| 115 | + LOGGER.info("//---------------- 导出排版规则信息 success... ----------------//"); | |
| 116 | + | |
| 117 | + return file; | |
| 118 | + | |
| 119 | + } catch (Exception exp) { | |
| 120 | + LOGGER.info("//---------------- 导出排版规则信息 failed... ----------------//"); | |
| 121 | + | |
| 122 | + StringWriter sw = new StringWriter(); | |
| 123 | + exp.printStackTrace(new PrintWriter(sw)); | |
| 124 | + LOGGER.info(sw.toString()); | |
| 125 | + | |
| 126 | + throw new ScheduleException(exp.getMessage()); | |
| 127 | + } | |
| 128 | + } | |
| 7 | 129 | } | ... | ... |
src/main/java/com/bsth/service/schedule/datatools/TTInfoDetailDataToolsImpl.java
| 1 | 1 | package com.bsth.service.schedule.datatools; |
| 2 | 2 | |
| 3 | +import com.bsth.service.schedule.exception.ScheduleException; | |
| 4 | +import com.bsth.service.schedule.utils.DataToolsProperties; | |
| 5 | +import com.bsth.service.schedule.utils.DataToolsService; | |
| 6 | +import jxl.Cell; | |
| 7 | +import jxl.Sheet; | |
| 8 | +import jxl.Workbook; | |
| 9 | +import jxl.write.Label; | |
| 10 | +import jxl.write.WritableSheet; | |
| 11 | +import jxl.write.WritableWorkbook; | |
| 12 | +import org.apache.commons.lang3.StringUtils; | |
| 13 | +import org.joda.time.DateTime; | |
| 14 | +import org.slf4j.Logger; | |
| 15 | +import org.slf4j.LoggerFactory; | |
| 16 | +import org.springframework.beans.factory.annotation.Autowired; | |
| 17 | +import org.springframework.beans.factory.annotation.Qualifier; | |
| 18 | +import org.springframework.boot.context.properties.EnableConfigurationProperties; | |
| 19 | +import org.springframework.stereotype.Service; | |
| 20 | + | |
| 21 | +import java.io.File; | |
| 22 | +import java.io.PrintWriter; | |
| 23 | +import java.io.StringWriter; | |
| 24 | +import java.util.ArrayList; | |
| 25 | +import java.util.HashMap; | |
| 26 | +import java.util.List; | |
| 27 | +import java.util.Map; | |
| 28 | + | |
| 3 | 29 | /** |
| 4 | 30 | * Created by xu on 17/5/16. |
| 5 | 31 | */ |
| 6 | -public class TTInfoDetailDataToolsImpl { | |
| 32 | +@EnableConfigurationProperties(DataToolsProperties.class) | |
| 33 | +@Service(value = "ttInfoDetail_dataTool") | |
| 34 | +public class TTInfoDetailDataToolsImpl implements DataToolsService, TTInfoDetailForEdit { | |
| 35 | + /** 日志记录器 */ | |
| 36 | + private final static Logger LOGGER = LoggerFactory.getLogger(TTInfoDetailDataToolsImpl.class); | |
| 37 | + | |
| 38 | + @Autowired | |
| 39 | + @Qualifier(value = "dataToolsServiceImpl") | |
| 40 | + private DataToolsService dataToolsService; | |
| 41 | + | |
| 42 | + @Autowired | |
| 43 | + private DataToolsProperties dataToolsProperties; | |
| 44 | + | |
| 45 | + @Override | |
| 46 | + public File uploadFile(String filename, byte[] filedata) throws ScheduleException { | |
| 47 | + try { | |
| 48 | + // 对上传的excel文件做处理,将第一个sheet名字设定为工作表1 | |
| 49 | + File file = dataToolsService.uploadFile(filename, filedata); | |
| 50 | + Workbook workbook = Workbook.getWorkbook(file); | |
| 51 | + Sheet sheet = workbook.getSheet(0); | |
| 52 | + | |
| 53 | + File fileCal = new File(file.getAbsolutePath() + "_sheetChange.xls"); | |
| 54 | + WritableWorkbook writableWorkbook = Workbook.createWorkbook(fileCal); | |
| 55 | + WritableSheet writableSheet = writableWorkbook.createSheet("工作表1", 0); | |
| 56 | + for (int i = 0; i < sheet.getRows(); i++) { | |
| 57 | + Cell[] cells = sheet.getRow(i); | |
| 58 | + for (int j = 0; j < cells.length; j++) { | |
| 59 | + writableSheet.addCell(new Label(j, i, cells[j].getContents())); | |
| 60 | + } | |
| 61 | + } | |
| 62 | + writableWorkbook.write(); | |
| 63 | + writableWorkbook.close(); | |
| 64 | + | |
| 65 | + return fileCal; | |
| 66 | + | |
| 67 | + } catch (Exception exp) { | |
| 68 | + throw new ScheduleException(exp); | |
| 69 | + } | |
| 70 | + } | |
| 71 | + | |
| 72 | + @Override | |
| 73 | + public void importData(File file, Map<String, Object> params) throws ScheduleException { | |
| 74 | + try { | |
| 75 | + LOGGER.info("//---------------- 导入时刻表明细 start... ----------------//"); | |
| 76 | + | |
| 77 | + String filename = file.getAbsolutePath(); // xls文件名 | |
| 78 | + String sheetname = String.valueOf(params.get("sheetname")); // sheet名字 | |
| 79 | + Long ttid = Long.valueOf(String.valueOf(params.get("ttid"))); // 时刻表id | |
| 80 | + Long xlid = Long.valueOf(String.valueOf(params.get("xlid"))); // 线路id | |
| 81 | + Integer lineid = Integer.valueOf(String.valueOf(params.get("lineinfo"))); // 线路标准id | |
| 82 | + String xlname = String.valueOf(params.get("xlname")); // 线路名字 | |
| 83 | + String ttname = String.valueOf(params.get("ttname")); // 时刻表名字 | |
| 84 | + | |
| 85 | + LOGGER.info("参数1, xls文件名={},sheet名字={}", filename, sheetname); | |
| 86 | + LOGGER.info("参数2, 线路id={},线路名字={}", xlid, xlname); | |
| 87 | + LOGGER.info("参数3, 时刻表id={},时刻表名字={}", ttid, ttname); | |
| 88 | + | |
| 89 | + LOGGER.info("转换xls文件格式成文本格式..."); | |
| 90 | + // 1、修改已经上传的excel文件,在每个起点站后标示数字,表示第几个班次 | |
| 91 | + // 2、由于格式问题,需要把内容都转换成字符串 | |
| 92 | + List<String> colList = new ArrayList<>(); | |
| 93 | + Workbook workbook = Workbook.getWorkbook(new File(filename)); | |
| 94 | + Sheet sheet = workbook.getSheet(sheetname); | |
| 95 | + Cell[] cells = sheet.getRow(0); | |
| 96 | + for (int i = 0; i < cells.length; i++) { | |
| 97 | + if (i == 0) { | |
| 98 | + colList.add(cells[i].getContents().trim()); | |
| 99 | + } else { | |
| 100 | + colList.add(cells[i].getContents() + i); | |
| 101 | + } | |
| 102 | + } | |
| 103 | + | |
| 104 | + File fileCal = new File(filename + "_stringType.xls"); | |
| 105 | + WritableWorkbook writableWorkbook = Workbook.createWorkbook(fileCal, workbook); | |
| 106 | + WritableSheet sheet1 = writableWorkbook.getSheet(sheetname); | |
| 107 | + for (int i = 0; i < sheet1.getColumns(); i++) { // 第一行数据 | |
| 108 | + sheet1.addCell(new Label(i, 0, colList.get(i))); | |
| 109 | + } | |
| 110 | + for (int i = 1; i < sheet1.getRows(); i++) { // 第二行开始 | |
| 111 | + Cell[] cells1 = sheet.getRow(i); | |
| 112 | + for (int j = 0; j < cells1.length; j++) { | |
| 113 | + sheet1.addCell(new Label(j, i, cells1[j].getContents())); | |
| 114 | + } | |
| 115 | + } | |
| 116 | + writableWorkbook.write(); | |
| 117 | + writableWorkbook.close(); | |
| 118 | + | |
| 119 | + // 2、删除原有数据 | |
| 120 | + // 操作在ktr内部执行 | |
| 121 | + | |
| 122 | + // 3、导入时刻表 | |
| 123 | + | |
| 124 | + // 计算表头参数 | |
| 125 | + Workbook book = Workbook.getWorkbook(fileCal); | |
| 126 | + Sheet sheet_exp = book.getSheet(sheetname); | |
| 127 | + List<String> columnames = new ArrayList<>(); | |
| 128 | + for (int i = 0; i < sheet_exp.getColumns(); i++) { // 获取第一行,数据,作为列名 | |
| 129 | + columnames.add(sheet_exp.getCell(i, 0).getContents()); | |
| 130 | + } | |
| 131 | + LOGGER.info("表头={}", StringUtils.join(columnames.toArray(), ",")); | |
| 132 | + | |
| 133 | + // 创建ktr转换所需参数 | |
| 134 | + Map<String, Object> ktrParms = new HashMap<>(); | |
| 135 | + File ktrFile = new File(this.getClass().getResource( | |
| 136 | + dataToolsProperties.getTtinfodetailMetadatainputktr()).toURI()); | |
| 137 | +// File ktrFile2 = new File(this.getClass().getResource( | |
| 138 | +// dataToolsProperties.getTtinfodetailDatainputktr()).toURI()); | |
| 139 | + File ktrFile2 = new File(this.getClass().getResource( | |
| 140 | + dataToolsProperties.getTtinfodetailDatainputktr2()).toURI()); | |
| 141 | + | |
| 142 | + // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径 | |
| 143 | + ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 144 | + ktrParms.put("filepath", fileCal.getAbsolutePath()); | |
| 145 | + ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir()); | |
| 146 | + | |
| 147 | + // 附加参数 | |
| 148 | + ktrParms.put("injectktrfile", ktrFile2.getAbsolutePath()); // 注入元数据的ktr文件 | |
| 149 | + ktrParms.put("sheetname", sheetname); // sheet工作区的名字 | |
| 150 | + ktrParms.put("lineinfoid", lineid); // 线路标准id | |
| 151 | + ktrParms.put("xlname", xlname); // 线路名称 | |
| 152 | + ktrParms.put("ttinfoname", ttname); // 时刻表名称 | |
| 153 | + ktrParms.put("ttid", ttid.intValue()); // 时刻表id | |
| 154 | + ktrParms.put("excelfieldnames", StringUtils.join(columnames.toArray(), ",")); // 时刻表excel输入字段名,以逗号连接 | |
| 155 | + columnames.remove(0); | |
| 156 | + ktrParms.put("normalizefieldnames", StringUtils.join(columnames.toArray(), ",")); // 数据范式化字段名,以逗号连接 | |
| 157 | + | |
| 158 | + dataToolsService.importData(fileCal, ktrParms); | |
| 159 | + | |
| 160 | + LOGGER.info("//---------------- 导入时刻表明细 success... ----------------//"); | |
| 161 | + } catch (Exception exp) { | |
| 162 | + LOGGER.info("//---------------- 导入时刻表明细 failed... ----------------//"); | |
| 163 | + | |
| 164 | + StringWriter sw = new StringWriter(); | |
| 165 | + exp.printStackTrace(new PrintWriter(sw)); | |
| 166 | + LOGGER.info(sw.toString()); | |
| 167 | + | |
| 168 | + throw new ScheduleException(exp.getMessage()); | |
| 169 | + } | |
| 170 | + } | |
| 171 | + | |
| 172 | + @Override | |
| 173 | + public File exportData(Map<String, Object> params) throws ScheduleException { | |
| 174 | + try { | |
| 175 | + LOGGER.info("//---------------- 导出时刻表明细 start... ----------------//"); | |
| 176 | + | |
| 177 | + // 创建ktr转换所需参数 | |
| 178 | + Map<String, Object> ktrParms = new HashMap<>(); | |
| 179 | + File ktrFile = new File(this.getClass().getResource( | |
| 180 | + dataToolsProperties.getTtinfodetailMetaoutput()).toURI()); | |
| 181 | + File ktrFile2 = new File(this.getClass().getResource( | |
| 182 | + dataToolsProperties.getTtinfodetailOutput()).toURI()); | |
| 183 | + | |
| 184 | + // 通用参数,转换文件路径,excel输出文件名 | |
| 185 | + ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 186 | + ktrParms.put("filename", String.format("时刻表_(id=%s)_download-", String.valueOf(params.get("ttinfoid")))); | |
| 187 | + | |
| 188 | + // 附加参数 | |
| 189 | + ktrParms.put("injectktrfile", ktrFile2.getAbsolutePath()); // 注入元数据的ktr文件 | |
| 190 | + ktrParms.put("ttinfoid", String.valueOf(params.get("ttinfoid"))); | |
| 191 | + | |
| 192 | + File file = dataToolsService.exportData(ktrParms); | |
| 193 | + | |
| 194 | + LOGGER.info("//---------------- 导出时刻表明细 success... ----------------//"); | |
| 195 | + | |
| 196 | + return file; | |
| 197 | + } catch (Exception exp) { | |
| 198 | + LOGGER.info("//---------------- 导出时刻表明细 failed... ----------------//"); | |
| 199 | + | |
| 200 | + StringWriter sw = new StringWriter(); | |
| 201 | + exp.printStackTrace(new PrintWriter(sw)); | |
| 202 | + LOGGER.info(sw.toString()); | |
| 203 | + | |
| 204 | + throw new ScheduleException(exp.getMessage()); | |
| 205 | + } | |
| 206 | + } | |
| 207 | + | |
| 208 | + @Override | |
| 209 | + public File exportDataForEdit(Integer xlid, Long ttid) throws ScheduleException { | |
| 210 | + try { | |
| 211 | + // 创建ktr转换所需参数 | |
| 212 | + Map<String, Object> ktrParms = new HashMap<>(); | |
| 213 | + File ktrFile = new File(this.getClass().getResource( | |
| 214 | + dataToolsProperties.getTtinfodetailForeditktr()).toURI()); | |
| 215 | + | |
| 216 | + // 通用参数,转换文件路径,excel输出文件名,错误输出文件路径 | |
| 217 | + ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 218 | + ktrParms.put("filename", "todo"); | |
| 219 | + | |
| 220 | + // 附加参数 | |
| 221 | + String outputFilePath = String.format("ttinfodetail_(id=%s)_foredit-%s", | |
| 222 | + String.valueOf(ttid), new DateTime().toString("yyyyMMddHHmmss")); | |
| 223 | + | |
| 224 | + ktrParms.put("tempfilepath", dataToolsProperties.getTransTempdir() + File.separator + outputFilePath); // 数据输出文件路径 | |
| 225 | + ktrParms.put("xlid", String.valueOf(xlid)); | |
| 226 | + ktrParms.put("ttid", String.valueOf(ttid)); | |
| 227 | + | |
| 228 | + return dataToolsService.exportData(ktrParms); | |
| 229 | + } catch (Exception exp) { | |
| 230 | + throw new ScheduleException(exp); | |
| 231 | + } | |
| 232 | + } | |
| 7 | 233 | } | ... | ... |
src/main/java/com/bsth/service/schedule/datatools/TTInfoDetailForEdit.java
| 1 | 1 | package com.bsth.service.schedule.datatools; |
| 2 | 2 | |
| 3 | +import com.bsth.service.schedule.exception.ScheduleException; | |
| 4 | + | |
| 5 | +import java.io.File; | |
| 6 | + | |
| 3 | 7 | /** |
| 4 | 8 | * Created by xu on 17/5/16. |
| 5 | 9 | */ |
| 6 | 10 | public interface TTInfoDetailForEdit { |
| 11 | + File exportDataForEdit(Integer xlid, Long ttid) throws ScheduleException; | |
| 7 | 12 | } | ... | ... |
src/main/java/com/bsth/service/schedule/impl/BServiceImpl.java
| ... | ... | @@ -5,12 +5,6 @@ import com.bsth.repository.BaseRepository; |
| 5 | 5 | import com.bsth.service.schedule.BService; |
| 6 | 6 | import com.bsth.service.schedule.exception.ScheduleException; |
| 7 | 7 | import com.bsth.service.schedule.utils.DataToolsService; |
| 8 | -import jxl.Cell; | |
| 9 | -import jxl.Sheet; | |
| 10 | -import jxl.Workbook; | |
| 11 | -import jxl.write.Label; | |
| 12 | -import jxl.write.WritableSheet; | |
| 13 | -import jxl.write.WritableWorkbook; | |
| 14 | 8 | import org.slf4j.Logger; |
| 15 | 9 | import org.slf4j.LoggerFactory; |
| 16 | 10 | import org.springframework.beans.factory.annotation.Autowired; |
| ... | ... | @@ -124,39 +118,16 @@ public class BServiceImpl<T, ID extends Serializable> implements BService<T, ID> |
| 124 | 118 | |
| 125 | 119 | @Override |
| 126 | 120 | public File uploadFile(String filename, byte[] filedata) throws ScheduleException { |
| 127 | - try { | |
| 128 | - // 对上传的excel文件做处理,将第一个sheet名字设定为工作表1 | |
| 129 | - File file = dataToolsService.uploadFile(filename, filedata); | |
| 130 | - Workbook workbook = Workbook.getWorkbook(file); | |
| 131 | - Sheet sheet = workbook.getSheet(0); | |
| 132 | - | |
| 133 | - File fileCal = new File(file.getAbsolutePath() + "_sheetChange.xls"); | |
| 134 | - WritableWorkbook writableWorkbook = Workbook.createWorkbook(fileCal); | |
| 135 | - WritableSheet writableSheet = writableWorkbook.createSheet("工作表1", 0); | |
| 136 | - for (int i = 0; i < sheet.getRows(); i++) { | |
| 137 | - Cell[] cells = sheet.getRow(i); | |
| 138 | - for (int j = 0; j < cells.length; j++) { | |
| 139 | - writableSheet.addCell(new Label(j, i, cells[j].getContents())); | |
| 140 | - } | |
| 141 | - } | |
| 142 | - writableWorkbook.write(); | |
| 143 | - writableWorkbook.close(); | |
| 144 | - | |
| 145 | - return fileCal; | |
| 146 | - | |
| 147 | - } catch (Exception exp) { | |
| 148 | - throw new ScheduleException(exp); | |
| 149 | - } | |
| 150 | - | |
| 121 | + throw new ScheduleException("子类自己复写此方法!"); | |
| 151 | 122 | } |
| 152 | 123 | |
| 153 | 124 | @Override |
| 154 | 125 | public void importData(File file, Map<String, Object> params) throws ScheduleException { |
| 155 | - dataToolsService.importData(file, params); | |
| 126 | + throw new ScheduleException("子类自己复写此方法!"); | |
| 156 | 127 | } |
| 157 | 128 | |
| 158 | 129 | @Override |
| 159 | 130 | public File exportData(Map<String, Object> params) throws ScheduleException { |
| 160 | - return dataToolsService.exportData(params); | |
| 131 | + throw new ScheduleException("子类自己复写此方法!"); | |
| 161 | 132 | } |
| 162 | 133 | } | ... | ... |
src/main/java/com/bsth/service/schedule/impl/CarConfigInfoServiceImpl.java
| ... | ... | @@ -3,20 +3,16 @@ package com.bsth.service.schedule.impl; |
| 3 | 3 | import com.bsth.entity.schedule.CarConfigInfo; |
| 4 | 4 | import com.bsth.entity.schedule.rule.ScheduleRule1Flat; |
| 5 | 5 | import com.bsth.service.schedule.CarConfigInfoService; |
| 6 | -import com.bsth.service.schedule.exception.ScheduleException; | |
| 7 | 6 | import com.bsth.service.schedule.ScheduleRule1FlatService; |
| 8 | -import com.bsth.service.schedule.utils.DataToolsProperties; | |
| 9 | -import org.slf4j.Logger; | |
| 10 | -import org.slf4j.LoggerFactory; | |
| 7 | +import com.bsth.service.schedule.exception.ScheduleException; | |
| 8 | +import com.bsth.service.schedule.utils.DataToolsService; | |
| 11 | 9 | import org.springframework.beans.factory.annotation.Autowired; |
| 12 | -import org.springframework.boot.context.properties.EnableConfigurationProperties; | |
| 10 | +import org.springframework.beans.factory.annotation.Qualifier; | |
| 13 | 11 | import org.springframework.stereotype.Service; |
| 14 | 12 | import org.springframework.transaction.annotation.Transactional; |
| 15 | 13 | import org.springframework.util.CollectionUtils; |
| 16 | 14 | |
| 17 | 15 | import java.io.File; |
| 18 | -import java.io.PrintWriter; | |
| 19 | -import java.io.StringWriter; | |
| 20 | 16 | import java.util.HashMap; |
| 21 | 17 | import java.util.List; |
| 22 | 18 | import java.util.Map; |
| ... | ... | @@ -24,78 +20,28 @@ import java.util.Map; |
| 24 | 20 | /** |
| 25 | 21 | * Created by xu on 16/5/9. |
| 26 | 22 | */ |
| 27 | -@EnableConfigurationProperties(DataToolsProperties.class) | |
| 28 | 23 | @Service |
| 29 | 24 | public class CarConfigInfoServiceImpl extends BServiceImpl<CarConfigInfo, Long> implements CarConfigInfoService { |
| 30 | - /** 日志记录器 */ | |
| 31 | - private static Logger LOGGER = LoggerFactory.getLogger(CarConfigInfoServiceImpl.class); | |
| 32 | - | |
| 33 | 25 | @Autowired |
| 34 | - private DataToolsProperties dataToolsProperties; | |
| 26 | + private ScheduleRule1FlatService scheduleRule1FlatService; | |
| 35 | 27 | |
| 36 | 28 | @Autowired |
| 37 | - private ScheduleRule1FlatService scheduleRule1FlatService; | |
| 29 | + @Qualifier(value = "carConfig_dataTool") | |
| 30 | + private DataToolsService dataToolsService; | |
| 38 | 31 | |
| 39 | 32 | @Override |
| 40 | - public void importData(File file, Map<String, Object> params) throws ScheduleException { | |
| 41 | - try { | |
| 42 | - LOGGER.info("//---------------- 导入车辆配置信息 start... ----------------//"); | |
| 43 | - // 创建ktr转换所需参数 | |
| 44 | - Map<String, Object> ktrParms = new HashMap<>(); | |
| 45 | - File ktrFile = new File(this.getClass().getResource( | |
| 46 | - dataToolsProperties.getCarsconfigDatainputktr()).toURI()); | |
| 47 | - | |
| 48 | - // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径 | |
| 49 | - ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 50 | - ktrParms.put("filepath", file.getAbsolutePath()); | |
| 51 | - ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir()); | |
| 52 | - | |
| 53 | - ktrParms.putAll(params); | |
| 54 | - | |
| 55 | - super.importData(file, ktrParms); | |
| 56 | - | |
| 57 | - LOGGER.info("//---------------- 导入车辆配置信息 success... ----------------//"); | |
| 58 | - } catch (Exception exp) { | |
| 59 | - LOGGER.info("//---------------- 导入车辆配置信息 failed... ----------------//"); | |
| 60 | - | |
| 61 | - StringWriter sw = new StringWriter(); | |
| 62 | - exp.printStackTrace(new PrintWriter(sw)); | |
| 63 | - LOGGER.info(sw.toString()); | |
| 33 | + public File uploadFile(String filename, byte[] filedata) throws ScheduleException { | |
| 34 | + return dataToolsService.uploadFile(filename, filedata); | |
| 35 | + } | |
| 64 | 36 | |
| 65 | - throw new ScheduleException(exp.getMessage()); | |
| 66 | - } | |
| 37 | + @Override | |
| 38 | + public void importData(File file, Map<String, Object> params) throws ScheduleException { | |
| 39 | + dataToolsService.importData(file, params); | |
| 67 | 40 | } |
| 68 | 41 | |
| 69 | 42 | @Override |
| 70 | 43 | public File exportData(Map<String, Object> params) throws ScheduleException { |
| 71 | - try { | |
| 72 | - LOGGER.info("//---------------- 导出车辆配置信息 start... ----------------//"); | |
| 73 | - // 创建ktr转换所需参数 | |
| 74 | - Map<String, Object> ktrParms = new HashMap<>(); | |
| 75 | - File ktrFile = new File(this.getClass().getResource( | |
| 76 | - dataToolsProperties.getCarsconfigDataoutputktr()).toURI()); | |
| 77 | - | |
| 78 | - // 通用参数,转换文件路径,excel输出文件名 | |
| 79 | - ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 80 | - ktrParms.put("filename", "车辆配置信息_download-"); | |
| 81 | - | |
| 82 | - ktrParms.putAll(params); | |
| 83 | - | |
| 84 | - File file = super.exportData(ktrParms); | |
| 85 | - | |
| 86 | - LOGGER.info("//---------------- 导出车辆配置信息 success... ----------------//"); | |
| 87 | - | |
| 88 | - return file; | |
| 89 | - | |
| 90 | - } catch (Exception exp) { | |
| 91 | - LOGGER.info("//---------------- 导出车辆配置信息 failed... ----------------//"); | |
| 92 | - | |
| 93 | - StringWriter sw = new StringWriter(); | |
| 94 | - exp.printStackTrace(new PrintWriter(sw)); | |
| 95 | - LOGGER.info(sw.toString()); | |
| 96 | - | |
| 97 | - throw new ScheduleException(exp.getMessage()); | |
| 98 | - } | |
| 44 | + return dataToolsService.exportData(params); | |
| 99 | 45 | } |
| 100 | 46 | |
| 101 | 47 | @Transactional | ... | ... |
src/main/java/com/bsth/service/schedule/impl/CarsServiceImpl.java
| ... | ... | @@ -3,89 +3,39 @@ package com.bsth.service.schedule.impl; |
| 3 | 3 | import com.bsth.entity.Cars; |
| 4 | 4 | import com.bsth.service.schedule.CarsService; |
| 5 | 5 | import com.bsth.service.schedule.exception.ScheduleException; |
| 6 | -import com.bsth.service.schedule.utils.DataToolsProperties; | |
| 7 | -import org.slf4j.Logger; | |
| 8 | -import org.slf4j.LoggerFactory; | |
| 6 | +import com.bsth.service.schedule.utils.DataToolsService; | |
| 9 | 7 | import org.springframework.beans.factory.annotation.Autowired; |
| 10 | -import org.springframework.boot.context.properties.EnableConfigurationProperties; | |
| 8 | +import org.springframework.beans.factory.annotation.Qualifier; | |
| 11 | 9 | import org.springframework.stereotype.Service; |
| 12 | 10 | import org.springframework.transaction.annotation.Transactional; |
| 13 | 11 | import org.springframework.util.CollectionUtils; |
| 14 | 12 | |
| 15 | 13 | import java.io.File; |
| 16 | -import java.io.PrintWriter; | |
| 17 | -import java.io.StringWriter; | |
| 18 | 14 | import java.util.HashMap; |
| 19 | 15 | import java.util.Map; |
| 20 | 16 | |
| 21 | 17 | /** |
| 22 | 18 | * Created by xu on 16/12/8. |
| 23 | 19 | */ |
| 24 | -@EnableConfigurationProperties(DataToolsProperties.class) | |
| 25 | 20 | @Service(value = "carsServiceImpl_sc") |
| 26 | 21 | public class CarsServiceImpl extends BServiceImpl<Cars, Integer> implements CarsService { |
| 27 | - /** 日志记录器 */ | |
| 28 | - private static final Logger LOGGER = LoggerFactory.getLogger(CarsServiceImpl.class); | |
| 29 | - | |
| 30 | 22 | @Autowired |
| 31 | - private DataToolsProperties dataToolsProperties; | |
| 23 | + @Qualifier(value = "cars_dataTool") | |
| 24 | + private DataToolsService dataToolsService; | |
| 32 | 25 | |
| 33 | 26 | @Override |
| 34 | 27 | public void importData(File file, Map<String, Object> params) throws ScheduleException { |
| 35 | - try { | |
| 36 | - LOGGER.info("//---------------- 导入车辆基础信息 start... ----------------//"); | |
| 37 | - // 创建ktr转换所需参数 | |
| 38 | - Map<String, Object> ktrParms = new HashMap<>(); | |
| 39 | - File ktrFile = new File(this.getClass().getResource( | |
| 40 | - dataToolsProperties.getCarsDatainputktr()).toURI()); | |
| 41 | - | |
| 42 | - // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径 | |
| 43 | - ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 44 | - ktrParms.put("filepath", file.getAbsolutePath()); | |
| 45 | - ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir()); | |
| 46 | - | |
| 47 | - super.importData(file, ktrParms); | |
| 48 | - | |
| 49 | - LOGGER.info("//---------------- 导入车辆基础信息 success... ----------------//"); | |
| 50 | - } catch (Exception exp) { | |
| 51 | - LOGGER.info("//---------------- 导入车辆基础信息 failed... ----------------//"); | |
| 52 | - | |
| 53 | - StringWriter sw = new StringWriter(); | |
| 54 | - exp.printStackTrace(new PrintWriter(sw)); | |
| 55 | - LOGGER.info(sw.toString()); | |
| 56 | - | |
| 57 | - throw new ScheduleException(exp.getMessage()); | |
| 58 | - } | |
| 28 | + dataToolsService.importData(file, params); | |
| 59 | 29 | } |
| 60 | 30 | |
| 61 | 31 | @Override |
| 62 | 32 | public File exportData(Map<String, Object> params) throws ScheduleException { |
| 63 | - try { | |
| 64 | - LOGGER.info("//---------------- 导出车辆基础信息 start... ----------------//"); | |
| 65 | - // 创建ktr转换所需参数 | |
| 66 | - Map<String, Object> ktrParms = new HashMap<>(); | |
| 67 | - File ktrFile = new File(this.getClass().getResource( | |
| 68 | - dataToolsProperties.getCarsDataoutputktr()).toURI()); | |
| 69 | - | |
| 70 | - // 通用参数,转换文件路径,excel输出文件名 | |
| 71 | - ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 72 | - ktrParms.put("filename", "车辆基础信息_download-"); | |
| 73 | - | |
| 74 | - File file = super.exportData(ktrParms); | |
| 75 | - | |
| 76 | - LOGGER.info("//---------------- 导出车辆基础信息 success... ----------------//"); | |
| 77 | - | |
| 78 | - return file; | |
| 79 | - | |
| 80 | - } catch (Exception exp) { | |
| 81 | - LOGGER.info("//---------------- 导出车辆基础信息 failed... ----------------//"); | |
| 82 | - | |
| 83 | - StringWriter sw = new StringWriter(); | |
| 84 | - exp.printStackTrace(new PrintWriter(sw)); | |
| 85 | - LOGGER.info(sw.toString()); | |
| 33 | + return dataToolsService.exportData(params); | |
| 34 | + } | |
| 86 | 35 | |
| 87 | - throw new ScheduleException(exp.getMessage()); | |
| 88 | - } | |
| 36 | + @Override | |
| 37 | + public File uploadFile(String filename, byte[] filedata) throws ScheduleException { | |
| 38 | + return dataToolsService.uploadFile(filename, filedata); | |
| 89 | 39 | } |
| 90 | 40 | |
| 91 | 41 | @Override | ... | ... |
src/main/java/com/bsth/service/schedule/impl/EmployeeConfigInfoServiceImpl.java
| ... | ... | @@ -3,97 +3,43 @@ package com.bsth.service.schedule.impl; |
| 3 | 3 | import com.bsth.entity.schedule.EmployeeConfigInfo; |
| 4 | 4 | import com.bsth.entity.schedule.rule.ScheduleRule1Flat; |
| 5 | 5 | import com.bsth.service.schedule.EmployeeConfigInfoService; |
| 6 | -import com.bsth.service.schedule.exception.ScheduleException; | |
| 7 | 6 | import com.bsth.service.schedule.ScheduleRule1FlatService; |
| 8 | -import com.bsth.service.schedule.utils.DataToolsProperties; | |
| 9 | -import org.slf4j.Logger; | |
| 10 | -import org.slf4j.LoggerFactory; | |
| 7 | +import com.bsth.service.schedule.exception.ScheduleException; | |
| 8 | +import com.bsth.service.schedule.utils.DataToolsService; | |
| 11 | 9 | import org.springframework.beans.factory.annotation.Autowired; |
| 12 | -import org.springframework.boot.context.properties.EnableConfigurationProperties; | |
| 10 | +import org.springframework.beans.factory.annotation.Qualifier; | |
| 13 | 11 | import org.springframework.stereotype.Service; |
| 14 | 12 | import org.springframework.transaction.annotation.Transactional; |
| 15 | 13 | import org.springframework.util.CollectionUtils; |
| 16 | 14 | |
| 17 | 15 | import java.io.File; |
| 18 | -import java.io.PrintWriter; | |
| 19 | -import java.io.StringWriter; | |
| 20 | 16 | import java.util.*; |
| 21 | 17 | |
| 22 | 18 | /** |
| 23 | 19 | * Created by xu on 16/5/10. |
| 24 | 20 | */ |
| 25 | -@EnableConfigurationProperties(DataToolsProperties.class) | |
| 26 | 21 | @Service |
| 27 | 22 | public class EmployeeConfigInfoServiceImpl extends BServiceImpl<EmployeeConfigInfo, Long> implements EmployeeConfigInfoService { |
| 28 | - /** 日志记录器 */ | |
| 29 | - private static Logger LOGGER = LoggerFactory.getLogger(EmployeeConfigInfoServiceImpl.class); | |
| 30 | - | |
| 31 | 23 | @Autowired |
| 32 | - private DataToolsProperties dataToolsProperties; | |
| 24 | + private ScheduleRule1FlatService scheduleRule1FlatService; | |
| 33 | 25 | |
| 34 | 26 | @Autowired |
| 35 | - private ScheduleRule1FlatService scheduleRule1FlatService; | |
| 27 | + @Qualifier(value = "employeeConfig_dataTool") | |
| 28 | + private DataToolsService dataToolsService; | |
| 36 | 29 | |
| 37 | 30 | @Override |
| 38 | - public void importData(File file, Map<String, Object> params) throws ScheduleException { | |
| 39 | - try { | |
| 40 | - LOGGER.info("//---------------- 导入人员配置信息 start... ----------------//"); | |
| 41 | - // 创建ktr转换所需参数 | |
| 42 | - Map<String, Object> ktrParms = new HashMap<>(); | |
| 43 | - File ktrFile = new File(this.getClass().getResource( | |
| 44 | - dataToolsProperties.getEmployeesconfigDatainputktr()).toURI()); | |
| 45 | - | |
| 46 | - // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径 | |
| 47 | - ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 48 | - ktrParms.put("filepath", file.getAbsolutePath()); | |
| 49 | - ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir()); | |
| 50 | - | |
| 51 | - ktrParms.putAll(params); | |
| 52 | - | |
| 53 | - super.importData(file, ktrParms); | |
| 54 | - | |
| 55 | - LOGGER.info("//---------------- 导入人员配置信息 success... ----------------//"); | |
| 56 | - } catch (Exception exp) { | |
| 57 | - LOGGER.info("//---------------- 导入人员配置信息 failed... ----------------//"); | |
| 58 | - | |
| 59 | - StringWriter sw = new StringWriter(); | |
| 60 | - exp.printStackTrace(new PrintWriter(sw)); | |
| 61 | - LOGGER.info(sw.toString()); | |
| 31 | + public File uploadFile(String filename, byte[] filedata) throws ScheduleException { | |
| 32 | + return dataToolsService.uploadFile(filename, filedata); | |
| 33 | + } | |
| 62 | 34 | |
| 63 | - throw new ScheduleException(exp.getMessage()); | |
| 64 | - } | |
| 35 | + @Override | |
| 36 | + public void importData(File file, Map<String, Object> params) throws ScheduleException { | |
| 37 | + dataToolsService.importData(file, params); | |
| 65 | 38 | } |
| 66 | 39 | |
| 67 | 40 | @Override |
| 68 | 41 | public File exportData(Map<String, Object> params) throws ScheduleException { |
| 69 | - try { | |
| 70 | - LOGGER.info("//---------------- 导出人员配置信息 start... ----------------//"); | |
| 71 | - // 创建ktr转换所需参数 | |
| 72 | - Map<String, Object> ktrParms = new HashMap<>(); | |
| 73 | - File ktrFile = new File(this.getClass().getResource( | |
| 74 | - dataToolsProperties.getEmployeesconfigDataoutputktr()).toURI()); | |
| 75 | - | |
| 76 | - // 通用参数,转换文件路径,excel输出文件名 | |
| 77 | - ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 78 | - ktrParms.put("filename", "人员配置信息_download-"); | |
| 79 | - | |
| 80 | - ktrParms.putAll(params); | |
| 81 | - | |
| 82 | - File file = super.exportData(ktrParms); | |
| 83 | - | |
| 84 | - LOGGER.info("//---------------- 导出人员配置信息 success... ----------------//"); | |
| 85 | - | |
| 86 | - return file; | |
| 87 | - | |
| 88 | - } catch (Exception exp) { | |
| 89 | - LOGGER.info("//---------------- 导出人员配置信息 failed... ----------------//"); | |
| 90 | - | |
| 91 | - StringWriter sw = new StringWriter(); | |
| 92 | - exp.printStackTrace(new PrintWriter(sw)); | |
| 93 | - LOGGER.info(sw.toString()); | |
| 94 | - | |
| 95 | - throw new ScheduleException(exp.getMessage()); | |
| 96 | - } | |
| 42 | + return dataToolsService.exportData(params); | |
| 97 | 43 | } |
| 98 | 44 | |
| 99 | 45 | @Transactional | ... | ... |
src/main/java/com/bsth/service/schedule/impl/EmployeeServiceImpl.java
| ... | ... | @@ -3,89 +3,39 @@ package com.bsth.service.schedule.impl; |
| 3 | 3 | import com.bsth.entity.Personnel; |
| 4 | 4 | import com.bsth.service.schedule.EmployeeService; |
| 5 | 5 | import com.bsth.service.schedule.exception.ScheduleException; |
| 6 | -import com.bsth.service.schedule.utils.DataToolsProperties; | |
| 7 | -import org.slf4j.Logger; | |
| 8 | -import org.slf4j.LoggerFactory; | |
| 6 | +import com.bsth.service.schedule.utils.DataToolsService; | |
| 9 | 7 | import org.springframework.beans.factory.annotation.Autowired; |
| 10 | -import org.springframework.boot.context.properties.EnableConfigurationProperties; | |
| 8 | +import org.springframework.beans.factory.annotation.Qualifier; | |
| 11 | 9 | import org.springframework.stereotype.Service; |
| 12 | 10 | import org.springframework.transaction.annotation.Transactional; |
| 13 | 11 | import org.springframework.util.CollectionUtils; |
| 14 | 12 | |
| 15 | 13 | import java.io.File; |
| 16 | -import java.io.PrintWriter; | |
| 17 | -import java.io.StringWriter; | |
| 18 | 14 | import java.util.HashMap; |
| 19 | 15 | import java.util.Map; |
| 20 | 16 | |
| 21 | 17 | /** |
| 22 | 18 | * Created by xu on 16/12/15. |
| 23 | 19 | */ |
| 24 | -@EnableConfigurationProperties(DataToolsProperties.class) | |
| 25 | 20 | @Service |
| 26 | 21 | public class EmployeeServiceImpl extends BServiceImpl<Personnel, Integer> implements EmployeeService { |
| 27 | - /** 日志记录器 */ | |
| 28 | - private static final Logger LOGGER = LoggerFactory.getLogger(EmployeeServiceImpl.class); | |
| 29 | - | |
| 30 | 22 | @Autowired |
| 31 | - private DataToolsProperties dataToolsProperties; | |
| 23 | + @Qualifier(value = "employee_dataTool") | |
| 24 | + private DataToolsService dataToolsService; | |
| 32 | 25 | |
| 33 | 26 | @Override |
| 34 | - public void importData(File file, Map<String, Object> params) throws ScheduleException { | |
| 35 | - try { | |
| 36 | - LOGGER.info("//---------------- 导入人员基础信息 start... ----------------//"); | |
| 37 | - // 创建ktr转换所需参数 | |
| 38 | - Map<String, Object> ktrParms = new HashMap<>(); | |
| 39 | - File ktrFile = new File(this.getClass().getResource( | |
| 40 | - dataToolsProperties.getEmployeesDatainputktr()).toURI()); | |
| 41 | - | |
| 42 | - // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径 | |
| 43 | - ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 44 | - ktrParms.put("filepath", file.getAbsolutePath()); | |
| 45 | - ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir()); | |
| 46 | - | |
| 47 | - super.importData(file, ktrParms); | |
| 48 | - | |
| 49 | - LOGGER.info("//---------------- 导入人员基础信息 success... ----------------//"); | |
| 50 | - } catch (Exception exp) { | |
| 51 | - LOGGER.info("//---------------- 导入人员基础信息 failed... ----------------//"); | |
| 52 | - | |
| 53 | - StringWriter sw = new StringWriter(); | |
| 54 | - exp.printStackTrace(new PrintWriter(sw)); | |
| 55 | - LOGGER.info(sw.toString()); | |
| 27 | + public File uploadFile(String filename, byte[] filedata) throws ScheduleException { | |
| 28 | + return dataToolsService.uploadFile(filename, filedata); | |
| 29 | + } | |
| 56 | 30 | |
| 57 | - throw new ScheduleException(exp.getMessage()); | |
| 58 | - } | |
| 31 | + @Override | |
| 32 | + public void importData(File file, Map<String, Object> params) throws ScheduleException { | |
| 33 | + dataToolsService.importData(file, params); | |
| 59 | 34 | } |
| 60 | 35 | |
| 61 | 36 | @Override |
| 62 | 37 | public File exportData(Map<String, Object> params) throws ScheduleException { |
| 63 | - try { | |
| 64 | - LOGGER.info("//---------------- 导出人员基础信息 start... ----------------//"); | |
| 65 | - // 创建ktr转换所需参数 | |
| 66 | - Map<String, Object> ktrParms = new HashMap<>(); | |
| 67 | - File ktrFile = new File(this.getClass().getResource( | |
| 68 | - dataToolsProperties.getEmployeesDataoutputktr()).toURI()); | |
| 69 | - | |
| 70 | - // 通用参数,转换文件路径,excel输出文件名 | |
| 71 | - ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 72 | - ktrParms.put("filename", "人员基础信息_download-"); | |
| 73 | - | |
| 74 | - File file = super.exportData(ktrParms); | |
| 75 | - | |
| 76 | - LOGGER.info("//---------------- 导出人员基础信息 success... ----------------//"); | |
| 77 | - | |
| 78 | - return file; | |
| 79 | - | |
| 80 | - } catch (Exception exp) { | |
| 81 | - LOGGER.info("//---------------- 导出人员基础信息 failed... ----------------//"); | |
| 82 | - | |
| 83 | - StringWriter sw = new StringWriter(); | |
| 84 | - exp.printStackTrace(new PrintWriter(sw)); | |
| 85 | - LOGGER.info(sw.toString()); | |
| 86 | - | |
| 87 | - throw new ScheduleException(exp.getMessage()); | |
| 88 | - } | |
| 38 | + return dataToolsService.exportData(params); | |
| 89 | 39 | } |
| 90 | 40 | |
| 91 | 41 | @Override | ... | ... |
src/main/java/com/bsth/service/schedule/impl/GuideboardInfoServiceImpl.java
| ... | ... | @@ -5,18 +5,14 @@ import com.bsth.entity.schedule.TTInfoDetail; |
| 5 | 5 | import com.bsth.service.schedule.GuideboardInfoService; |
| 6 | 6 | import com.bsth.service.schedule.TTInfoDetailService; |
| 7 | 7 | import com.bsth.service.schedule.exception.ScheduleException; |
| 8 | -import com.bsth.service.schedule.utils.DataToolsProperties; | |
| 9 | -import org.slf4j.Logger; | |
| 10 | -import org.slf4j.LoggerFactory; | |
| 8 | +import com.bsth.service.schedule.utils.DataToolsService; | |
| 11 | 9 | import org.springframework.beans.factory.annotation.Autowired; |
| 12 | -import org.springframework.boot.context.properties.EnableConfigurationProperties; | |
| 10 | +import org.springframework.beans.factory.annotation.Qualifier; | |
| 13 | 11 | import org.springframework.stereotype.Service; |
| 14 | 12 | import org.springframework.util.CollectionUtils; |
| 15 | 13 | |
| 16 | 14 | import javax.transaction.Transactional; |
| 17 | 15 | import java.io.File; |
| 18 | -import java.io.PrintWriter; | |
| 19 | -import java.io.StringWriter; | |
| 20 | 16 | import java.util.HashMap; |
| 21 | 17 | import java.util.List; |
| 22 | 18 | import java.util.Map; |
| ... | ... | @@ -24,14 +20,11 @@ import java.util.Map; |
| 24 | 20 | /** |
| 25 | 21 | * 路牌信息服务。 |
| 26 | 22 | */ |
| 27 | -@EnableConfigurationProperties(DataToolsProperties.class) | |
| 28 | 23 | @Service |
| 29 | 24 | public class GuideboardInfoServiceImpl extends BServiceImpl<GuideboardInfo, Long> implements GuideboardInfoService { |
| 30 | - /** 日志记录器 */ | |
| 31 | - private static final Logger LOGGER = LoggerFactory.getLogger(GuideboardInfoServiceImpl.class); | |
| 32 | - | |
| 33 | 25 | @Autowired |
| 34 | - private DataToolsProperties dataToolsProperties; | |
| 26 | + @Qualifier(value = "gbInfo_dataTool") | |
| 27 | + private DataToolsService dataToolsService; | |
| 35 | 28 | |
| 36 | 29 | @Autowired |
| 37 | 30 | private TTInfoDetailService ttInfoDetailService; |
| ... | ... | @@ -109,65 +102,18 @@ public class GuideboardInfoServiceImpl extends BServiceImpl<GuideboardInfo, Long |
| 109 | 102 | } |
| 110 | 103 | |
| 111 | 104 | @Override |
| 112 | - public void importData(File file, Map<String, Object> params) throws ScheduleException { | |
| 113 | - try { | |
| 114 | - LOGGER.info("//---------------- 导入路牌信息 start... ----------------//"); | |
| 115 | - // 创建ktr转换所需参数 | |
| 116 | - Map<String, Object> ktrParms = new HashMap<>(); | |
| 117 | - File ktrFile = new File(this.getClass().getResource( | |
| 118 | - dataToolsProperties.getGuideboardsDatainputktr()).toURI()); | |
| 119 | - | |
| 120 | - // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径 | |
| 121 | - ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 122 | - ktrParms.put("filepath", file.getAbsolutePath()); | |
| 123 | - ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir()); | |
| 124 | - | |
| 125 | - ktrParms.putAll(params); | |
| 126 | - | |
| 127 | - super.importData(file, ktrParms); | |
| 128 | - | |
| 129 | - LOGGER.info("//---------------- 导入路牌信息 success... ----------------//"); | |
| 130 | - } catch (Exception exp) { | |
| 131 | - LOGGER.info("//---------------- 导入路牌信息 failed... ----------------//"); | |
| 132 | - | |
| 133 | - StringWriter sw = new StringWriter(); | |
| 134 | - exp.printStackTrace(new PrintWriter(sw)); | |
| 135 | - LOGGER.info(sw.toString()); | |
| 105 | + public File uploadFile(String filename, byte[] filedata) throws ScheduleException { | |
| 106 | + return dataToolsService.uploadFile(filename, filedata); | |
| 107 | + } | |
| 136 | 108 | |
| 137 | - throw new ScheduleException(exp.getMessage()); | |
| 138 | - } | |
| 109 | + @Override | |
| 110 | + public void importData(File file, Map<String, Object> params) throws ScheduleException { | |
| 111 | + dataToolsService.importData(file, params); | |
| 139 | 112 | } |
| 140 | 113 | |
| 141 | 114 | @Override |
| 142 | 115 | public File exportData(Map<String, Object> params) throws ScheduleException { |
| 143 | - try { | |
| 144 | - LOGGER.info("//---------------- 导出路牌信息 start... ----------------//"); | |
| 145 | - // 创建ktr转换所需参数 | |
| 146 | - Map<String, Object> ktrParms = new HashMap<>(); | |
| 147 | - File ktrFile = new File(this.getClass().getResource( | |
| 148 | - dataToolsProperties.getGuideboardsDataoutputktr()).toURI()); | |
| 149 | - | |
| 150 | - // 通用参数,转换文件路径,excel输出文件名 | |
| 151 | - ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 152 | - ktrParms.put("filename", "路牌信息_download-"); | |
| 153 | - | |
| 154 | - ktrParms.putAll(params); | |
| 155 | - | |
| 156 | - File file = super.exportData(ktrParms); | |
| 157 | - | |
| 158 | - LOGGER.info("//---------------- 导出路牌信息 success... ----------------//"); | |
| 159 | - | |
| 160 | - return file; | |
| 161 | - | |
| 162 | - } catch (Exception exp) { | |
| 163 | - LOGGER.info("//---------------- 导出路牌信息 failed... ----------------//"); | |
| 164 | - | |
| 165 | - StringWriter sw = new StringWriter(); | |
| 166 | - exp.printStackTrace(new PrintWriter(sw)); | |
| 167 | - LOGGER.info(sw.toString()); | |
| 168 | - | |
| 169 | - throw new ScheduleException(exp.getMessage()); | |
| 170 | - } | |
| 116 | + return dataToolsService.exportData(params); | |
| 171 | 117 | } |
| 172 | 118 | |
| 173 | 119 | } | ... | ... |
src/main/java/com/bsth/service/schedule/impl/ScheduleRule1FlatServiceImpl.java
| ... | ... | @@ -3,90 +3,35 @@ package com.bsth.service.schedule.impl; |
| 3 | 3 | import com.bsth.entity.schedule.rule.ScheduleRule1Flat; |
| 4 | 4 | import com.bsth.service.schedule.ScheduleRule1FlatService; |
| 5 | 5 | import com.bsth.service.schedule.exception.ScheduleException; |
| 6 | -import com.bsth.service.schedule.utils.DataToolsProperties; | |
| 7 | -import org.slf4j.Logger; | |
| 8 | -import org.slf4j.LoggerFactory; | |
| 6 | +import com.bsth.service.schedule.utils.DataToolsService; | |
| 9 | 7 | import org.springframework.beans.factory.annotation.Autowired; |
| 10 | -import org.springframework.boot.context.properties.EnableConfigurationProperties; | |
| 8 | +import org.springframework.beans.factory.annotation.Qualifier; | |
| 11 | 9 | import org.springframework.stereotype.Service; |
| 12 | 10 | |
| 13 | 11 | import java.io.File; |
| 14 | -import java.io.PrintWriter; | |
| 15 | -import java.io.StringWriter; | |
| 16 | -import java.util.HashMap; | |
| 17 | 12 | import java.util.Map; |
| 18 | 13 | |
| 19 | 14 | /** |
| 20 | 15 | * Created by xu on 16/7/4. |
| 21 | 16 | */ |
| 22 | -@EnableConfigurationProperties(DataToolsProperties.class) | |
| 23 | 17 | @Service |
| 24 | 18 | public class ScheduleRule1FlatServiceImpl extends BServiceImpl<ScheduleRule1Flat, Long> implements ScheduleRule1FlatService { |
| 25 | - /** 日志记录器 */ | |
| 26 | - private static Logger LOGGER = LoggerFactory.getLogger(ScheduleRule1FlatServiceImpl.class); | |
| 27 | - | |
| 28 | 19 | @Autowired |
| 29 | - private DataToolsProperties dataToolsProperties; | |
| 20 | + @Qualifier(value = "scheduleRule_dataTool") | |
| 21 | + private DataToolsService dataToolsService; | |
| 30 | 22 | |
| 31 | 23 | @Override |
| 32 | - public void importData(File file, Map<String, Object> params) throws ScheduleException { | |
| 33 | - try { | |
| 34 | - LOGGER.info("//---------------- 导入排版规则信息 start... ----------------//"); | |
| 35 | - // 创建ktr转换所需参数 | |
| 36 | - Map<String, Object> ktrParms = new HashMap<>(); | |
| 37 | - File ktrFile = new File(this.getClass().getResource( | |
| 38 | - dataToolsProperties.getScheduleruleDatainputktr()).toURI()); | |
| 39 | - | |
| 40 | - // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径 | |
| 41 | - ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 42 | - ktrParms.put("filepath", file.getAbsolutePath()); | |
| 43 | - ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir()); | |
| 44 | - | |
| 45 | - ktrParms.putAll(params); | |
| 46 | - | |
| 47 | - super.importData(file, ktrParms); | |
| 48 | - | |
| 49 | - LOGGER.info("//---------------- 导入排版规则信息 success... ----------------//"); | |
| 50 | - } catch (Exception exp) { | |
| 51 | - LOGGER.info("//---------------- 导入排版规则信息 failed... ----------------//"); | |
| 52 | - | |
| 53 | - StringWriter sw = new StringWriter(); | |
| 54 | - exp.printStackTrace(new PrintWriter(sw)); | |
| 55 | - LOGGER.info(sw.toString()); | |
| 24 | + public File uploadFile(String filename, byte[] filedata) throws ScheduleException { | |
| 25 | + return dataToolsService.uploadFile(filename, filedata); | |
| 26 | + } | |
| 56 | 27 | |
| 57 | - throw new ScheduleException(exp.getMessage()); | |
| 58 | - } | |
| 28 | + @Override | |
| 29 | + public void importData(File file, Map<String, Object> params) throws ScheduleException { | |
| 30 | + dataToolsService.importData(file, params); | |
| 59 | 31 | } |
| 60 | 32 | |
| 61 | 33 | @Override |
| 62 | 34 | public File exportData(Map<String, Object> params) throws ScheduleException { |
| 63 | - try { | |
| 64 | - LOGGER.info("//---------------- 导出排版规则信息 start... ----------------//"); | |
| 65 | - // 创建ktr转换所需参数 | |
| 66 | - Map<String, Object> ktrParms = new HashMap<>(); | |
| 67 | - File ktrFile = new File(this.getClass().getResource( | |
| 68 | - dataToolsProperties.getScheduleruleOutput()).toURI()); | |
| 69 | - | |
| 70 | - // 通用参数,转换文件路径,excel输出文件名 | |
| 71 | - ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 72 | - ktrParms.put("filename", "排版规则信息_download-"); | |
| 73 | - | |
| 74 | - ktrParms.putAll(params); | |
| 75 | - | |
| 76 | - File file = super.exportData(ktrParms); | |
| 77 | - | |
| 78 | - LOGGER.info("//---------------- 导出排版规则信息 success... ----------------//"); | |
| 79 | - | |
| 80 | - return file; | |
| 81 | - | |
| 82 | - } catch (Exception exp) { | |
| 83 | - LOGGER.info("//---------------- 导出排版规则信息 failed... ----------------//"); | |
| 84 | - | |
| 85 | - StringWriter sw = new StringWriter(); | |
| 86 | - exp.printStackTrace(new PrintWriter(sw)); | |
| 87 | - LOGGER.info(sw.toString()); | |
| 88 | - | |
| 89 | - throw new ScheduleException(exp.getMessage()); | |
| 90 | - } | |
| 35 | + return dataToolsService.exportData(params); | |
| 91 | 36 | } |
| 92 | 37 | } | ... | ... |
src/main/java/com/bsth/service/schedule/impl/TTInfoDetailServiceImpl.java
| ... | ... | @@ -21,6 +21,7 @@ import com.bsth.service.LineInformationService; |
| 21 | 21 | import com.bsth.service.StationRouteService; |
| 22 | 22 | import com.bsth.service.schedule.GuideboardInfoService; |
| 23 | 23 | import com.bsth.service.schedule.TTInfoDetailService; |
| 24 | +import com.bsth.service.schedule.datatools.TTInfoDetailForEdit; | |
| 24 | 25 | import com.bsth.service.schedule.exception.ScheduleException; |
| 25 | 26 | import com.bsth.service.schedule.utils.DataToolsProperties; |
| 26 | 27 | import com.bsth.service.schedule.utils.DataToolsService; |
| ... | ... | @@ -53,7 +54,6 @@ import java.util.regex.Pattern; |
| 53 | 54 | * Created by xu on 17/1/3. |
| 54 | 55 | */ |
| 55 | 56 | @Service |
| 56 | -@EnableConfigurationProperties(DataToolsProperties.class) | |
| 57 | 57 | public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> implements TTInfoDetailService { |
| 58 | 58 | /** 日志记录器 */ |
| 59 | 59 | private static final Logger LOGGER = LoggerFactory.getLogger(TTInfoDetailServiceImpl.class); |
| ... | ... | @@ -82,11 +82,16 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> im |
| 82 | 82 | private SysUserRepository sysUserRepository; |
| 83 | 83 | @Autowired |
| 84 | 84 | private GuideboardInfoRepository guideboardInfoRepository; |
| 85 | + | |
| 85 | 86 | @Autowired |
| 86 | - @Qualifier(value = "dataToolsServiceImpl") | |
| 87 | + @Qualifier(value = "ttInfoDetail_dataTool") | |
| 87 | 88 | private DataToolsService dataToolsService; |
| 88 | 89 | |
| 89 | 90 | @Autowired |
| 91 | + @Qualifier(value = "ttInfoDetail_dataTool") | |
| 92 | + private TTInfoDetailForEdit ttInfoDetailForEdit; | |
| 93 | + | |
| 94 | + @Autowired | |
| 90 | 95 | private JdbcTemplate jdbcTemplate; |
| 91 | 96 | |
| 92 | 97 | /** |
| ... | ... | @@ -115,7 +120,6 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> im |
| 115 | 120 | |
| 116 | 121 | @Override |
| 117 | 122 | public File uploadFile(String filename, byte[] filedata) throws ScheduleException { |
| 118 | - | |
| 119 | 123 | return dataToolsService.uploadFile(filename, filedata); |
| 120 | 124 | } |
| 121 | 125 | |
| ... | ... | @@ -123,175 +127,26 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> im |
| 123 | 127 | public void importData( |
| 124 | 128 | File file, |
| 125 | 129 | Map<String, Object> params) throws ScheduleException { |
| 126 | - | |
| 127 | - try { | |
| 128 | - LOGGER.info("//---------------- 导入时刻表明细 start... ----------------//"); | |
| 129 | - | |
| 130 | - String filename = file.getAbsolutePath(); // xls文件名 | |
| 131 | - String sheetname = String.valueOf(params.get("sheetname")); // sheet名字 | |
| 132 | - Long ttid = Long.valueOf(String.valueOf(params.get("ttid"))); // 时刻表id | |
| 133 | - Long xlid = Long.valueOf(String.valueOf(params.get("xlid"))); // 线路id | |
| 134 | - Integer lineid = Integer.valueOf(String.valueOf(params.get("lineinfo"))); // 线路标准id | |
| 135 | - String xlname = String.valueOf(params.get("xlname")); // 线路名字 | |
| 136 | - String ttname = String.valueOf(params.get("ttname")); // 时刻表名字 | |
| 137 | - | |
| 138 | - LOGGER.info("参数1, xls文件名={},sheet名字={}", filename, sheetname); | |
| 139 | - LOGGER.info("参数2, 线路id={},线路名字={}", xlid, xlname); | |
| 140 | - LOGGER.info("参数3, 时刻表id={},时刻表名字={}", ttid, ttname); | |
| 141 | - | |
| 142 | - LOGGER.info("转换xls文件格式成文本格式..."); | |
| 143 | - // 1、修改已经上传的excel文件,在每个起点站后标示数字,表示第几个班次 | |
| 144 | - // 2、由于格式问题,需要把内容都转换成字符串 | |
| 145 | - List<String> colList = new ArrayList<>(); | |
| 146 | - Workbook workbook = Workbook.getWorkbook(new File(filename)); | |
| 147 | - Sheet sheet = workbook.getSheet(sheetname); | |
| 148 | - Cell[] cells = sheet.getRow(0); | |
| 149 | - for (int i = 0; i < cells.length; i++) { | |
| 150 | - if (i == 0) { | |
| 151 | - colList.add(cells[i].getContents().trim()); | |
| 152 | - } else { | |
| 153 | - colList.add(cells[i].getContents() + i); | |
| 154 | - } | |
| 155 | - } | |
| 156 | - | |
| 157 | - File fileCal = new File(filename + "_stringType.xls"); | |
| 158 | - WritableWorkbook writableWorkbook = Workbook.createWorkbook(fileCal, workbook); | |
| 159 | - WritableSheet sheet1 = writableWorkbook.getSheet(sheetname); | |
| 160 | - for (int i = 0; i < sheet1.getColumns(); i++) { // 第一行数据 | |
| 161 | - sheet1.addCell(new Label(i, 0, colList.get(i))); | |
| 162 | - } | |
| 163 | - for (int i = 1; i < sheet1.getRows(); i++) { // 第二行开始 | |
| 164 | - Cell[] cells1 = sheet.getRow(i); | |
| 165 | - for (int j = 0; j < cells1.length; j++) { | |
| 166 | - sheet1.addCell(new Label(j, i, cells1[j].getContents())); | |
| 167 | - } | |
| 168 | - } | |
| 169 | - writableWorkbook.write(); | |
| 170 | - writableWorkbook.close(); | |
| 171 | - | |
| 172 | - // 2、删除原有数据 | |
| 173 | - // 操作在ktr内部执行 | |
| 174 | - | |
| 175 | - // 3、导入时刻表 | |
| 176 | - // 获取停车场名字 | |
| 177 | - LOGGER.info("获取停车场名字..."); | |
| 178 | - LineInformation lineInformation = lineInformationService.findById(lineid); | |
| 179 | - Map<String, Object> p1 = new HashMap<>(); | |
| 180 | - p1.put("parkCode_eq", lineInformation.getCarPark()); | |
| 181 | - List<CarPark> carParkList = (List<CarPark>) carParkService.list(p1); | |
| 182 | - String tccname = carParkList.get(0).getParkName(); | |
| 183 | - LOGGER.info("停车场名字={}", tccname); | |
| 184 | - | |
| 185 | - | |
| 186 | - // 计算表头参数 | |
| 187 | - Workbook book = Workbook.getWorkbook(fileCal); | |
| 188 | - Sheet sheet_exp = book.getSheet(sheetname); | |
| 189 | - List<String> columnames = new ArrayList<>(); | |
| 190 | - for (int i = 0; i < sheet_exp.getColumns(); i++) { // 获取第一行,数据,作为列名 | |
| 191 | - columnames.add(sheet_exp.getCell(i, 0).getContents()); | |
| 192 | - } | |
| 193 | - LOGGER.info("表头={}", StringUtils.join(columnames.toArray(), ",")); | |
| 194 | - | |
| 195 | - // 创建ktr转换所需参数 | |
| 196 | - Map<String, Object> ktrParms = new HashMap<>(); | |
| 197 | - File ktrFile = new File(this.getClass().getResource( | |
| 198 | - dataToolsProperties.getTtinfodetailMetadatainputktr()).toURI()); | |
| 199 | -// File ktrFile2 = new File(this.getClass().getResource( | |
| 200 | -// dataToolsProperties.getTtinfodetailDatainputktr()).toURI()); | |
| 201 | - File ktrFile2 = new File(this.getClass().getResource( | |
| 202 | - dataToolsProperties.getTtinfodetailDatainputktr2()).toURI()); | |
| 203 | - | |
| 204 | - // 通用参数,转换文件路径,excel输入文件路径,错误输出文件路径 | |
| 205 | - ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 206 | - ktrParms.put("filepath", fileCal.getAbsolutePath()); | |
| 207 | - ktrParms.put("erroroutputdir", dataToolsProperties.getTransErrordir()); | |
| 208 | - | |
| 209 | - // 附加参数 | |
| 210 | - ktrParms.put("injectktrfile", ktrFile2.getAbsolutePath()); // 注入元数据的ktr文件 | |
| 211 | - ktrParms.put("sheetname", sheetname); // sheet工作区的名字 | |
| 212 | - ktrParms.put("xlname", xlname); // 线路名称 | |
| 213 | - ktrParms.put("ttinfoname", ttname); // 时刻表名称 | |
| 214 | - ktrParms.put("ttid", ttid.intValue()); // 时刻表id | |
| 215 | - ktrParms.put("tccname", tccname); // 停车场名字 | |
| 216 | - ktrParms.put("excelfieldnames", StringUtils.join(columnames.toArray(), ",")); // 时刻表excel输入字段名,以逗号连接 | |
| 217 | - columnames.remove(0); | |
| 218 | - ktrParms.put("normalizefieldnames", StringUtils.join(columnames.toArray(), ",")); // 数据范式化字段名,以逗号连接 | |
| 219 | - | |
| 220 | - super.importData(fileCal, ktrParms); | |
| 221 | - | |
| 222 | - LOGGER.info("//---------------- 导入时刻表明细 success... ----------------//"); | |
| 223 | - } catch (Exception exp) { | |
| 224 | - LOGGER.info("//---------------- 导入时刻表明细 failed... ----------------//"); | |
| 225 | - | |
| 226 | - StringWriter sw = new StringWriter(); | |
| 227 | - exp.printStackTrace(new PrintWriter(sw)); | |
| 228 | - LOGGER.info(sw.toString()); | |
| 229 | - | |
| 230 | - throw new ScheduleException(exp.getMessage()); | |
| 231 | - } | |
| 130 | + dataToolsService.importData(file, params); | |
| 232 | 131 | } |
| 233 | 132 | |
| 234 | 133 | @Override |
| 235 | 134 | public File exportData(Map<String, Object> params) throws ScheduleException { |
| 236 | - try { | |
| 237 | - LOGGER.info("//---------------- 导出时刻表明细 start... ----------------//"); | |
| 238 | - | |
| 239 | - // 创建ktr转换所需参数 | |
| 240 | - Map<String, Object> ktrParms = new HashMap<>(); | |
| 241 | - File ktrFile = new File(this.getClass().getResource( | |
| 242 | - dataToolsProperties.getTtinfodetailMetaoutput()).toURI()); | |
| 243 | - File ktrFile2 = new File(this.getClass().getResource( | |
| 244 | - dataToolsProperties.getTtinfodetailOutput()).toURI()); | |
| 245 | - | |
| 246 | - // 通用参数,转换文件路径,excel输出文件名 | |
| 247 | - ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 248 | - ktrParms.put("filename", String.format("时刻表_(id=%s)_download-", String.valueOf(params.get("ttinfoid")))); | |
| 249 | - | |
| 250 | - // 附加参数 | |
| 251 | - ktrParms.put("injectktrfile", ktrFile2.getAbsolutePath()); // 注入元数据的ktr文件 | |
| 252 | - ktrParms.put("ttinfoid", String.valueOf(params.get("ttinfoid"))); | |
| 253 | - | |
| 254 | - File file = super.exportData(ktrParms); | |
| 255 | - | |
| 256 | - LOGGER.info("//---------------- 导出时刻表明细 success... ----------------//"); | |
| 257 | - | |
| 258 | - return file; | |
| 259 | - } catch (Exception exp) { | |
| 260 | - LOGGER.info("//---------------- 导出时刻表明细 failed... ----------------//"); | |
| 261 | - | |
| 262 | - StringWriter sw = new StringWriter(); | |
| 263 | - exp.printStackTrace(new PrintWriter(sw)); | |
| 264 | - LOGGER.info(sw.toString()); | |
| 265 | - | |
| 266 | - throw new ScheduleException(exp.getMessage()); | |
| 267 | - } | |
| 135 | + return dataToolsService.exportData(params); | |
| 268 | 136 | } |
| 269 | 137 | |
| 270 | 138 | @Override |
| 271 | - public EditInfo getEditInfo(Integer xlid, Long ttid) throws ScheduleException { | |
| 139 | + public TTInfoDetailService.EditInfo getEditInfo(Integer xlid, Long ttid) throws ScheduleException { | |
| 272 | 140 | try { |
| 273 | 141 | LOGGER.info("//---------------- 时刻表编辑用数据输出 start... ----------------//"); |
| 274 | 142 | |
| 275 | - // 创建ktr转换所需参数 | |
| 276 | - Map<String, Object> ktrParms = new HashMap<>(); | |
| 277 | - File ktrFile = new File(this.getClass().getResource( | |
| 278 | - dataToolsProperties.getTtinfodetailForeditktr()).toURI()); | |
| 279 | - | |
| 280 | - // 通用参数,转换文件路径,excel输出文件名,错误输出文件路径 | |
| 281 | - ktrParms.put("transpath", ktrFile.getAbsolutePath()); | |
| 282 | - ktrParms.put("filename", "todo"); | |
| 283 | - | |
| 284 | 143 | // 附加参数 |
| 285 | 144 | String outputFilePath = String.format("ttinfodetail_(id=%s)_foredit-%s", |
| 286 | 145 | String.valueOf(ttid), new DateTime().toString("yyyyMMddHHmmss")); |
| 287 | 146 | |
| 288 | - ktrParms.put("tempfilepath", dataToolsProperties.getTransTempdir() + File.separator + outputFilePath); // 数据输出文件路径 | |
| 289 | - ktrParms.put("xlid", String.valueOf(xlid)); | |
| 290 | - ktrParms.put("ttid", String.valueOf(ttid)); | |
| 291 | - | |
| 292 | - super.exportData(ktrParms); | |
| 147 | + ttInfoDetailForEdit.exportDataForEdit(xlid, ttid); | |
| 293 | 148 | |
| 294 | - EditInfo editInfo = new EditInfo(); // 输出数据 | |
| 149 | + TTInfoDetailService.EditInfo editInfo = new TTInfoDetailService.EditInfo(); // 输出数据 | |
| 295 | 150 | |
| 296 | 151 | // 1.6、获取最大的发车数,用于输出数据的数量 |
| 297 | 152 | Long maxfcno = ttInfoDetailRepository.findMaxFcno(xlid, ttid); |
| ... | ... | @@ -315,9 +170,9 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> im |
| 315 | 170 | headarrays[maxfcno.intValue() + 2] = "运营班次/运营里程"; |
| 316 | 171 | |
| 317 | 172 | for (int r = 1; r < sheet.getRows(); r++) { |
| 318 | - List<FcInfo> fcInfos = new ArrayList<>(); | |
| 173 | + List<TTInfoDetailService.FcInfo> fcInfos = new ArrayList<>(); | |
| 319 | 174 | // 每行第一列都是路牌 |
| 320 | - fcInfos.add(new FcInfo(null, null, sheet.getCell(0, r).getContents(), null, null, null, null)); // 用fcsj放置路牌显示 | |
| 175 | + fcInfos.add(new TTInfoDetailService.FcInfo(null, null, sheet.getCell(0, r).getContents(), null, null, null, null)); // 用fcsj放置路牌显示 | |
| 321 | 176 | |
| 322 | 177 | int bc_ks = 0; // 空驶班次 |
| 323 | 178 | int bc_yy = 0; // 营运班次 |
| ... | ... | @@ -340,7 +195,7 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> im |
| 340 | 195 | String qdzCode = content == null ? "" : content[7]; // 起点站编码 |
| 341 | 196 | String zdzCode = content == null ? "" : content[8]; // 终点站编码 |
| 342 | 197 | |
| 343 | - FcInfo fcInfo = new FcInfo(ttdid_str, bctype, fcsj, xldir, isfb, qdzCode, zdzCode); | |
| 198 | + TTInfoDetailService.FcInfo fcInfo = new TTInfoDetailService.FcInfo(ttdid_str, bctype, fcsj, xldir, isfb, qdzCode, zdzCode); | |
| 344 | 199 | |
| 345 | 200 | if (StringUtils.isNotEmpty(fzdname)) |
| 346 | 201 | headarrays[c] = fzdname; |
| ... | ... | @@ -374,10 +229,10 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> im |
| 374 | 229 | } |
| 375 | 230 | |
| 376 | 231 | // 添加一列 空驶班次/空驶里程,fcsj放置数据 |
| 377 | - fcInfos.add(new FcInfo(null, null, String.format("%d/%.3f", bc_ks, lc_ks), null, null, null, null)); | |
| 232 | + fcInfos.add(new TTInfoDetailService.FcInfo(null, null, String.format("%d/%.3f", bc_ks, lc_ks), null, null, null, null)); | |
| 378 | 233 | |
| 379 | 234 | // 添加一列 营运班次/营运里程,fcsj放置数据 |
| 380 | - fcInfos.add(new FcInfo(null, null, String.format("%d/%.3f", bc_yy, lc_yy), null, null, null, null)); | |
| 235 | + fcInfos.add(new TTInfoDetailService.FcInfo(null, null, String.format("%d/%.3f", bc_yy, lc_yy), null, null, null, null)); | |
| 381 | 236 | |
| 382 | 237 | editInfo.getContents().add(fcInfos); |
| 383 | 238 | } | ... | ... |
src/main/java/com/bsth/service/schedule/rules/strategy/IStrategyImpl.java deleted
100644 → 0
| 1 | -package com.bsth.service.schedule.rules.strategy; | |
| 2 | - | |
| 3 | -import com.bsth.entity.Line; | |
| 4 | -import com.bsth.entity.schedule.CarConfigInfo; | |
| 5 | -import com.bsth.entity.schedule.EmployeeConfigInfo; | |
| 6 | -import com.bsth.entity.schedule.TTInfo; | |
| 7 | -import com.bsth.entity.schedule.TTInfoDetail; | |
| 8 | -import com.bsth.entity.schedule.rule.ScheduleRule1Flat; | |
| 9 | -import com.bsth.service.LineService; | |
| 10 | -import com.bsth.service.schedule.*; | |
| 11 | -import com.bsth.service.schedule.rules.ttinfo.TTInfoCalcuParam_input; | |
| 12 | -import com.bsth.service.schedule.rules.ttinfo.TTInfoResult_output; | |
| 13 | -import com.bsth.service.schedule.rules.ttinfo.TTInfoResults_output; | |
| 14 | -import com.bsth.service.schedule.rules.ttinfo.TTInfo_input; | |
| 15 | -import com.google.common.collect.ArrayListMultimap; | |
| 16 | -import com.google.common.collect.Multimap; | |
| 17 | -import org.joda.time.DateTime; | |
| 18 | -import org.kie.api.KieBase; | |
| 19 | -import org.kie.api.runtime.KieSession; | |
| 20 | -import org.slf4j.Logger; | |
| 21 | -import org.slf4j.LoggerFactory; | |
| 22 | -import org.springframework.beans.factory.annotation.Autowired; | |
| 23 | -import org.springframework.stereotype.Service; | |
| 24 | -import org.springframework.util.CollectionUtils; | |
| 25 | - | |
| 26 | -import java.util.*; | |
| 27 | - | |
| 28 | -/** | |
| 29 | - * Created by xu on 16/7/10. | |
| 30 | - */ | |
| 31 | -@Service | |
| 32 | -public class IStrategyImpl implements IStrategy { | |
| 33 | - @Autowired | |
| 34 | - private TTInfoService ttInfoService; | |
| 35 | - @Autowired | |
| 36 | - private CarConfigInfoService carConfigInfoService; | |
| 37 | - @Autowired | |
| 38 | - private EmployeeConfigInfoService employeeConfigInfoService; | |
| 39 | - @Autowired | |
| 40 | - private TTInfoDetailService ttInfoDetailService; | |
| 41 | - @Autowired | |
| 42 | - private LineService lineService; | |
| 43 | - @Autowired | |
| 44 | - private ScheduleRule1FlatService scheduleRule1FlatService; | |
| 45 | - | |
| 46 | - /** 日志记录器 */ | |
| 47 | - private Logger logger = LoggerFactory.getLogger(IStrategyImpl.class); | |
| 48 | - | |
| 49 | - @Autowired | |
| 50 | - private KieBase kieBase; | |
| 51 | - | |
| 52 | - @Override | |
| 53 | - public Line getLine(Integer xlId) { | |
| 54 | - Map<String, Object> param = new HashMap<>(); | |
| 55 | - param.put("id_eq", xlId); | |
| 56 | - param.put("destroy_eq", 0); // 未撤销 | |
| 57 | - List<Line> lines = (List<Line>) lineService.list(param); | |
| 58 | - if (CollectionUtils.isEmpty(lines)) { | |
| 59 | - throw new RuntimeException("线路找不到,可能已经撤销!"); | |
| 60 | - } | |
| 61 | - return lines.get(0); | |
| 62 | - } | |
| 63 | - | |
| 64 | - @Override | |
| 65 | - public List<TTInfo> getTTInfo(Integer xlId) { | |
| 66 | - // 查询参数 | |
| 67 | - Map<String, Object> param = new HashMap<>(); | |
| 68 | - param.put("xl.id_eq", xlId); // 线路Id | |
| 69 | - param.put("isCancel_eq", false); // 作废的过滤掉 | |
| 70 | - Iterator<TTInfo> ttInfoIterator = ttInfoService.list(param).iterator(); | |
| 71 | - if (!ttInfoIterator.hasNext()) { | |
| 72 | - throw new RuntimeException("线路id=" + xlId + " 没有时刻表!"); | |
| 73 | - } | |
| 74 | - List<TTInfo> ttInfos = new ArrayList<>(); | |
| 75 | - while (ttInfoIterator.hasNext()) { | |
| 76 | - TTInfo ttInfo = ttInfoIterator.next(); | |
| 77 | - ttInfos.add(ttInfo); | |
| 78 | - } | |
| 79 | - return ttInfos; | |
| 80 | - } | |
| 81 | - | |
| 82 | - @Override | |
| 83 | - public List<TTInfoDetail> getTTInfoDetail(Integer xlId) { | |
| 84 | - List<TTInfoDetail> ttInfoDetails = new ArrayList<>(); | |
| 85 | - | |
| 86 | - List<TTInfo> ttInfos = getTTInfo(xlId); | |
| 87 | - Map<String, Object> param = new HashMap<>(); | |
| 88 | - for (TTInfo ttInfo : ttInfos) { | |
| 89 | - param.clear(); | |
| 90 | - param.put("ttinfo.id_eq", ttInfo.getId()); | |
| 91 | - Iterator<TTInfoDetail> ttInfoDetailIterator = ttInfoDetailService.list(param).iterator(); | |
| 92 | - while (ttInfoDetailIterator.hasNext()) { | |
| 93 | - ttInfoDetails.add(ttInfoDetailIterator.next()); | |
| 94 | - } | |
| 95 | - } | |
| 96 | - | |
| 97 | - return ttInfoDetails; | |
| 98 | - } | |
| 99 | - | |
| 100 | - @Override | |
| 101 | - public Iterable<ScheduleRule1Flat> getScheduleRule(Integer xlId) { | |
| 102 | - Map<String, Object> param = new HashMap<>(); // 查询参数 | |
| 103 | - Line xl = lineService.findById(xlId); // 查找线路具体信息 | |
| 104 | - param.clear(); | |
| 105 | - param.put("xl.id_eq", xl.getId()); | |
| 106 | - Iterable<ScheduleRule1Flat> scheduleRule1FlatIterable = scheduleRule1FlatService.list(param); | |
| 107 | - if (!scheduleRule1FlatIterable.iterator().hasNext()) | |
| 108 | - throw new RuntimeException("线路:" + xl.getName() + " 没有配置规则!"); | |
| 109 | - | |
| 110 | - return scheduleRule1FlatIterable; | |
| 111 | - } | |
| 112 | - | |
| 113 | - @Override | |
| 114 | - public Map<Date, Multimap<Long, TTInfoDetail>> getGuideboardXlTTInfoDetailMaps( | |
| 115 | - Integer xlId, Date fromDate, Date toDate) { | |
| 116 | - // 获取线路的所有时刻表 | |
| 117 | - List<TTInfo> ttInfos = getTTInfo(xlId); | |
| 118 | - | |
| 119 | - // 执行规则,判定每天使用的时刻表 | |
| 120 | - KieSession session = kieBase.newKieSession(); | |
| 121 | - | |
| 122 | - session.setGlobal("log", logger); | |
| 123 | - TTInfoResults_output ttInfoResults_output = new TTInfoResults_output(); | |
| 124 | - session.setGlobal("results", ttInfoResults_output); | |
| 125 | - | |
| 126 | - TTInfoCalcuParam_input ttInfoCalcuParam_input = new TTInfoCalcuParam_input( | |
| 127 | - new DateTime(fromDate), new DateTime(toDate), String.valueOf(xlId)); | |
| 128 | - session.insert(ttInfoCalcuParam_input); | |
| 129 | - for (TTInfo ttInfo : ttInfos) { | |
| 130 | - TTInfo_input ttInfo_input = new TTInfo_input(ttInfo); | |
| 131 | - session.insert(ttInfo_input); | |
| 132 | - } | |
| 133 | - | |
| 134 | - session.fireAllRules(); | |
| 135 | - session.dispose(); | |
| 136 | - | |
| 137 | - // 获取ttinfoDetail | |
| 138 | - List<TTInfoDetail> ttInfoDetails = getTTInfoDetail(xlId); | |
| 139 | - | |
| 140 | - // 规则输出结果 | |
| 141 | - Multimap<DateTime, TTInfoResult_output> outputMultimap = | |
| 142 | - ttInfoResults_output.getResults().get(String.valueOf(xlId)); | |
| 143 | - // return结果输出 | |
| 144 | - Map<Date, Multimap<Long, TTInfoDetail>> ttInfoDetailMultimap = new HashMap<>(); | |
| 145 | - | |
| 146 | - for (DateTime dateTime : outputMultimap.keySet()) { | |
| 147 | - Collection<TTInfoResult_output> ttInfoResult_outputs = outputMultimap.get(dateTime); | |
| 148 | - // 如果有多个,使用第一个 | |
| 149 | - Iterator<TTInfoResult_output> ttInfoResult_outputIterator = ttInfoResult_outputs.iterator(); | |
| 150 | - if (ttInfoResult_outputIterator.hasNext()) { | |
| 151 | - // 同一天,多张时刻表只取第一张 | |
| 152 | - TTInfoResult_output ttInfoResult_output = ttInfoResult_outputIterator.next(); | |
| 153 | - // 查找时刻表明细 | |
| 154 | - Multimap<Long, TTInfoDetail> ttinfodetailMap2 = ArrayListMultimap.create(); | |
| 155 | - for (TTInfoDetail ttInfoDetail : ttInfoDetails) { | |
| 156 | - if (ttInfoDetail.getTtinfo().getId().equals(Long.valueOf(ttInfoResult_output.getTtInfoId()))) { | |
| 157 | - ttinfodetailMap2.put(ttInfoDetail.getLp().getId(), ttInfoDetail); | |
| 158 | - } | |
| 159 | - } | |
| 160 | - | |
| 161 | - ttInfoDetailMultimap.put(dateTime.toDate(), ttinfodetailMap2); | |
| 162 | - } | |
| 163 | - } | |
| 164 | - | |
| 165 | - return ttInfoDetailMultimap; | |
| 166 | - } | |
| 167 | - | |
| 168 | - @Override | |
| 169 | - public Map<Long, CarConfigInfo> getCarConfigMaps(Integer xlId) { | |
| 170 | - // 查询参数 | |
| 171 | - Map<String, Object> param = new HashMap<>(); | |
| 172 | - param.put("xl.id_eq", xlId); | |
| 173 | - Iterable<CarConfigInfo> carConfigInfoIterable = carConfigInfoService.list(param); | |
| 174 | - Iterator<CarConfigInfo> carConfigInfoIterator = carConfigInfoIterable.iterator(); | |
| 175 | - if (!carConfigInfoIterator.hasNext()) | |
| 176 | - throw new RuntimeException("线路id=" + xlId + ",下没有车辆配置信息!"); | |
| 177 | - | |
| 178 | - Map<Long, CarConfigInfo> carConfigInfoMap = new HashMap<>(); | |
| 179 | - while (carConfigInfoIterator.hasNext()) { | |
| 180 | - CarConfigInfo carConfigInfo = carConfigInfoIterator.next(); | |
| 181 | - carConfigInfoMap.put(carConfigInfo.getId(), carConfigInfo); | |
| 182 | - } | |
| 183 | - return carConfigInfoMap; | |
| 184 | - } | |
| 185 | - | |
| 186 | - @Override | |
| 187 | - public Map<Long, EmployeeConfigInfo> getEmployeeConfigMaps(Integer xlId) { | |
| 188 | - // 查询参数 | |
| 189 | - Map<String, Object> param = new HashMap<>(); | |
| 190 | - param.put("xl.id_eq", xlId); | |
| 191 | - Iterable<EmployeeConfigInfo> employeeConfigInfoIterable = employeeConfigInfoService.list(param); | |
| 192 | - Iterator<EmployeeConfigInfo> employeeConfigInfoIterator = employeeConfigInfoIterable.iterator(); | |
| 193 | - if (!employeeConfigInfoIterator.hasNext()) | |
| 194 | - throw new RuntimeException("线路id=" + xlId + ",下没有人员配置信息!"); | |
| 195 | - | |
| 196 | - Map<Long, EmployeeConfigInfo> employeeConfigInfoMap = new HashMap<>(); | |
| 197 | - while (employeeConfigInfoIterator.hasNext()) { | |
| 198 | - EmployeeConfigInfo employeeConfigInfo = employeeConfigInfoIterator.next(); | |
| 199 | - employeeConfigInfoMap.put(employeeConfigInfo.getId(), employeeConfigInfo); | |
| 200 | - } | |
| 201 | - return employeeConfigInfoMap; | |
| 202 | - } | |
| 203 | -} |
src/main/resources/datatools/ktrs/ttinfodetailDataInputMetaData.ktr
| 1 | -<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | -<transformation> | |
| 3 | - <info> | |
| 4 | - <name>时刻表明细导入元数据</name> | |
| 5 | - <description/> | |
| 6 | - <extended_description/> | |
| 7 | - <trans_version/> | |
| 8 | - <trans_type>Normal</trans_type> | |
| 9 | - <trans_status>0</trans_status> | |
| 10 | - <directory>/</directory> | |
| 11 | - <parameters> | |
| 12 | - <parameter> | |
| 13 | - <name>erroroutputdir</name> | |
| 14 | - <default_value>/Users/xu/resource/project_code/runtime_temp/bsth_control_u_d_files/erroroutput</default_value> | |
| 15 | - <description>ktr step配置的错误输出目录</description> | |
| 16 | - </parameter> | |
| 17 | - <parameter> | |
| 18 | - <name>excelfieldnames</name> | |
| 19 | - <default_value>路牌,出场,东川路地铁站1,塘泾路尚义路1,东川路地铁站2,塘泾路尚义路2,东川路地铁站3,塘泾路尚义路3,东川路地铁站4,塘泾路尚义路4,东川路地铁站5,塘泾路尚义路5,东川路地铁站6,塘泾路尚义路6,东川路地铁站7,塘泾路尚义路7,东川路地铁站8,塘泾路尚义路8,东川路地铁站9,塘泾路尚义路9,东川路地铁站10,塘泾路尚义路10,进场</default_value> | |
| 20 | - <description>时刻表excel输入字段名,以逗号连接</description> | |
| 21 | - </parameter> | |
| 22 | - <parameter> | |
| 23 | - <name>filepath</name> | |
| 24 | - <default_value>/Users/xu/resource/project_code/bsth_project/bsth_control_etl/闵行公交/闵行26路时刻表160630时刻表.xls</default_value> | |
| 25 | - <description>待处理导入的excel文件</description> | |
| 26 | - </parameter> | |
| 27 | - <parameter> | |
| 28 | - <name>injectktrfile</name> | |
| 29 | - <default_value>/Users/xu/resource/project_code/bsth_project/bsth_control/src/main/resources/datatools/ktrs/ttinfodetailDataInput.ktr</default_value> | |
| 30 | - <description>注入元数据的ktr文件</description> | |
| 31 | - </parameter> | |
| 32 | - <parameter> | |
| 33 | - <name>normalizefieldnames</name> | |
| 34 | - <default_value>出场,东川路地铁站1,塘泾路尚义路1,东川路地铁站2,塘泾路尚义路2,东川路地铁站3,塘泾路尚义路3,东川路地铁站4,塘泾路尚义路4,东川路地铁站5,塘泾路尚义路5,东川路地铁站6,塘泾路尚义路6,东川路地铁站7,塘泾路尚义路7,东川路地铁站8,塘泾路尚义路8,东川路地铁站9,塘泾路尚义路9,东川路地铁站10,塘泾路尚义路10,进场</default_value> | |
| 35 | - <description>数据范式化字段名,以逗号连接</description> | |
| 36 | - </parameter> | |
| 37 | - <parameter> | |
| 38 | - <name>sheetname</name> | |
| 39 | - <default_value>工作表1</default_value> | |
| 40 | - <description>xls sheet名字</description> | |
| 41 | - </parameter> | |
| 42 | - <parameter> | |
| 43 | - <name>tccname</name> | |
| 44 | - <default_value>东川路地铁站停车场</default_value> | |
| 45 | - <description>停车场名字</description> | |
| 46 | - </parameter> | |
| 47 | - <parameter> | |
| 48 | - <name>ttid</name> | |
| 49 | - <default_value>1</default_value> | |
| 50 | - <description>时刻表id</description> | |
| 51 | - </parameter> | |
| 52 | - <parameter> | |
| 53 | - <name>ttinfoname</name> | |
| 54 | - <default_value>表2</default_value> | |
| 55 | - <description>时刻表名称</description> | |
| 56 | - </parameter> | |
| 57 | - <parameter> | |
| 58 | - <name>xlname</name> | |
| 59 | - <default_value>闵行26路</default_value> | |
| 60 | - <description>线路名称</description> | |
| 61 | - </parameter> | |
| 62 | - </parameters> | |
| 63 | - <log> | |
| 64 | -<trans-log-table><connection/> | |
| 65 | -<schema/> | |
| 66 | -<table/> | |
| 67 | -<size_limit_lines/> | |
| 68 | -<interval/> | |
| 69 | -<timeout_days/> | |
| 70 | -<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> | |
| 71 | -<perf-log-table><connection/> | |
| 72 | -<schema/> | |
| 73 | -<table/> | |
| 74 | -<interval/> | |
| 75 | -<timeout_days/> | |
| 76 | -<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> | |
| 77 | -<channel-log-table><connection/> | |
| 78 | -<schema/> | |
| 79 | -<table/> | |
| 80 | -<timeout_days/> | |
| 81 | -<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> | |
| 82 | -<step-log-table><connection/> | |
| 83 | -<schema/> | |
| 84 | -<table/> | |
| 85 | -<timeout_days/> | |
| 86 | -<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> | |
| 87 | -<metrics-log-table><connection/> | |
| 88 | -<schema/> | |
| 89 | -<table/> | |
| 90 | -<timeout_days/> | |
| 91 | -<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> | |
| 92 | - </log> | |
| 93 | - <maxdate> | |
| 94 | - <connection/> | |
| 95 | - <table/> | |
| 96 | - <field/> | |
| 97 | - <offset>0.0</offset> | |
| 98 | - <maxdiff>0.0</maxdiff> | |
| 99 | - </maxdate> | |
| 100 | - <size_rowset>10000</size_rowset> | |
| 101 | - <sleep_time_empty>50</sleep_time_empty> | |
| 102 | - <sleep_time_full>50</sleep_time_full> | |
| 103 | - <unique_connections>N</unique_connections> | |
| 104 | - <feedback_shown>Y</feedback_shown> | |
| 105 | - <feedback_size>50000</feedback_size> | |
| 106 | - <using_thread_priorities>Y</using_thread_priorities> | |
| 107 | - <shared_objects_file/> | |
| 108 | - <capture_step_performance>N</capture_step_performance> | |
| 109 | - <step_performance_capturing_delay>1000</step_performance_capturing_delay> | |
| 110 | - <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit> | |
| 111 | - <dependencies> | |
| 112 | - </dependencies> | |
| 113 | - <partitionschemas> | |
| 114 | - </partitionschemas> | |
| 115 | - <slaveservers> | |
| 116 | - </slaveservers> | |
| 117 | - <clusterschemas> | |
| 118 | - </clusterschemas> | |
| 119 | - <created_user>-</created_user> | |
| 120 | - <created_date>2016/07/01 09:55:32.649</created_date> | |
| 121 | - <modified_user>-</modified_user> | |
| 122 | - <modified_date>2016/07/01 09:55:32.649</modified_date> | |
| 123 | - <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key> | |
| 124 | - <is_key_private>N</is_key_private> | |
| 125 | - </info> | |
| 126 | - <notepads> | |
| 127 | - </notepads> | |
| 128 | - <connection> | |
| 129 | - <name>bus_control_variable</name> | |
| 130 | - <server>${v_db_ip}</server> | |
| 131 | - <type>MYSQL</type> | |
| 132 | - <access>Native</access> | |
| 133 | - <database>${v_db_dname}</database> | |
| 134 | - <port>3306</port> | |
| 135 | - <username>${v_db_uname}</username> | |
| 136 | - <password>${v_db_pwd}</password> | |
| 137 | - <servername/> | |
| 138 | - <data_tablespace/> | |
| 139 | - <index_tablespace/> | |
| 140 | - <attributes> | |
| 141 | - <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute> | |
| 142 | - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 143 | - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 144 | - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 145 | - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 146 | - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 147 | - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute> | |
| 148 | - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 149 | - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 150 | - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute> | |
| 151 | - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 152 | - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 153 | - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 154 | - </attributes> | |
| 155 | - </connection> | |
| 156 | - <connection> | |
| 157 | - <name>bus_control_公司_201</name> | |
| 158 | - <server>localhost</server> | |
| 159 | - <type>MYSQL</type> | |
| 160 | - <access>Native</access> | |
| 161 | - <database>control</database> | |
| 162 | - <port>3306</port> | |
| 163 | - <username>root</username> | |
| 164 | - <password>Encrypted </password> | |
| 165 | - <servername/> | |
| 166 | - <data_tablespace/> | |
| 167 | - <index_tablespace/> | |
| 168 | - <attributes> | |
| 169 | - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 170 | - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 171 | - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 172 | - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 173 | - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 174 | - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute> | |
| 175 | - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 176 | - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 177 | - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute> | |
| 178 | - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 179 | - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 180 | - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 181 | - </attributes> | |
| 182 | - </connection> | |
| 183 | - <connection> | |
| 184 | - <name>bus_control_本机</name> | |
| 185 | - <server>localhost</server> | |
| 186 | - <type>MYSQL</type> | |
| 187 | - <access>Native</access> | |
| 188 | - <database>control</database> | |
| 189 | - <port>3306</port> | |
| 190 | - <username>root</username> | |
| 191 | - <password>Encrypted </password> | |
| 192 | - <servername/> | |
| 193 | - <data_tablespace/> | |
| 194 | - <index_tablespace/> | |
| 195 | - <attributes> | |
| 196 | - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 197 | - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 198 | - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 199 | - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 200 | - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 201 | - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute> | |
| 202 | - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 203 | - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 204 | - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute> | |
| 205 | - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 206 | - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 207 | - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 208 | - </attributes> | |
| 209 | - </connection> | |
| 210 | - <connection> | |
| 211 | - <name>xlab_mysql_youle</name> | |
| 212 | - <server>101.231.124.8</server> | |
| 213 | - <type>MYSQL</type> | |
| 214 | - <access>Native</access> | |
| 215 | - <database>xlab_youle</database> | |
| 216 | - <port>45687</port> | |
| 217 | - <username>xlab-youle</username> | |
| 218 | - <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password> | |
| 219 | - <servername/> | |
| 220 | - <data_tablespace/> | |
| 221 | - <index_tablespace/> | |
| 222 | - <attributes> | |
| 223 | - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 224 | - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 225 | - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 226 | - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 227 | - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 228 | - <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute> | |
| 229 | - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 230 | - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 231 | - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute> | |
| 232 | - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute> | |
| 233 | - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute> | |
| 234 | - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 235 | - </attributes> | |
| 236 | - </connection> | |
| 237 | - <connection> | |
| 238 | - <name>xlab_mysql_youle(本机)</name> | |
| 239 | - <server>localhost</server> | |
| 240 | - <type>MYSQL</type> | |
| 241 | - <access>Native</access> | |
| 242 | - <database>xlab_youle</database> | |
| 243 | - <port>3306</port> | |
| 244 | - <username>root</username> | |
| 245 | - <password>Encrypted </password> | |
| 246 | - <servername/> | |
| 247 | - <data_tablespace/> | |
| 248 | - <index_tablespace/> | |
| 249 | - <attributes> | |
| 250 | - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 251 | - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 252 | - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 253 | - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 254 | - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 255 | - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute> | |
| 256 | - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 257 | - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 258 | - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute> | |
| 259 | - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute> | |
| 260 | - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute> | |
| 261 | - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 262 | - </attributes> | |
| 263 | - </connection> | |
| 264 | - <connection> | |
| 265 | - <name>xlab_youle</name> | |
| 266 | - <server/> | |
| 267 | - <type>MYSQL</type> | |
| 268 | - <access>JNDI</access> | |
| 269 | - <database>xlab_youle</database> | |
| 270 | - <port>1521</port> | |
| 271 | - <username/> | |
| 272 | - <password>Encrypted </password> | |
| 273 | - <servername/> | |
| 274 | - <data_tablespace/> | |
| 275 | - <index_tablespace/> | |
| 276 | - <attributes> | |
| 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>1521</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 | - <order> | |
| 290 | - <hop> <from>获取excel文件名</from><to>ETL元数据注入</to><enabled>Y</enabled> </hop> | |
| 291 | - <hop> <from>获取excel字段名字符串</from><to>逗号切分成字段名</to><enabled>Y</enabled> </hop> | |
| 292 | - <hop> <from>逗号切分成字段名</from><to>增加excel字段其他元数据</to><enabled>Y</enabled> </hop> | |
| 293 | - <hop> <from>增加excel字段其他元数据</from><to>ETL元数据注入</to><enabled>Y</enabled> </hop> | |
| 294 | - <hop> <from>获取normalize字段名字符串</from><to>逗号切分成字段名 2</to><enabled>Y</enabled> </hop> | |
| 295 | - <hop> <from>逗号切分成字段名 2</from><to>增加normalize元数据</to><enabled>Y</enabled> </hop> | |
| 296 | - <hop> <from>增加normalize元数据</from><to>ETL元数据注入</to><enabled>Y</enabled> </hop> | |
| 297 | - <hop> <from>获取线路名称</from><to>增加线路名称metadata</to><enabled>Y</enabled> </hop> | |
| 298 | - <hop> <from>增加线路名称metadata</from><to>替换线路名称</to><enabled>Y</enabled> </hop> | |
| 299 | - <hop> <from>替换线路名称</from><to>线路名称metadata字段</to><enabled>Y</enabled> </hop> | |
| 300 | - <hop> <from>获取停车场名称</from><to>增加停车场名称metadata</to><enabled>Y</enabled> </hop> | |
| 301 | - <hop> <from>增加停车场名称metadata</from><to>替换停车厂名字 </to><enabled>Y</enabled> </hop> | |
| 302 | - <hop> <from>替换停车厂名字 </from><to>停车场名称metadata字段</to><enabled>Y</enabled> </hop> | |
| 303 | - <hop> <from>获取时刻表名称</from><to>增加时刻表名称metadata</to><enabled>Y</enabled> </hop> | |
| 304 | - <hop> <from>增加时刻表名称metadata</from><to>替换时刻表名字</to><enabled>Y</enabled> </hop> | |
| 305 | - <hop> <from>替换时刻表名字</from><to>时刻表名称metadata字段</to><enabled>Y</enabled> </hop> | |
| 306 | - <hop> <from>线路名称metadata字段</from><to>合并增加常量数据metadata</to><enabled>Y</enabled> </hop> | |
| 307 | - <hop> <from>停车场名称metadata字段</from><to>合并增加常量数据metadata</to><enabled>Y</enabled> </hop> | |
| 308 | - <hop> <from>时刻表名称metadata字段</from><to>合并增加常量数据metadata</to><enabled>Y</enabled> </hop> | |
| 309 | - <hop> <from>合并增加常量数据metadata</from><to>ETL元数据注入</to><enabled>Y</enabled> </hop> | |
| 310 | - <hop> <from>获取时刻表id</from><to>删除之前的明细信息</to><enabled>Y</enabled> </hop> | |
| 311 | - </order> | |
| 312 | - <step> | |
| 313 | - <name>ETL元数据注入</name> | |
| 314 | - <type>MetaInject</type> | |
| 315 | - <description/> | |
| 316 | - <distribute>Y</distribute> | |
| 317 | - <custom_distribution/> | |
| 318 | - <copies>1</copies> | |
| 319 | - <partitioning> | |
| 320 | - <method>none</method> | |
| 321 | - <schema_name/> | |
| 322 | - </partitioning> | |
| 323 | - <specification_method>filename</specification_method> | |
| 324 | - <trans_object_id/> | |
| 325 | - <trans_name/> | |
| 326 | - <filename>${injectktrfile}</filename> | |
| 327 | - <directory_path/> | |
| 328 | - <source_step/> | |
| 329 | - <source_output_fields> </source_output_fields> <target_file/> | |
| 330 | - <no_execution>N</no_execution> | |
| 331 | - <stream_source_step/> | |
| 332 | - <stream_target_step/> | |
| 333 | - <mappings> <mapping> <target_step_name>Excel输入</target_step_name> | |
| 334 | - <target_attribute_key>FORMAT</target_attribute_key> | |
| 335 | - <target_detail>Y</target_detail> | |
| 336 | - <source_step>列拆分为多行</source_step> | |
| 337 | - <source_field>format</source_field> | |
| 338 | - </mapping> <mapping> <target_step_name>Excel输入</target_step_name> | |
| 339 | - <target_attribute_key>REPEAT</target_attribute_key> | |
| 340 | - <target_detail>Y</target_detail> | |
| 341 | - <source_step>列拆分为多行</source_step> | |
| 342 | - <source_field>repeat</source_field> | |
| 343 | - </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | |
| 344 | - <target_attribute_key>TRIM_TYPE</target_attribute_key> | |
| 345 | - <target_detail>Y</target_detail> | |
| 346 | - <source_step>增加excel字段其他元数据</source_step> | |
| 347 | - <source_field>trim_type</source_field> | |
| 348 | - </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | |
| 349 | - <target_attribute_key>FILENAME</target_attribute_key> | |
| 350 | - <target_detail>Y</target_detail> | |
| 351 | - <source_step>获取excel文件名</source_step> | |
| 352 | - <source_field>filepath_</source_field> | |
| 353 | - </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | |
| 354 | - <target_attribute_key>PRECISION</target_attribute_key> | |
| 355 | - <target_detail>Y</target_detail> | |
| 356 | - <source_step>增加excel字段其他元数据</source_step> | |
| 357 | - <source_field>precision</source_field> | |
| 358 | - </mapping> <mapping> <target_step_name>Excel输入</target_step_name> | |
| 359 | - <target_attribute_key>TYPE</target_attribute_key> | |
| 360 | - <target_detail>Y</target_detail> | |
| 361 | - <source_step>列拆分为多行</source_step> | |
| 362 | - <source_field>type</source_field> | |
| 363 | - </mapping> <mapping> <target_step_name>增加时刻表名字,线路名字,停车场名字</target_step_name> | |
| 364 | - <target_attribute_key>DATA_VALUE</target_attribute_key> | |
| 365 | - <target_detail>Y</target_detail> | |
| 366 | - <source_step>合并增加常量数据metadata</source_step> | |
| 367 | - <source_field>col_value</source_field> | |
| 368 | - </mapping> <mapping> <target_step_name>Excel输入</target_step_name> | |
| 369 | - <target_attribute_key>LENGTH</target_attribute_key> | |
| 370 | - <target_detail>Y</target_detail> | |
| 371 | - <source_step>列拆分为多行</source_step> | |
| 372 | - <source_field>length</source_field> | |
| 373 | - </mapping> <mapping> <target_step_name>增加时刻表名字,线路名字,停车场名字</target_step_name> | |
| 374 | - <target_attribute_key>TYPE</target_attribute_key> | |
| 375 | - <target_detail>Y</target_detail> | |
| 376 | - <source_step>合并增加常量数据metadata</source_step> | |
| 377 | - <source_field>col_type</source_field> | |
| 378 | - </mapping> <mapping> <target_step_name>行转列</target_step_name> | |
| 379 | - <target_attribute_key>NAME</target_attribute_key> | |
| 380 | - <target_detail>Y</target_detail> | |
| 381 | - <source_step>列拆分为多行 2</source_step> | |
| 382 | - <source_field>fieldName</source_field> | |
| 383 | - </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | |
| 384 | - <target_attribute_key>NAME</target_attribute_key> | |
| 385 | - <target_detail>Y</target_detail> | |
| 386 | - <source_step>增加excel字段其他元数据</source_step> | |
| 387 | - <source_field>fieldname</source_field> | |
| 388 | - </mapping> <mapping> <target_step_name>班次数据范式化</target_step_name> | |
| 389 | - <target_attribute_key>NAME</target_attribute_key> | |
| 390 | - <target_detail>Y</target_detail> | |
| 391 | - <source_step>增加normalize元数据</source_step> | |
| 392 | - <source_field>nfieldname</source_field> | |
| 393 | - </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | |
| 394 | - <target_attribute_key>SHEET_NAME</target_attribute_key> | |
| 395 | - <target_detail>Y</target_detail> | |
| 396 | - <source_step>获取excel文件名</source_step> | |
| 397 | - <source_field>sheetname_</source_field> | |
| 398 | - </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | |
| 399 | - <target_attribute_key>LENGTH</target_attribute_key> | |
| 400 | - <target_detail>Y</target_detail> | |
| 401 | - <source_step>增加excel字段其他元数据</source_step> | |
| 402 | - <source_field>length</source_field> | |
| 403 | - </mapping> <mapping> <target_step_name>增加时刻表名字,线路名字,停车场名字</target_step_name> | |
| 404 | - <target_attribute_key>NAME</target_attribute_key> | |
| 405 | - <target_detail>Y</target_detail> | |
| 406 | - <source_step>合并增加常量数据metadata</source_step> | |
| 407 | - <source_field>col_name</source_field> | |
| 408 | - </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | |
| 409 | - <target_attribute_key>TYPE</target_attribute_key> | |
| 410 | - <target_detail>Y</target_detail> | |
| 411 | - <source_step>增加excel字段其他元数据</source_step> | |
| 412 | - <source_field>fieldtype</source_field> | |
| 413 | - </mapping> <mapping> <target_step_name>Excel输入</target_step_name> | |
| 414 | - <target_attribute_key>NAME</target_attribute_key> | |
| 415 | - <target_detail>Y</target_detail> | |
| 416 | - <source_step>列拆分为多行</source_step> | |
| 417 | - <source_field>fieldName</source_field> | |
| 418 | - </mapping> <mapping> <target_step_name>Excel输入</target_step_name> | |
| 419 | - <target_attribute_key>TRIM_TYPE</target_attribute_key> | |
| 420 | - <target_detail>Y</target_detail> | |
| 421 | - <source_step>列拆分为多行</source_step> | |
| 422 | - <source_field>trim_type</source_field> | |
| 423 | - </mapping> <mapping> <target_step_name>行转列</target_step_name> | |
| 424 | - <target_attribute_key>VALUE</target_attribute_key> | |
| 425 | - <target_detail>Y</target_detail> | |
| 426 | - <source_step>列拆分为多行 2</source_step> | |
| 427 | - <source_field>fieldName</source_field> | |
| 428 | - </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | |
| 429 | - <target_attribute_key>REPEAT</target_attribute_key> | |
| 430 | - <target_detail>Y</target_detail> | |
| 431 | - <source_step>增加excel字段其他元数据</source_step> | |
| 432 | - <source_field>repeat</source_field> | |
| 433 | - </mapping> <mapping> <target_step_name>行转列</target_step_name> | |
| 434 | - <target_attribute_key>NORMALISED</target_attribute_key> | |
| 435 | - <target_detail>Y</target_detail> | |
| 436 | - <source_step>列拆分为多行 2</source_step> | |
| 437 | - <source_field>value</source_field> | |
| 438 | - </mapping> <mapping> <target_step_name>班次数据范式化</target_step_name> | |
| 439 | - <target_attribute_key>NORMALISED</target_attribute_key> | |
| 440 | - <target_detail>Y</target_detail> | |
| 441 | - <source_step>增加normalize元数据</source_step> | |
| 442 | - <source_field>valuefield</source_field> | |
| 443 | - </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | |
| 444 | - <target_attribute_key>FORMAT</target_attribute_key> | |
| 445 | - <target_detail>Y</target_detail> | |
| 446 | - <source_step>增加excel字段其他元数据</source_step> | |
| 447 | - <source_field>format</source_field> | |
| 448 | - </mapping> <mapping> <target_step_name>班次数据范式化</target_step_name> | |
| 449 | - <target_attribute_key>VALUE</target_attribute_key> | |
| 450 | - <target_detail>Y</target_detail> | |
| 451 | - <source_step>增加normalize元数据</source_step> | |
| 452 | - <source_field>nfieldname</source_field> | |
| 453 | - </mapping> <mapping> <target_step_name>Excel输入</target_step_name> | |
| 454 | - <target_attribute_key>PRECISION</target_attribute_key> | |
| 455 | - <target_detail>Y</target_detail> | |
| 456 | - <source_step>列拆分为多行</source_step> | |
| 457 | - <source_field>precision</source_field> | |
| 458 | - </mapping> </mappings> <cluster_schema/> | |
| 459 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 460 | - <xloc>695</xloc> | |
| 461 | - <yloc>177</yloc> | |
| 462 | - <draw>Y</draw> | |
| 463 | - </GUI> | |
| 464 | - </step> | |
| 465 | - | |
| 466 | - <step> | |
| 467 | - <name>停车场名称metadata字段</name> | |
| 468 | - <type>SelectValues</type> | |
| 469 | - <description/> | |
| 470 | - <distribute>Y</distribute> | |
| 471 | - <custom_distribution/> | |
| 472 | - <copies>1</copies> | |
| 473 | - <partitioning> | |
| 474 | - <method>none</method> | |
| 475 | - <schema_name/> | |
| 476 | - </partitioning> | |
| 477 | - <fields> <field> <name>col_name</name> | |
| 478 | - <rename/> | |
| 479 | - <length>-2</length> | |
| 480 | - <precision>-2</precision> | |
| 481 | - </field> <field> <name>col_type</name> | |
| 482 | - <rename/> | |
| 483 | - <length>-2</length> | |
| 484 | - <precision>-2</precision> | |
| 485 | - </field> <field> <name>col_value</name> | |
| 486 | - <rename/> | |
| 487 | - <length>-2</length> | |
| 488 | - <precision>-2</precision> | |
| 489 | - </field> <select_unspecified>N</select_unspecified> | |
| 490 | - </fields> <cluster_schema/> | |
| 491 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 492 | - <xloc>490</xloc> | |
| 493 | - <yloc>429</yloc> | |
| 494 | - <draw>Y</draw> | |
| 495 | - </GUI> | |
| 496 | - </step> | |
| 497 | - | |
| 498 | - <step> | |
| 499 | - <name>删除之前的明细信息</name> | |
| 500 | - <type>ExecSQL</type> | |
| 501 | - <description/> | |
| 502 | - <distribute>Y</distribute> | |
| 503 | - <custom_distribution/> | |
| 504 | - <copies>1</copies> | |
| 505 | - <partitioning> | |
| 506 | - <method>none</method> | |
| 507 | - <schema_name/> | |
| 508 | - </partitioning> | |
| 509 | - <connection>bus_control_variable</connection> | |
| 510 | - <execute_each_row>Y</execute_each_row> | |
| 511 | - <single_statement>N</single_statement> | |
| 512 | - <replace_variables>N</replace_variables> | |
| 513 | - <quoteString>N</quoteString> | |
| 514 | - <sql>delete from bsth_c_s_ttinfo_detail where ttinfo = ?</sql> | |
| 515 | - <set_params>N</set_params> | |
| 516 | - <insert_field/> | |
| 517 | - <update_field/> | |
| 518 | - <delete_field/> | |
| 519 | - <read_field/> | |
| 520 | - <arguments> | |
| 521 | - <argument><name>ttid_</name></argument> | |
| 522 | - </arguments> | |
| 523 | - <cluster_schema/> | |
| 524 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 525 | - <xloc>627</xloc> | |
| 526 | - <yloc>26</yloc> | |
| 527 | - <draw>Y</draw> | |
| 528 | - </GUI> | |
| 529 | - </step> | |
| 530 | - | |
| 531 | - <step> | |
| 532 | - <name>合并增加常量数据metadata</name> | |
| 533 | - <type>Dummy</type> | |
| 534 | - <description/> | |
| 535 | - <distribute>Y</distribute> | |
| 536 | - <custom_distribution/> | |
| 537 | - <copies>1</copies> | |
| 538 | - <partitioning> | |
| 539 | - <method>none</method> | |
| 540 | - <schema_name/> | |
| 541 | - </partitioning> | |
| 542 | - <cluster_schema/> | |
| 543 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 544 | - <xloc>702</xloc> | |
| 545 | - <yloc>383</yloc> | |
| 546 | - <draw>Y</draw> | |
| 547 | - </GUI> | |
| 548 | - </step> | |
| 549 | - | |
| 550 | - <step> | |
| 551 | - <name>增加excel字段其他元数据</name> | |
| 552 | - <type>Constant</type> | |
| 553 | - <description/> | |
| 554 | - <distribute>Y</distribute> | |
| 555 | - <custom_distribution/> | |
| 556 | - <copies>1</copies> | |
| 557 | - <partitioning> | |
| 558 | - <method>none</method> | |
| 559 | - <schema_name/> | |
| 560 | - </partitioning> | |
| 561 | - <fields> | |
| 562 | - <field> | |
| 563 | - <name>fieldtype</name> | |
| 564 | - <type>String</type> | |
| 565 | - <format/> | |
| 566 | - <currency/> | |
| 567 | - <decimal/> | |
| 568 | - <group/> | |
| 569 | - <nullif>String</nullif> | |
| 570 | - <length>-1</length> | |
| 571 | - <precision>-1</precision> | |
| 572 | - <set_empty_string>N</set_empty_string> | |
| 573 | - </field> | |
| 574 | - <field> | |
| 575 | - <name>length</name> | |
| 576 | - <type>String</type> | |
| 577 | - <format/> | |
| 578 | - <currency/> | |
| 579 | - <decimal/> | |
| 580 | - <group/> | |
| 581 | - <nullif>-1</nullif> | |
| 582 | - <length>-1</length> | |
| 583 | - <precision>-1</precision> | |
| 584 | - <set_empty_string>N</set_empty_string> | |
| 585 | - </field> | |
| 586 | - <field> | |
| 587 | - <name>precision</name> | |
| 588 | - <type>String</type> | |
| 589 | - <format/> | |
| 590 | - <currency/> | |
| 591 | - <decimal/> | |
| 592 | - <group/> | |
| 593 | - <nullif>-1</nullif> | |
| 594 | - <length>-1</length> | |
| 595 | - <precision>-1</precision> | |
| 596 | - <set_empty_string>N</set_empty_string> | |
| 597 | - </field> | |
| 598 | - <field> | |
| 599 | - <name>trim_type</name> | |
| 600 | - <type>String</type> | |
| 601 | - <format/> | |
| 602 | - <currency/> | |
| 603 | - <decimal/> | |
| 604 | - <group/> | |
| 605 | - <nullif>none</nullif> | |
| 606 | - <length>-1</length> | |
| 607 | - <precision>-1</precision> | |
| 608 | - <set_empty_string>N</set_empty_string> | |
| 609 | - </field> | |
| 610 | - <field> | |
| 611 | - <name>repeat</name> | |
| 612 | - <type>String</type> | |
| 613 | - <format/> | |
| 614 | - <currency/> | |
| 615 | - <decimal/> | |
| 616 | - <group/> | |
| 617 | - <nullif>N</nullif> | |
| 618 | - <length>-1</length> | |
| 619 | - <precision>-1</precision> | |
| 620 | - <set_empty_string>N</set_empty_string> | |
| 621 | - </field> | |
| 622 | - <field> | |
| 623 | - <name>format</name> | |
| 624 | - <type>String</type> | |
| 625 | - <format/> | |
| 626 | - <currency/> | |
| 627 | - <decimal/> | |
| 628 | - <group/> | |
| 629 | - <nullif>#</nullif> | |
| 630 | - <length>-1</length> | |
| 631 | - <precision>-1</precision> | |
| 632 | - <set_empty_string>N</set_empty_string> | |
| 633 | - </field> | |
| 634 | - </fields> | |
| 635 | - <cluster_schema/> | |
| 636 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 637 | - <xloc>441</xloc> | |
| 638 | - <yloc>172</yloc> | |
| 639 | - <draw>Y</draw> | |
| 640 | - </GUI> | |
| 641 | - </step> | |
| 642 | - | |
| 643 | - <step> | |
| 644 | - <name>增加normalize元数据</name> | |
| 645 | - <type>Constant</type> | |
| 646 | - <description/> | |
| 647 | - <distribute>Y</distribute> | |
| 648 | - <custom_distribution/> | |
| 649 | - <copies>1</copies> | |
| 650 | - <partitioning> | |
| 651 | - <method>none</method> | |
| 652 | - <schema_name/> | |
| 653 | - </partitioning> | |
| 654 | - <fields> | |
| 655 | - <field> | |
| 656 | - <name>valuefield</name> | |
| 657 | - <type>String</type> | |
| 658 | - <format/> | |
| 659 | - <currency/> | |
| 660 | - <decimal/> | |
| 661 | - <group/> | |
| 662 | - <nullif>发车时间</nullif> | |
| 663 | - <length>-1</length> | |
| 664 | - <precision>-1</precision> | |
| 665 | - <set_empty_string>N</set_empty_string> | |
| 666 | - </field> | |
| 667 | - </fields> | |
| 668 | - <cluster_schema/> | |
| 669 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 670 | - <xloc>447</xloc> | |
| 671 | - <yloc>257</yloc> | |
| 672 | - <draw>Y</draw> | |
| 673 | - </GUI> | |
| 674 | - </step> | |
| 675 | - | |
| 676 | - <step> | |
| 677 | - <name>增加停车场名称metadata</name> | |
| 678 | - <type>Constant</type> | |
| 679 | - <description/> | |
| 680 | - <distribute>Y</distribute> | |
| 681 | - <custom_distribution/> | |
| 682 | - <copies>1</copies> | |
| 683 | - <partitioning> | |
| 684 | - <method>none</method> | |
| 685 | - <schema_name/> | |
| 686 | - </partitioning> | |
| 687 | - <fields> | |
| 688 | - <field> | |
| 689 | - <name>col_name</name> | |
| 690 | - <type>String</type> | |
| 691 | - <format/> | |
| 692 | - <currency/> | |
| 693 | - <decimal/> | |
| 694 | - <group/> | |
| 695 | - <nullif>tccname_</nullif> | |
| 696 | - <length>-1</length> | |
| 697 | - <precision>-1</precision> | |
| 698 | - <set_empty_string>N</set_empty_string> | |
| 699 | - </field> | |
| 700 | - <field> | |
| 701 | - <name>col_type</name> | |
| 702 | - <type>String</type> | |
| 703 | - <format/> | |
| 704 | - <currency/> | |
| 705 | - <decimal/> | |
| 706 | - <group/> | |
| 707 | - <nullif>String</nullif> | |
| 708 | - <length>-1</length> | |
| 709 | - <precision>-1</precision> | |
| 710 | - <set_empty_string>N</set_empty_string> | |
| 711 | - </field> | |
| 712 | - <field> | |
| 713 | - <name>col_value</name> | |
| 714 | - <type>String</type> | |
| 715 | - <format/> | |
| 716 | - <currency/> | |
| 717 | - <decimal/> | |
| 718 | - <group/> | |
| 719 | - <nullif>replace</nullif> | |
| 720 | - <length>-1</length> | |
| 721 | - <precision>-1</precision> | |
| 722 | - <set_empty_string>N</set_empty_string> | |
| 723 | - </field> | |
| 724 | - </fields> | |
| 725 | - <cluster_schema/> | |
| 726 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 727 | - <xloc>208</xloc> | |
| 728 | - <yloc>428</yloc> | |
| 729 | - <draw>Y</draw> | |
| 730 | - </GUI> | |
| 731 | - </step> | |
| 732 | - | |
| 733 | - <step> | |
| 734 | - <name>增加时刻表名称metadata</name> | |
| 735 | - <type>Constant</type> | |
| 736 | - <description/> | |
| 737 | - <distribute>Y</distribute> | |
| 738 | - <custom_distribution/> | |
| 739 | - <copies>1</copies> | |
| 740 | - <partitioning> | |
| 741 | - <method>none</method> | |
| 742 | - <schema_name/> | |
| 743 | - </partitioning> | |
| 744 | - <fields> | |
| 745 | - <field> | |
| 746 | - <name>col_name</name> | |
| 747 | - <type>String</type> | |
| 748 | - <format/> | |
| 749 | - <currency/> | |
| 750 | - <decimal/> | |
| 751 | - <group/> | |
| 752 | - <nullif>ttinfoname_</nullif> | |
| 753 | - <length>-1</length> | |
| 754 | - <precision>-1</precision> | |
| 755 | - <set_empty_string>N</set_empty_string> | |
| 756 | - </field> | |
| 757 | - <field> | |
| 758 | - <name>col_type</name> | |
| 759 | - <type>String</type> | |
| 760 | - <format/> | |
| 761 | - <currency/> | |
| 762 | - <decimal/> | |
| 763 | - <group/> | |
| 764 | - <nullif>String</nullif> | |
| 765 | - <length>-1</length> | |
| 766 | - <precision>-1</precision> | |
| 767 | - <set_empty_string>N</set_empty_string> | |
| 768 | - </field> | |
| 769 | - <field> | |
| 770 | - <name>col_value</name> | |
| 771 | - <type>String</type> | |
| 772 | - <format/> | |
| 773 | - <currency/> | |
| 774 | - <decimal/> | |
| 775 | - <group/> | |
| 776 | - <nullif>replace</nullif> | |
| 777 | - <length>-1</length> | |
| 778 | - <precision>-1</precision> | |
| 779 | - <set_empty_string>N</set_empty_string> | |
| 780 | - </field> | |
| 781 | - </fields> | |
| 782 | - <cluster_schema/> | |
| 783 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 784 | - <xloc>216</xloc> | |
| 785 | - <yloc>508</yloc> | |
| 786 | - <draw>Y</draw> | |
| 787 | - </GUI> | |
| 788 | - </step> | |
| 789 | - | |
| 790 | - <step> | |
| 791 | - <name>增加线路名称metadata</name> | |
| 792 | - <type>Constant</type> | |
| 793 | - <description/> | |
| 794 | - <distribute>Y</distribute> | |
| 795 | - <custom_distribution/> | |
| 796 | - <copies>1</copies> | |
| 797 | - <partitioning> | |
| 798 | - <method>none</method> | |
| 799 | - <schema_name/> | |
| 800 | - </partitioning> | |
| 801 | - <fields> | |
| 802 | - <field> | |
| 803 | - <name>col_name</name> | |
| 804 | - <type>String</type> | |
| 805 | - <format/> | |
| 806 | - <currency/> | |
| 807 | - <decimal/> | |
| 808 | - <group/> | |
| 809 | - <nullif>xlname_</nullif> | |
| 810 | - <length>-1</length> | |
| 811 | - <precision>-1</precision> | |
| 812 | - <set_empty_string>N</set_empty_string> | |
| 813 | - </field> | |
| 814 | - <field> | |
| 815 | - <name>col_type</name> | |
| 816 | - <type>String</type> | |
| 817 | - <format/> | |
| 818 | - <currency/> | |
| 819 | - <decimal/> | |
| 820 | - <group/> | |
| 821 | - <nullif>String</nullif> | |
| 822 | - <length>-1</length> | |
| 823 | - <precision>-1</precision> | |
| 824 | - <set_empty_string>N</set_empty_string> | |
| 825 | - </field> | |
| 826 | - <field> | |
| 827 | - <name>col_value</name> | |
| 828 | - <type>String</type> | |
| 829 | - <format/> | |
| 830 | - <currency/> | |
| 831 | - <decimal/> | |
| 832 | - <group/> | |
| 833 | - <nullif>replace</nullif> | |
| 834 | - <length>-1</length> | |
| 835 | - <precision>-1</precision> | |
| 836 | - <set_empty_string>N</set_empty_string> | |
| 837 | - </field> | |
| 838 | - </fields> | |
| 839 | - <cluster_schema/> | |
| 840 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 841 | - <xloc>202</xloc> | |
| 842 | - <yloc>351</yloc> | |
| 843 | - <draw>Y</draw> | |
| 844 | - </GUI> | |
| 845 | - </step> | |
| 846 | - | |
| 847 | - <step> | |
| 848 | - <name>时刻表名称metadata字段</name> | |
| 849 | - <type>SelectValues</type> | |
| 850 | - <description/> | |
| 851 | - <distribute>Y</distribute> | |
| 852 | - <custom_distribution/> | |
| 853 | - <copies>1</copies> | |
| 854 | - <partitioning> | |
| 855 | - <method>none</method> | |
| 856 | - <schema_name/> | |
| 857 | - </partitioning> | |
| 858 | - <fields> <field> <name>col_name</name> | |
| 859 | - <rename/> | |
| 860 | - <length>-2</length> | |
| 861 | - <precision>-2</precision> | |
| 862 | - </field> <field> <name>col_type</name> | |
| 863 | - <rename/> | |
| 864 | - <length>-2</length> | |
| 865 | - <precision>-2</precision> | |
| 866 | - </field> <field> <name>col_value</name> | |
| 867 | - <rename/> | |
| 868 | - <length>-2</length> | |
| 869 | - <precision>-2</precision> | |
| 870 | - </field> <select_unspecified>N</select_unspecified> | |
| 871 | - </fields> <cluster_schema/> | |
| 872 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 873 | - <xloc>496</xloc> | |
| 874 | - <yloc>508</yloc> | |
| 875 | - <draw>Y</draw> | |
| 876 | - </GUI> | |
| 877 | - </step> | |
| 878 | - | |
| 879 | - <step> | |
| 880 | - <name>替换停车厂名字 </name> | |
| 881 | - <type>SetValueField</type> | |
| 882 | - <description/> | |
| 883 | - <distribute>Y</distribute> | |
| 884 | - <custom_distribution/> | |
| 885 | - <copies>1</copies> | |
| 886 | - <partitioning> | |
| 887 | - <method>none</method> | |
| 888 | - <schema_name/> | |
| 889 | - </partitioning> | |
| 890 | - <fields> | |
| 891 | - <field> | |
| 892 | - <name>col_value</name> | |
| 893 | - <replaceby>tccname_</replaceby> | |
| 894 | - </field> | |
| 895 | - </fields> | |
| 896 | - <cluster_schema/> | |
| 897 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 898 | - <xloc>345</xloc> | |
| 899 | - <yloc>430</yloc> | |
| 900 | - <draw>Y</draw> | |
| 901 | - </GUI> | |
| 902 | - </step> | |
| 903 | - | |
| 904 | - <step> | |
| 905 | - <name>替换时刻表名字</name> | |
| 906 | - <type>SetValueField</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 | - <fields> | |
| 916 | - <field> | |
| 917 | - <name>col_value</name> | |
| 918 | - <replaceby>ttinfoname_</replaceby> | |
| 919 | - </field> | |
| 920 | - </fields> | |
| 921 | - <cluster_schema/> | |
| 922 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 923 | - <xloc>354</xloc> | |
| 924 | - <yloc>509</yloc> | |
| 925 | - <draw>Y</draw> | |
| 926 | - </GUI> | |
| 927 | - </step> | |
| 928 | - | |
| 929 | - <step> | |
| 930 | - <name>替换线路名称</name> | |
| 931 | - <type>SetValueField</type> | |
| 932 | - <description/> | |
| 933 | - <distribute>Y</distribute> | |
| 934 | - <custom_distribution/> | |
| 935 | - <copies>1</copies> | |
| 936 | - <partitioning> | |
| 937 | - <method>none</method> | |
| 938 | - <schema_name/> | |
| 939 | - </partitioning> | |
| 940 | - <fields> | |
| 941 | - <field> | |
| 942 | - <name>col_value</name> | |
| 943 | - <replaceby>xlname_</replaceby> | |
| 944 | - </field> | |
| 945 | - </fields> | |
| 946 | - <cluster_schema/> | |
| 947 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 948 | - <xloc>340</xloc> | |
| 949 | - <yloc>352</yloc> | |
| 950 | - <draw>Y</draw> | |
| 951 | - </GUI> | |
| 952 | - </step> | |
| 953 | - | |
| 954 | - <step> | |
| 955 | - <name>线路名称metadata字段</name> | |
| 956 | - <type>SelectValues</type> | |
| 957 | - <description/> | |
| 958 | - <distribute>Y</distribute> | |
| 959 | - <custom_distribution/> | |
| 960 | - <copies>1</copies> | |
| 961 | - <partitioning> | |
| 962 | - <method>none</method> | |
| 963 | - <schema_name/> | |
| 964 | - </partitioning> | |
| 965 | - <fields> <field> <name>col_name</name> | |
| 966 | - <rename/> | |
| 967 | - <length>-2</length> | |
| 968 | - <precision>-2</precision> | |
| 969 | - </field> <field> <name>col_type</name> | |
| 970 | - <rename/> | |
| 971 | - <length>-2</length> | |
| 972 | - <precision>-2</precision> | |
| 973 | - </field> <field> <name>col_value</name> | |
| 974 | - <rename/> | |
| 975 | - <length>-2</length> | |
| 976 | - <precision>-2</precision> | |
| 977 | - </field> <select_unspecified>N</select_unspecified> | |
| 978 | - </fields> <cluster_schema/> | |
| 979 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 980 | - <xloc>487</xloc> | |
| 981 | - <yloc>353</yloc> | |
| 982 | - <draw>Y</draw> | |
| 983 | - </GUI> | |
| 984 | - </step> | |
| 985 | - | |
| 986 | - <step> | |
| 987 | - <name>获取excel字段名字符串</name> | |
| 988 | - <type>GetVariable</type> | |
| 989 | - <description/> | |
| 990 | - <distribute>Y</distribute> | |
| 991 | - <custom_distribution/> | |
| 992 | - <copies>1</copies> | |
| 993 | - <partitioning> | |
| 994 | - <method>none</method> | |
| 995 | - <schema_name/> | |
| 996 | - </partitioning> | |
| 997 | - <fields> | |
| 998 | - <field> | |
| 999 | - <name>fieldnames</name> | |
| 1000 | - <variable>${excelfieldnames}</variable> | |
| 1001 | - <type>String</type> | |
| 1002 | - <format/> | |
| 1003 | - <currency/> | |
| 1004 | - <decimal/> | |
| 1005 | - <group/> | |
| 1006 | - <length>-1</length> | |
| 1007 | - <precision>-1</precision> | |
| 1008 | - <trim_type>none</trim_type> | |
| 1009 | - </field> | |
| 1010 | - </fields> | |
| 1011 | - <cluster_schema/> | |
| 1012 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1013 | - <xloc>71</xloc> | |
| 1014 | - <yloc>163</yloc> | |
| 1015 | - <draw>Y</draw> | |
| 1016 | - </GUI> | |
| 1017 | - </step> | |
| 1018 | - | |
| 1019 | - <step> | |
| 1020 | - <name>获取excel文件名</name> | |
| 1021 | - <type>GetVariable</type> | |
| 1022 | - <description/> | |
| 1023 | - <distribute>Y</distribute> | |
| 1024 | - <custom_distribution/> | |
| 1025 | - <copies>1</copies> | |
| 1026 | - <partitioning> | |
| 1027 | - <method>none</method> | |
| 1028 | - <schema_name/> | |
| 1029 | - </partitioning> | |
| 1030 | - <fields> | |
| 1031 | - <field> | |
| 1032 | - <name>filepath_</name> | |
| 1033 | - <variable>${filepath}</variable> | |
| 1034 | - <type>String</type> | |
| 1035 | - <format/> | |
| 1036 | - <currency/> | |
| 1037 | - <decimal/> | |
| 1038 | - <group/> | |
| 1039 | - <length>-1</length> | |
| 1040 | - <precision>-1</precision> | |
| 1041 | - <trim_type>none</trim_type> | |
| 1042 | - </field> | |
| 1043 | - <field> | |
| 1044 | - <name>erroroutputdir_</name> | |
| 1045 | - <variable>${erroroutputdir}</variable> | |
| 1046 | - <type>String</type> | |
| 1047 | - <format/> | |
| 1048 | - <currency/> | |
| 1049 | - <decimal/> | |
| 1050 | - <group/> | |
| 1051 | - <length>-1</length> | |
| 1052 | - <precision>-1</precision> | |
| 1053 | - <trim_type>none</trim_type> | |
| 1054 | - </field> | |
| 1055 | - <field> | |
| 1056 | - <name>sheetname_</name> | |
| 1057 | - <variable>${sheetname}</variable> | |
| 1058 | - <type>String</type> | |
| 1059 | - <format/> | |
| 1060 | - <currency/> | |
| 1061 | - <decimal/> | |
| 1062 | - <group/> | |
| 1063 | - <length>-1</length> | |
| 1064 | - <precision>-1</precision> | |
| 1065 | - <trim_type>none</trim_type> | |
| 1066 | - </field> | |
| 1067 | - </fields> | |
| 1068 | - <cluster_schema/> | |
| 1069 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1070 | - <xloc>120</xloc> | |
| 1071 | - <yloc>62</yloc> | |
| 1072 | - <draw>Y</draw> | |
| 1073 | - </GUI> | |
| 1074 | - </step> | |
| 1075 | - | |
| 1076 | - <step> | |
| 1077 | - <name>获取normalize字段名字符串</name> | |
| 1078 | - <type>GetVariable</type> | |
| 1079 | - <description/> | |
| 1080 | - <distribute>Y</distribute> | |
| 1081 | - <custom_distribution/> | |
| 1082 | - <copies>1</copies> | |
| 1083 | - <partitioning> | |
| 1084 | - <method>none</method> | |
| 1085 | - <schema_name/> | |
| 1086 | - </partitioning> | |
| 1087 | - <fields> | |
| 1088 | - <field> | |
| 1089 | - <name>normalizefieldnames_</name> | |
| 1090 | - <variable>${normalizefieldnames}</variable> | |
| 1091 | - <type>String</type> | |
| 1092 | - <format/> | |
| 1093 | - <currency/> | |
| 1094 | - <decimal/> | |
| 1095 | - <group/> | |
| 1096 | - <length>-1</length> | |
| 1097 | - <precision>-1</precision> | |
| 1098 | - <trim_type>none</trim_type> | |
| 1099 | - </field> | |
| 1100 | - </fields> | |
| 1101 | - <cluster_schema/> | |
| 1102 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1103 | - <xloc>80</xloc> | |
| 1104 | - <yloc>261</yloc> | |
| 1105 | - <draw>Y</draw> | |
| 1106 | - </GUI> | |
| 1107 | - </step> | |
| 1108 | - | |
| 1109 | - <step> | |
| 1110 | - <name>获取停车场名称</name> | |
| 1111 | - <type>GetVariable</type> | |
| 1112 | - <description/> | |
| 1113 | - <distribute>Y</distribute> | |
| 1114 | - <custom_distribution/> | |
| 1115 | - <copies>1</copies> | |
| 1116 | - <partitioning> | |
| 1117 | - <method>none</method> | |
| 1118 | - <schema_name/> | |
| 1119 | - </partitioning> | |
| 1120 | - <fields> | |
| 1121 | - <field> | |
| 1122 | - <name>tccname_</name> | |
| 1123 | - <variable>${tccname}</variable> | |
| 1124 | - <type>String</type> | |
| 1125 | - <format/> | |
| 1126 | - <currency/> | |
| 1127 | - <decimal/> | |
| 1128 | - <group/> | |
| 1129 | - <length>-1</length> | |
| 1130 | - <precision>-1</precision> | |
| 1131 | - <trim_type>none</trim_type> | |
| 1132 | - </field> | |
| 1133 | - </fields> | |
| 1134 | - <cluster_schema/> | |
| 1135 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1136 | - <xloc>80</xloc> | |
| 1137 | - <yloc>430</yloc> | |
| 1138 | - <draw>Y</draw> | |
| 1139 | - </GUI> | |
| 1140 | - </step> | |
| 1141 | - | |
| 1142 | - <step> | |
| 1143 | - <name>获取时刻表id</name> | |
| 1144 | - <type>GetVariable</type> | |
| 1145 | - <description/> | |
| 1146 | - <distribute>Y</distribute> | |
| 1147 | - <custom_distribution/> | |
| 1148 | - <copies>1</copies> | |
| 1149 | - <partitioning> | |
| 1150 | - <method>none</method> | |
| 1151 | - <schema_name/> | |
| 1152 | - </partitioning> | |
| 1153 | - <fields> | |
| 1154 | - <field> | |
| 1155 | - <name>ttid_</name> | |
| 1156 | - <variable>${ttid}</variable> | |
| 1157 | - <type>Integer</type> | |
| 1158 | - <format/> | |
| 1159 | - <currency/> | |
| 1160 | - <decimal/> | |
| 1161 | - <group/> | |
| 1162 | - <length>-1</length> | |
| 1163 | - <precision>-1</precision> | |
| 1164 | - <trim_type>none</trim_type> | |
| 1165 | - </field> | |
| 1166 | - </fields> | |
| 1167 | - <cluster_schema/> | |
| 1168 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1169 | - <xloc>427</xloc> | |
| 1170 | - <yloc>26</yloc> | |
| 1171 | - <draw>Y</draw> | |
| 1172 | - </GUI> | |
| 1173 | - </step> | |
| 1174 | - | |
| 1175 | - <step> | |
| 1176 | - <name>获取时刻表名称</name> | |
| 1177 | - <type>GetVariable</type> | |
| 1178 | - <description/> | |
| 1179 | - <distribute>Y</distribute> | |
| 1180 | - <custom_distribution/> | |
| 1181 | - <copies>1</copies> | |
| 1182 | - <partitioning> | |
| 1183 | - <method>none</method> | |
| 1184 | - <schema_name/> | |
| 1185 | - </partitioning> | |
| 1186 | - <fields> | |
| 1187 | - <field> | |
| 1188 | - <name>ttinfoname_</name> | |
| 1189 | - <variable>${ttinfoname}</variable> | |
| 1190 | - <type>String</type> | |
| 1191 | - <format/> | |
| 1192 | - <currency/> | |
| 1193 | - <decimal/> | |
| 1194 | - <group/> | |
| 1195 | - <length>-1</length> | |
| 1196 | - <precision>-1</precision> | |
| 1197 | - <trim_type>none</trim_type> | |
| 1198 | - </field> | |
| 1199 | - </fields> | |
| 1200 | - <cluster_schema/> | |
| 1201 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1202 | - <xloc>82</xloc> | |
| 1203 | - <yloc>508</yloc> | |
| 1204 | - <draw>Y</draw> | |
| 1205 | - </GUI> | |
| 1206 | - </step> | |
| 1207 | - | |
| 1208 | - <step> | |
| 1209 | - <name>获取线路名称</name> | |
| 1210 | - <type>GetVariable</type> | |
| 1211 | - <description/> | |
| 1212 | - <distribute>Y</distribute> | |
| 1213 | - <custom_distribution/> | |
| 1214 | - <copies>1</copies> | |
| 1215 | - <partitioning> | |
| 1216 | - <method>none</method> | |
| 1217 | - <schema_name/> | |
| 1218 | - </partitioning> | |
| 1219 | - <fields> | |
| 1220 | - <field> | |
| 1221 | - <name>xlname_</name> | |
| 1222 | - <variable>${xlname}</variable> | |
| 1223 | - <type>String</type> | |
| 1224 | - <format/> | |
| 1225 | - <currency/> | |
| 1226 | - <decimal/> | |
| 1227 | - <group/> | |
| 1228 | - <length>-1</length> | |
| 1229 | - <precision>-1</precision> | |
| 1230 | - <trim_type>none</trim_type> | |
| 1231 | - </field> | |
| 1232 | - </fields> | |
| 1233 | - <cluster_schema/> | |
| 1234 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1235 | - <xloc>78</xloc> | |
| 1236 | - <yloc>351</yloc> | |
| 1237 | - <draw>Y</draw> | |
| 1238 | - </GUI> | |
| 1239 | - </step> | |
| 1240 | - | |
| 1241 | - <step> | |
| 1242 | - <name>逗号切分成字段名</name> | |
| 1243 | - <type>SplitFieldToRows3</type> | |
| 1244 | - <description/> | |
| 1245 | - <distribute>Y</distribute> | |
| 1246 | - <custom_distribution/> | |
| 1247 | - <copies>1</copies> | |
| 1248 | - <partitioning> | |
| 1249 | - <method>none</method> | |
| 1250 | - <schema_name/> | |
| 1251 | - </partitioning> | |
| 1252 | - <splitfield>fieldnames</splitfield> | |
| 1253 | - <delimiter>,</delimiter> | |
| 1254 | - <newfield>fieldname</newfield> | |
| 1255 | - <rownum>N</rownum> | |
| 1256 | - <rownum_field/> | |
| 1257 | - <resetrownumber>Y</resetrownumber> | |
| 1258 | - <delimiter_is_regex>N</delimiter_is_regex> | |
| 1259 | - <cluster_schema/> | |
| 1260 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1261 | - <xloc>261</xloc> | |
| 1262 | - <yloc>163</yloc> | |
| 1263 | - <draw>Y</draw> | |
| 1264 | - </GUI> | |
| 1265 | - </step> | |
| 1266 | - | |
| 1267 | - <step> | |
| 1268 | - <name>逗号切分成字段名 2</name> | |
| 1269 | - <type>SplitFieldToRows3</type> | |
| 1270 | - <description/> | |
| 1271 | - <distribute>Y</distribute> | |
| 1272 | - <custom_distribution/> | |
| 1273 | - <copies>1</copies> | |
| 1274 | - <partitioning> | |
| 1275 | - <method>none</method> | |
| 1276 | - <schema_name/> | |
| 1277 | - </partitioning> | |
| 1278 | - <splitfield>normalizefieldnames_</splitfield> | |
| 1279 | - <delimiter>,</delimiter> | |
| 1280 | - <newfield>nfieldname</newfield> | |
| 1281 | - <rownum>N</rownum> | |
| 1282 | - <rownum_field/> | |
| 1283 | - <resetrownumber>Y</resetrownumber> | |
| 1284 | - <delimiter_is_regex>N</delimiter_is_regex> | |
| 1285 | - <cluster_schema/> | |
| 1286 | - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1287 | - <xloc>263</xloc> | |
| 1288 | - <yloc>257</yloc> | |
| 1289 | - <draw>Y</draw> | |
| 1290 | - </GUI> | |
| 1291 | - </step> | |
| 1292 | - | |
| 1293 | - <step_error_handling> | |
| 1294 | - </step_error_handling> | |
| 1295 | - <slave-step-copy-partition-distribution> | |
| 1296 | -</slave-step-copy-partition-distribution> | |
| 1297 | - <slave_transformation>N</slave_transformation> | |
| 1298 | - | |
| 1299 | -</transformation> | |
| 1 | +<?xml version="1.0" encoding="UTF-8"?> | |
| 2 | +<transformation> | |
| 3 | + <info> | |
| 4 | + <name>时刻表明细导入元数据</name> | |
| 5 | + <description/> | |
| 6 | + <extended_description/> | |
| 7 | + <trans_version/> | |
| 8 | + <trans_type>Normal</trans_type> | |
| 9 | + <trans_status>0</trans_status> | |
| 10 | + <directory>/</directory> | |
| 11 | + <parameters> | |
| 12 | + <parameter> | |
| 13 | + <name>erroroutputdir</name> | |
| 14 | + <default_value>/Users/xu/resource/project_code/runtime_temp/bsth_control_u_d_files/erroroutput</default_value> | |
| 15 | + <description>ktr step配置的错误输出目录</description> | |
| 16 | + </parameter> | |
| 17 | + <parameter> | |
| 18 | + <name>excelfieldnames</name> | |
| 19 | + <default_value>路牌,出场,东川路地铁站1,塘泾路尚义路1,东川路地铁站2,塘泾路尚义路2,东川路地铁站3,塘泾路尚义路3,东川路地铁站4,塘泾路尚义路4,东川路地铁站5,塘泾路尚义路5,东川路地铁站6,塘泾路尚义路6,东川路地铁站7,塘泾路尚义路7,东川路地铁站8,塘泾路尚义路8,东川路地铁站9,塘泾路尚义路9,东川路地铁站10,塘泾路尚义路10,进场</default_value> | |
| 20 | + <description>时刻表excel输入字段名,以逗号连接</description> | |
| 21 | + </parameter> | |
| 22 | + <parameter> | |
| 23 | + <name>filepath</name> | |
| 24 | + <default_value>/Users/xu/resource/project_code/bsth_project/bsth_control_etl/闵行公交/闵行26路时刻表160630时刻表.xls</default_value> | |
| 25 | + <description>待处理导入的excel文件</description> | |
| 26 | + </parameter> | |
| 27 | + <parameter> | |
| 28 | + <name>injectktrfile</name> | |
| 29 | + <default_value>/Users/xu/resource/project_code/bsth_project/bsth_control/src/main/resources/datatools/ktrs/ttinfodetailDataInput.ktr</default_value> | |
| 30 | + <description>注入元数据的ktr文件</description> | |
| 31 | + </parameter> | |
| 32 | + <parameter> | |
| 33 | + <name>lineinfoid</name> | |
| 34 | + <default_value>1000</default_value> | |
| 35 | + <description>线路标准id</description> | |
| 36 | + </parameter> | |
| 37 | + <parameter> | |
| 38 | + <name>normalizefieldnames</name> | |
| 39 | + <default_value>出场,东川路地铁站1,塘泾路尚义路1,东川路地铁站2,塘泾路尚义路2,东川路地铁站3,塘泾路尚义路3,东川路地铁站4,塘泾路尚义路4,东川路地铁站5,塘泾路尚义路5,东川路地铁站6,塘泾路尚义路6,东川路地铁站7,塘泾路尚义路7,东川路地铁站8,塘泾路尚义路8,东川路地铁站9,塘泾路尚义路9,东川路地铁站10,塘泾路尚义路10,进场</default_value> | |
| 40 | + <description>数据范式化字段名,以逗号连接</description> | |
| 41 | + </parameter> | |
| 42 | + <parameter> | |
| 43 | + <name>sheetname</name> | |
| 44 | + <default_value>工作表1</default_value> | |
| 45 | + <description>xls sheet名字</description> | |
| 46 | + </parameter> | |
| 47 | + <parameter> | |
| 48 | + <name>tccname</name> | |
| 49 | + <default_value>东川路地铁站停车场</default_value> | |
| 50 | + <description>停车场名字</description> | |
| 51 | + </parameter> | |
| 52 | + <parameter> | |
| 53 | + <name>ttid</name> | |
| 54 | + <default_value>1</default_value> | |
| 55 | + <description>时刻表id</description> | |
| 56 | + </parameter> | |
| 57 | + <parameter> | |
| 58 | + <name>ttinfoname</name> | |
| 59 | + <default_value>表2</default_value> | |
| 60 | + <description>时刻表名称</description> | |
| 61 | + </parameter> | |
| 62 | + <parameter> | |
| 63 | + <name>xlname</name> | |
| 64 | + <default_value>闵行26路</default_value> | |
| 65 | + <description>线路名称</description> | |
| 66 | + </parameter> | |
| 67 | + </parameters> | |
| 68 | + <log> | |
| 69 | +<trans-log-table><connection/> | |
| 70 | +<schema/> | |
| 71 | +<table/> | |
| 72 | +<size_limit_lines/> | |
| 73 | +<interval/> | |
| 74 | +<timeout_days/> | |
| 75 | +<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> | |
| 76 | +<perf-log-table><connection/> | |
| 77 | +<schema/> | |
| 78 | +<table/> | |
| 79 | +<interval/> | |
| 80 | +<timeout_days/> | |
| 81 | +<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> | |
| 82 | +<channel-log-table><connection/> | |
| 83 | +<schema/> | |
| 84 | +<table/> | |
| 85 | +<timeout_days/> | |
| 86 | +<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> | |
| 87 | +<step-log-table><connection/> | |
| 88 | +<schema/> | |
| 89 | +<table/> | |
| 90 | +<timeout_days/> | |
| 91 | +<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> | |
| 92 | +<metrics-log-table><connection/> | |
| 93 | +<schema/> | |
| 94 | +<table/> | |
| 95 | +<timeout_days/> | |
| 96 | +<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> | |
| 97 | + </log> | |
| 98 | + <maxdate> | |
| 99 | + <connection/> | |
| 100 | + <table/> | |
| 101 | + <field/> | |
| 102 | + <offset>0.0</offset> | |
| 103 | + <maxdiff>0.0</maxdiff> | |
| 104 | + </maxdate> | |
| 105 | + <size_rowset>10000</size_rowset> | |
| 106 | + <sleep_time_empty>50</sleep_time_empty> | |
| 107 | + <sleep_time_full>50</sleep_time_full> | |
| 108 | + <unique_connections>N</unique_connections> | |
| 109 | + <feedback_shown>Y</feedback_shown> | |
| 110 | + <feedback_size>50000</feedback_size> | |
| 111 | + <using_thread_priorities>Y</using_thread_priorities> | |
| 112 | + <shared_objects_file/> | |
| 113 | + <capture_step_performance>N</capture_step_performance> | |
| 114 | + <step_performance_capturing_delay>1000</step_performance_capturing_delay> | |
| 115 | + <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit> | |
| 116 | + <dependencies> | |
| 117 | + </dependencies> | |
| 118 | + <partitionschemas> | |
| 119 | + </partitionschemas> | |
| 120 | + <slaveservers> | |
| 121 | + </slaveservers> | |
| 122 | + <clusterschemas> | |
| 123 | + </clusterschemas> | |
| 124 | + <created_user>-</created_user> | |
| 125 | + <created_date>2016/07/01 09:55:32.649</created_date> | |
| 126 | + <modified_user>-</modified_user> | |
| 127 | + <modified_date>2016/07/01 09:55:32.649</modified_date> | |
| 128 | + <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key> | |
| 129 | + <is_key_private>N</is_key_private> | |
| 130 | + </info> | |
| 131 | + <notepads> | |
| 132 | + </notepads> | |
| 133 | + <connection> | |
| 134 | + <name>192.168.168.1_jwgl_dw</name> | |
| 135 | + <server>192.168.168.1</server> | |
| 136 | + <type>ORACLE</type> | |
| 137 | + <access>Native</access> | |
| 138 | + <database>orcl</database> | |
| 139 | + <port>1521</port> | |
| 140 | + <username>jwgl_dw</username> | |
| 141 | + <password>Encrypted 2be98afc86aa7f2e4cb13b977d2adabcd</password> | |
| 142 | + <servername/> | |
| 143 | + <data_tablespace/> | |
| 144 | + <index_tablespace/> | |
| 145 | + <attributes> | |
| 146 | + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 147 | + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 148 | + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 149 | + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute> | |
| 150 | + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 151 | + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 152 | + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 153 | + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 154 | + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 155 | + </attributes> | |
| 156 | + </connection> | |
| 157 | + <connection> | |
| 158 | + <name>bus_control_variable</name> | |
| 159 | + <server>${v_db_ip}</server> | |
| 160 | + <type>MYSQL</type> | |
| 161 | + <access>Native</access> | |
| 162 | + <database>${v_db_dname}</database> | |
| 163 | + <port>3306</port> | |
| 164 | + <username>${v_db_uname}</username> | |
| 165 | + <password>${v_db_pwd}</password> | |
| 166 | + <servername/> | |
| 167 | + <data_tablespace/> | |
| 168 | + <index_tablespace/> | |
| 169 | + <attributes> | |
| 170 | + <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute> | |
| 171 | + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 172 | + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 173 | + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 174 | + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 175 | + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 176 | + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute> | |
| 177 | + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 178 | + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 179 | + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute> | |
| 180 | + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 181 | + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 182 | + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 183 | + </attributes> | |
| 184 | + </connection> | |
| 185 | + <connection> | |
| 186 | + <name>bus_control_公司_201</name> | |
| 187 | + <server>localhost</server> | |
| 188 | + <type>MYSQL</type> | |
| 189 | + <access>Native</access> | |
| 190 | + <database>control</database> | |
| 191 | + <port>3306</port> | |
| 192 | + <username>root</username> | |
| 193 | + <password>Encrypted </password> | |
| 194 | + <servername/> | |
| 195 | + <data_tablespace/> | |
| 196 | + <index_tablespace/> | |
| 197 | + <attributes> | |
| 198 | + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 199 | + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 200 | + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 201 | + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 202 | + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 203 | + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute> | |
| 204 | + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 205 | + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 206 | + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute> | |
| 207 | + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 208 | + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 209 | + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 210 | + </attributes> | |
| 211 | + </connection> | |
| 212 | + <connection> | |
| 213 | + <name>bus_control_本机</name> | |
| 214 | + <server>localhost</server> | |
| 215 | + <type>MYSQL</type> | |
| 216 | + <access>Native</access> | |
| 217 | + <database>control</database> | |
| 218 | + <port>3306</port> | |
| 219 | + <username>root</username> | |
| 220 | + <password>Encrypted </password> | |
| 221 | + <servername/> | |
| 222 | + <data_tablespace/> | |
| 223 | + <index_tablespace/> | |
| 224 | + <attributes> | |
| 225 | + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 226 | + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 227 | + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 228 | + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 229 | + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 230 | + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute> | |
| 231 | + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 232 | + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 233 | + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute> | |
| 234 | + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 235 | + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 236 | + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 237 | + </attributes> | |
| 238 | + </connection> | |
| 239 | + <connection> | |
| 240 | + <name>xlab_mysql_youle</name> | |
| 241 | + <server>101.231.124.8</server> | |
| 242 | + <type>MYSQL</type> | |
| 243 | + <access>Native</access> | |
| 244 | + <database>xlab_youle</database> | |
| 245 | + <port>45687</port> | |
| 246 | + <username>xlab-youle</username> | |
| 247 | + <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password> | |
| 248 | + <servername/> | |
| 249 | + <data_tablespace/> | |
| 250 | + <index_tablespace/> | |
| 251 | + <attributes> | |
| 252 | + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 253 | + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 254 | + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 255 | + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 256 | + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 257 | + <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute> | |
| 258 | + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 259 | + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 260 | + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute> | |
| 261 | + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute> | |
| 262 | + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute> | |
| 263 | + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 264 | + </attributes> | |
| 265 | + </connection> | |
| 266 | + <connection> | |
| 267 | + <name>xlab_mysql_youle(本机)</name> | |
| 268 | + <server>localhost</server> | |
| 269 | + <type>MYSQL</type> | |
| 270 | + <access>Native</access> | |
| 271 | + <database>xlab_youle</database> | |
| 272 | + <port>3306</port> | |
| 273 | + <username>root</username> | |
| 274 | + <password>Encrypted </password> | |
| 275 | + <servername/> | |
| 276 | + <data_tablespace/> | |
| 277 | + <index_tablespace/> | |
| 278 | + <attributes> | |
| 279 | + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute> | |
| 280 | + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute> | |
| 281 | + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 282 | + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 283 | + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 284 | + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute> | |
| 285 | + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 286 | + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 287 | + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute> | |
| 288 | + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute> | |
| 289 | + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute> | |
| 290 | + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 291 | + </attributes> | |
| 292 | + </connection> | |
| 293 | + <connection> | |
| 294 | + <name>xlab_youle</name> | |
| 295 | + <server/> | |
| 296 | + <type>MYSQL</type> | |
| 297 | + <access>JNDI</access> | |
| 298 | + <database>xlab_youle</database> | |
| 299 | + <port>1521</port> | |
| 300 | + <username/> | |
| 301 | + <password>Encrypted </password> | |
| 302 | + <servername/> | |
| 303 | + <data_tablespace/> | |
| 304 | + <index_tablespace/> | |
| 305 | + <attributes> | |
| 306 | + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute> | |
| 307 | + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute> | |
| 308 | + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute> | |
| 309 | + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute> | |
| 310 | + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute> | |
| 311 | + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute> | |
| 312 | + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute> | |
| 313 | + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 314 | + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute> | |
| 315 | + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute> | |
| 316 | + </attributes> | |
| 317 | + </connection> | |
| 318 | + <order> | |
| 319 | + <hop> <from>获取excel文件名</from><to>ETL元数据注入</to><enabled>Y</enabled> </hop> | |
| 320 | + <hop> <from>获取excel字段名字符串</from><to>逗号切分成字段名</to><enabled>Y</enabled> </hop> | |
| 321 | + <hop> <from>逗号切分成字段名</from><to>增加excel字段其他元数据</to><enabled>Y</enabled> </hop> | |
| 322 | + <hop> <from>增加excel字段其他元数据</from><to>ETL元数据注入</to><enabled>Y</enabled> </hop> | |
| 323 | + <hop> <from>获取normalize字段名字符串</from><to>逗号切分成字段名 2</to><enabled>Y</enabled> </hop> | |
| 324 | + <hop> <from>逗号切分成字段名 2</from><to>增加normalize元数据</to><enabled>Y</enabled> </hop> | |
| 325 | + <hop> <from>增加normalize元数据</from><to>ETL元数据注入</to><enabled>Y</enabled> </hop> | |
| 326 | + <hop> <from>获取线路名称</from><to>增加线路名称metadata</to><enabled>Y</enabled> </hop> | |
| 327 | + <hop> <from>增加线路名称metadata</from><to>替换线路名称</to><enabled>Y</enabled> </hop> | |
| 328 | + <hop> <from>替换线路名称</from><to>线路名称metadata字段</to><enabled>Y</enabled> </hop> | |
| 329 | + <hop> <from>增加停车场名称metadata</from><to>替换停车厂名字 </to><enabled>Y</enabled> </hop> | |
| 330 | + <hop> <from>替换停车厂名字 </from><to>停车场名称metadata字段</to><enabled>Y</enabled> </hop> | |
| 331 | + <hop> <from>获取时刻表名称</from><to>增加时刻表名称metadata</to><enabled>Y</enabled> </hop> | |
| 332 | + <hop> <from>增加时刻表名称metadata</from><to>替换时刻表名字</to><enabled>Y</enabled> </hop> | |
| 333 | + <hop> <from>替换时刻表名字</from><to>时刻表名称metadata字段</to><enabled>Y</enabled> </hop> | |
| 334 | + <hop> <from>线路名称metadata字段</from><to>合并增加常量数据metadata</to><enabled>Y</enabled> </hop> | |
| 335 | + <hop> <from>停车场名称metadata字段</from><to>合并增加常量数据metadata</to><enabled>Y</enabled> </hop> | |
| 336 | + <hop> <from>时刻表名称metadata字段</from><to>合并增加常量数据metadata</to><enabled>Y</enabled> </hop> | |
| 337 | + <hop> <from>合并增加常量数据metadata</from><to>ETL元数据注入</to><enabled>Y</enabled> </hop> | |
| 338 | + <hop> <from>获取时刻表id</from><to>删除之前的明细信息</to><enabled>Y</enabled> </hop> | |
| 339 | + <hop> <from>获取线路标准id</from><to>停车场编码</to><enabled>Y</enabled> </hop> | |
| 340 | + <hop> <from>停车场编码</from><to>停车场名称</to><enabled>Y</enabled> </hop> | |
| 341 | + <hop> <from>停车场名称</from><to>增加停车场名称metadata</to><enabled>Y</enabled> </hop> | |
| 342 | + </order> | |
| 343 | + <step> | |
| 344 | + <name>ETL元数据注入</name> | |
| 345 | + <type>MetaInject</type> | |
| 346 | + <description/> | |
| 347 | + <distribute>Y</distribute> | |
| 348 | + <custom_distribution/> | |
| 349 | + <copies>1</copies> | |
| 350 | + <partitioning> | |
| 351 | + <method>none</method> | |
| 352 | + <schema_name/> | |
| 353 | + </partitioning> | |
| 354 | + <specification_method>filename</specification_method> | |
| 355 | + <trans_object_id/> | |
| 356 | + <trans_name/> | |
| 357 | + <filename>${injectktrfile}</filename> | |
| 358 | + <directory_path/> | |
| 359 | + <source_step/> | |
| 360 | + <source_output_fields> </source_output_fields> <target_file/> | |
| 361 | + <no_execution>N</no_execution> | |
| 362 | + <stream_source_step/> | |
| 363 | + <stream_target_step/> | |
| 364 | + <mappings> <mapping> <target_step_name>Excel输入</target_step_name> | |
| 365 | + <target_attribute_key>FORMAT</target_attribute_key> | |
| 366 | + <target_detail>Y</target_detail> | |
| 367 | + <source_step>列拆分为多行</source_step> | |
| 368 | + <source_field>format</source_field> | |
| 369 | + </mapping> <mapping> <target_step_name>Excel输入</target_step_name> | |
| 370 | + <target_attribute_key>REPEAT</target_attribute_key> | |
| 371 | + <target_detail>Y</target_detail> | |
| 372 | + <source_step>列拆分为多行</source_step> | |
| 373 | + <source_field>repeat</source_field> | |
| 374 | + </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | |
| 375 | + <target_attribute_key>TRIM_TYPE</target_attribute_key> | |
| 376 | + <target_detail>Y</target_detail> | |
| 377 | + <source_step>增加excel字段其他元数据</source_step> | |
| 378 | + <source_field>trim_type</source_field> | |
| 379 | + </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | |
| 380 | + <target_attribute_key>FILENAME</target_attribute_key> | |
| 381 | + <target_detail>Y</target_detail> | |
| 382 | + <source_step>获取excel文件名</source_step> | |
| 383 | + <source_field>filepath_</source_field> | |
| 384 | + </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | |
| 385 | + <target_attribute_key>PRECISION</target_attribute_key> | |
| 386 | + <target_detail>Y</target_detail> | |
| 387 | + <source_step>增加excel字段其他元数据</source_step> | |
| 388 | + <source_field>precision</source_field> | |
| 389 | + </mapping> <mapping> <target_step_name>Excel输入</target_step_name> | |
| 390 | + <target_attribute_key>TYPE</target_attribute_key> | |
| 391 | + <target_detail>Y</target_detail> | |
| 392 | + <source_step>列拆分为多行</source_step> | |
| 393 | + <source_field>type</source_field> | |
| 394 | + </mapping> <mapping> <target_step_name>增加时刻表名字,线路名字,停车场名字</target_step_name> | |
| 395 | + <target_attribute_key>DATA_VALUE</target_attribute_key> | |
| 396 | + <target_detail>Y</target_detail> | |
| 397 | + <source_step>合并增加常量数据metadata</source_step> | |
| 398 | + <source_field>col_value</source_field> | |
| 399 | + </mapping> <mapping> <target_step_name>Excel输入</target_step_name> | |
| 400 | + <target_attribute_key>LENGTH</target_attribute_key> | |
| 401 | + <target_detail>Y</target_detail> | |
| 402 | + <source_step>列拆分为多行</source_step> | |
| 403 | + <source_field>length</source_field> | |
| 404 | + </mapping> <mapping> <target_step_name>增加时刻表名字,线路名字,停车场名字</target_step_name> | |
| 405 | + <target_attribute_key>TYPE</target_attribute_key> | |
| 406 | + <target_detail>Y</target_detail> | |
| 407 | + <source_step>合并增加常量数据metadata</source_step> | |
| 408 | + <source_field>col_type</source_field> | |
| 409 | + </mapping> <mapping> <target_step_name>行转列</target_step_name> | |
| 410 | + <target_attribute_key>NAME</target_attribute_key> | |
| 411 | + <target_detail>Y</target_detail> | |
| 412 | + <source_step>列拆分为多行 2</source_step> | |
| 413 | + <source_field>fieldName</source_field> | |
| 414 | + </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | |
| 415 | + <target_attribute_key>NAME</target_attribute_key> | |
| 416 | + <target_detail>Y</target_detail> | |
| 417 | + <source_step>增加excel字段其他元数据</source_step> | |
| 418 | + <source_field>fieldname</source_field> | |
| 419 | + </mapping> <mapping> <target_step_name>班次数据范式化</target_step_name> | |
| 420 | + <target_attribute_key>NAME</target_attribute_key> | |
| 421 | + <target_detail>Y</target_detail> | |
| 422 | + <source_step>增加normalize元数据</source_step> | |
| 423 | + <source_field>nfieldname</source_field> | |
| 424 | + </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | |
| 425 | + <target_attribute_key>LENGTH</target_attribute_key> | |
| 426 | + <target_detail>Y</target_detail> | |
| 427 | + <source_step>增加excel字段其他元数据</source_step> | |
| 428 | + <source_field>length</source_field> | |
| 429 | + </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | |
| 430 | + <target_attribute_key>SHEET_NAME</target_attribute_key> | |
| 431 | + <target_detail>Y</target_detail> | |
| 432 | + <source_step>获取excel文件名</source_step> | |
| 433 | + <source_field>sheetname_</source_field> | |
| 434 | + </mapping> <mapping> <target_step_name>增加时刻表名字,线路名字,停车场名字</target_step_name> | |
| 435 | + <target_attribute_key>NAME</target_attribute_key> | |
| 436 | + <target_detail>Y</target_detail> | |
| 437 | + <source_step>合并增加常量数据metadata</source_step> | |
| 438 | + <source_field>col_name</source_field> | |
| 439 | + </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | |
| 440 | + <target_attribute_key>TYPE</target_attribute_key> | |
| 441 | + <target_detail>Y</target_detail> | |
| 442 | + <source_step>增加excel字段其他元数据</source_step> | |
| 443 | + <source_field>fieldtype</source_field> | |
| 444 | + </mapping> <mapping> <target_step_name>Excel输入</target_step_name> | |
| 445 | + <target_attribute_key>NAME</target_attribute_key> | |
| 446 | + <target_detail>Y</target_detail> | |
| 447 | + <source_step>列拆分为多行</source_step> | |
| 448 | + <source_field>fieldName</source_field> | |
| 449 | + </mapping> <mapping> <target_step_name>行转列</target_step_name> | |
| 450 | + <target_attribute_key>VALUE</target_attribute_key> | |
| 451 | + <target_detail>Y</target_detail> | |
| 452 | + <source_step>列拆分为多行 2</source_step> | |
| 453 | + <source_field>fieldName</source_field> | |
| 454 | + </mapping> <mapping> <target_step_name>Excel输入</target_step_name> | |
| 455 | + <target_attribute_key>TRIM_TYPE</target_attribute_key> | |
| 456 | + <target_detail>Y</target_detail> | |
| 457 | + <source_step>列拆分为多行</source_step> | |
| 458 | + <source_field>trim_type</source_field> | |
| 459 | + </mapping> <mapping> <target_step_name>行转列</target_step_name> | |
| 460 | + <target_attribute_key>NORMALISED</target_attribute_key> | |
| 461 | + <target_detail>Y</target_detail> | |
| 462 | + <source_step>列拆分为多行 2</source_step> | |
| 463 | + <source_field>value</source_field> | |
| 464 | + </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | |
| 465 | + <target_attribute_key>REPEAT</target_attribute_key> | |
| 466 | + <target_detail>Y</target_detail> | |
| 467 | + <source_step>增加excel字段其他元数据</source_step> | |
| 468 | + <source_field>repeat</source_field> | |
| 469 | + </mapping> <mapping> <target_step_name>班次数据范式化</target_step_name> | |
| 470 | + <target_attribute_key>NORMALISED</target_attribute_key> | |
| 471 | + <target_detail>Y</target_detail> | |
| 472 | + <source_step>增加normalize元数据</source_step> | |
| 473 | + <source_field>valuefield</source_field> | |
| 474 | + </mapping> <mapping> <target_step_name>班次数据范式化</target_step_name> | |
| 475 | + <target_attribute_key>VALUE</target_attribute_key> | |
| 476 | + <target_detail>Y</target_detail> | |
| 477 | + <source_step>增加normalize元数据</source_step> | |
| 478 | + <source_field>nfieldname</source_field> | |
| 479 | + </mapping> <mapping> <target_step_name>时刻表明细信息Excel输入</target_step_name> | |
| 480 | + <target_attribute_key>FORMAT</target_attribute_key> | |
| 481 | + <target_detail>Y</target_detail> | |
| 482 | + <source_step>增加excel字段其他元数据</source_step> | |
| 483 | + <source_field>format</source_field> | |
| 484 | + </mapping> <mapping> <target_step_name>Excel输入</target_step_name> | |
| 485 | + <target_attribute_key>PRECISION</target_attribute_key> | |
| 486 | + <target_detail>Y</target_detail> | |
| 487 | + <source_step>列拆分为多行</source_step> | |
| 488 | + <source_field>precision</source_field> | |
| 489 | + </mapping> </mappings> <cluster_schema/> | |
| 490 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 491 | + <xloc>876</xloc> | |
| 492 | + <yloc>167</yloc> | |
| 493 | + <draw>Y</draw> | |
| 494 | + </GUI> | |
| 495 | + </step> | |
| 496 | + | |
| 497 | + <step> | |
| 498 | + <name>停车场名称metadata字段</name> | |
| 499 | + <type>SelectValues</type> | |
| 500 | + <description/> | |
| 501 | + <distribute>Y</distribute> | |
| 502 | + <custom_distribution/> | |
| 503 | + <copies>1</copies> | |
| 504 | + <partitioning> | |
| 505 | + <method>none</method> | |
| 506 | + <schema_name/> | |
| 507 | + </partitioning> | |
| 508 | + <fields> <field> <name>col_name</name> | |
| 509 | + <rename/> | |
| 510 | + <length>-2</length> | |
| 511 | + <precision>-2</precision> | |
| 512 | + </field> <field> <name>col_type</name> | |
| 513 | + <rename/> | |
| 514 | + <length>-2</length> | |
| 515 | + <precision>-2</precision> | |
| 516 | + </field> <field> <name>col_value</name> | |
| 517 | + <rename/> | |
| 518 | + <length>-2</length> | |
| 519 | + <precision>-2</precision> | |
| 520 | + </field> <select_unspecified>N</select_unspecified> | |
| 521 | + </fields> <cluster_schema/> | |
| 522 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 523 | + <xloc>743</xloc> | |
| 524 | + <yloc>470</yloc> | |
| 525 | + <draw>Y</draw> | |
| 526 | + </GUI> | |
| 527 | + </step> | |
| 528 | + | |
| 529 | + <step> | |
| 530 | + <name>删除之前的明细信息</name> | |
| 531 | + <type>ExecSQL</type> | |
| 532 | + <description/> | |
| 533 | + <distribute>Y</distribute> | |
| 534 | + <custom_distribution/> | |
| 535 | + <copies>1</copies> | |
| 536 | + <partitioning> | |
| 537 | + <method>none</method> | |
| 538 | + <schema_name/> | |
| 539 | + </partitioning> | |
| 540 | + <connection>bus_control_variable</connection> | |
| 541 | + <execute_each_row>Y</execute_each_row> | |
| 542 | + <single_statement>N</single_statement> | |
| 543 | + <replace_variables>N</replace_variables> | |
| 544 | + <quoteString>N</quoteString> | |
| 545 | + <sql>delete from bsth_c_s_ttinfo_detail where ttinfo = ?</sql> | |
| 546 | + <set_params>N</set_params> | |
| 547 | + <insert_field/> | |
| 548 | + <update_field/> | |
| 549 | + <delete_field/> | |
| 550 | + <read_field/> | |
| 551 | + <arguments> | |
| 552 | + <argument><name>ttid_</name></argument> | |
| 553 | + </arguments> | |
| 554 | + <cluster_schema/> | |
| 555 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 556 | + <xloc>808</xloc> | |
| 557 | + <yloc>16</yloc> | |
| 558 | + <draw>Y</draw> | |
| 559 | + </GUI> | |
| 560 | + </step> | |
| 561 | + | |
| 562 | + <step> | |
| 563 | + <name>合并增加常量数据metadata</name> | |
| 564 | + <type>Dummy</type> | |
| 565 | + <description/> | |
| 566 | + <distribute>Y</distribute> | |
| 567 | + <custom_distribution/> | |
| 568 | + <copies>1</copies> | |
| 569 | + <partitioning> | |
| 570 | + <method>none</method> | |
| 571 | + <schema_name/> | |
| 572 | + </partitioning> | |
| 573 | + <cluster_schema/> | |
| 574 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 575 | + <xloc>883</xloc> | |
| 576 | + <yloc>373</yloc> | |
| 577 | + <draw>Y</draw> | |
| 578 | + </GUI> | |
| 579 | + </step> | |
| 580 | + | |
| 581 | + <step> | |
| 582 | + <name>增加excel字段其他元数据</name> | |
| 583 | + <type>Constant</type> | |
| 584 | + <description/> | |
| 585 | + <distribute>Y</distribute> | |
| 586 | + <custom_distribution/> | |
| 587 | + <copies>1</copies> | |
| 588 | + <partitioning> | |
| 589 | + <method>none</method> | |
| 590 | + <schema_name/> | |
| 591 | + </partitioning> | |
| 592 | + <fields> | |
| 593 | + <field> | |
| 594 | + <name>fieldtype</name> | |
| 595 | + <type>String</type> | |
| 596 | + <format/> | |
| 597 | + <currency/> | |
| 598 | + <decimal/> | |
| 599 | + <group/> | |
| 600 | + <nullif>String</nullif> | |
| 601 | + <length>-1</length> | |
| 602 | + <precision>-1</precision> | |
| 603 | + <set_empty_string>N</set_empty_string> | |
| 604 | + </field> | |
| 605 | + <field> | |
| 606 | + <name>length</name> | |
| 607 | + <type>String</type> | |
| 608 | + <format/> | |
| 609 | + <currency/> | |
| 610 | + <decimal/> | |
| 611 | + <group/> | |
| 612 | + <nullif>-1</nullif> | |
| 613 | + <length>-1</length> | |
| 614 | + <precision>-1</precision> | |
| 615 | + <set_empty_string>N</set_empty_string> | |
| 616 | + </field> | |
| 617 | + <field> | |
| 618 | + <name>precision</name> | |
| 619 | + <type>String</type> | |
| 620 | + <format/> | |
| 621 | + <currency/> | |
| 622 | + <decimal/> | |
| 623 | + <group/> | |
| 624 | + <nullif>-1</nullif> | |
| 625 | + <length>-1</length> | |
| 626 | + <precision>-1</precision> | |
| 627 | + <set_empty_string>N</set_empty_string> | |
| 628 | + </field> | |
| 629 | + <field> | |
| 630 | + <name>trim_type</name> | |
| 631 | + <type>String</type> | |
| 632 | + <format/> | |
| 633 | + <currency/> | |
| 634 | + <decimal/> | |
| 635 | + <group/> | |
| 636 | + <nullif>none</nullif> | |
| 637 | + <length>-1</length> | |
| 638 | + <precision>-1</precision> | |
| 639 | + <set_empty_string>N</set_empty_string> | |
| 640 | + </field> | |
| 641 | + <field> | |
| 642 | + <name>repeat</name> | |
| 643 | + <type>String</type> | |
| 644 | + <format/> | |
| 645 | + <currency/> | |
| 646 | + <decimal/> | |
| 647 | + <group/> | |
| 648 | + <nullif>N</nullif> | |
| 649 | + <length>-1</length> | |
| 650 | + <precision>-1</precision> | |
| 651 | + <set_empty_string>N</set_empty_string> | |
| 652 | + </field> | |
| 653 | + <field> | |
| 654 | + <name>format</name> | |
| 655 | + <type>String</type> | |
| 656 | + <format/> | |
| 657 | + <currency/> | |
| 658 | + <decimal/> | |
| 659 | + <group/> | |
| 660 | + <nullif>#</nullif> | |
| 661 | + <length>-1</length> | |
| 662 | + <precision>-1</precision> | |
| 663 | + <set_empty_string>N</set_empty_string> | |
| 664 | + </field> | |
| 665 | + </fields> | |
| 666 | + <cluster_schema/> | |
| 667 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 668 | + <xloc>622</xloc> | |
| 669 | + <yloc>162</yloc> | |
| 670 | + <draw>Y</draw> | |
| 671 | + </GUI> | |
| 672 | + </step> | |
| 673 | + | |
| 674 | + <step> | |
| 675 | + <name>增加normalize元数据</name> | |
| 676 | + <type>Constant</type> | |
| 677 | + <description/> | |
| 678 | + <distribute>Y</distribute> | |
| 679 | + <custom_distribution/> | |
| 680 | + <copies>1</copies> | |
| 681 | + <partitioning> | |
| 682 | + <method>none</method> | |
| 683 | + <schema_name/> | |
| 684 | + </partitioning> | |
| 685 | + <fields> | |
| 686 | + <field> | |
| 687 | + <name>valuefield</name> | |
| 688 | + <type>String</type> | |
| 689 | + <format/> | |
| 690 | + <currency/> | |
| 691 | + <decimal/> | |
| 692 | + <group/> | |
| 693 | + <nullif>发车时间</nullif> | |
| 694 | + <length>-1</length> | |
| 695 | + <precision>-1</precision> | |
| 696 | + <set_empty_string>N</set_empty_string> | |
| 697 | + </field> | |
| 698 | + </fields> | |
| 699 | + <cluster_schema/> | |
| 700 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 701 | + <xloc>628</xloc> | |
| 702 | + <yloc>247</yloc> | |
| 703 | + <draw>Y</draw> | |
| 704 | + </GUI> | |
| 705 | + </step> | |
| 706 | + | |
| 707 | + <step> | |
| 708 | + <name>增加停车场名称metadata</name> | |
| 709 | + <type>Constant</type> | |
| 710 | + <description/> | |
| 711 | + <distribute>Y</distribute> | |
| 712 | + <custom_distribution/> | |
| 713 | + <copies>1</copies> | |
| 714 | + <partitioning> | |
| 715 | + <method>none</method> | |
| 716 | + <schema_name/> | |
| 717 | + </partitioning> | |
| 718 | + <fields> | |
| 719 | + <field> | |
| 720 | + <name>col_name</name> | |
| 721 | + <type>String</type> | |
| 722 | + <format/> | |
| 723 | + <currency/> | |
| 724 | + <decimal/> | |
| 725 | + <group/> | |
| 726 | + <nullif>tccname_</nullif> | |
| 727 | + <length>-1</length> | |
| 728 | + <precision>-1</precision> | |
| 729 | + <set_empty_string>N</set_empty_string> | |
| 730 | + </field> | |
| 731 | + <field> | |
| 732 | + <name>col_type</name> | |
| 733 | + <type>String</type> | |
| 734 | + <format/> | |
| 735 | + <currency/> | |
| 736 | + <decimal/> | |
| 737 | + <group/> | |
| 738 | + <nullif>String</nullif> | |
| 739 | + <length>-1</length> | |
| 740 | + <precision>-1</precision> | |
| 741 | + <set_empty_string>N</set_empty_string> | |
| 742 | + </field> | |
| 743 | + <field> | |
| 744 | + <name>col_value</name> | |
| 745 | + <type>String</type> | |
| 746 | + <format/> | |
| 747 | + <currency/> | |
| 748 | + <decimal/> | |
| 749 | + <group/> | |
| 750 | + <nullif>replace</nullif> | |
| 751 | + <length>-1</length> | |
| 752 | + <precision>-1</precision> | |
| 753 | + <set_empty_string>N</set_empty_string> | |
| 754 | + </field> | |
| 755 | + </fields> | |
| 756 | + <cluster_schema/> | |
| 757 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 758 | + <xloc>461</xloc> | |
| 759 | + <yloc>469</yloc> | |
| 760 | + <draw>Y</draw> | |
| 761 | + </GUI> | |
| 762 | + </step> | |
| 763 | + | |
| 764 | + <step> | |
| 765 | + <name>增加时刻表名称metadata</name> | |
| 766 | + <type>Constant</type> | |
| 767 | + <description/> | |
| 768 | + <distribute>Y</distribute> | |
| 769 | + <custom_distribution/> | |
| 770 | + <copies>1</copies> | |
| 771 | + <partitioning> | |
| 772 | + <method>none</method> | |
| 773 | + <schema_name/> | |
| 774 | + </partitioning> | |
| 775 | + <fields> | |
| 776 | + <field> | |
| 777 | + <name>col_name</name> | |
| 778 | + <type>String</type> | |
| 779 | + <format/> | |
| 780 | + <currency/> | |
| 781 | + <decimal/> | |
| 782 | + <group/> | |
| 783 | + <nullif>ttinfoname_</nullif> | |
| 784 | + <length>-1</length> | |
| 785 | + <precision>-1</precision> | |
| 786 | + <set_empty_string>N</set_empty_string> | |
| 787 | + </field> | |
| 788 | + <field> | |
| 789 | + <name>col_type</name> | |
| 790 | + <type>String</type> | |
| 791 | + <format/> | |
| 792 | + <currency/> | |
| 793 | + <decimal/> | |
| 794 | + <group/> | |
| 795 | + <nullif>String</nullif> | |
| 796 | + <length>-1</length> | |
| 797 | + <precision>-1</precision> | |
| 798 | + <set_empty_string>N</set_empty_string> | |
| 799 | + </field> | |
| 800 | + <field> | |
| 801 | + <name>col_value</name> | |
| 802 | + <type>String</type> | |
| 803 | + <format/> | |
| 804 | + <currency/> | |
| 805 | + <decimal/> | |
| 806 | + <group/> | |
| 807 | + <nullif>replace</nullif> | |
| 808 | + <length>-1</length> | |
| 809 | + <precision>-1</precision> | |
| 810 | + <set_empty_string>N</set_empty_string> | |
| 811 | + </field> | |
| 812 | + </fields> | |
| 813 | + <cluster_schema/> | |
| 814 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 815 | + <xloc>608</xloc> | |
| 816 | + <yloc>601</yloc> | |
| 817 | + <draw>Y</draw> | |
| 818 | + </GUI> | |
| 819 | + </step> | |
| 820 | + | |
| 821 | + <step> | |
| 822 | + <name>增加线路名称metadata</name> | |
| 823 | + <type>Constant</type> | |
| 824 | + <description/> | |
| 825 | + <distribute>Y</distribute> | |
| 826 | + <custom_distribution/> | |
| 827 | + <copies>1</copies> | |
| 828 | + <partitioning> | |
| 829 | + <method>none</method> | |
| 830 | + <schema_name/> | |
| 831 | + </partitioning> | |
| 832 | + <fields> | |
| 833 | + <field> | |
| 834 | + <name>col_name</name> | |
| 835 | + <type>String</type> | |
| 836 | + <format/> | |
| 837 | + <currency/> | |
| 838 | + <decimal/> | |
| 839 | + <group/> | |
| 840 | + <nullif>xlname_</nullif> | |
| 841 | + <length>-1</length> | |
| 842 | + <precision>-1</precision> | |
| 843 | + <set_empty_string>N</set_empty_string> | |
| 844 | + </field> | |
| 845 | + <field> | |
| 846 | + <name>col_type</name> | |
| 847 | + <type>String</type> | |
| 848 | + <format/> | |
| 849 | + <currency/> | |
| 850 | + <decimal/> | |
| 851 | + <group/> | |
| 852 | + <nullif>String</nullif> | |
| 853 | + <length>-1</length> | |
| 854 | + <precision>-1</precision> | |
| 855 | + <set_empty_string>N</set_empty_string> | |
| 856 | + </field> | |
| 857 | + <field> | |
| 858 | + <name>col_value</name> | |
| 859 | + <type>String</type> | |
| 860 | + <format/> | |
| 861 | + <currency/> | |
| 862 | + <decimal/> | |
| 863 | + <group/> | |
| 864 | + <nullif>replace</nullif> | |
| 865 | + <length>-1</length> | |
| 866 | + <precision>-1</precision> | |
| 867 | + <set_empty_string>N</set_empty_string> | |
| 868 | + </field> | |
| 869 | + </fields> | |
| 870 | + <cluster_schema/> | |
| 871 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 872 | + <xloc>383</xloc> | |
| 873 | + <yloc>341</yloc> | |
| 874 | + <draw>Y</draw> | |
| 875 | + </GUI> | |
| 876 | + </step> | |
| 877 | + | |
| 878 | + <step> | |
| 879 | + <name>时刻表名称metadata字段</name> | |
| 880 | + <type>SelectValues</type> | |
| 881 | + <description/> | |
| 882 | + <distribute>Y</distribute> | |
| 883 | + <custom_distribution/> | |
| 884 | + <copies>1</copies> | |
| 885 | + <partitioning> | |
| 886 | + <method>none</method> | |
| 887 | + <schema_name/> | |
| 888 | + </partitioning> | |
| 889 | + <fields> <field> <name>col_name</name> | |
| 890 | + <rename/> | |
| 891 | + <length>-2</length> | |
| 892 | + <precision>-2</precision> | |
| 893 | + </field> <field> <name>col_type</name> | |
| 894 | + <rename/> | |
| 895 | + <length>-2</length> | |
| 896 | + <precision>-2</precision> | |
| 897 | + </field> <field> <name>col_value</name> | |
| 898 | + <rename/> | |
| 899 | + <length>-2</length> | |
| 900 | + <precision>-2</precision> | |
| 901 | + </field> <select_unspecified>N</select_unspecified> | |
| 902 | + </fields> <cluster_schema/> | |
| 903 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 904 | + <xloc>888</xloc> | |
| 905 | + <yloc>601</yloc> | |
| 906 | + <draw>Y</draw> | |
| 907 | + </GUI> | |
| 908 | + </step> | |
| 909 | + | |
| 910 | + <step> | |
| 911 | + <name>替换停车厂名字 </name> | |
| 912 | + <type>SetValueField</type> | |
| 913 | + <description/> | |
| 914 | + <distribute>Y</distribute> | |
| 915 | + <custom_distribution/> | |
| 916 | + <copies>1</copies> | |
| 917 | + <partitioning> | |
| 918 | + <method>none</method> | |
| 919 | + <schema_name/> | |
| 920 | + </partitioning> | |
| 921 | + <fields> | |
| 922 | + <field> | |
| 923 | + <name>col_value</name> | |
| 924 | + <replaceby>tccname_</replaceby> | |
| 925 | + </field> | |
| 926 | + </fields> | |
| 927 | + <cluster_schema/> | |
| 928 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 929 | + <xloc>598</xloc> | |
| 930 | + <yloc>471</yloc> | |
| 931 | + <draw>Y</draw> | |
| 932 | + </GUI> | |
| 933 | + </step> | |
| 934 | + | |
| 935 | + <step> | |
| 936 | + <name>替换时刻表名字</name> | |
| 937 | + <type>SetValueField</type> | |
| 938 | + <description/> | |
| 939 | + <distribute>Y</distribute> | |
| 940 | + <custom_distribution/> | |
| 941 | + <copies>1</copies> | |
| 942 | + <partitioning> | |
| 943 | + <method>none</method> | |
| 944 | + <schema_name/> | |
| 945 | + </partitioning> | |
| 946 | + <fields> | |
| 947 | + <field> | |
| 948 | + <name>col_value</name> | |
| 949 | + <replaceby>ttinfoname_</replaceby> | |
| 950 | + </field> | |
| 951 | + </fields> | |
| 952 | + <cluster_schema/> | |
| 953 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 954 | + <xloc>746</xloc> | |
| 955 | + <yloc>602</yloc> | |
| 956 | + <draw>Y</draw> | |
| 957 | + </GUI> | |
| 958 | + </step> | |
| 959 | + | |
| 960 | + <step> | |
| 961 | + <name>替换线路名称</name> | |
| 962 | + <type>SetValueField</type> | |
| 963 | + <description/> | |
| 964 | + <distribute>Y</distribute> | |
| 965 | + <custom_distribution/> | |
| 966 | + <copies>1</copies> | |
| 967 | + <partitioning> | |
| 968 | + <method>none</method> | |
| 969 | + <schema_name/> | |
| 970 | + </partitioning> | |
| 971 | + <fields> | |
| 972 | + <field> | |
| 973 | + <name>col_value</name> | |
| 974 | + <replaceby>xlname_</replaceby> | |
| 975 | + </field> | |
| 976 | + </fields> | |
| 977 | + <cluster_schema/> | |
| 978 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 979 | + <xloc>521</xloc> | |
| 980 | + <yloc>342</yloc> | |
| 981 | + <draw>Y</draw> | |
| 982 | + </GUI> | |
| 983 | + </step> | |
| 984 | + | |
| 985 | + <step> | |
| 986 | + <name>线路名称metadata字段</name> | |
| 987 | + <type>SelectValues</type> | |
| 988 | + <description/> | |
| 989 | + <distribute>Y</distribute> | |
| 990 | + <custom_distribution/> | |
| 991 | + <copies>1</copies> | |
| 992 | + <partitioning> | |
| 993 | + <method>none</method> | |
| 994 | + <schema_name/> | |
| 995 | + </partitioning> | |
| 996 | + <fields> <field> <name>col_name</name> | |
| 997 | + <rename/> | |
| 998 | + <length>-2</length> | |
| 999 | + <precision>-2</precision> | |
| 1000 | + </field> <field> <name>col_type</name> | |
| 1001 | + <rename/> | |
| 1002 | + <length>-2</length> | |
| 1003 | + <precision>-2</precision> | |
| 1004 | + </field> <field> <name>col_value</name> | |
| 1005 | + <rename/> | |
| 1006 | + <length>-2</length> | |
| 1007 | + <precision>-2</precision> | |
| 1008 | + </field> <select_unspecified>N</select_unspecified> | |
| 1009 | + </fields> <cluster_schema/> | |
| 1010 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1011 | + <xloc>668</xloc> | |
| 1012 | + <yloc>343</yloc> | |
| 1013 | + <draw>Y</draw> | |
| 1014 | + </GUI> | |
| 1015 | + </step> | |
| 1016 | + | |
| 1017 | + <step> | |
| 1018 | + <name>获取excel字段名字符串</name> | |
| 1019 | + <type>GetVariable</type> | |
| 1020 | + <description/> | |
| 1021 | + <distribute>Y</distribute> | |
| 1022 | + <custom_distribution/> | |
| 1023 | + <copies>1</copies> | |
| 1024 | + <partitioning> | |
| 1025 | + <method>none</method> | |
| 1026 | + <schema_name/> | |
| 1027 | + </partitioning> | |
| 1028 | + <fields> | |
| 1029 | + <field> | |
| 1030 | + <name>fieldnames</name> | |
| 1031 | + <variable>${excelfieldnames}</variable> | |
| 1032 | + <type>String</type> | |
| 1033 | + <format/> | |
| 1034 | + <currency/> | |
| 1035 | + <decimal/> | |
| 1036 | + <group/> | |
| 1037 | + <length>-1</length> | |
| 1038 | + <precision>-1</precision> | |
| 1039 | + <trim_type>none</trim_type> | |
| 1040 | + </field> | |
| 1041 | + </fields> | |
| 1042 | + <cluster_schema/> | |
| 1043 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1044 | + <xloc>252</xloc> | |
| 1045 | + <yloc>153</yloc> | |
| 1046 | + <draw>Y</draw> | |
| 1047 | + </GUI> | |
| 1048 | + </step> | |
| 1049 | + | |
| 1050 | + <step> | |
| 1051 | + <name>获取excel文件名</name> | |
| 1052 | + <type>GetVariable</type> | |
| 1053 | + <description/> | |
| 1054 | + <distribute>Y</distribute> | |
| 1055 | + <custom_distribution/> | |
| 1056 | + <copies>1</copies> | |
| 1057 | + <partitioning> | |
| 1058 | + <method>none</method> | |
| 1059 | + <schema_name/> | |
| 1060 | + </partitioning> | |
| 1061 | + <fields> | |
| 1062 | + <field> | |
| 1063 | + <name>filepath_</name> | |
| 1064 | + <variable>${filepath}</variable> | |
| 1065 | + <type>String</type> | |
| 1066 | + <format/> | |
| 1067 | + <currency/> | |
| 1068 | + <decimal/> | |
| 1069 | + <group/> | |
| 1070 | + <length>-1</length> | |
| 1071 | + <precision>-1</precision> | |
| 1072 | + <trim_type>none</trim_type> | |
| 1073 | + </field> | |
| 1074 | + <field> | |
| 1075 | + <name>erroroutputdir_</name> | |
| 1076 | + <variable>${erroroutputdir}</variable> | |
| 1077 | + <type>String</type> | |
| 1078 | + <format/> | |
| 1079 | + <currency/> | |
| 1080 | + <decimal/> | |
| 1081 | + <group/> | |
| 1082 | + <length>-1</length> | |
| 1083 | + <precision>-1</precision> | |
| 1084 | + <trim_type>none</trim_type> | |
| 1085 | + </field> | |
| 1086 | + <field> | |
| 1087 | + <name>sheetname_</name> | |
| 1088 | + <variable>${sheetname}</variable> | |
| 1089 | + <type>String</type> | |
| 1090 | + <format/> | |
| 1091 | + <currency/> | |
| 1092 | + <decimal/> | |
| 1093 | + <group/> | |
| 1094 | + <length>-1</length> | |
| 1095 | + <precision>-1</precision> | |
| 1096 | + <trim_type>none</trim_type> | |
| 1097 | + </field> | |
| 1098 | + </fields> | |
| 1099 | + <cluster_schema/> | |
| 1100 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1101 | + <xloc>301</xloc> | |
| 1102 | + <yloc>52</yloc> | |
| 1103 | + <draw>Y</draw> | |
| 1104 | + </GUI> | |
| 1105 | + </step> | |
| 1106 | + | |
| 1107 | + <step> | |
| 1108 | + <name>获取normalize字段名字符串</name> | |
| 1109 | + <type>GetVariable</type> | |
| 1110 | + <description/> | |
| 1111 | + <distribute>Y</distribute> | |
| 1112 | + <custom_distribution/> | |
| 1113 | + <copies>1</copies> | |
| 1114 | + <partitioning> | |
| 1115 | + <method>none</method> | |
| 1116 | + <schema_name/> | |
| 1117 | + </partitioning> | |
| 1118 | + <fields> | |
| 1119 | + <field> | |
| 1120 | + <name>normalizefieldnames_</name> | |
| 1121 | + <variable>${normalizefieldnames}</variable> | |
| 1122 | + <type>String</type> | |
| 1123 | + <format/> | |
| 1124 | + <currency/> | |
| 1125 | + <decimal/> | |
| 1126 | + <group/> | |
| 1127 | + <length>-1</length> | |
| 1128 | + <precision>-1</precision> | |
| 1129 | + <trim_type>none</trim_type> | |
| 1130 | + </field> | |
| 1131 | + </fields> | |
| 1132 | + <cluster_schema/> | |
| 1133 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1134 | + <xloc>261</xloc> | |
| 1135 | + <yloc>251</yloc> | |
| 1136 | + <draw>Y</draw> | |
| 1137 | + </GUI> | |
| 1138 | + </step> | |
| 1139 | + | |
| 1140 | + <step> | |
| 1141 | + <name>获取时刻表id</name> | |
| 1142 | + <type>GetVariable</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 | + <fields> | |
| 1152 | + <field> | |
| 1153 | + <name>ttid_</name> | |
| 1154 | + <variable>${ttid}</variable> | |
| 1155 | + <type>Integer</type> | |
| 1156 | + <format/> | |
| 1157 | + <currency/> | |
| 1158 | + <decimal/> | |
| 1159 | + <group/> | |
| 1160 | + <length>-1</length> | |
| 1161 | + <precision>-1</precision> | |
| 1162 | + <trim_type>none</trim_type> | |
| 1163 | + </field> | |
| 1164 | + </fields> | |
| 1165 | + <cluster_schema/> | |
| 1166 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1167 | + <xloc>608</xloc> | |
| 1168 | + <yloc>16</yloc> | |
| 1169 | + <draw>Y</draw> | |
| 1170 | + </GUI> | |
| 1171 | + </step> | |
| 1172 | + | |
| 1173 | + <step> | |
| 1174 | + <name>获取时刻表名称</name> | |
| 1175 | + <type>GetVariable</type> | |
| 1176 | + <description/> | |
| 1177 | + <distribute>Y</distribute> | |
| 1178 | + <custom_distribution/> | |
| 1179 | + <copies>1</copies> | |
| 1180 | + <partitioning> | |
| 1181 | + <method>none</method> | |
| 1182 | + <schema_name/> | |
| 1183 | + </partitioning> | |
| 1184 | + <fields> | |
| 1185 | + <field> | |
| 1186 | + <name>ttinfoname_</name> | |
| 1187 | + <variable>${ttinfoname}</variable> | |
| 1188 | + <type>String</type> | |
| 1189 | + <format/> | |
| 1190 | + <currency/> | |
| 1191 | + <decimal/> | |
| 1192 | + <group/> | |
| 1193 | + <length>-1</length> | |
| 1194 | + <precision>-1</precision> | |
| 1195 | + <trim_type>none</trim_type> | |
| 1196 | + </field> | |
| 1197 | + </fields> | |
| 1198 | + <cluster_schema/> | |
| 1199 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1200 | + <xloc>474</xloc> | |
| 1201 | + <yloc>601</yloc> | |
| 1202 | + <draw>Y</draw> | |
| 1203 | + </GUI> | |
| 1204 | + </step> | |
| 1205 | + | |
| 1206 | + <step> | |
| 1207 | + <name>获取线路名称</name> | |
| 1208 | + <type>GetVariable</type> | |
| 1209 | + <description/> | |
| 1210 | + <distribute>Y</distribute> | |
| 1211 | + <custom_distribution/> | |
| 1212 | + <copies>1</copies> | |
| 1213 | + <partitioning> | |
| 1214 | + <method>none</method> | |
| 1215 | + <schema_name/> | |
| 1216 | + </partitioning> | |
| 1217 | + <fields> | |
| 1218 | + <field> | |
| 1219 | + <name>xlname_</name> | |
| 1220 | + <variable>${xlname}</variable> | |
| 1221 | + <type>String</type> | |
| 1222 | + <format/> | |
| 1223 | + <currency/> | |
| 1224 | + <decimal/> | |
| 1225 | + <group/> | |
| 1226 | + <length>-1</length> | |
| 1227 | + <precision>-1</precision> | |
| 1228 | + <trim_type>none</trim_type> | |
| 1229 | + </field> | |
| 1230 | + </fields> | |
| 1231 | + <cluster_schema/> | |
| 1232 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1233 | + <xloc>184</xloc> | |
| 1234 | + <yloc>342</yloc> | |
| 1235 | + <draw>Y</draw> | |
| 1236 | + </GUI> | |
| 1237 | + </step> | |
| 1238 | + | |
| 1239 | + <step> | |
| 1240 | + <name>逗号切分成字段名</name> | |
| 1241 | + <type>SplitFieldToRows3</type> | |
| 1242 | + <description/> | |
| 1243 | + <distribute>Y</distribute> | |
| 1244 | + <custom_distribution/> | |
| 1245 | + <copies>1</copies> | |
| 1246 | + <partitioning> | |
| 1247 | + <method>none</method> | |
| 1248 | + <schema_name/> | |
| 1249 | + </partitioning> | |
| 1250 | + <splitfield>fieldnames</splitfield> | |
| 1251 | + <delimiter>,</delimiter> | |
| 1252 | + <newfield>fieldname</newfield> | |
| 1253 | + <rownum>N</rownum> | |
| 1254 | + <rownum_field/> | |
| 1255 | + <resetrownumber>Y</resetrownumber> | |
| 1256 | + <delimiter_is_regex>N</delimiter_is_regex> | |
| 1257 | + <cluster_schema/> | |
| 1258 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1259 | + <xloc>442</xloc> | |
| 1260 | + <yloc>153</yloc> | |
| 1261 | + <draw>Y</draw> | |
| 1262 | + </GUI> | |
| 1263 | + </step> | |
| 1264 | + | |
| 1265 | + <step> | |
| 1266 | + <name>逗号切分成字段名 2</name> | |
| 1267 | + <type>SplitFieldToRows3</type> | |
| 1268 | + <description/> | |
| 1269 | + <distribute>Y</distribute> | |
| 1270 | + <custom_distribution/> | |
| 1271 | + <copies>1</copies> | |
| 1272 | + <partitioning> | |
| 1273 | + <method>none</method> | |
| 1274 | + <schema_name/> | |
| 1275 | + </partitioning> | |
| 1276 | + <splitfield>normalizefieldnames_</splitfield> | |
| 1277 | + <delimiter>,</delimiter> | |
| 1278 | + <newfield>nfieldname</newfield> | |
| 1279 | + <rownum>N</rownum> | |
| 1280 | + <rownum_field/> | |
| 1281 | + <resetrownumber>Y</resetrownumber> | |
| 1282 | + <delimiter_is_regex>N</delimiter_is_regex> | |
| 1283 | + <cluster_schema/> | |
| 1284 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1285 | + <xloc>444</xloc> | |
| 1286 | + <yloc>247</yloc> | |
| 1287 | + <draw>Y</draw> | |
| 1288 | + </GUI> | |
| 1289 | + </step> | |
| 1290 | + | |
| 1291 | + <step> | |
| 1292 | + <name>获取线路标准id</name> | |
| 1293 | + <type>GetVariable</type> | |
| 1294 | + <description/> | |
| 1295 | + <distribute>Y</distribute> | |
| 1296 | + <custom_distribution/> | |
| 1297 | + <copies>1</copies> | |
| 1298 | + <partitioning> | |
| 1299 | + <method>none</method> | |
| 1300 | + <schema_name/> | |
| 1301 | + </partitioning> | |
| 1302 | + <fields> | |
| 1303 | + <field> | |
| 1304 | + <name>lineinfoid_</name> | |
| 1305 | + <variable>${lineinfoid}</variable> | |
| 1306 | + <type>Integer</type> | |
| 1307 | + <format/> | |
| 1308 | + <currency/> | |
| 1309 | + <decimal/> | |
| 1310 | + <group/> | |
| 1311 | + <length>-1</length> | |
| 1312 | + <precision>-1</precision> | |
| 1313 | + <trim_type>none</trim_type> | |
| 1314 | + </field> | |
| 1315 | + </fields> | |
| 1316 | + <cluster_schema/> | |
| 1317 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1318 | + <xloc>74</xloc> | |
| 1319 | + <yloc>468</yloc> | |
| 1320 | + <draw>Y</draw> | |
| 1321 | + </GUI> | |
| 1322 | + </step> | |
| 1323 | + | |
| 1324 | + <step> | |
| 1325 | + <name>停车场编码</name> | |
| 1326 | + <type>DBLookup</type> | |
| 1327 | + <description/> | |
| 1328 | + <distribute>Y</distribute> | |
| 1329 | + <custom_distribution/> | |
| 1330 | + <copies>1</copies> | |
| 1331 | + <partitioning> | |
| 1332 | + <method>none</method> | |
| 1333 | + <schema_name/> | |
| 1334 | + </partitioning> | |
| 1335 | + <connection>bus_control_variable</connection> | |
| 1336 | + <cache>N</cache> | |
| 1337 | + <cache_load_all>N</cache_load_all> | |
| 1338 | + <cache_size>0</cache_size> | |
| 1339 | + <lookup> | |
| 1340 | + <schema/> | |
| 1341 | + <table>bsth_c_line_information</table> | |
| 1342 | + <orderby/> | |
| 1343 | + <fail_on_multiple>N</fail_on_multiple> | |
| 1344 | + <eat_row_on_failure>N</eat_row_on_failure> | |
| 1345 | + <key> | |
| 1346 | + <name>lineinfoid_</name> | |
| 1347 | + <field>id</field> | |
| 1348 | + <condition>=</condition> | |
| 1349 | + <name2/> | |
| 1350 | + </key> | |
| 1351 | + <value> | |
| 1352 | + <name>car_park</name> | |
| 1353 | + <rename>car_park</rename> | |
| 1354 | + <default/> | |
| 1355 | + <type>String</type> | |
| 1356 | + </value> | |
| 1357 | + </lookup> | |
| 1358 | + <cluster_schema/> | |
| 1359 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1360 | + <xloc>182</xloc> | |
| 1361 | + <yloc>467</yloc> | |
| 1362 | + <draw>Y</draw> | |
| 1363 | + </GUI> | |
| 1364 | + </step> | |
| 1365 | + | |
| 1366 | + <step> | |
| 1367 | + <name>停车场名称</name> | |
| 1368 | + <type>DBLookup</type> | |
| 1369 | + <description/> | |
| 1370 | + <distribute>Y</distribute> | |
| 1371 | + <custom_distribution/> | |
| 1372 | + <copies>1</copies> | |
| 1373 | + <partitioning> | |
| 1374 | + <method>none</method> | |
| 1375 | + <schema_name/> | |
| 1376 | + </partitioning> | |
| 1377 | + <connection>bus_control_variable</connection> | |
| 1378 | + <cache>N</cache> | |
| 1379 | + <cache_load_all>N</cache_load_all> | |
| 1380 | + <cache_size>0</cache_size> | |
| 1381 | + <lookup> | |
| 1382 | + <schema/> | |
| 1383 | + <table>bsth_c_car_park</table> | |
| 1384 | + <orderby/> | |
| 1385 | + <fail_on_multiple>N</fail_on_multiple> | |
| 1386 | + <eat_row_on_failure>N</eat_row_on_failure> | |
| 1387 | + <key> | |
| 1388 | + <name>car_park</name> | |
| 1389 | + <field>park_code</field> | |
| 1390 | + <condition>=</condition> | |
| 1391 | + <name2/> | |
| 1392 | + </key> | |
| 1393 | + <value> | |
| 1394 | + <name>park_name</name> | |
| 1395 | + <rename>tccname_</rename> | |
| 1396 | + <default/> | |
| 1397 | + <type>String</type> | |
| 1398 | + </value> | |
| 1399 | + </lookup> | |
| 1400 | + <cluster_schema/> | |
| 1401 | + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
| 1402 | + <xloc>319</xloc> | |
| 1403 | + <yloc>468</yloc> | |
| 1404 | + <draw>Y</draw> | |
| 1405 | + </GUI> | |
| 1406 | + </step> | |
| 1407 | + | |
| 1408 | + <step_error_handling> | |
| 1409 | + </step_error_handling> | |
| 1410 | + <slave-step-copy-partition-distribution> | |
| 1411 | +</slave-step-copy-partition-distribution> | |
| 1412 | + <slave_transformation>N</slave_transformation> | |
| 1413 | + | |
| 1414 | +</transformation> | ... | ... |
src/main/resources/static/pages/scheduleApp/module/core/schedulePlanManage/report/ext/list.html
| ... | ... | @@ -13,7 +13,7 @@ |
| 13 | 13 | |
| 14 | 14 | <div class="fixDiv"> |
| 15 | 15 | <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column" |
| 16 | - style="width: 1800px; min-height: 500px;"> | |
| 16 | + style="width: 1600px; min-height: 500px;"> | |
| 17 | 17 | <thead> |
| 18 | 18 | <tr role="row" class="heading"> |
| 19 | 19 | <th style="width: 50px;">序号</th> |
| ... | ... | @@ -24,10 +24,8 @@ |
| 24 | 24 | <th style="width: 100px;">车辆</th> |
| 25 | 25 | <th style="width: 80px;">出场时间</th> |
| 26 | 26 | <th style="width: 80px;">进场时间</th> |
| 27 | - <th style="width: 100px;">驾驶员姓名</th> | |
| 28 | - <th style="width: 100px;">驾驶员工号</th> | |
| 29 | - <th style="width: 100px;">售票员姓名</th> | |
| 30 | - <th style="width: 100px;">售票员工号</th> | |
| 27 | + <th style="width: 130px;">驾驶员</th> | |
| 28 | + <th style="width: 130px;">售票员</th> | |
| 31 | 29 | <th>时刻表</th> |
| 32 | 30 | <th style="width: 150px;">修改时间</th> |
| 33 | 31 | <th style="width: 100px;">修改人</th> |
| ... | ... | @@ -72,8 +70,6 @@ |
| 72 | 70 | <td></td> |
| 73 | 71 | <td></td> |
| 74 | 72 | <td></td> |
| 75 | - <td></td> | |
| 76 | - <td></td> | |
| 77 | 73 | </tr> |
| 78 | 74 | </thead> |
| 79 | 75 | <tbody> |
| ... | ... | @@ -114,35 +110,43 @@ |
| 114 | 110 | </a> |
| 115 | 111 | </div> |
| 116 | 112 | </td> |
| 117 | - <td> | |
| 118 | - <div ng-repeat="jsyname in info.jsyNames"> | |
| 119 | - <a href="#"> | |
| 120 | - {{jsyname}} | |
| 121 | - </a> | |
| 122 | - </div> | |
| 123 | - </td> | |
| 124 | - <td> | |
| 125 | - <div ng-repeat="jsygh in info.jsyGhs"> | |
| 126 | - <a href="#"> | |
| 127 | - {{jsygh}} | |
| 128 | - </a> | |
| 129 | - </div> | |
| 130 | - </td> | |
| 131 | - <td> | |
| 132 | - <div ng-repeat="spyname in info.spyNames"> | |
| 133 | - <a href="#"> | |
| 134 | - {{spyname}} | |
| 135 | - </a> | |
| 113 | + <td class="container-fluid"> | |
| 114 | + <div class="row"> | |
| 115 | + <div style="padding-right: 0px;" class="col-md-6"> | |
| 116 | + <div ng-repeat="jsyname in info.jsyNames"> | |
| 117 | + <a href="#"> | |
| 118 | + {{jsyname}} | |
| 119 | + </a> | |
| 120 | + </div> | |
| 121 | + </div> | |
| 122 | + <div style="padding-left: 0px;" class="col-md-6"> | |
| 123 | + <div ng-repeat="jsygh in info.jsyGhs"> | |
| 124 | + <a href="#"> | |
| 125 | + {{jsygh}} | |
| 126 | + </a> | |
| 127 | + </div> | |
| 128 | + </div> | |
| 136 | 129 | </div> |
| 137 | 130 | </td> |
| 138 | - <td> | |
| 139 | - <div ng-repeat="spygh in info.spyGhs"> | |
| 140 | - <a href="#"> | |
| 141 | - {{spygh}} | |
| 142 | - </a> | |
| 131 | + <td class="container-fluid"> | |
| 132 | + <div class="row"> | |
| 133 | + <div style="padding-right: 0px;" class="col-md-6"> | |
| 134 | + <div ng-repeat="spyname in info.spyNames"> | |
| 135 | + <a href="#"> | |
| 136 | + {{spyname}} | |
| 137 | + </a> | |
| 138 | + </div> | |
| 139 | + </div> | |
| 140 | + <div style="padding-left: 0px;" class="col-md-6"> | |
| 141 | + <div ng-repeat="spygh in info.spyGhs"> | |
| 142 | + <a href="#"> | |
| 143 | + {{spygh}} | |
| 144 | + </a> | |
| 145 | + </div> | |
| 146 | + </div> | |
| 143 | 147 | </div> |
| 144 | - </td> | |
| 145 | 148 | |
| 149 | + </td> | |
| 146 | 150 | <td> |
| 147 | 151 | <span ng-bind="info.ttInfoName"></span> |
| 148 | 152 | </td> | ... | ... |
src/test/resources/testdata/test6.txt