Commit 24a510139aabdcca207bc805d282058a9e4578fc

Authored by 徐烜
2 parents 834bbdb2 c9cf8588

Update

Showing 21 changed files with 1740 additions and 1646 deletions

Too many changes to show.

To preserve performance only 21 of 44 files are displayed.

src/main/java/com/bsth/data/BasicData.java
... ... @@ -270,36 +270,36 @@ public class BasicData implements CommandLineRunner {
270 270 Map<String, String> code2SHcode = new HashMap<String, String>();
271 271 Map<String, Integer> tempStationName2YgcNumber = new HashMap<String, Integer>();
272 272  
  273 + /**
  274 + * 加载运管处的站点及序号
  275 + * 上行从1开始,下行顺序续编
  276 + */
  277 + List<Object[]> ygcLines = stationRouteRepository.findAllLineWithYgc();
  278 + if(ygcLines != null && ygcLines.size() > 0){
  279 + int size = ygcLines.size();
  280 + Object[] tempArray ;
  281 + int num = 1;
  282 + String key;
  283 + String lineCode = "";
  284 + for (int i = 0; i < size; i ++){
  285 + tempArray = ygcLines.get(i);
  286 + if(lineCode.equals("")){
  287 + lineCode = tempArray[0]+"";
  288 + }else if(!lineCode.equals(tempArray[0]+"")){
  289 + num = 1;
  290 + lineCode = tempArray[0]+"";
  291 + }
  292 + key = tempArray[0] + "_"+tempArray[1] + "_"+tempArray[2];
  293 + tempStationName2YgcNumber.put(key,num++);
  294 + }
  295 + }
  296 +
273 297 while (iterator.hasNext()) {
274 298 line = iterator.next();
275 299 biMap.put(line.getId(), line.getLineCode());
276 300 code2name.put(line.getLineCode(), line.getName());
277 301 id2SHcode.put(line.getId(), line.getShanghaiLinecode());
278 302 code2SHcode.put(line.getLineCode(), line.getShanghaiLinecode());
279   -
280   - /**
281   - * 加载运管处的站点及序号
282   - * 上行从1开始,下行顺序续编
283   - */
284   - List<Object[]> ygcLines = stationRouteRepository.findAllLineWithYgc();
285   - if(ygcLines != null && ygcLines.size() > 0){
286   - int size = ygcLines.size();
287   - Object[] tempArray ;
288   - int num = 1;
289   - String key;
290   - String lineCode = "";
291   - for (int i = 0; i < size; i ++){
292   - tempArray = ygcLines.get(i);
293   - if(lineCode.equals("")){
294   - lineCode = tempArray[0]+"";
295   - }else if(!lineCode.equals(tempArray[0]+"")){
296   - num = 1;
297   - lineCode = tempArray[0]+"";
298   - }
299   - key = tempArray[0] + "_"+tempArray[1] + "_"+tempArray[2];
300   - tempStationName2YgcNumber.put(key,num++);
301   - }
302   - }
303 303 }
304 304  
305 305 lineId2CodeMap = biMap;
... ...
src/main/java/com/bsth/data/safe_driv/SafeDrivCenter.java
1 1 package com.bsth.data.safe_driv;
2 2  
  3 +import com.bsth.Application;
3 4 import com.bsth.websocket.handler.SendUtils;
4 5 import org.joda.time.format.DateTimeFormat;
5 6 import org.joda.time.format.DateTimeFormatter;
... ... @@ -14,6 +15,7 @@ import java.util.HashMap;
14 15 import java.util.HashSet;
15 16 import java.util.Map;
16 17 import java.util.Set;
  18 +import java.util.concurrent.TimeUnit;
17 19  
18 20 /**
19 21 * 安全驾驶
... ... @@ -67,7 +69,7 @@ public class SafeDrivCenter implements CommandLineRunner,ApplicationContextAware
67 69 @Override
68 70 public void run(String... strings) throws Exception {
69 71 //定时加载安全驾驶数据
70   - //Application.mainServices.scheduleWithFixedDelay(safeDrivDataLoadThread, 60, 4, TimeUnit.SECONDS);
  72 + Application.mainServices.scheduleWithFixedDelay(safeDrivDataLoadThread, 60, 7, TimeUnit.SECONDS);
71 73 }
72 74  
73 75 @Override
... ...
src/main/java/com/bsth/data/safe_driv/SafeDrivDataLoadThread.java
... ... @@ -88,7 +88,7 @@ public class SafeDrivDataLoadThread extends Thread{
88 88 httpClient.close();
89 89 response.close();
90 90 } catch (Exception e) {
91   - logger.error(e.getMessage());
  91 + logger.error("安全驾驶接口报错了" , e.getMessage());
92 92 }
93 93 }
94 94 }
... ...
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
... ... @@ -786,13 +786,14 @@ public class DayOfSchedule {
786 786 Collections.sort(list, schFCSJComparator);
787 787  
788 788 long t = System.currentTimeMillis();
789   - int distance=-1;
  789 + int distance=-1, diff;
790 790  
791 791 ScheduleRealInfo sch = null;
792 792 for(ScheduleRealInfo temp : list){
793   -
794   - if(Math.abs(temp.getDfsjT() - t) < distance || distance == -1){
  793 + diff = (int) Math.abs(temp.getDfsjT() - t);
  794 + if(diff < distance || distance == -1){
795 795 sch = temp;
  796 + distance = diff;
796 797 }
797 798 }
798 799 return sch;
... ...
src/main/java/com/bsth/data/schedule/SchModifyLog.java renamed to src/main/java/com/bsth/data/schedule/edit_logs/FormLogger.java
1   -package com.bsth.data.schedule;
2   -
3   -import com.bsth.controller.realcontrol.dto.ChangePersonCar;
4   -import com.bsth.entity.mcy_forms.Changetochange;
5   -import com.bsth.entity.realcontrol.ScheduleRealInfo;
6   -import com.bsth.entity.sys.SysUser;
7   -import com.bsth.repository.form.ChangetochangeRepository;
8   -import com.bsth.security.util.SecurityUtils;
9   -import org.apache.commons.lang3.StringUtils;
10   -import org.joda.time.format.DateTimeFormat;
11   -import org.joda.time.format.DateTimeFormatter;
12   -import org.slf4j.Logger;
13   -import org.slf4j.LoggerFactory;
14   -import org.springframework.beans.factory.annotation.Autowired;
15   -import org.springframework.stereotype.Service;
16   -
17   -import java.util.Date;
18   -
19   -/**
20   - * 线调实际排班修改日志记录
21   - * Created by panzhao on 2017/5/7.
22   - */
23   -@Service
24   -public class SchModifyLog {
25   -
26   - private static DateTimeFormatter fmtHHmm = DateTimeFormat.forPattern("HH:mm");
27   -
28   - Logger log = LoggerFactory.getLogger(this.getClass());
29   -
30   - @Autowired
31   - ChangetochangeRepository changetochangeRepository;
32   -
33   - /**
34   - * 换人换车情况表
35   - */
36   - public void saveChangetochange(ScheduleRealInfo sch, ChangePersonCar cpc){
37   - try {
38   - String newNbbm = cpc.getClZbh();
39   - String newJsy = cpc.getJsy();
40   - String oldJsy = sch.getjGh()+"/"+sch.getjName();
41   -
42   - if(newNbbm == null && newJsy == null)
43   - return;
44   -
45   - if(newNbbm != null && newJsy != null
46   - && newNbbm.equals(sch.getClZbh()) && newJsy.equals(oldJsy))
47   - return;
48   -
49   - Date d = new Date();
50   - SysUser user = SecurityUtils.getCurrentUser();
51   - Changetochange cc = new Changetochange();
52   - cc.setRq(sch.getScheduleDateStr());
53   - cc.setGs(sch.getGsBm());
54   - cc.setFgs(sch.getFgsBm());
55   - cc.setXl(sch.getXlBm());
56   - cc.setLp(sch.getLpName());
57   - cc.setFssj(fmtHHmm.print(d.getTime()));
58   - cc.setXgsj(fmtHHmm.print(d.getTime()));
59   - if(user != null)
60   - cc.setXgr(user.getUserName());
61   -
62   - cc.setPcch(sch.getClZbh());
63   - cc.setPcry(oldJsy);
64   - cc.setJhch(sch.getClZbh());
65   - cc.setJhgh(sch.getjGh());
66   -
67   - if(StringUtils.isNotEmpty(newNbbm))
68   - cc.setSjch(newNbbm);
69   - if(StringUtils.isNotEmpty(newJsy))
70   - cc.setSjgh(newJsy);
71   -
72   - changetochangeRepository.save(cc);
73   - }catch (Exception e){
74   - log.error("纪录换人换车情况表", e);
75   - }
76   - }
77   -
78   - public void saveChangetochange(ScheduleRealInfo sch, String nbbm, String jsy){
79   - ChangePersonCar cpc = new ChangePersonCar();
80   - cpc.setClZbh(nbbm);
81   - cpc.setJsy(jsy);
82   - saveChangetochange(sch, cpc);
83   - }
84   -}
  1 +package com.bsth.data.schedule.edit_logs;
  2 +
  3 +import com.bsth.controller.realcontrol.dto.ChangePersonCar;
  4 +import com.bsth.entity.mcy_forms.Changetochange;
  5 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  6 +import com.bsth.entity.sys.SysUser;
  7 +import com.bsth.repository.form.ChangetochangeRepository;
  8 +import com.bsth.security.util.SecurityUtils;
  9 +import org.apache.commons.lang3.StringUtils;
  10 +import org.joda.time.format.DateTimeFormat;
  11 +import org.joda.time.format.DateTimeFormatter;
  12 +import org.slf4j.Logger;
  13 +import org.slf4j.LoggerFactory;
  14 +import org.springframework.beans.factory.annotation.Autowired;
  15 +import org.springframework.stereotype.Service;
  16 +
  17 +import java.util.Date;
  18 +
  19 +/**
  20 + * 为报表写入相关的班次修改记录
  21 + * Created by panzhao on 2017/5/7.
  22 + */
  23 +@Service
  24 +public class FormLogger {
  25 +
  26 + private static DateTimeFormatter fmtHHmm = DateTimeFormat.forPattern("HH:mm");
  27 +
  28 + Logger log = LoggerFactory.getLogger(this.getClass());
  29 +
  30 + @Autowired
  31 + ChangetochangeRepository changetochangeRepository;
  32 +
  33 + /**
  34 + * 换人换车情况表
  35 + */
  36 + public void saveChangetochange(ScheduleRealInfo sch, ChangePersonCar cpc){
  37 + try {
  38 + String newNbbm = cpc.getClZbh();
  39 + String newJsy = cpc.getJsy();
  40 + String oldJsy = sch.getjGh()+"/"+sch.getjName();
  41 +
  42 + if(newNbbm == null && newJsy == null)
  43 + return;
  44 +
  45 + if(newNbbm != null && newJsy != null
  46 + && newNbbm.equals(sch.getClZbh()) && newJsy.equals(oldJsy))
  47 + return;
  48 +
  49 + Date d = new Date();
  50 + SysUser user = SecurityUtils.getCurrentUser();
  51 + Changetochange cc = new Changetochange();
  52 + cc.setRq(sch.getScheduleDateStr());
  53 + cc.setGs(sch.getGsBm());
  54 + cc.setFgs(sch.getFgsBm());
  55 + cc.setXl(sch.getXlBm());
  56 + cc.setLp(sch.getLpName());
  57 + cc.setFssj(fmtHHmm.print(d.getTime()));
  58 + cc.setXgsj(fmtHHmm.print(d.getTime()));
  59 + if(user != null)
  60 + cc.setXgr(user.getUserName());
  61 +
  62 + cc.setPcch(sch.getClZbh());
  63 + cc.setPcry(oldJsy);
  64 + cc.setJhch(sch.getClZbh());
  65 + cc.setJhgh(sch.getjGh());
  66 +
  67 + if(StringUtils.isNotEmpty(newNbbm))
  68 + cc.setSjch(newNbbm);
  69 + if(StringUtils.isNotEmpty(newJsy))
  70 + cc.setSjgh(newJsy);
  71 +
  72 + changetochangeRepository.save(cc);
  73 + }catch (Exception e){
  74 + log.error("纪录换人换车情况表", e);
  75 + }
  76 + }
  77 +
  78 + public void saveChangetochange(ScheduleRealInfo sch, String nbbm, String jsy){
  79 + ChangePersonCar cpc = new ChangePersonCar();
  80 + cpc.setClZbh(nbbm);
  81 + cpc.setJsy(jsy);
  82 + saveChangetochange(sch, cpc);
  83 + }
  84 +}
... ...
src/main/java/com/bsth/data/schedule/edit_logs/SchEditLogger.java renamed to src/main/java/com/bsth/data/schedule/edit_logs/ScheduleModifyLogger.java
... ... @@ -4,7 +4,7 @@ package com.bsth.data.schedule.edit_logs;
4 4 * 班次修正记录
5 5 * Created by panzhao on 2017/5/16.
6 6 */
7   -public class SchEditLogger {
  7 +public class ScheduleModifyLogger {
8 8  
9 9 /**
10 10 * 待发调整
... ... @@ -12,4 +12,4 @@ public class SchEditLogger {
12 12 public static void dftz(Long id, String remarks, String dfsj, String bcType, String opType){
13 13  
14 14 }
15 15 -}
  16 +}
16 17 \ No newline at end of file
... ...
src/main/java/com/bsth/repository/oil/YlbRepository.java
... ... @@ -86,7 +86,7 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{
86 86 + " ssgsdm like %?2% "
87 87 + " and fgsdm like %?3%"
88 88 + " and xlbm like %?4% and nbbm like %?5% "
89   - + " group by nbbm,rq,ssgsdm,fgsdm,xlbm",nativeQuery=true)
  89 + + " group by nbbm,rq,ssgsdm,fgsdm",nativeQuery=true)
90 90 List<Object[]> checkNbmmNum(String rq, String gsbm,String fgsbm,String xlbm,String nbbm);
91 91  
92 92  
... ...
src/main/java/com/bsth/service/oil/impl/CwjyServiceImpl.java
... ... @@ -291,7 +291,8 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw
291 291 + "from bsth_c_ylb where to_days(rq)= to_days('"+rq+"' ) "
292 292 + " and ssgsdm='"+gsdm+"' and fgsdm ='"+fgsdm+"' group by nbbm "+
293 293 " ) c on a.nbbm=c.nbbm "
294   - + "where a.nbbm like '%"+nbbm+"%' and a.gsdm='"+gsdm+"' and a.fgsdm ='"+fgsdm+"'";
  294 + + "where a.nbbm like '%"+nbbm+"%' and a.gsdm='"+gsdm+"' and a.fgsdm ='"+fgsdm+"'"
  295 + + " order by a.nbbm";
295 296  
296 297 List<Ylxxb> yList= jdbcTemplate.query(sql,
297 298 new RowMapper<Ylxxb>(){
... ...
src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
... ... @@ -1000,6 +1000,8 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
1000 1000 return sumMap;
1001 1001 }
1002 1002  
  1003 +
  1004 +
1003 1005 @Override
1004 1006 public List<Ylb> listYlb(Map<String, Object> map) {
1005 1007 // TODO Auto-generated method stub
... ... @@ -1013,7 +1015,19 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
1013 1015 String sxtj=map.get("sxtj").toString();
1014 1016 if(nbbm.trim()!=""){
1015 1017 stringList.add(nbbm);
1016   - listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList);
  1018 + List<Object[]> objectLists=repository.checkNbmmNum(rq, gsbm, fgsbm, xlbm,nbbm);
  1019 + int cs=Integer.parseInt(objectLists.get(0)[1].toString());
  1020 + if(sxtj.equals("1")){
  1021 + if(cs==1){
  1022 + listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList);
  1023 + }
  1024 + }
  1025 +
  1026 + if(sxtj.equals("2")){
  1027 + if(cs>1){
  1028 + listYlb=repository.listYlb(rq, gsbm, fgsbm, xlbm, stringList);
  1029 + }
  1030 + }
1017 1031 }else{
1018 1032 //全部
1019 1033 if(sxtj.equals("0")){
... ...
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
... ... @@ -13,7 +13,7 @@ import com.bsth.data.LineConfigData;
13 13 import com.bsth.data.msg_queue.DirectivePushQueue;
14 14 import com.bsth.data.schedule.DayOfSchedule;
15 15 import com.bsth.data.schedule.SchAttrCalculator;
16   -import com.bsth.data.schedule.SchModifyLog;
  16 +import com.bsth.data.schedule.edit_logs.FormLogger;
17 17 import com.bsth.data.schedule.ScheduleComparator;
18 18 import com.bsth.data.schedule.late_adjust.LateAdjustHandle;
19 19 import com.bsth.entity.Cars;
... ... @@ -135,7 +135,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
135 135 CulateMileageService culateService;
136 136  
137 137 @Autowired
138   - SchModifyLog schModifyLog;
  138 + FormLogger schModifyLog;
139 139  
140 140 @Autowired
141 141 DirectiveService directiveService;
... ... @@ -819,8 +819,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
819 819 List<ScheduleRealInfo> lists=new ArrayList<ScheduleRealInfo>();
820 820 for (int i = 0; i < scheduleRealInfos.size(); i++) {
821 821 ScheduleRealInfo s=scheduleRealInfos.get(i);
822   - if(s.getZdsjActual()!=null){
823   - lists.add(s);
  822 + Set<ChildTaskPlan> cts = s.getcTasks();
  823 + if(cts != null && cts.size() > 0){
  824 + lists.add(s);
  825 + }else{
  826 + if(s.getZdsjActual()!=null){
  827 + lists.add(s);
  828 + }
824 829 }
825 830 }
826 831 DecimalFormat format = new DecimalFormat("0.00");
... ... @@ -1076,6 +1081,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1076 1081 sch.setStatus(0);
1077 1082 sch.setRemarks("");//清空备注
1078 1083 sch.setJhlc(sch.getJhlcOrig());
  1084 +
  1085 + //入库
  1086 + dayOfSchedule.save(sch);
1079 1087 rs.put("status", ResponseCode.SUCCESS);
1080 1088 rs.put("t", sch);
1081 1089  
... ... @@ -1667,8 +1675,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1667 1675 List<ScheduleRealInfo> lists=new ArrayList<ScheduleRealInfo>();
1668 1676 for (int i = 0; i < list.size(); i++) {
1669 1677 ScheduleRealInfo s=list.get(i);
1670   - if(s.getZdsjActual()!=null){
1671   - lists.add(s);
  1678 + Set<ChildTaskPlan> cts = s.getcTasks();
  1679 + if(cts != null && cts.size() > 0){
  1680 + lists.add(s);
  1681 + }else{
  1682 + if(s.getZdsjActual()!=null){
  1683 + lists.add(s);
  1684 + }
1672 1685 }
1673 1686 }
1674 1687 double ksgl=culateService.culateKsgl(list);
... ... @@ -1953,8 +1966,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1953 1966 List<ScheduleRealInfo> lists =new ArrayList<ScheduleRealInfo>();
1954 1967 for (int i = 0; i < list_s.size(); i++) {
1955 1968 ScheduleRealInfo s=list_s.get(i);
1956   - if(s.getZdsjActual()!=null){
1957   - lists.add(s);
  1969 + Set<ChildTaskPlan> cts = s.getcTasks();
  1970 + if(cts != null && cts.size() > 0){
  1971 + lists.add(s);
  1972 + }else{
  1973 + if(s.getZdsjActual()!=null){
  1974 + lists.add(s);
  1975 + }
1958 1976 }
1959 1977 }
1960 1978 Map<String, Object> map = new HashMap<String, Object>();
... ... @@ -2556,8 +2574,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2556 2574 List<ScheduleRealInfo> lists=new ArrayList<ScheduleRealInfo>();
2557 2575 for(int i=0;i<list.size();i++){
2558 2576 ScheduleRealInfo s=list.get(i);
2559   - if(s.getZdsjActual()!=null){
2560   - lists.add(s);
  2577 + Set<ChildTaskPlan> cts = s.getcTasks();
  2578 + if(cts != null && cts.size() > 0){
  2579 + lists.add(s);
  2580 + }else{
  2581 + if(s.getZdsjActual()!=null){
  2582 + lists.add(s);
  2583 + }
2561 2584 }
2562 2585 }
2563 2586 Map<String, Object> map = new HashMap<String, Object>();
... ... @@ -2631,8 +2654,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2631 2654 }
2632 2655 for (int i = 0; i < list.size(); i++) {
2633 2656 ScheduleRealInfo s=list.get(i);
2634   - if(s.getZdsjActual()!=null){
2635   - list_s.add(s);
  2657 + Set<ChildTaskPlan> cts = s.getcTasks();
  2658 + if(cts != null && cts.size() > 0){
  2659 + list_s.add(s);
  2660 + }else{
  2661 + if(s.getZdsjActual()!=null){
  2662 + list_s.add(s);
  2663 + }
2636 2664 }
2637 2665 }
2638 2666 List<Map<String, Object>> lMap = new ArrayList<Map<String, Object>>();
... ... @@ -4235,8 +4263,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
4235 4263 List<ScheduleRealInfo> lists=new ArrayList<ScheduleRealInfo>();
4236 4264 for (int i = 0; i < scheduleRealInfos.size(); i++) {
4237 4265 ScheduleRealInfo s=scheduleRealInfos.get(i);
4238   - if(s.getZdsjActual()!=null){
4239   - lists.add(s);
  4266 + Set<ChildTaskPlan> cts = s.getcTasks();
  4267 + if(cts != null && cts.size() > 0){
  4268 + lists.add(s);
  4269 + }else{
  4270 + if(s.getZdsjActual()!=null){
  4271 + lists.add(s);
  4272 + }
4240 4273 }
4241 4274 }
4242 4275 DecimalFormat format = new DecimalFormat("0.00");
... ...
src/main/java/com/bsth/service/report/impl/CulateMileageServiceImpl.java
... ... @@ -568,8 +568,16 @@ public class CulateMileageServiceImpl implements CulateMileageService{
568 568 //有子任务
569 569 if (cts != null && cts.size() > 0) {
570 570 for(ChildTaskPlan c : cts){
571   - if(c.isDestroy() && (c.getDestroyReason()==null?"": c.getDestroyReason()).equals(item))
572   - sum = Arith.add(sum, c.getMileage());
  571 + if(item.equals("其他")){
  572 + if(c.isDestroy() &&
  573 + ((c.getDestroyReason()==null?"": c.getDestroyReason()).equals(item)||
  574 + (c.getDestroyReason()==null?"": c.getDestroyReason()).equals("")))
  575 + sum = Arith.add(sum, c.getMileage());
  576 + }else{
  577 + if(c.isDestroy() && (c.getDestroyReason()==null?"": c.getDestroyReason()).equals(item))
  578 + sum = Arith.add(sum, c.getMileage());
  579 + }
  580 +
573 581 }
574 582 }
575 583 else if(isInOut(sch))
... ...
src/main/java/com/bsth/service/report/impl/ReportServiceImpl.java
... ... @@ -981,7 +981,8 @@ public class ReportServiceImpl implements ReportService{
981 981 for (int i = 0; i < sList.size(); i++) {
982 982 ScheduleRealInfo scheduleRealInfo = sList.get(i);
983 983 if (!(scheduleRealInfo.getBcType().equals("in")
984   - || scheduleRealInfo.getBcType().equals("out"))) {
  984 + || scheduleRealInfo.getBcType().equals("out")
  985 + ||scheduleRealInfo.getBcType().equals("ldks"))) {
985 986 Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
986 987 if (childTaskPlans.isEmpty()) {
987 988 Map<String, Object> newMap = new HashMap<String, Object>();
... ... @@ -1009,32 +1010,62 @@ public class ReportServiceImpl implements ReportService{
1009 1010  
1010 1011 } else {
1011 1012 Iterator<ChildTaskPlan> it = childTaskPlans.iterator();
1012   - while (it.hasNext()) {
1013   - ChildTaskPlan childTaskPlan = it.next();
1014   - if (childTaskPlan.isDestroy()) {
1015   - String destroyReason = "";
1016   - if ( childTaskPlan.getDestroyReason() == null) {
1017   - destroyReason = "其他";
1018   - }else if(childTaskPlan.getDestroyReason().equals("")){
1019   - destroyReason = "其他";
1020   - } else {
1021   - destroyReason = childTaskPlan.getDestroyReason();
  1013 + if (scheduleRealInfo.getStatus() == -1) {
  1014 + while (it.hasNext()) {
  1015 + ChildTaskPlan childTaskPlan = it.next();
  1016 + if (childTaskPlan.isDestroy()) {
  1017 + String destroyReason = "";
  1018 + if ( childTaskPlan.getDestroyReason() == null) {
  1019 + destroyReason = "其他";
  1020 + }else if(childTaskPlan.getDestroyReason().equals("")){
  1021 + destroyReason = "其他";
  1022 + } else {
  1023 + destroyReason = childTaskPlan.getDestroyReason();
  1024 + }
  1025 + Map<String, Object> newMap = new HashMap<String, Object>();
  1026 + newMap.put("nr", destroyReason);
  1027 + newMap.put("lp", scheduleRealInfo.getLpName());
  1028 + newMap.put("nbbm", scheduleRealInfo.getClZbh());
  1029 + newMap.put("jgh", scheduleRealInfo.getjGh());
  1030 + newMap.put("dz", childTaskPlan.getStartStationName());
  1031 + newMap.put("sj", childTaskPlan.getStartDate());
  1032 + newMap.put("gzf", " ");
  1033 + newMap.put("lbbc", 1);
  1034 + newMap.put("lblc", childTaskPlan.getMileage());
  1035 + newMap.put("jyqp", childTaskPlan.getRemarks());
  1036 + list.add(newMap);
  1037 +
1022 1038 }
1023   - Map<String, Object> newMap = new HashMap<String, Object>();
1024   - newMap.put("nr", destroyReason);
1025   - newMap.put("lp", scheduleRealInfo.getLpName());
1026   - newMap.put("nbbm", scheduleRealInfo.getClZbh());
1027   - newMap.put("jgh", scheduleRealInfo.getjGh());
1028   - newMap.put("dz", childTaskPlan.getStartStationName());
1029   - newMap.put("sj", childTaskPlan.getStartDate());
1030   - newMap.put("gzf", " ");
1031   - newMap.put("lbbc", 0);
1032   - newMap.put("lblc", childTaskPlan.getMileage());
1033   - newMap.put("jyqp", childTaskPlan.getRemarks());
1034   - list.add(newMap);
  1039 + }
  1040 + }else{
  1041 + while (it.hasNext()) {
  1042 + ChildTaskPlan childTaskPlan = it.next();
  1043 + if (childTaskPlan.isDestroy()) {
  1044 + String destroyReason = "";
  1045 + if ( childTaskPlan.getDestroyReason() == null) {
  1046 + destroyReason = "其他";
  1047 + }else if(childTaskPlan.getDestroyReason().equals("")){
  1048 + destroyReason = "其他";
  1049 + } else {
  1050 + destroyReason = childTaskPlan.getDestroyReason();
  1051 + }
  1052 + Map<String, Object> newMap = new HashMap<String, Object>();
  1053 + newMap.put("nr", destroyReason);
  1054 + newMap.put("lp", scheduleRealInfo.getLpName());
  1055 + newMap.put("nbbm", scheduleRealInfo.getClZbh());
  1056 + newMap.put("jgh", scheduleRealInfo.getjGh());
  1057 + newMap.put("dz", childTaskPlan.getStartStationName());
  1058 + newMap.put("sj", childTaskPlan.getStartDate());
  1059 + newMap.put("gzf", " ");
  1060 + newMap.put("lbbc", 0);
  1061 + newMap.put("lblc", childTaskPlan.getMileage());
  1062 + newMap.put("jyqp", childTaskPlan.getRemarks());
  1063 + list.add(newMap);
1035 1064  
  1065 + }
1036 1066 }
1037 1067 }
  1068 +
1038 1069 }
1039 1070 }
1040 1071 }
... ... @@ -1086,7 +1117,8 @@ public class ReportServiceImpl implements ReportService{
1086 1117 for (int i = 0; i < sList.size(); i++) {
1087 1118 ScheduleRealInfo scheduleRealInfo=sList.get(i);
1088 1119 if (!(scheduleRealInfo.getBcType().equals("in")
1089   - || scheduleRealInfo.getBcType().equals("out"))) {
  1120 + || scheduleRealInfo.getBcType().equals("out")
  1121 + || scheduleRealInfo.getBcType().equals("ldks"))) {
1090 1122 // Set<ChildTaskPlan> childTaskPlans = scheduleRealInfo.getcTasks();
1091 1123 // if(childTaskPlans.isEmpty()){
1092 1124 if(scheduleRealInfo.isSflj()){
... ...
src/main/java/com/bsth/service/schedule/datatools/CarConfigInfoDataToolsImpl.java
1   -package com.bsth.service.schedule.datatools;
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   -
25   -/**
26   - * Created by xu on 17/5/16.
27   - */
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   - }
129   -}
  1 +package com.bsth.service.schedule.datatools;
  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 +
  25 +/**
  26 + * Created by xu on 17/5/16.
  27 + */
  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 + }
  129 +}
