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,9 +6,7 @@ import com.bsth.entity.schedule.GuideboardInfo; | ||
| 6 | import com.bsth.repository.schedule.GuideboardInfoRepository; | 6 | import com.bsth.repository.schedule.GuideboardInfoRepository; |
| 7 | import com.bsth.service.schedule.GuideboardInfoService; | 7 | import com.bsth.service.schedule.GuideboardInfoService; |
| 8 | import com.bsth.service.schedule.exception.ScheduleException; | 8 | import com.bsth.service.schedule.exception.ScheduleException; |
| 9 | -import com.bsth.service.schedule.utils.DataToolsProperties; | ||
| 10 | import org.springframework.beans.factory.annotation.Autowired; | 9 | import org.springframework.beans.factory.annotation.Autowired; |
| 11 | -import org.springframework.boot.context.properties.EnableConfigurationProperties; | ||
| 12 | import org.springframework.web.bind.annotation.RequestMapping; | 10 | import org.springframework.web.bind.annotation.RequestMapping; |
| 13 | import org.springframework.web.bind.annotation.RequestMethod; | 11 | import org.springframework.web.bind.annotation.RequestMethod; |
| 14 | import org.springframework.web.bind.annotation.RequestParam; | 12 | import org.springframework.web.bind.annotation.RequestParam; |
| @@ -23,7 +21,6 @@ import java.util.Map; | @@ -23,7 +21,6 @@ import java.util.Map; | ||
| 23 | */ | 21 | */ |
| 24 | @RestController | 22 | @RestController |
| 25 | @RequestMapping("gic") | 23 | @RequestMapping("gic") |
| 26 | -@EnableConfigurationProperties(DataToolsProperties.class) | ||
| 27 | public class GuideboardInfoController extends BController<GuideboardInfo, Long> { | 24 | public class GuideboardInfoController extends BController<GuideboardInfo, Long> { |
| 28 | @Autowired | 25 | @Autowired |
| 29 | private GuideboardInfoService guideboardInfoService; | 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,8 +3,8 @@ package com.bsth.controller.schedule.core; | ||
| 3 | import com.bsth.common.ResponseCode; | 3 | import com.bsth.common.ResponseCode; |
| 4 | import com.bsth.controller.schedule.BController; | 4 | import com.bsth.controller.schedule.BController; |
| 5 | import com.bsth.entity.schedule.TTInfo; | 5 | import com.bsth.entity.schedule.TTInfo; |
| 6 | -import com.bsth.service.schedule.exception.ScheduleException; | ||
| 7 | import com.bsth.service.schedule.TTInfoService; | 6 | import com.bsth.service.schedule.TTInfoService; |
| 7 | +import com.bsth.service.schedule.exception.ScheduleException; | ||
| 8 | import org.springframework.beans.factory.annotation.Autowired; | 8 | import org.springframework.beans.factory.annotation.Autowired; |
| 9 | import org.springframework.web.bind.annotation.RequestMapping; | 9 | import org.springframework.web.bind.annotation.RequestMapping; |
| 10 | import org.springframework.web.bind.annotation.RequestMethod; | 10 | import org.springframework.web.bind.annotation.RequestMethod; |
src/main/java/com/bsth/service/schedule/datatools/CarConfigInfoDataToolsImpl.java
| 1 | package com.bsth.service.schedule.datatools; | 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 | * Created by xu on 17/5/16. | 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 | package com.bsth.service.schedule.datatools; | 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 | * Created by xu on 17/5/16. | 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 | package com.bsth.service.schedule.datatools; | 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 | * Created by xu on 17/5/16. | 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 | package com.bsth.service.schedule.datatools; | 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 | * Created by xu on 17/5/16. | 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 | package com.bsth.service.schedule.datatools; | 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 | * Created by xu on 17/5/16. | 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 | package com.bsth.service.schedule.datatools; | 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 | * Created by xu on 17/5/16. | 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 | package com.bsth.service.schedule.datatools; | 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 | * Created by xu on 17/5/16. | 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 | package com.bsth.service.schedule.datatools; | 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 | * Created by xu on 17/5/16. | 8 | * Created by xu on 17/5/16. |
| 5 | */ | 9 | */ |
| 6 | public interface TTInfoDetailForEdit { | 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,12 +5,6 @@ import com.bsth.repository.BaseRepository; | ||
| 5 | import com.bsth.service.schedule.BService; | 5 | import com.bsth.service.schedule.BService; |
| 6 | import com.bsth.service.schedule.exception.ScheduleException; | 6 | import com.bsth.service.schedule.exception.ScheduleException; |
| 7 | import com.bsth.service.schedule.utils.DataToolsService; | 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 | import org.slf4j.Logger; | 8 | import org.slf4j.Logger; |
| 15 | import org.slf4j.LoggerFactory; | 9 | import org.slf4j.LoggerFactory; |
| 16 | import org.springframework.beans.factory.annotation.Autowired; | 10 | import org.springframework.beans.factory.annotation.Autowired; |
| @@ -124,39 +118,16 @@ public class BServiceImpl<T, ID extends Serializable> implements BService<T, ID> | @@ -124,39 +118,16 @@ public class BServiceImpl<T, ID extends Serializable> implements BService<T, ID> | ||
| 124 | 118 | ||
| 125 | @Override | 119 | @Override |
| 126 | public File uploadFile(String filename, byte[] filedata) throws ScheduleException { | 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 | @Override | 124 | @Override |
| 154 | public void importData(File file, Map<String, Object> params) throws ScheduleException { | 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 | @Override | 129 | @Override |
| 159 | public File exportData(Map<String, Object> params) throws ScheduleException { | 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,20 +3,16 @@ package com.bsth.service.schedule.impl; | ||
| 3 | import com.bsth.entity.schedule.CarConfigInfo; | 3 | import com.bsth.entity.schedule.CarConfigInfo; |
| 4 | import com.bsth.entity.schedule.rule.ScheduleRule1Flat; | 4 | import com.bsth.entity.schedule.rule.ScheduleRule1Flat; |
| 5 | import com.bsth.service.schedule.CarConfigInfoService; | 5 | import com.bsth.service.schedule.CarConfigInfoService; |
| 6 | -import com.bsth.service.schedule.exception.ScheduleException; | ||
| 7 | import com.bsth.service.schedule.ScheduleRule1FlatService; | 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 | import org.springframework.beans.factory.annotation.Autowired; | 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 | import org.springframework.stereotype.Service; | 11 | import org.springframework.stereotype.Service; |
| 14 | import org.springframework.transaction.annotation.Transactional; | 12 | import org.springframework.transaction.annotation.Transactional; |
| 15 | import org.springframework.util.CollectionUtils; | 13 | import org.springframework.util.CollectionUtils; |
| 16 | 14 | ||
| 17 | import java.io.File; | 15 | import java.io.File; |
| 18 | -import java.io.PrintWriter; | ||
| 19 | -import java.io.StringWriter; | ||
| 20 | import java.util.HashMap; | 16 | import java.util.HashMap; |
| 21 | import java.util.List; | 17 | import java.util.List; |
| 22 | import java.util.Map; | 18 | import java.util.Map; |
| @@ -24,78 +20,28 @@ import java.util.Map; | @@ -24,78 +20,28 @@ import java.util.Map; | ||
| 24 | /** | 20 | /** |
| 25 | * Created by xu on 16/5/9. | 21 | * Created by xu on 16/5/9. |
| 26 | */ | 22 | */ |
| 27 | -@EnableConfigurationProperties(DataToolsProperties.class) | ||
| 28 | @Service | 23 | @Service |
| 29 | public class CarConfigInfoServiceImpl extends BServiceImpl<CarConfigInfo, Long> implements CarConfigInfoService { | 24 | public class CarConfigInfoServiceImpl extends BServiceImpl<CarConfigInfo, Long> implements CarConfigInfoService { |
| 30 | - /** 日志记录器 */ | ||
| 31 | - private static Logger LOGGER = LoggerFactory.getLogger(CarConfigInfoServiceImpl.class); | ||
| 32 | - | ||
| 33 | @Autowired | 25 | @Autowired |
| 34 | - private DataToolsProperties dataToolsProperties; | 26 | + private ScheduleRule1FlatService scheduleRule1FlatService; |
| 35 | 27 | ||
| 36 | @Autowired | 28 | @Autowired |
| 37 | - private ScheduleRule1FlatService scheduleRule1FlatService; | 29 | + @Qualifier(value = "carConfig_dataTool") |
| 30 | + private DataToolsService dataToolsService; | ||
| 38 | 31 | ||
| 39 | @Override | 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 | @Override | 42 | @Override |
| 70 | public File exportData(Map<String, Object> params) throws ScheduleException { | 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 | @Transactional | 47 | @Transactional |
src/main/java/com/bsth/service/schedule/impl/CarsServiceImpl.java
| @@ -3,89 +3,39 @@ package com.bsth.service.schedule.impl; | @@ -3,89 +3,39 @@ package com.bsth.service.schedule.impl; | ||
| 3 | import com.bsth.entity.Cars; | 3 | import com.bsth.entity.Cars; |
| 4 | import com.bsth.service.schedule.CarsService; | 4 | import com.bsth.service.schedule.CarsService; |
| 5 | import com.bsth.service.schedule.exception.ScheduleException; | 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 | import org.springframework.beans.factory.annotation.Autowired; | 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 | import org.springframework.stereotype.Service; | 9 | import org.springframework.stereotype.Service; |
| 12 | import org.springframework.transaction.annotation.Transactional; | 10 | import org.springframework.transaction.annotation.Transactional; |
| 13 | import org.springframework.util.CollectionUtils; | 11 | import org.springframework.util.CollectionUtils; |
| 14 | 12 | ||
| 15 | import java.io.File; | 13 | import java.io.File; |
| 16 | -import java.io.PrintWriter; | ||
| 17 | -import java.io.StringWriter; | ||
| 18 | import java.util.HashMap; | 14 | import java.util.HashMap; |
| 19 | import java.util.Map; | 15 | import java.util.Map; |
| 20 | 16 | ||
| 21 | /** | 17 | /** |
| 22 | * Created by xu on 16/12/8. | 18 | * Created by xu on 16/12/8. |
| 23 | */ | 19 | */ |
| 24 | -@EnableConfigurationProperties(DataToolsProperties.class) | ||
| 25 | @Service(value = "carsServiceImpl_sc") | 20 | @Service(value = "carsServiceImpl_sc") |
| 26 | public class CarsServiceImpl extends BServiceImpl<Cars, Integer> implements CarsService { | 21 | public class CarsServiceImpl extends BServiceImpl<Cars, Integer> implements CarsService { |
| 27 | - /** 日志记录器 */ | ||
| 28 | - private static final Logger LOGGER = LoggerFactory.getLogger(CarsServiceImpl.class); | ||
| 29 | - | ||
| 30 | @Autowired | 22 | @Autowired |
| 31 | - private DataToolsProperties dataToolsProperties; | 23 | + @Qualifier(value = "cars_dataTool") |
| 24 | + private DataToolsService dataToolsService; | ||
| 32 | 25 | ||
| 33 | @Override | 26 | @Override |
| 34 | public void importData(File file, Map<String, Object> params) throws ScheduleException { | 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 | @Override | 31 | @Override |
| 62 | public File exportData(Map<String, Object> params) throws ScheduleException { | 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 | @Override | 41 | @Override |
src/main/java/com/bsth/service/schedule/impl/EmployeeConfigInfoServiceImpl.java
| @@ -3,97 +3,43 @@ package com.bsth.service.schedule.impl; | @@ -3,97 +3,43 @@ package com.bsth.service.schedule.impl; | ||
| 3 | import com.bsth.entity.schedule.EmployeeConfigInfo; | 3 | import com.bsth.entity.schedule.EmployeeConfigInfo; |
| 4 | import com.bsth.entity.schedule.rule.ScheduleRule1Flat; | 4 | import com.bsth.entity.schedule.rule.ScheduleRule1Flat; |
| 5 | import com.bsth.service.schedule.EmployeeConfigInfoService; | 5 | import com.bsth.service.schedule.EmployeeConfigInfoService; |
| 6 | -import com.bsth.service.schedule.exception.ScheduleException; | ||
| 7 | import com.bsth.service.schedule.ScheduleRule1FlatService; | 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 | import org.springframework.beans.factory.annotation.Autowired; | 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 | import org.springframework.stereotype.Service; | 11 | import org.springframework.stereotype.Service; |
| 14 | import org.springframework.transaction.annotation.Transactional; | 12 | import org.springframework.transaction.annotation.Transactional; |
| 15 | import org.springframework.util.CollectionUtils; | 13 | import org.springframework.util.CollectionUtils; |
| 16 | 14 | ||
| 17 | import java.io.File; | 15 | import java.io.File; |
| 18 | -import java.io.PrintWriter; | ||
| 19 | -import java.io.StringWriter; | ||
| 20 | import java.util.*; | 16 | import java.util.*; |
| 21 | 17 | ||
| 22 | /** | 18 | /** |
| 23 | * Created by xu on 16/5/10. | 19 | * Created by xu on 16/5/10. |
| 24 | */ | 20 | */ |
| 25 | -@EnableConfigurationProperties(DataToolsProperties.class) | ||
| 26 | @Service | 21 | @Service |
| 27 | public class EmployeeConfigInfoServiceImpl extends BServiceImpl<EmployeeConfigInfo, Long> implements EmployeeConfigInfoService { | 22 | public class EmployeeConfigInfoServiceImpl extends BServiceImpl<EmployeeConfigInfo, Long> implements EmployeeConfigInfoService { |
| 28 | - /** 日志记录器 */ | ||
| 29 | - private static Logger LOGGER = LoggerFactory.getLogger(EmployeeConfigInfoServiceImpl.class); | ||
| 30 | - | ||
| 31 | @Autowired | 23 | @Autowired |
| 32 | - private DataToolsProperties dataToolsProperties; | 24 | + private ScheduleRule1FlatService scheduleRule1FlatService; |
| 33 | 25 | ||
| 34 | @Autowired | 26 | @Autowired |
| 35 | - private ScheduleRule1FlatService scheduleRule1FlatService; | 27 | + @Qualifier(value = "employeeConfig_dataTool") |
| 28 | + private DataToolsService dataToolsService; | ||
| 36 | 29 | ||
| 37 | @Override | 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 | @Override | 40 | @Override |
| 68 | public File exportData(Map<String, Object> params) throws ScheduleException { | 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 | @Transactional | 45 | @Transactional |
src/main/java/com/bsth/service/schedule/impl/EmployeeServiceImpl.java
| @@ -3,89 +3,39 @@ package com.bsth.service.schedule.impl; | @@ -3,89 +3,39 @@ package com.bsth.service.schedule.impl; | ||
| 3 | import com.bsth.entity.Personnel; | 3 | import com.bsth.entity.Personnel; |
| 4 | import com.bsth.service.schedule.EmployeeService; | 4 | import com.bsth.service.schedule.EmployeeService; |
| 5 | import com.bsth.service.schedule.exception.ScheduleException; | 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 | import org.springframework.beans.factory.annotation.Autowired; | 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 | import org.springframework.stereotype.Service; | 9 | import org.springframework.stereotype.Service; |
| 12 | import org.springframework.transaction.annotation.Transactional; | 10 | import org.springframework.transaction.annotation.Transactional; |
| 13 | import org.springframework.util.CollectionUtils; | 11 | import org.springframework.util.CollectionUtils; |
| 14 | 12 | ||
| 15 | import java.io.File; | 13 | import java.io.File; |
| 16 | -import java.io.PrintWriter; | ||
| 17 | -import java.io.StringWriter; | ||
| 18 | import java.util.HashMap; | 14 | import java.util.HashMap; |
| 19 | import java.util.Map; | 15 | import java.util.Map; |
| 20 | 16 | ||
| 21 | /** | 17 | /** |
| 22 | * Created by xu on 16/12/15. | 18 | * Created by xu on 16/12/15. |
| 23 | */ | 19 | */ |
| 24 | -@EnableConfigurationProperties(DataToolsProperties.class) | ||
| 25 | @Service | 20 | @Service |
| 26 | public class EmployeeServiceImpl extends BServiceImpl<Personnel, Integer> implements EmployeeService { | 21 | public class EmployeeServiceImpl extends BServiceImpl<Personnel, Integer> implements EmployeeService { |
| 27 | - /** 日志记录器 */ | ||
| 28 | - private static final Logger LOGGER = LoggerFactory.getLogger(EmployeeServiceImpl.class); | ||
| 29 | - | ||
| 30 | @Autowired | 22 | @Autowired |
| 31 | - private DataToolsProperties dataToolsProperties; | 23 | + @Qualifier(value = "employee_dataTool") |
| 24 | + private DataToolsService dataToolsService; | ||
| 32 | 25 | ||
| 33 | @Override | 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 | @Override | 36 | @Override |
| 62 | public File exportData(Map<String, Object> params) throws ScheduleException { | 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 | @Override | 41 | @Override |
src/main/java/com/bsth/service/schedule/impl/GuideboardInfoServiceImpl.java
| @@ -5,18 +5,14 @@ import com.bsth.entity.schedule.TTInfoDetail; | @@ -5,18 +5,14 @@ import com.bsth.entity.schedule.TTInfoDetail; | ||
| 5 | import com.bsth.service.schedule.GuideboardInfoService; | 5 | import com.bsth.service.schedule.GuideboardInfoService; |
| 6 | import com.bsth.service.schedule.TTInfoDetailService; | 6 | import com.bsth.service.schedule.TTInfoDetailService; |
| 7 | import com.bsth.service.schedule.exception.ScheduleException; | 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 | import org.springframework.beans.factory.annotation.Autowired; | 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 | import org.springframework.stereotype.Service; | 11 | import org.springframework.stereotype.Service; |
| 14 | import org.springframework.util.CollectionUtils; | 12 | import org.springframework.util.CollectionUtils; |
| 15 | 13 | ||
| 16 | import javax.transaction.Transactional; | 14 | import javax.transaction.Transactional; |
| 17 | import java.io.File; | 15 | import java.io.File; |
| 18 | -import java.io.PrintWriter; | ||
| 19 | -import java.io.StringWriter; | ||
| 20 | import java.util.HashMap; | 16 | import java.util.HashMap; |
| 21 | import java.util.List; | 17 | import java.util.List; |
| 22 | import java.util.Map; | 18 | import java.util.Map; |
| @@ -24,14 +20,11 @@ import java.util.Map; | @@ -24,14 +20,11 @@ import java.util.Map; | ||
| 24 | /** | 20 | /** |
| 25 | * 路牌信息服务。 | 21 | * 路牌信息服务。 |
| 26 | */ | 22 | */ |
| 27 | -@EnableConfigurationProperties(DataToolsProperties.class) | ||
| 28 | @Service | 23 | @Service |
| 29 | public class GuideboardInfoServiceImpl extends BServiceImpl<GuideboardInfo, Long> implements GuideboardInfoService { | 24 | public class GuideboardInfoServiceImpl extends BServiceImpl<GuideboardInfo, Long> implements GuideboardInfoService { |
| 30 | - /** 日志记录器 */ | ||
| 31 | - private static final Logger LOGGER = LoggerFactory.getLogger(GuideboardInfoServiceImpl.class); | ||
| 32 | - | ||
| 33 | @Autowired | 25 | @Autowired |
| 34 | - private DataToolsProperties dataToolsProperties; | 26 | + @Qualifier(value = "gbInfo_dataTool") |
| 27 | + private DataToolsService dataToolsService; | ||
| 35 | 28 | ||
| 36 | @Autowired | 29 | @Autowired |
| 37 | private TTInfoDetailService ttInfoDetailService; | 30 | private TTInfoDetailService ttInfoDetailService; |
| @@ -109,65 +102,18 @@ public class GuideboardInfoServiceImpl extends BServiceImpl<GuideboardInfo, Long | @@ -109,65 +102,18 @@ public class GuideboardInfoServiceImpl extends BServiceImpl<GuideboardInfo, Long | ||
| 109 | } | 102 | } |
| 110 | 103 | ||
| 111 | @Override | 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 | @Override | 114 | @Override |
| 142 | public File exportData(Map<String, Object> params) throws ScheduleException { | 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,90 +3,35 @@ package com.bsth.service.schedule.impl; | ||
| 3 | import com.bsth.entity.schedule.rule.ScheduleRule1Flat; | 3 | import com.bsth.entity.schedule.rule.ScheduleRule1Flat; |
| 4 | import com.bsth.service.schedule.ScheduleRule1FlatService; | 4 | import com.bsth.service.schedule.ScheduleRule1FlatService; |
| 5 | import com.bsth.service.schedule.exception.ScheduleException; | 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 | import org.springframework.beans.factory.annotation.Autowired; | 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 | import org.springframework.stereotype.Service; | 9 | import org.springframework.stereotype.Service; |
| 12 | 10 | ||
| 13 | import java.io.File; | 11 | import java.io.File; |
| 14 | -import java.io.PrintWriter; | ||
| 15 | -import java.io.StringWriter; | ||
| 16 | -import java.util.HashMap; | ||
| 17 | import java.util.Map; | 12 | import java.util.Map; |
| 18 | 13 | ||
| 19 | /** | 14 | /** |
| 20 | * Created by xu on 16/7/4. | 15 | * Created by xu on 16/7/4. |
| 21 | */ | 16 | */ |
| 22 | -@EnableConfigurationProperties(DataToolsProperties.class) | ||
| 23 | @Service | 17 | @Service |
| 24 | public class ScheduleRule1FlatServiceImpl extends BServiceImpl<ScheduleRule1Flat, Long> implements ScheduleRule1FlatService { | 18 | public class ScheduleRule1FlatServiceImpl extends BServiceImpl<ScheduleRule1Flat, Long> implements ScheduleRule1FlatService { |
| 25 | - /** 日志记录器 */ | ||
| 26 | - private static Logger LOGGER = LoggerFactory.getLogger(ScheduleRule1FlatServiceImpl.class); | ||
| 27 | - | ||
| 28 | @Autowired | 19 | @Autowired |
| 29 | - private DataToolsProperties dataToolsProperties; | 20 | + @Qualifier(value = "scheduleRule_dataTool") |
| 21 | + private DataToolsService dataToolsService; | ||
| 30 | 22 | ||
| 31 | @Override | 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 | @Override | 33 | @Override |
| 62 | public File exportData(Map<String, Object> params) throws ScheduleException { | 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,6 +21,7 @@ import com.bsth.service.LineInformationService; | ||
| 21 | import com.bsth.service.StationRouteService; | 21 | import com.bsth.service.StationRouteService; |
| 22 | import com.bsth.service.schedule.GuideboardInfoService; | 22 | import com.bsth.service.schedule.GuideboardInfoService; |
| 23 | import com.bsth.service.schedule.TTInfoDetailService; | 23 | import com.bsth.service.schedule.TTInfoDetailService; |
| 24 | +import com.bsth.service.schedule.datatools.TTInfoDetailForEdit; | ||
| 24 | import com.bsth.service.schedule.exception.ScheduleException; | 25 | import com.bsth.service.schedule.exception.ScheduleException; |
| 25 | import com.bsth.service.schedule.utils.DataToolsProperties; | 26 | import com.bsth.service.schedule.utils.DataToolsProperties; |
| 26 | import com.bsth.service.schedule.utils.DataToolsService; | 27 | import com.bsth.service.schedule.utils.DataToolsService; |
| @@ -53,7 +54,6 @@ import java.util.regex.Pattern; | @@ -53,7 +54,6 @@ import java.util.regex.Pattern; | ||
| 53 | * Created by xu on 17/1/3. | 54 | * Created by xu on 17/1/3. |
| 54 | */ | 55 | */ |
| 55 | @Service | 56 | @Service |
| 56 | -@EnableConfigurationProperties(DataToolsProperties.class) | ||
| 57 | public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> implements TTInfoDetailService { | 57 | public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> implements TTInfoDetailService { |
| 58 | /** 日志记录器 */ | 58 | /** 日志记录器 */ |
| 59 | private static final Logger LOGGER = LoggerFactory.getLogger(TTInfoDetailServiceImpl.class); | 59 | private static final Logger LOGGER = LoggerFactory.getLogger(TTInfoDetailServiceImpl.class); |
| @@ -82,11 +82,16 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> im | @@ -82,11 +82,16 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> im | ||
| 82 | private SysUserRepository sysUserRepository; | 82 | private SysUserRepository sysUserRepository; |
| 83 | @Autowired | 83 | @Autowired |
| 84 | private GuideboardInfoRepository guideboardInfoRepository; | 84 | private GuideboardInfoRepository guideboardInfoRepository; |
| 85 | + | ||
| 85 | @Autowired | 86 | @Autowired |
| 86 | - @Qualifier(value = "dataToolsServiceImpl") | 87 | + @Qualifier(value = "ttInfoDetail_dataTool") |
| 87 | private DataToolsService dataToolsService; | 88 | private DataToolsService dataToolsService; |
| 88 | 89 | ||
| 89 | @Autowired | 90 | @Autowired |
| 91 | + @Qualifier(value = "ttInfoDetail_dataTool") | ||
| 92 | + private TTInfoDetailForEdit ttInfoDetailForEdit; | ||
| 93 | + | ||
| 94 | + @Autowired | ||
| 90 | private JdbcTemplate jdbcTemplate; | 95 | private JdbcTemplate jdbcTemplate; |
| 91 | 96 | ||
| 92 | /** | 97 | /** |
| @@ -115,7 +120,6 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> im | @@ -115,7 +120,6 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> im | ||
| 115 | 120 | ||
| 116 | @Override | 121 | @Override |
| 117 | public File uploadFile(String filename, byte[] filedata) throws ScheduleException { | 122 | public File uploadFile(String filename, byte[] filedata) throws ScheduleException { |
| 118 | - | ||
| 119 | return dataToolsService.uploadFile(filename, filedata); | 123 | return dataToolsService.uploadFile(filename, filedata); |
| 120 | } | 124 | } |
| 121 | 125 | ||
| @@ -123,175 +127,26 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> im | @@ -123,175 +127,26 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> im | ||
| 123 | public void importData( | 127 | public void importData( |
| 124 | File file, | 128 | File file, |
| 125 | Map<String, Object> params) throws ScheduleException { | 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 | @Override | 133 | @Override |
| 235 | public File exportData(Map<String, Object> params) throws ScheduleException { | 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 | @Override | 138 | @Override |
| 271 | - public EditInfo getEditInfo(Integer xlid, Long ttid) throws ScheduleException { | 139 | + public TTInfoDetailService.EditInfo getEditInfo(Integer xlid, Long ttid) throws ScheduleException { |
| 272 | try { | 140 | try { |
| 273 | LOGGER.info("//---------------- 时刻表编辑用数据输出 start... ----------------//"); | 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 | String outputFilePath = String.format("ttinfodetail_(id=%s)_foredit-%s", | 144 | String outputFilePath = String.format("ttinfodetail_(id=%s)_foredit-%s", |
| 286 | String.valueOf(ttid), new DateTime().toString("yyyyMMddHHmmss")); | 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 | // 1.6、获取最大的发车数,用于输出数据的数量 | 151 | // 1.6、获取最大的发车数,用于输出数据的数量 |
| 297 | Long maxfcno = ttInfoDetailRepository.findMaxFcno(xlid, ttid); | 152 | Long maxfcno = ttInfoDetailRepository.findMaxFcno(xlid, ttid); |
| @@ -315,9 +170,9 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> im | @@ -315,9 +170,9 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> im | ||
| 315 | headarrays[maxfcno.intValue() + 2] = "运营班次/运营里程"; | 170 | headarrays[maxfcno.intValue() + 2] = "运营班次/运营里程"; |
| 316 | 171 | ||
| 317 | for (int r = 1; r < sheet.getRows(); r++) { | 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 | int bc_ks = 0; // 空驶班次 | 177 | int bc_ks = 0; // 空驶班次 |
| 323 | int bc_yy = 0; // 营运班次 | 178 | int bc_yy = 0; // 营运班次 |
| @@ -340,7 +195,7 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> im | @@ -340,7 +195,7 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> im | ||
| 340 | String qdzCode = content == null ? "" : content[7]; // 起点站编码 | 195 | String qdzCode = content == null ? "" : content[7]; // 起点站编码 |
| 341 | String zdzCode = content == null ? "" : content[8]; // 终点站编码 | 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 | if (StringUtils.isNotEmpty(fzdname)) | 200 | if (StringUtils.isNotEmpty(fzdname)) |
| 346 | headarrays[c] = fzdname; | 201 | headarrays[c] = fzdname; |
| @@ -374,10 +229,10 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> im | @@ -374,10 +229,10 @@ public class TTInfoDetailServiceImpl extends BServiceImpl<TTInfoDetail, Long> im | ||
| 374 | } | 229 | } |
| 375 | 230 | ||
| 376 | // 添加一列 空驶班次/空驶里程,fcsj放置数据 | 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 | // 添加一列 营运班次/营运里程,fcsj放置数据 | 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 | editInfo.getContents().add(fcInfos); | 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,7 +13,7 @@ | ||
| 13 | 13 | ||
| 14 | <div class="fixDiv"> | 14 | <div class="fixDiv"> |
| 15 | <table class="fixTable table table-striped table-bordered table-hover table-checkable order-column" | 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 | <thead> | 17 | <thead> |
| 18 | <tr role="row" class="heading"> | 18 | <tr role="row" class="heading"> |
| 19 | <th style="width: 50px;">序号</th> | 19 | <th style="width: 50px;">序号</th> |
| @@ -24,10 +24,8 @@ | @@ -24,10 +24,8 @@ | ||
| 24 | <th style="width: 100px;">车辆</th> | 24 | <th style="width: 100px;">车辆</th> |
| 25 | <th style="width: 80px;">出场时间</th> | 25 | <th style="width: 80px;">出场时间</th> |
| 26 | <th style="width: 80px;">进场时间</th> | 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 | <th>时刻表</th> | 29 | <th>时刻表</th> |
| 32 | <th style="width: 150px;">修改时间</th> | 30 | <th style="width: 150px;">修改时间</th> |
| 33 | <th style="width: 100px;">修改人</th> | 31 | <th style="width: 100px;">修改人</th> |
| @@ -72,8 +70,6 @@ | @@ -72,8 +70,6 @@ | ||
| 72 | <td></td> | 70 | <td></td> |
| 73 | <td></td> | 71 | <td></td> |
| 74 | <td></td> | 72 | <td></td> |
| 75 | - <td></td> | ||
| 76 | - <td></td> | ||
| 77 | </tr> | 73 | </tr> |
| 78 | </thead> | 74 | </thead> |
| 79 | <tbody> | 75 | <tbody> |
| @@ -114,35 +110,43 @@ | @@ -114,35 +110,43 @@ | ||
| 114 | </a> | 110 | </a> |
| 115 | </div> | 111 | </div> |
| 116 | </td> | 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 | </div> | 129 | </div> |
| 137 | </td> | 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 | </div> | 147 | </div> |
| 144 | - </td> | ||
| 145 | 148 | ||
| 149 | + </td> | ||
| 146 | <td> | 150 | <td> |
| 147 | <span ng-bind="info.ttInfoName"></span> | 151 | <span ng-bind="info.ttInfoName"></span> |
| 148 | </td> | 152 | </td> |
src/test/resources/testdata/test6.txt
| @@ -21,4 +21,7 @@ where a.origingidindex is null; | @@ -21,4 +21,7 @@ where a.origingidindex is null; | ||
| 21 | 北蔡2路 | 21 | 北蔡2路 |
| 22 | 1048 | 22 | 1048 |
| 23 | 1118 | 23 | 1118 |
| 24 | -上南二分通勤 | ||
| 25 | \ No newline at end of file | 24 | \ No newline at end of file |
| 25 | +上南二分通勤 | ||
| 26 | + | ||
| 27 | + | ||
| 28 | +-Xms128M -Xmx1024M -XX:PermSize=64M -XX:MaxPermSize=128M | ||
| 26 | \ No newline at end of file | 29 | \ No newline at end of file |