... ...
src/main/java/com/bsth/service/schedule/datatools/CarsDataToolsImpl.java
1   -package com.bsth.service.schedule.datatools;
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   -
25   -/**
26   - * Created by xu on 17/5/16.
27   - */
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   - }
125   -}
  1 +package com.bsth.service.schedule.datatools;
  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 +
  25 +/**
  26 + * Created by xu on 17/5/16.
  27 + */
  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 + }
  125 +}
... ...
src/main/java/com/bsth/service/schedule/datatools/EmployeeConfigInfoDataToolsImpl.java
1   -package com.bsth.service.schedule.datatools;
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   -
25   -/**
26   - * Created by xu on 17/5/16.
27   - */
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   - }
129   -}
  1 +package com.bsth.service.schedule.datatools;
  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 +
  25 +/**
  26 + * Created by xu on 17/5/16.
  27 + */
  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 + }
  129 +}
... ...
src/main/java/com/bsth/service/schedule/datatools/EmployeeDataToolsImpl.java
1   -package com.bsth.service.schedule.datatools;
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   -
25   -/**
26   - * Created by xu on 17/5/16.
27   - */
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   - }
125   -}
  1 +package com.bsth.service.schedule.datatools;
  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 +
  25 +/**
  26 + * Created by xu on 17/5/16.
  27 + */
  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 + }
  125 +}
... ...
src/main/java/com/bsth/service/schedule/datatools/GuideboardInfoDataToolsImpl.java
1   -package com.bsth.service.schedule.datatools;
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   -
25   -/**
26   - * Created by xu on 17/5/16.
27   - */
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   - }
129   -}
  1 +package com.bsth.service.schedule.datatools;
  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 +
  25 +/**
  26 + * Created by xu on 17/5/16.
  27 + */
  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 + }
  129 +}
... ...
src/main/java/com/bsth/service/schedule/datatools/ScheduleRule1FlatDataToolsImpl.java
1   -package com.bsth.service.schedule.datatools;
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   -
25   -/**
26   - * Created by xu on 17/5/16.
27   - */
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   - }
129   -}
  1 +package com.bsth.service.schedule.datatools;
  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 +
  25 +/**
  26 + * Created by xu on 17/5/16.
  27 + */
  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 + }
  129 +}
... ...
src/main/java/com/bsth/service/schedule/datatools/TTInfoDetailForEdit.java
... ... @@ -165,3 +165,4 @@ public interface TTInfoDetailForEdit {
165 165 EditInfo getEditInfo(Integer xlid, Long ttid, Long maxfcno) throws ScheduleException;
166 166  
167 167 }
  168 +
... ...
src/main/java/com/bsth/websocket/handler/RealControlSocketHandler.java
... ... @@ -133,13 +133,14 @@ public class RealControlSocketHandler implements WebSocketHandler {
133 133 WebSocketSession user;
134 134 while(iterator.hasNext()){
135 135 user = iterator.next();
136   - try {
  136 + WebSocketPushQueue.put(user, message);
  137 + /*try {
137 138 if (user.isOpen()) {
138 139 user.sendMessage(message);
139 140 }
140 141 } catch (Exception e) {
141 142 logger.error("sendMessage error ...."+msg);
142   - }
  143 + }*/
143 144 }
144 145 }
145 146 }
... ...
src/main/resources/datatools/ktrs/carsDataInput.ktr
1   -<?xml version="1.0" encoding="UTF-8"?>
2   -<transformation>
3   - <info>
4   - <name>&#x8f66;&#x8f86;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</name>
5   - <description>&#x8f66;&#x8f86;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</description>
6   - <extended_description>&#x8f66;&#x8f86;&#x57fa;&#x7840;&#x4fe1;&#x606f;</extended_description>
7   - <trans_version/>
8   - <trans_type>Normal</trans_type>
9   - <trans_status>0</trans_status>
10   - <directory>&#x2f;</directory>
11   - <parameters>
12   - <parameter>
13   - <name>erroroutputdir</name>
14   - <default_value/>
15   - <description>ktr step&#x914d;&#x7f6e;&#x7684;&#x9519;&#x8bef;&#x8f93;&#x51fa;&#x76ee;&#x5f55;</description>
16   - </parameter>
17   - <parameter>
18   - <name>filepath</name>
19   - <default_value/>
20   - <description>&#x5f85;&#x5904;&#x7406;&#x5bfc;&#x5165;&#x7684;excel&#x6587;&#x4ef6;</description>
21   - </parameter>
22   - </parameters>
23   - <log>
24   -<trans-log-table><connection/>
25   -<schema/>
26   -<table/>
27   -<size_limit_lines/>
28   -<interval/>
29   -<timeout_days/>
30   -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STATUS</id><enabled>Y</enabled><name>STATUS</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name><subject/></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name><subject/></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name><subject/></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name><subject/></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name><subject/></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name><subject/></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>STARTDATE</id><enabled>Y</enabled><name>STARTDATE</name></field><field><id>ENDDATE</id><enabled>Y</enabled><name>ENDDATE</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>DEPDATE</id><enabled>Y</enabled><name>DEPDATE</name></field><field><id>REPLAYDATE</id><enabled>Y</enabled><name>REPLAYDATE</name></field><field><id>LOG_FIELD</id><enabled>Y</enabled><name>LOG_FIELD</name></field><field><id>EXECUTING_SERVER</id><enabled>N</enabled><name>EXECUTING_SERVER</name></field><field><id>EXECUTING_USER</id><enabled>N</enabled><name>EXECUTING_USER</name></field><field><id>CLIENT</id><enabled>N</enabled><name>CLIENT</name></field></trans-log-table>
31   -<perf-log-table><connection/>
32   -<schema/>
33   -<table/>
34   -<interval/>
35   -<timeout_days/>
36   -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>SEQ_NR</id><enabled>Y</enabled><name>SEQ_NR</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>INPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>INPUT_BUFFER_ROWS</name></field><field><id>OUTPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>OUTPUT_BUFFER_ROWS</name></field></perf-log-table>
37   -<channel-log-table><connection/>
38   -<schema/>
39   -<table/>
40   -<timeout_days/>
41   -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>LOGGING_OBJECT_TYPE</id><enabled>Y</enabled><name>LOGGING_OBJECT_TYPE</name></field><field><id>OBJECT_NAME</id><enabled>Y</enabled><name>OBJECT_NAME</name></field><field><id>OBJECT_COPY</id><enabled>Y</enabled><name>OBJECT_COPY</name></field><field><id>REPOSITORY_DIRECTORY</id><enabled>Y</enabled><name>REPOSITORY_DIRECTORY</name></field><field><id>FILENAME</id><enabled>Y</enabled><name>FILENAME</name></field><field><id>OBJECT_ID</id><enabled>Y</enabled><name>OBJECT_ID</name></field><field><id>OBJECT_REVISION</id><enabled>Y</enabled><name>OBJECT_REVISION</name></field><field><id>PARENT_CHANNEL_ID</id><enabled>Y</enabled><name>PARENT_CHANNEL_ID</name></field><field><id>ROOT_CHANNEL_ID</id><enabled>Y</enabled><name>ROOT_CHANNEL_ID</name></field></channel-log-table>
42   -<step-log-table><connection/>
43   -<schema/>
44   -<table/>
45   -<timeout_days/>
46   -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>LOG_FIELD</id><enabled>N</enabled><name>LOG_FIELD</name></field></step-log-table>
47   -<metrics-log-table><connection/>
48   -<schema/>
49   -<table/>
50   -<timeout_days/>
51   -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>METRICS_DATE</id><enabled>Y</enabled><name>METRICS_DATE</name></field><field><id>METRICS_CODE</id><enabled>Y</enabled><name>METRICS_CODE</name></field><field><id>METRICS_DESCRIPTION</id><enabled>Y</enabled><name>METRICS_DESCRIPTION</name></field><field><id>METRICS_SUBJECT</id><enabled>Y</enabled><name>METRICS_SUBJECT</name></field><field><id>METRICS_TYPE</id><enabled>Y</enabled><name>METRICS_TYPE</name></field><field><id>METRICS_VALUE</id><enabled>Y</enabled><name>METRICS_VALUE</name></field></metrics-log-table>
52   - </log>
53   - <maxdate>
54   - <connection/>
55   - <table/>
56   - <field/>
57   - <offset>0.0</offset>
58   - <maxdiff>0.0</maxdiff>
59   - </maxdate>
60   - <size_rowset>10000</size_rowset>
61   - <sleep_time_empty>50</sleep_time_empty>
62   - <sleep_time_full>50</sleep_time_full>
63   - <unique_connections>N</unique_connections>
64   - <feedback_shown>Y</feedback_shown>
65   - <feedback_size>50000</feedback_size>
66   - <using_thread_priorities>Y</using_thread_priorities>
67   - <shared_objects_file/>
68   - <capture_step_performance>N</capture_step_performance>
69   - <step_performance_capturing_delay>1000</step_performance_capturing_delay>
70   - <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
71   - <dependencies>
72   - </dependencies>
73   - <partitionschemas>
74   - </partitionschemas>
75   - <slaveservers>
76   - </slaveservers>
77   - <clusterschemas>
78   - </clusterschemas>
79   - <created_user>-</created_user>
80   - <created_date>2016&#x2f;06&#x2f;23 17&#x3a;44&#x3a;46.781</created_date>
81   - <modified_user>-</modified_user>
82   - <modified_date>2016&#x2f;06&#x2f;23 17&#x3a;44&#x3a;46.781</modified_date>
83   - <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>
84   - <is_key_private>N</is_key_private>
85   - </info>
86   - <notepads>
87   - </notepads>
88   - <connection>
89   - <name>192.168.168.1_jwgl_dw</name>
90   - <server>192.168.168.1</server>
91   - <type>ORACLE</type>
92   - <access>Native</access>
93   - <database>orcl</database>
94   - <port>1521</port>
95   - <username>jwgl_dw</username>
96   - <password>Encrypted 2be98afc86aa7f2e4cb13b977d2adabcd</password>
97   - <servername/>
98   - <data_tablespace/>
99   - <index_tablespace/>
100   - <attributes>
101   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
102   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
103   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
104   - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
105   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
106   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
107   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
108   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
109   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
110   - </attributes>
111   - </connection>
112   - <connection>
113   - <name>bus_control_variable</name>
114   - <server>&#x24;&#x7b;v_db_ip&#x7d;</server>
115   - <type>MYSQL</type>
116   - <access>Native</access>
117   - <database>&#x24;&#x7b;v_db_dname&#x7d;</database>
118   - <port>3306</port>
119   - <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
120   - <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>
121   - <servername/>
122   - <data_tablespace/>
123   - <index_tablespace/>
124   - <attributes>
125   - <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute>
126   - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
127   - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
128   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
129   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
130   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
131   - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
132   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
133   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
134   - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
135   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
136   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
137   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
138   - </attributes>
139   - </connection>
140   - <connection>
141   - <name>bus_control_&#x516c;&#x53f8;_201</name>
142   - <server>localhost</server>
143   - <type>MYSQL</type>
144   - <access>Native</access>
145   - <database>control</database>
146   - <port>3306</port>
147   - <username>root</username>
148   - <password>Encrypted </password>
149   - <servername/>
150   - <data_tablespace/>
151   - <index_tablespace/>
152   - <attributes>
153   - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
154   - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
155   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
156   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
157   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
158   - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
159   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
160   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
161   - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
162   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
163   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
164   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
165   - </attributes>
166   - </connection>
167   - <connection>
168   - <name>bus_control_&#x672c;&#x673a;</name>
169   - <server>localhost</server>
170   - <type>MYSQL</type>
171   - <access>Native</access>
172   - <database>control</database>
173   - <port>3306</port>
174   - <username>root</username>
175   - <password>Encrypted </password>
176   - <servername/>
177   - <data_tablespace/>
178   - <index_tablespace/>
179   - <attributes>
180   - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
181   - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
182   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
183   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
184   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
185   - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
186   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
187   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
188   - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
189   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
190   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
191   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
192   - </attributes>
193   - </connection>
194   - <connection>
195   - <name>xlab_mysql_youle</name>
196   - <server>101.231.124.8</server>
197   - <type>MYSQL</type>
198   - <access>Native</access>
199   - <database>xlab_youle</database>
200   - <port>45687</port>
201   - <username>xlab-youle</username>
202   - <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>
203   - <servername/>
204   - <data_tablespace/>
205   - <index_tablespace/>
206   - <attributes>
207   - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
208   - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
209   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
210   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
211   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
212   - <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>
213   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
214   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
215   - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
216   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
217   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
218   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
219   - </attributes>
220   - </connection>
221   - <connection>
222   - <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>
223   - <server>localhost</server>
224   - <type>MYSQL</type>
225   - <access>Native</access>
226   - <database>xlab_youle</database>
227   - <port>3306</port>
228   - <username>root</username>
229   - <password>Encrypted </password>
230   - <servername/>
231   - <data_tablespace/>
232   - <index_tablespace/>
233   - <attributes>
234   - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
235   - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
236   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
237   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
238   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
239   - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
240   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
241   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
242   - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
243   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
244   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
245   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
246   - </attributes>
247   - </connection>
248   - <connection>
249   - <name>xlab_youle</name>
250   - <server/>
251   - <type>MYSQL</type>
252   - <access>JNDI</access>
253   - <database>xlab_youle</database>
254   - <port>1521</port>
255   - <username/>
256   - <password>Encrypted </password>
257   - <servername/>
258   - <data_tablespace/>
259   - <index_tablespace/>
260   - <attributes>
261   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
262   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
263   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
264   - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
265   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
266   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
267   - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
268   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
269   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
270   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
271   - </attributes>
272   - </connection>
273   - <order>
274   - <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop>
275   - <hop> <from>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</to><enabled>Y</enabled> </hop>
276   - <hop> <from>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</to><enabled>Y</enabled> </hop>
277   - </order>
278   - <step>
279   - <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>
280   - <type>ExcelInput</type>
281   - <description/>
282   - <distribute>Y</distribute>
283   - <custom_distribution/>
284   - <copies>1</copies>
285   - <partitioning>
286   - <method>none</method>
287   - <schema_name/>
288   - </partitioning>
289   - <header>Y</header>
290   - <noempty>Y</noempty>
291   - <stoponempty>N</stoponempty>
292   - <filefield/>
293   - <sheetfield/>
294   - <sheetrownumfield/>
295   - <rownumfield/>
296   - <sheetfield/>
297   - <filefield/>
298   - <limit>0</limit>
299   - <encoding/>
300   - <add_to_result_filenames>Y</add_to_result_filenames>
301   - <accept_filenames>Y</accept_filenames>
302   - <accept_field>filepath_</accept_field>
303   - <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>
304   - <file>
305   - <name/>
306   - <filemask/>
307   - <exclude_filemask/>
308   - <file_required>N</file_required>
309   - <include_subfolders>N</include_subfolders>
310   - </file>
311   - <fields>
312   - <field>
313   - <name>&#x8f66;&#x724c;&#x53f7;</name>
314   - <type>String</type>
315   - <length>-1</length>
316   - <precision>-1</precision>
317   - <trim_type>none</trim_type>
318   - <repeat>N</repeat>
319   - <format/>
320   - <currency/>
321   - <decimal/>
322   - <group/>
323   - </field>
324   - <field>
325   - <name>&#x8f66;&#x8f86;&#x7f16;&#x7801;</name>
326   - <type>String</type>
327   - <length>-1</length>
328   - <precision>-1</precision>
329   - <trim_type>none</trim_type>
330   - <repeat>N</repeat>
331   - <format/>
332   - <currency/>
333   - <decimal/>
334   - <group/>
335   - </field>
336   - <field>
337   - <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
338   - <type>String</type>
339   - <length>-1</length>
340   - <precision>-1</precision>
341   - <trim_type>none</trim_type>
342   - <repeat>N</repeat>
343   - <format/>
344   - <currency/>
345   - <decimal/>
346   - <group/>
347   - </field>
348   - <field>
349   - <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>
350   - <type>String</type>
351   - <length>-1</length>
352   - <precision>-1</precision>
353   - <trim_type>none</trim_type>
354   - <repeat>N</repeat>
355   - <format/>
356   - <currency/>
357   - <decimal/>
358   - <group/>
359   - </field>
360   - <field>
361   - <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
362   - <type>String</type>
363   - <length>-1</length>
364   - <precision>-1</precision>
365   - <trim_type>none</trim_type>
366   - <repeat>N</repeat>
367   - <format/>
368   - <currency/>
369   - <decimal/>
370   - <group/>
371   - </field>
372   - <field>
373   - <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>
374   - <type>String</type>
375   - <length>-1</length>
376   - <precision>-1</precision>
377   - <trim_type>none</trim_type>
378   - <repeat>N</repeat>
379   - <format/>
380   - <currency/>
381   - <decimal/>
382   - <group/>
383   - </field>
384   - <field>
385   - <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
386   - <type>String</type>
387   - <length>-1</length>
388   - <precision>-1</precision>
389   - <trim_type>none</trim_type>
390   - <repeat>N</repeat>
391   - <format/>
392   - <currency/>
393   - <decimal/>
394   - <group/>
395   - </field>
396   - <field>
397   - <name>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</name>
398   - <type>String</type>
399   - <length>-1</length>
400   - <precision>-1</precision>
401   - <trim_type>none</trim_type>
402   - <repeat>N</repeat>
403   - <format/>
404   - <currency/>
405   - <decimal/>
406   - <group/>
407   - </field>
408   - <field>
409   - <name>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</name>
410   - <type>String</type>
411   - <length>-1</length>
412   - <precision>-1</precision>
413   - <trim_type>none</trim_type>
414   - <repeat>N</repeat>
415   - <format/>
416   - <currency/>
417   - <decimal/>
418   - <group/>
419   - </field>
420   - </fields>
421   - <sheets>
422   - <sheet>
423   - <name>&#x5de5;&#x4f5c;&#x8868;1</name>
424   - <startrow>0</startrow>
425   - <startcol>0</startcol>
426   - </sheet>
427   - </sheets>
428   - <strict_types>N</strict_types>
429   - <error_ignored>N</error_ignored>
430   - <error_line_skipped>N</error_line_skipped>
431   - <bad_line_files_destination_directory/>
432   - <bad_line_files_extension>warning</bad_line_files_extension>
433   - <error_line_files_destination_directory/>
434   - <error_line_files_extension>error</error_line_files_extension>
435   - <line_number_files_destination_directory/>
436   - <line_number_files_extension>line</line_number_files_extension>
437   - <shortFileFieldName/>
438   - <pathFieldName/>
439   - <hiddenFieldName/>
440   - <lastModificationTimeFieldName/>
441   - <uriNameFieldName/>
442   - <rootUriNameFieldName/>
443   - <extensionFieldName/>
444   - <sizeFieldName/>
445   - <spreadsheet_type>JXL</spreadsheet_type>
446   - <cluster_schema/>
447   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
448   - <xloc>131</xloc>
449   - <yloc>58</yloc>
450   - <draw>Y</draw>
451   - </GUI>
452   - </step>
453   -
454   - <step>
455   - <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</name>
456   - <type>InsertUpdate</type>
457   - <description/>
458   - <distribute>Y</distribute>
459   - <custom_distribution/>
460   - <copies>1</copies>
461   - <partitioning>
462   - <method>none</method>
463   - <schema_name/>
464   - </partitioning>
465   - <connection>bus_control_variable</connection>
466   - <commit>1000</commit>
467   - <update_bypassed>N</update_bypassed>
468   - <lookup>
469   - <schema/>
470   - <table>bsth_c_cars</table>
471   - <key>
472   - <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
473   - <field>inside_code</field>
474   - <condition>&#x3d;</condition>
475   - <name2/>
476   - </key>
477   - <value>
478   - <name>car_plate</name>
479   - <rename>&#x8f66;&#x724c;&#x53f7;</rename>
480   - <update>Y</update>
481   - </value>
482   - <value>
483   - <name>car_code</name>
484   - <rename>&#x8f66;&#x8f86;&#x7f16;&#x7801;</rename>
485   - <update>Y</update>
486   - </value>
487   - <value>
488   - <name>inside_code</name>
489   - <rename>&#x5185;&#x90e8;&#x7f16;&#x7801;</rename>
490   - <update>Y</update>
491   - </value>
492   - <value>
493   - <name>company</name>
494   - <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;</rename>
495   - <update>Y</update>
496   - </value>
497   - <value>
498   - <name>business_code</name>
499   - <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</rename>
500   - <update>Y</update>
501   - </value>
502   - <value>
503   - <name>branche_company</name>
504   - <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</rename>
505   - <update>Y</update>
506   - </value>
507   - <value>
508   - <name>branche_company_code</name>
509   - <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</rename>
510   - <update>Y</update>
511   - </value>
512   - <value>
513   - <name>supplier_name</name>
514   - <rename>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</rename>
515   - <update>Y</update>
516   - </value>
517   - <value>
518   - <name>equipment_code</name>
519   - <rename>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</rename>
520   - <update>Y</update>
521   - </value>
522   - </lookup>
523   - <cluster_schema/>
524   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
525   - <xloc>516</xloc>
526   - <yloc>138</yloc>
527   - <draw>Y</draw>
528   - </GUI>
529   - </step>
530   -
531   - <step>
532   - <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>
533   - <type>GetVariable</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   - <fields>
543   - <field>
544   - <name>filepath_</name>
545   - <variable>&#x24;&#x7b;filepath&#x7d;</variable>
546   - <type>String</type>
547   - <format/>
548   - <currency/>
549   - <decimal/>
550   - <group/>
551   - <length>-1</length>
552   - <precision>-1</precision>
553   - <trim_type>none</trim_type>
554   - </field>
555   - <field>
556   - <name>erroroutputdir_</name>
557   - <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>
558   - <type>String</type>
559   - <format/>
560   - <currency/>
561   - <decimal/>
562   - <group/>
563   - <length>-1</length>
564   - <precision>-1</precision>
565   - <trim_type>none</trim_type>
566   - </field>
567   - </fields>
568   - <cluster_schema/>
569   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
570   - <xloc>134</xloc>
571   - <yloc>183</yloc>
572   - <draw>Y</draw>
573   - </GUI>
574   - </step>
575   -
576   - <step>
577   - <name>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</name>
578   - <type>ExcelOutput</type>
579   - <description/>
580   - <distribute>Y</distribute>
581   - <custom_distribution/>
582   - <copies>1</copies>
583   - <partitioning>
584   - <method>none</method>
585   - <schema_name/>
586   - </partitioning>
587   - <header>Y</header>
588   - <footer>N</footer>
589   - <encoding/>
590   - <append>N</append>
591   - <add_to_result_filenames>Y</add_to_result_filenames>
592   - <file>
593   - <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x8f66;&#x8f86;&#x57fa;&#x7840;&#x4fe1;&#x606f;_&#x9519;&#x8bef;</name>
594   - <extention>xls</extention>
595   - <do_not_open_newfile_init>N</do_not_open_newfile_init>
596   - <create_parent_folder>N</create_parent_folder>
597   - <split>N</split>
598   - <add_date>N</add_date>
599   - <add_time>N</add_time>
600   - <SpecifyFormat>N</SpecifyFormat>
601   - <date_time_format/>
602   - <sheetname>Sheet1</sheetname>
603   - <autosizecolums>N</autosizecolums>
604   - <nullisblank>N</nullisblank>
605   - <protect_sheet>N</protect_sheet>
606   - <password>Encrypted </password>
607   - <splitevery>0</splitevery>
608   - <usetempfiles>N</usetempfiles>
609   - <tempdirectory/>
610   - </file>
611   - <template>
612   - <enabled>N</enabled>
613   - <append>N</append>
614   - <filename>template.xls</filename>
615   - </template>
616   - <fields>
617   - <field>
618   - <name>&#x8f66;&#x724c;&#x53f7;</name>
619   - <type>String</type>
620   - <format/>
621   - </field>
622   - <field>
623   - <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
624   - <type>String</type>
625   - <format/>
626   - </field>
627   - <field>
628   - <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>
629   - <type>String</type>
630   - <format/>
631   - </field>
632   - <field>
633   - <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
634   - <type>String</type>
635   - <format/>
636   - </field>
637   - <field>
638   - <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>
639   - <type>String</type>
640   - <format/>
641   - </field>
642   - <field>
643   - <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
644   - <type>String</type>
645   - <format/>
646   - </field>
647   - <field>
648   - <name>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</name>
649   - <type>String</type>
650   - <format/>
651   - </field>
652   - <field>
653   - <name>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</name>
654   - <type>String</type>
655   - <format/>
656   - </field>
657   - <field>
658   - <name>error_count</name>
659   - <type>Integer</type>
660   - <format/>
661   - </field>
662   - <field>
663   - <name>error_desc</name>
664   - <type>String</type>
665   - <format/>
666   - </field>
667   - <field>
668   - <name>error_column1</name>
669   - <type>String</type>
670   - <format/>
671   - </field>
672   - <field>
673   - <name>error_column2</name>
674   - <type>String</type>
675   - <format/>
676   - </field>
677   - </fields>
678   - <custom>
679   - <header_font_name>arial</header_font_name>
680   - <header_font_size>10</header_font_size>
681   - <header_font_bold>N</header_font_bold>
682   - <header_font_italic>N</header_font_italic>
683   - <header_font_underline>no</header_font_underline>
684   - <header_font_orientation>horizontal</header_font_orientation>
685   - <header_font_color>black</header_font_color>
686   - <header_background_color>none</header_background_color>
687   - <header_row_height>255</header_row_height>
688   - <header_alignment>left</header_alignment>
689   - <header_image/>
690   - <row_font_name>arial</row_font_name>
691   - <row_font_size>10</row_font_size>
692   - <row_font_color>black</row_font_color>
693   - <row_background_color>none</row_background_color>
694   - </custom>
695   - <cluster_schema/>
696   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
697   - <xloc>328</xloc>
698   - <yloc>140</yloc>
699   - <draw>Y</draw>
700   - </GUI>
701   - </step>
702   -
703   - <step_error_handling>
704   - <error>
705   - <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</source_step>
706   - <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</target_step>
707   - <is_enabled>Y</is_enabled>
708   - <nr_valuename>error_count</nr_valuename>
709   - <descriptions_valuename>error_desc</descriptions_valuename>
710   - <fields_valuename>error_column1</fields_valuename>
711   - <codes_valuename>error_column2</codes_valuename>
712   - <max_errors/>
713   - <max_pct_errors/>
714   - <min_pct_rows/>
715   - </error>
716   - </step_error_handling>
717   - <slave-step-copy-partition-distribution>
718   -</slave-step-copy-partition-distribution>
719   - <slave_transformation>N</slave_transformation>
720   -
721   -</transformation>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<transformation>
  3 + <info>
  4 + <name>&#x8f66;&#x8f86;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</name>
  5 + <description>&#x8f66;&#x8f86;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</description>
  6 + <extended_description>&#x8f66;&#x8f86;&#x57fa;&#x7840;&#x4fe1;&#x606f;</extended_description>
  7 + <trans_version/>
  8 + <trans_type>Normal</trans_type>
  9 + <trans_status>0</trans_status>
  10 + <directory>&#x2f;</directory>
  11 + <parameters>
  12 + <parameter>
  13 + <name>erroroutputdir</name>
  14 + <default_value/>
  15 + <description>ktr step&#x914d;&#x7f6e;&#x7684;&#x9519;&#x8bef;&#x8f93;&#x51fa;&#x76ee;&#x5f55;</description>
  16 + </parameter>
  17 + <parameter>
  18 + <name>filepath</name>
  19 + <default_value/>
  20 + <description>&#x5f85;&#x5904;&#x7406;&#x5bfc;&#x5165;&#x7684;excel&#x6587;&#x4ef6;</description>
  21 + </parameter>
  22 + </parameters>
  23 + <log>
  24 +<trans-log-table><connection/>
  25 +<schema/>
  26 +<table/>
  27 +<size_limit_lines/>
  28 +<interval/>
  29 +<timeout_days/>
  30 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STATUS</id><enabled>Y</enabled><name>STATUS</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name><subject/></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name><subject/></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name><subject/></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name><subject/></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name><subject/></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name><subject/></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>STARTDATE</id><enabled>Y</enabled><name>STARTDATE</name></field><field><id>ENDDATE</id><enabled>Y</enabled><name>ENDDATE</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>DEPDATE</id><enabled>Y</enabled><name>DEPDATE</name></field><field><id>REPLAYDATE</id><enabled>Y</enabled><name>REPLAYDATE</name></field><field><id>LOG_FIELD</id><enabled>Y</enabled><name>LOG_FIELD</name></field><field><id>EXECUTING_SERVER</id><enabled>N</enabled><name>EXECUTING_SERVER</name></field><field><id>EXECUTING_USER</id><enabled>N</enabled><name>EXECUTING_USER</name></field><field><id>CLIENT</id><enabled>N</enabled><name>CLIENT</name></field></trans-log-table>
  31 +<perf-log-table><connection/>
  32 +<schema/>
  33 +<table/>
  34 +<interval/>
  35 +<timeout_days/>
  36 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>SEQ_NR</id><enabled>Y</enabled><name>SEQ_NR</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>INPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>INPUT_BUFFER_ROWS</name></field><field><id>OUTPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>OUTPUT_BUFFER_ROWS</name></field></perf-log-table>
  37 +<channel-log-table><connection/>
  38 +<schema/>
  39 +<table/>
  40 +<timeout_days/>
  41 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>LOGGING_OBJECT_TYPE</id><enabled>Y</enabled><name>LOGGING_OBJECT_TYPE</name></field><field><id>OBJECT_NAME</id><enabled>Y</enabled><name>OBJECT_NAME</name></field><field><id>OBJECT_COPY</id><enabled>Y</enabled><name>OBJECT_COPY</name></field><field><id>REPOSITORY_DIRECTORY</id><enabled>Y</enabled><name>REPOSITORY_DIRECTORY</name></field><field><id>FILENAME</id><enabled>Y</enabled><name>FILENAME</name></field><field><id>OBJECT_ID</id><enabled>Y</enabled><name>OBJECT_ID</name></field><field><id>OBJECT_REVISION</id><enabled>Y</enabled><name>OBJECT_REVISION</name></field><field><id>PARENT_CHANNEL_ID</id><enabled>Y</enabled><name>PARENT_CHANNEL_ID</name></field><field><id>ROOT_CHANNEL_ID</id><enabled>Y</enabled><name>ROOT_CHANNEL_ID</name></field></channel-log-table>
  42 +<step-log-table><connection/>
  43 +<schema/>
  44 +<table/>
  45 +<timeout_days/>
  46 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>LOG_FIELD</id><enabled>N</enabled><name>LOG_FIELD</name></field></step-log-table>
  47 +<metrics-log-table><connection/>
  48 +<schema/>
  49 +<table/>
  50 +<timeout_days/>
  51 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>METRICS_DATE</id><enabled>Y</enabled><name>METRICS_DATE</name></field><field><id>METRICS_CODE</id><enabled>Y</enabled><name>METRICS_CODE</name></field><field><id>METRICS_DESCRIPTION</id><enabled>Y</enabled><name>METRICS_DESCRIPTION</name></field><field><id>METRICS_SUBJECT</id><enabled>Y</enabled><name>METRICS_SUBJECT</name></field><field><id>METRICS_TYPE</id><enabled>Y</enabled><name>METRICS_TYPE</name></field><field><id>METRICS_VALUE</id><enabled>Y</enabled><name>METRICS_VALUE</name></field></metrics-log-table>
  52 + </log>
  53 + <maxdate>
  54 + <connection/>
  55 + <table/>
  56 + <field/>
  57 + <offset>0.0</offset>
  58 + <maxdiff>0.0</maxdiff>
  59 + </maxdate>
  60 + <size_rowset>10000</size_rowset>
  61 + <sleep_time_empty>50</sleep_time_empty>
  62 + <sleep_time_full>50</sleep_time_full>
  63 + <unique_connections>N</unique_connections>
  64 + <feedback_shown>Y</feedback_shown>
  65 + <feedback_size>50000</feedback_size>
  66 + <using_thread_priorities>Y</using_thread_priorities>
  67 + <shared_objects_file/>
  68 + <capture_step_performance>N</capture_step_performance>
  69 + <step_performance_capturing_delay>1000</step_performance_capturing_delay>
  70 + <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
  71 + <dependencies>
  72 + </dependencies>
  73 + <partitionschemas>
  74 + </partitionschemas>
  75 + <slaveservers>
  76 + </slaveservers>
  77 + <clusterschemas>
  78 + </clusterschemas>
  79 + <created_user>-</created_user>
  80 + <created_date>2016&#x2f;06&#x2f;23 17&#x3a;44&#x3a;46.781</created_date>
  81 + <modified_user>-</modified_user>
  82 + <modified_date>2016&#x2f;06&#x2f;23 17&#x3a;44&#x3a;46.781</modified_date>
  83 + <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>
  84 + <is_key_private>N</is_key_private>
  85 + </info>
  86 + <notepads>
  87 + </notepads>
  88 + <connection>
  89 + <name>192.168.168.1_jwgl_dw</name>
  90 + <server>192.168.168.1</server>
  91 + <type>ORACLE</type>
  92 + <access>Native</access>
  93 + <database>orcl</database>
  94 + <port>1521</port>
  95 + <username>jwgl_dw</username>
  96 + <password>Encrypted 2be98afc86aa7f2e4cb13b977d2adabcd</password>
  97 + <servername/>
  98 + <data_tablespace/>
  99 + <index_tablespace/>
  100 + <attributes>
  101 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  102 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  103 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  104 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  105 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  106 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  107 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  108 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  109 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  110 + </attributes>
  111 + </connection>
  112 + <connection>
  113 + <name>bus_control_variable</name>
  114 + <server>&#x24;&#x7b;v_db_ip&#x7d;</server>
  115 + <type>MYSQL</type>
  116 + <access>Native</access>
  117 + <database>&#x24;&#x7b;v_db_dname&#x7d;</database>
  118 + <port>3306</port>
  119 + <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
  120 + <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>
  121 + <servername/>
  122 + <data_tablespace/>
  123 + <index_tablespace/>
  124 + <attributes>
  125 + <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute>
  126 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  127 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  128 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  129 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  130 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  131 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  132 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  133 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  134 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  135 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  136 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  137 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  138 + </attributes>
  139 + </connection>
  140 + <connection>
  141 + <name>bus_control_&#x516c;&#x53f8;_201</name>
  142 + <server>localhost</server>
  143 + <type>MYSQL</type>
  144 + <access>Native</access>
  145 + <database>control</database>
  146 + <port>3306</port>
  147 + <username>root</username>
  148 + <password>Encrypted </password>
  149 + <servername/>
  150 + <data_tablespace/>
  151 + <index_tablespace/>
  152 + <attributes>
  153 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  154 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  155 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  156 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  157 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  158 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  159 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  160 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  161 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  162 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  163 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  164 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  165 + </attributes>
  166 + </connection>
  167 + <connection>
  168 + <name>bus_control_&#x672c;&#x673a;</name>
  169 + <server>localhost</server>
  170 + <type>MYSQL</type>
  171 + <access>Native</access>
  172 + <database>control</database>
  173 + <port>3306</port>
  174 + <username>root</username>
  175 + <password>Encrypted </password>
  176 + <servername/>
  177 + <data_tablespace/>
  178 + <index_tablespace/>
  179 + <attributes>
  180 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  181 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  182 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  183 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  184 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  185 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  186 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  187 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  188 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  189 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  190 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  191 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  192 + </attributes>
  193 + </connection>
  194 + <connection>
  195 + <name>xlab_mysql_youle</name>
  196 + <server>101.231.124.8</server>
  197 + <type>MYSQL</type>
  198 + <access>Native</access>
  199 + <database>xlab_youle</database>
  200 + <port>45687</port>
  201 + <username>xlab-youle</username>
  202 + <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>
  203 + <servername/>
  204 + <data_tablespace/>
  205 + <index_tablespace/>
  206 + <attributes>
  207 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  208 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  209 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  210 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  211 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  212 + <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>
  213 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  214 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  215 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  216 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  217 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  218 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  219 + </attributes>
  220 + </connection>
  221 + <connection>
  222 + <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>
  223 + <server>localhost</server>
  224 + <type>MYSQL</type>
  225 + <access>Native</access>
  226 + <database>xlab_youle</database>
  227 + <port>3306</port>
  228 + <username>root</username>
  229 + <password>Encrypted </password>
  230 + <servername/>
  231 + <data_tablespace/>
  232 + <index_tablespace/>
  233 + <attributes>
  234 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  235 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  236 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  237 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  238 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  239 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  240 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  241 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  242 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  243 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  244 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  245 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  246 + </attributes>
  247 + </connection>
  248 + <connection>
  249 + <name>xlab_youle</name>
  250 + <server/>
  251 + <type>MYSQL</type>
  252 + <access>JNDI</access>
  253 + <database>xlab_youle</database>
  254 + <port>1521</port>
  255 + <username/>
  256 + <password>Encrypted </password>
  257 + <servername/>
  258 + <data_tablespace/>
  259 + <index_tablespace/>
  260 + <attributes>
  261 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  262 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  263 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  264 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  265 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  266 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  267 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  268 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  269 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  270 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  271 + </attributes>
  272 + </connection>
  273 + <order>
  274 + <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop>
  275 + <hop> <from>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</to><enabled>Y</enabled> </hop>
  276 + <hop> <from>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</to><enabled>Y</enabled> </hop>
  277 + </order>
  278 + <step>
  279 + <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>
  280 + <type>ExcelInput</type>
  281 + <description/>
  282 + <distribute>Y</distribute>
  283 + <custom_distribution/>
  284 + <copies>1</copies>
  285 + <partitioning>
  286 + <method>none</method>
  287 + <schema_name/>
  288 + </partitioning>
  289 + <header>Y</header>
  290 + <noempty>Y</noempty>
  291 + <stoponempty>N</stoponempty>
  292 + <filefield/>
  293 + <sheetfield/>
  294 + <sheetrownumfield/>
  295 + <rownumfield/>
  296 + <sheetfield/>
  297 + <filefield/>
  298 + <limit>0</limit>
  299 + <encoding/>
  300 + <add_to_result_filenames>Y</add_to_result_filenames>
  301 + <accept_filenames>Y</accept_filenames>
  302 + <accept_field>filepath_</accept_field>
  303 + <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>
  304 + <file>
  305 + <name/>
  306 + <filemask/>
  307 + <exclude_filemask/>
  308 + <file_required>N</file_required>
  309 + <include_subfolders>N</include_subfolders>
  310 + </file>
  311 + <fields>
  312 + <field>
  313 + <name>&#x8f66;&#x724c;&#x53f7;</name>
  314 + <type>String</type>
  315 + <length>-1</length>
  316 + <precision>-1</precision>
  317 + <trim_type>none</trim_type>
  318 + <repeat>N</repeat>
  319 + <format/>
  320 + <currency/>
  321 + <decimal/>
  322 + <group/>
  323 + </field>
  324 + <field>
  325 + <name>&#x8f66;&#x8f86;&#x7f16;&#x7801;</name>
  326 + <type>String</type>
  327 + <length>-1</length>
  328 + <precision>-1</precision>
  329 + <trim_type>none</trim_type>
  330 + <repeat>N</repeat>
  331 + <format/>
  332 + <currency/>
  333 + <decimal/>
  334 + <group/>
  335 + </field>
  336 + <field>
  337 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  338 + <type>String</type>
  339 + <length>-1</length>
  340 + <precision>-1</precision>
  341 + <trim_type>none</trim_type>
  342 + <repeat>N</repeat>
  343 + <format/>
  344 + <currency/>
  345 + <decimal/>
  346 + <group/>
  347 + </field>
  348 + <field>
  349 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>
  350 + <type>String</type>
  351 + <length>-1</length>
  352 + <precision>-1</precision>
  353 + <trim_type>none</trim_type>
  354 + <repeat>N</repeat>
  355 + <format/>
  356 + <currency/>
  357 + <decimal/>
  358 + <group/>
  359 + </field>
  360 + <field>
  361 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
  362 + <type>String</type>
  363 + <length>-1</length>
  364 + <precision>-1</precision>
  365 + <trim_type>none</trim_type>
  366 + <repeat>N</repeat>
  367 + <format/>
  368 + <currency/>
  369 + <decimal/>
  370 + <group/>
  371 + </field>
  372 + <field>
  373 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>
  374 + <type>String</type>
  375 + <length>-1</length>
  376 + <precision>-1</precision>
  377 + <trim_type>none</trim_type>
  378 + <repeat>N</repeat>
  379 + <format/>
  380 + <currency/>
  381 + <decimal/>
  382 + <group/>
  383 + </field>
  384 + <field>
  385 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
  386 + <type>String</type>
  387 + <length>-1</length>
  388 + <precision>-1</precision>
  389 + <trim_type>none</trim_type>
  390 + <repeat>N</repeat>
  391 + <format/>
  392 + <currency/>
  393 + <decimal/>
  394 + <group/>
  395 + </field>
  396 + <field>
  397 + <name>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</name>
  398 + <type>String</type>
  399 + <length>-1</length>
  400 + <precision>-1</precision>
  401 + <trim_type>none</trim_type>
  402 + <repeat>N</repeat>
  403 + <format/>
  404 + <currency/>
  405 + <decimal/>
  406 + <group/>
  407 + </field>
  408 + <field>
  409 + <name>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</name>
  410 + <type>String</type>
  411 + <length>-1</length>
  412 + <precision>-1</precision>
  413 + <trim_type>none</trim_type>
  414 + <repeat>N</repeat>
  415 + <format/>
  416 + <currency/>
  417 + <decimal/>
  418 + <group/>
  419 + </field>
  420 + </fields>
  421 + <sheets>
  422 + <sheet>
  423 + <name>&#x5de5;&#x4f5c;&#x8868;1</name>
  424 + <startrow>0</startrow>
  425 + <startcol>0</startcol>
  426 + </sheet>
  427 + </sheets>
  428 + <strict_types>N</strict_types>
  429 + <error_ignored>N</error_ignored>
  430 + <error_line_skipped>N</error_line_skipped>
  431 + <bad_line_files_destination_directory/>
  432 + <bad_line_files_extension>warning</bad_line_files_extension>
  433 + <error_line_files_destination_directory/>
  434 + <error_line_files_extension>error</error_line_files_extension>
  435 + <line_number_files_destination_directory/>
  436 + <line_number_files_extension>line</line_number_files_extension>
  437 + <shortFileFieldName/>
  438 + <pathFieldName/>
  439 + <hiddenFieldName/>
  440 + <lastModificationTimeFieldName/>
  441 + <uriNameFieldName/>
  442 + <rootUriNameFieldName/>
  443 + <extensionFieldName/>
  444 + <sizeFieldName/>
  445 + <spreadsheet_type>JXL</spreadsheet_type>
  446 + <cluster_schema/>
  447 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  448 + <xloc>131</xloc>
  449 + <yloc>58</yloc>
  450 + <draw>Y</draw>
  451 + </GUI>
  452 + </step>
  453 +
  454 + <step>
  455 + <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</name>
  456 + <type>InsertUpdate</type>
  457 + <description/>
  458 + <distribute>Y</distribute>
  459 + <custom_distribution/>
  460 + <copies>1</copies>
  461 + <partitioning>
  462 + <method>none</method>
  463 + <schema_name/>
  464 + </partitioning>
  465 + <connection>bus_control_variable</connection>
  466 + <commit>1000</commit>
  467 + <update_bypassed>N</update_bypassed>
  468 + <lookup>
  469 + <schema/>
  470 + <table>bsth_c_cars</table>
  471 + <key>
  472 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  473 + <field>inside_code</field>
  474 + <condition>&#x3d;</condition>
  475 + <name2/>
  476 + </key>
  477 + <value>
  478 + <name>car_plate</name>
  479 + <rename>&#x8f66;&#x724c;&#x53f7;</rename>
  480 + <update>Y</update>
  481 + </value>
  482 + <value>
  483 + <name>car_code</name>
  484 + <rename>&#x8f66;&#x8f86;&#x7f16;&#x7801;</rename>
  485 + <update>Y</update>
  486 + </value>
  487 + <value>
  488 + <name>inside_code</name>
  489 + <rename>&#x5185;&#x90e8;&#x7f16;&#x7801;</rename>
  490 + <update>Y</update>
  491 + </value>
  492 + <value>
  493 + <name>company</name>
  494 + <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;</rename>
  495 + <update>Y</update>
  496 + </value>
  497 + <value>
  498 + <name>business_code</name>
  499 + <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</rename>
  500 + <update>Y</update>
  501 + </value>
  502 + <value>
  503 + <name>branche_company</name>
  504 + <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</rename>
  505 + <update>Y</update>
  506 + </value>
  507 + <value>
  508 + <name>branche_company_code</name>
  509 + <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</rename>
  510 + <update>Y</update>
  511 + </value>
  512 + <value>
  513 + <name>supplier_name</name>
  514 + <rename>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</rename>
  515 + <update>Y</update>
  516 + </value>
  517 + <value>
  518 + <name>equipment_code</name>
  519 + <rename>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</rename>
  520 + <update>Y</update>
  521 + </value>
  522 + </lookup>
  523 + <cluster_schema/>
  524 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  525 + <xloc>516</xloc>
  526 + <yloc>138</yloc>
  527 + <draw>Y</draw>
  528 + </GUI>
  529 + </step>
  530 +
  531 + <step>
  532 + <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>
  533 + <type>GetVariable</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 + <fields>
  543 + <field>
  544 + <name>filepath_</name>
  545 + <variable>&#x24;&#x7b;filepath&#x7d;</variable>
  546 + <type>String</type>
  547 + <format/>
  548 + <currency/>
  549 + <decimal/>
  550 + <group/>
  551 + <length>-1</length>
  552 + <precision>-1</precision>
  553 + <trim_type>none</trim_type>
  554 + </field>
  555 + <field>
  556 + <name>erroroutputdir_</name>
  557 + <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>
  558 + <type>String</type>
  559 + <format/>
  560 + <currency/>
  561 + <decimal/>
  562 + <group/>
  563 + <length>-1</length>
  564 + <precision>-1</precision>
  565 + <trim_type>none</trim_type>
  566 + </field>
  567 + </fields>
  568 + <cluster_schema/>
  569 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  570 + <xloc>134</xloc>
  571 + <yloc>183</yloc>
  572 + <draw>Y</draw>
  573 + </GUI>
  574 + </step>
  575 +
  576 + <step>
  577 + <name>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</name>
  578 + <type>ExcelOutput</type>
  579 + <description/>
  580 + <distribute>Y</distribute>
  581 + <custom_distribution/>
  582 + <copies>1</copies>
  583 + <partitioning>
  584 + <method>none</method>
  585 + <schema_name/>
  586 + </partitioning>
  587 + <header>Y</header>
  588 + <footer>N</footer>
  589 + <encoding/>
  590 + <append>N</append>
  591 + <add_to_result_filenames>Y</add_to_result_filenames>
  592 + <file>
  593 + <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x8f66;&#x8f86;&#x57fa;&#x7840;&#x4fe1;&#x606f;_&#x9519;&#x8bef;</name>
  594 + <extention>xls</extention>
  595 + <do_not_open_newfile_init>N</do_not_open_newfile_init>
  596 + <create_parent_folder>N</create_parent_folder>
  597 + <split>N</split>
  598 + <add_date>N</add_date>
  599 + <add_time>N</add_time>
  600 + <SpecifyFormat>N</SpecifyFormat>
  601 + <date_time_format/>
  602 + <sheetname>Sheet1</sheetname>
  603 + <autosizecolums>N</autosizecolums>
  604 + <nullisblank>N</nullisblank>
  605 + <protect_sheet>N</protect_sheet>
  606 + <password>Encrypted </password>
  607 + <splitevery>0</splitevery>
  608 + <usetempfiles>N</usetempfiles>
  609 + <tempdirectory/>
  610 + </file>
  611 + <template>
  612 + <enabled>N</enabled>
  613 + <append>N</append>
  614 + <filename>template.xls</filename>
  615 + </template>
  616 + <fields>
  617 + <field>
  618 + <name>&#x8f66;&#x724c;&#x53f7;</name>
  619 + <type>String</type>
  620 + <format/>
  621 + </field>
  622 + <field>
  623 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  624 + <type>String</type>
  625 + <format/>
  626 + </field>
  627 + <field>
  628 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>
  629 + <type>String</type>
  630 + <format/>
  631 + </field>
  632 + <field>
  633 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
  634 + <type>String</type>
  635 + <format/>
  636 + </field>
  637 + <field>
  638 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>
  639 + <type>String</type>
  640 + <format/>
  641 + </field>
  642 + <field>
  643 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
  644 + <type>String</type>
  645 + <format/>
  646 + </field>
  647 + <field>
  648 + <name>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</name>
  649 + <type>String</type>
  650 + <format/>
  651 + </field>
  652 + <field>
  653 + <name>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</name>
  654 + <type>String</type>
  655 + <format/>
  656 + </field>
  657 + <field>
  658 + <name>error_count</name>
  659 + <type>Integer</type>
  660 + <format/>
  661 + </field>
  662 + <field>
  663 + <name>error_desc</name>
  664 + <type>String</type>
  665 + <format/>
  666 + </field>
  667 + <field>
  668 + <name>error_column1</name>
  669 + <type>String</type>
  670 + <format/>
  671 + </field>
  672 + <field>
  673 + <name>error_column2</name>
  674 + <type>String</type>
  675 + <format/>
  676 + </field>
  677 + </fields>
  678 + <custom>
  679 + <header_font_name>arial</header_font_name>
  680 + <header_font_size>10</header_font_size>
  681 + <header_font_bold>N</header_font_bold>
  682 + <header_font_italic>N</header_font_italic>
  683 + <header_font_underline>no</header_font_underline>
  684 + <header_font_orientation>horizontal</header_font_orientation>
  685 + <header_font_color>black</header_font_color>
  686 + <header_background_color>none</header_background_color>
  687 + <header_row_height>255</header_row_height>
  688 + <header_alignment>left</header_alignment>
  689 + <header_image/>
  690 + <row_font_name>arial</row_font_name>
  691 + <row_font_size>10</row_font_size>
  692 + <row_font_color>black</row_font_color>
  693 + <row_background_color>none</row_background_color>
  694 + </custom>
  695 + <cluster_schema/>
  696 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  697 + <xloc>328</xloc>
  698 + <yloc>140</yloc>
  699 + <draw>Y</draw>
  700 + </GUI>
  701 + </step>
  702 +
  703 + <step_error_handling>
  704 + <error>
  705 + <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</source_step>
  706 + <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</target_step>
  707 + <is_enabled>Y</is_enabled>
  708 + <nr_valuename>error_count</nr_valuename>
  709 + <descriptions_valuename>error_desc</descriptions_valuename>
  710 + <fields_valuename>error_column1</fields_valuename>
  711 + <codes_valuename>error_column2</codes_valuename>
  712 + <max_errors/>
  713 + <max_pct_errors/>
  714 + <min_pct_rows/>
  715 + </error>
  716 + </step_error_handling>
  717 + <slave-step-copy-partition-distribution>
  718 +</slave-step-copy-partition-distribution>
  719 + <slave_transformation>N</slave_transformation>
  720 +
  721 +</transformation>
... ...