Commit 0f0d02b826a67cd88bd6fa2db77e3e51396f0e4b

Authored by 徐烜
2 parents 31823144 7acde535

Merge branch 'minhang' of http://222.66.0.204:8090//panzhaov5/bsth_control into minhang

Too many changes to show.

To preserve performance only 20 of 46 files are displayed.

src/main/java/com/bsth/controller/logger/MileModifyController.java
1 -package com.bsth.controller.logger;  
2 -  
3 -import com.bsth.controller.BaseController;  
4 -import com.bsth.entity.logger.Logger_MileModify;  
5 -import org.springframework.web.bind.annotation.RequestMapping;  
6 -import org.springframework.web.bind.annotation.RestController;  
7 -  
8 -/**  
9 - * Created by panzhao on 2017/3/6.  
10 - */  
11 -@RestController  
12 -@RequestMapping("logger_mile_modify")  
13 -public class MileModifyController extends BaseController<Logger_MileModify, Long>{  
14 -} 1 +package com.bsth.controller.logger;
  2 +
  3 +import com.bsth.controller.BaseController;
  4 +import com.bsth.entity.logger.Logger_MileModify;
  5 +import org.springframework.web.bind.annotation.RequestMapping;
  6 +import org.springframework.web.bind.annotation.RestController;
  7 +
  8 +/**
  9 + * Created by panzhao on 2017/3/6.
  10 + */
  11 +@RestController
  12 +@RequestMapping("logger_mile_modify")
  13 +public class MileModifyController extends BaseController<Logger_MileModify, Long>{
  14 +}
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
@@ -144,6 +144,16 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo, @@ -144,6 +144,16 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
144 } 144 }
145 145
146 /** 146 /**
  147 + * 撤销执行
  148 + * @param id
  149 + * @return
  150 + */
  151 + @RequestMapping(value = "/revokeRealArrive", method = RequestMethod.POST)
  152 + public Map<String, Object> revokeRealArrive(@RequestParam Long id){
  153 + return scheduleRealInfoService.revokeRealArrive(id);
  154 + }
  155 +
  156 + /**
147 * 157 *
148 * @Title: spaceAdjust 158 * @Title: spaceAdjust
149 * @Description: TODO(间隔调整) 159 * @Description: TODO(间隔调整)
src/main/java/com/bsth/controller/realcontrol/dto/LpData.java
1 -package com.bsth.controller.realcontrol.dto;  
2 -  
3 -import com.bsth.entity.realcontrol.ScheduleRealInfo;  
4 -  
5 -/**  
6 - * 路牌相关的数据(换路牌时要换的字段)  
7 - * Created by panzhao on 2017/3/2.  
8 - */  
9 -public class LpData {  
10 -  
11 - public LpData(ScheduleRealInfo sch) {  
12 - this.jGh = sch.getjGh();  
13 - this.jName = sch.getjName();  
14 - this.sGh = sch.getsGh();  
15 - this.sName = sch.getsName();  
16 - this.nbbm = sch.getClZbh();  
17 -  
18 - this.fcsj = sch.getFcsjActualTime();  
19 - this.zdsj = sch.getZdsjActualTime();  
20 - }  
21 -  
22 - public void appendTo(ScheduleRealInfo sch, int type) {  
23 -  
24 - if (type == 0) {  
25 - //只换人  
26 - sch.setjGh(this.jGh);  
27 - sch.setjName(this.jName);  
28 - sch.setsGh(this.sGh);  
29 - sch.setsName(this.sName);  
30 - } else if (type == 1) {  
31 - //只换车  
32 - sch.setClZbh(this.nbbm);  
33 -  
34 - if (this.fcsj != null)  
35 - sch.setFcsjActualAll(this.fcsj);  
36 - if (this.zdsj != null)  
37 - sch.setZdsjActualAll(this.zdsj);  
38 -  
39 - } else if (type == 2) {  
40 - //换人并换车  
41 - sch.setjGh(this.jGh);  
42 - sch.setjName(this.jName);  
43 - sch.setsGh(this.sGh);  
44 - sch.setsName(this.sName);  
45 - sch.setClZbh(this.nbbm);  
46 -  
47 - if (this.fcsj != null)  
48 - sch.setFcsjActualAll(this.fcsj);  
49 - if (this.zdsj != null)  
50 - sch.setZdsjActualAll(this.zdsj);  
51 - }  
52 - }  
53 -  
54 - /**  
55 - * 驾驶员  
56 - */  
57 - private String jGh;  
58 - private String jName;  
59 -  
60 - /**  
61 - * 售票员  
62 - */  
63 - private String sGh;  
64 - private String sName;  
65 -  
66 - /**  
67 - * 车辆自编号  
68 - */  
69 - private String nbbm;  
70 -  
71 - /**  
72 - * 实际发车时间  
73 - */  
74 - private Long fcsj;  
75 -  
76 - /**  
77 - * 实际终点时间  
78 - */  
79 - private Long zdsj;  
80 -  
81 - public String getjGh() {  
82 - return jGh;  
83 - }  
84 -  
85 - public void setjGh(String jGh) {  
86 - this.jGh = jGh;  
87 - }  
88 -  
89 - public String getjName() {  
90 - return jName;  
91 - }  
92 -  
93 - public void setjName(String jName) {  
94 - this.jName = jName;  
95 - }  
96 -  
97 - public String getsGh() {  
98 - return sGh;  
99 - }  
100 -  
101 - public void setsGh(String sGh) {  
102 - this.sGh = sGh;  
103 - }  
104 -  
105 - public String getsName() {  
106 - return sName;  
107 - }  
108 -  
109 - public void setsName(String sName) {  
110 - this.sName = sName;  
111 - }  
112 -  
113 - public String getNbbm() {  
114 - return nbbm;  
115 - }  
116 -  
117 - public void setNbbm(String nbbm) {  
118 - this.nbbm = nbbm;  
119 - }  
120 -  
121 - public Long getFcsj() {  
122 - return fcsj;  
123 - }  
124 -  
125 - public void setFcsj(Long fcsj) {  
126 - this.fcsj = fcsj;  
127 - }  
128 -  
129 - public Long getZdsj() {  
130 - return zdsj;  
131 - }  
132 -  
133 - public void setZdsj(Long zdsj) {  
134 - this.zdsj = zdsj;  
135 - }  
136 -} 1 +package com.bsth.controller.realcontrol.dto;
  2 +
  3 +import com.bsth.entity.realcontrol.ScheduleRealInfo;
  4 +
  5 +/**
  6 + * 路牌相关的数据(换路牌时要换的字段)
  7 + * Created by panzhao on 2017/3/2.
  8 + */
  9 +public class LpData {
  10 +
  11 + public LpData(ScheduleRealInfo sch) {
  12 + this.jGh = sch.getjGh();
  13 + this.jName = sch.getjName();
  14 + this.sGh = sch.getsGh();
  15 + this.sName = sch.getsName();
  16 + this.nbbm = sch.getClZbh();
  17 +
  18 + this.fcsj = sch.getFcsjActualTime();
  19 + this.zdsj = sch.getZdsjActualTime();
  20 + }
  21 +
  22 + public void appendTo(ScheduleRealInfo sch, int type) {
  23 +
  24 + if (type == 0) {
  25 + //只换人
  26 + sch.setjGh(this.jGh);
  27 + sch.setjName(this.jName);
  28 + sch.setsGh(this.sGh);
  29 + sch.setsName(this.sName);
  30 + } else if (type == 1) {
  31 + //只换车
  32 + sch.setClZbh(this.nbbm);
  33 +
  34 + if (this.fcsj != null)
  35 + sch.setFcsjActualAll(this.fcsj);
  36 + if (this.zdsj != null)
  37 + sch.setZdsjActualAll(this.zdsj);
  38 +
  39 + } else if (type == 2) {
  40 + //换人并换车
  41 + sch.setjGh(this.jGh);
  42 + sch.setjName(this.jName);
  43 + sch.setsGh(this.sGh);
  44 + sch.setsName(this.sName);
  45 + sch.setClZbh(this.nbbm);
  46 +
  47 + if (this.fcsj != null)
  48 + sch.setFcsjActualAll(this.fcsj);
  49 + if (this.zdsj != null)
  50 + sch.setZdsjActualAll(this.zdsj);
  51 + }
  52 + }
  53 +
  54 + /**
  55 + * 驾驶员
  56 + */
  57 + private String jGh;
  58 + private String jName;
  59 +
  60 + /**
  61 + * 售票员
  62 + */
  63 + private String sGh;
  64 + private String sName;
  65 +
  66 + /**
  67 + * 车辆自编号
  68 + */
  69 + private String nbbm;
  70 +
  71 + /**
  72 + * 实际发车时间
  73 + */
  74 + private Long fcsj;
  75 +
  76 + /**
  77 + * 实际终点时间
  78 + */
  79 + private Long zdsj;
  80 +
  81 + public String getjGh() {
  82 + return jGh;
  83 + }
  84 +
  85 + public void setjGh(String jGh) {
  86 + this.jGh = jGh;
  87 + }
  88 +
  89 + public String getjName() {
  90 + return jName;
  91 + }
  92 +
  93 + public void setjName(String jName) {
  94 + this.jName = jName;
  95 + }
  96 +
  97 + public String getsGh() {
  98 + return sGh;
  99 + }
  100 +
  101 + public void setsGh(String sGh) {
  102 + this.sGh = sGh;
  103 + }
  104 +
  105 + public String getsName() {
  106 + return sName;
  107 + }
  108 +
  109 + public void setsName(String sName) {
  110 + this.sName = sName;
  111 + }
  112 +
  113 + public String getNbbm() {
  114 + return nbbm;
  115 + }
  116 +
  117 + public void setNbbm(String nbbm) {
  118 + this.nbbm = nbbm;
  119 + }
  120 +
  121 + public Long getFcsj() {
  122 + return fcsj;
  123 + }
  124 +
  125 + public void setFcsj(Long fcsj) {
  126 + this.fcsj = fcsj;
  127 + }
  128 +
  129 + public Long getZdsj() {
  130 + return zdsj;
  131 + }
  132 +
  133 + public void setZdsj(Long zdsj) {
  134 + this.zdsj = zdsj;
  135 + }
  136 +}
src/main/java/com/bsth/data/directive/DirectivesPstThread.java
1 -package com.bsth.data.directive;  
2 -  
3 -import com.bsth.entity.directive.D60;  
4 -import com.bsth.entity.directive.D64;  
5 -import com.bsth.entity.directive.Directive;  
6 -import com.bsth.repository.directive.D60Repository;  
7 -import com.bsth.repository.directive.D64Repository;  
8 -import org.slf4j.Logger;  
9 -import org.slf4j.LoggerFactory;  
10 -import org.springframework.beans.factory.annotation.Autowired;  
11 -import org.springframework.stereotype.Component;  
12 -  
13 -import java.util.LinkedList;  
14 -  
15 -/**  
16 - * 指令持久化线程  
17 - * Created by panzhao on 2017/3/6.  
18 - */  
19 -@Component  
20 -public class DirectivesPstThread extends Thread {  
21 -  
22 - Logger logger = LoggerFactory.getLogger(this.getClass());  
23 -  
24 - @Autowired  
25 - D60Repository d60Repository;  
26 -  
27 - @Autowired  
28 - D64Repository d64Repository;  
29 -  
30 - @Override  
31 - public void run() {  
32 - LinkedList<Directive> list = DayOfDirectives.pstDirectives;  
33 -  
34 - Directive directive;  
35 - for (int i = 0; i < 1000; i++) {  
36 - try {  
37 - directive = list.poll();  
38 -  
39 - if (directive instanceof D60) {  
40 - d60Repository.save((D60) directive);  
41 - }  
42 -  
43 - if (directive instanceof D64) {  
44 - d64Repository.save((D64) directive);  
45 - }  
46 - } catch (Exception e) {  
47 - logger.error("", e);  
48 - }  
49 - }  
50 - }  
51 -} 1 +package com.bsth.data.directive;
  2 +
  3 +import com.bsth.entity.directive.D60;
  4 +import com.bsth.entity.directive.D64;
  5 +import com.bsth.entity.directive.Directive;
  6 +import com.bsth.repository.directive.D60Repository;
  7 +import com.bsth.repository.directive.D64Repository;
  8 +import org.slf4j.Logger;
  9 +import org.slf4j.LoggerFactory;
  10 +import org.springframework.beans.factory.annotation.Autowired;
  11 +import org.springframework.stereotype.Component;
  12 +
  13 +import java.util.LinkedList;
  14 +
  15 +/**
  16 + * 指令持久化线程
  17 + * Created by panzhao on 2017/3/6.
  18 + */
  19 +@Component
  20 +public class DirectivesPstThread extends Thread {
  21 +
  22 + Logger logger = LoggerFactory.getLogger(this.getClass());
  23 +
  24 + @Autowired
  25 + D60Repository d60Repository;
  26 +
  27 + @Autowired
  28 + D64Repository d64Repository;
  29 +
  30 + @Override
  31 + public void run() {
  32 + LinkedList<Directive> list = DayOfDirectives.pstDirectives;
  33 +
  34 + Directive directive;
  35 + for (int i = 0; i < 1000; i++) {
  36 + try {
  37 + directive = list.poll();
  38 +
  39 + if (directive instanceof D60) {
  40 + d60Repository.save((D60) directive);
  41 + }
  42 +
  43 + if (directive instanceof D64) {
  44 + d64Repository.save((D64) directive);
  45 + }
  46 + } catch (Exception e) {
  47 + logger.error("", e);
  48 + }
  49 + }
  50 + }
  51 +}
src/main/java/com/bsth/data/schedule/thread/CalcOilThread.java
1 -package com.bsth.data.schedule.thread;  
2 -  
3 -import com.bsth.service.oil.YlbService;  
4 -import org.slf4j.Logger;  
5 -import org.slf4j.LoggerFactory;  
6 -import org.springframework.beans.factory.annotation.Autowired;  
7 -import org.springframework.stereotype.Component;  
8 -  
9 -/**  
10 - * 计算油、公里加注量 线程  
11 - * Created by panzhao on 2017/3/7.  
12 - */  
13 -@Component  
14 -public class CalcOilThread extends Thread{  
15 -  
16 - @Autowired  
17 - YlbService ylbService;  
18 -  
19 - Logger logger = LoggerFactory.getLogger(this.getClass());  
20 -  
21 - @Override  
22 - public void run() {  
23 - try{  
24 - logger.info("开始计算路单里程加注量....");  
25 - ylbService.obtainDsq();  
26 - logger.info("计算路单里程加注量结束!");  
27 - } catch(Exception e){  
28 - logger.error("计算路单里程加注量失败",e);  
29 - }  
30 - }  
31 -} 1 +package com.bsth.data.schedule.thread;
  2 +
  3 +import com.bsth.service.oil.YlbService;
  4 +import org.slf4j.Logger;
  5 +import org.slf4j.LoggerFactory;
  6 +import org.springframework.beans.factory.annotation.Autowired;
  7 +import org.springframework.stereotype.Component;
  8 +
  9 +/**
  10 + * 计算油、公里加注量 线程
  11 + * Created by panzhao on 2017/3/7.
  12 + */
  13 +@Component
  14 +public class CalcOilThread extends Thread{
  15 +
  16 + @Autowired
  17 + YlbService ylbService;
  18 +
  19 + Logger logger = LoggerFactory.getLogger(this.getClass());
  20 +
  21 + @Override
  22 + public void run() {
  23 + try{
  24 + logger.info("开始计算路单里程加注量....");
  25 + ylbService.obtainDsq();
  26 + logger.info("计算路单里程加注量结束!");
  27 + } catch(Exception e){
  28 + logger.error("计算路单里程加注量失败",e);
  29 + }
  30 + }
  31 +}
src/main/java/com/bsth/entity/logger/Logger.java
1 -package com.bsth.entity.logger;  
2 -  
3 -import javax.persistence.GeneratedValue;  
4 -import javax.persistence.Id;  
5 -import javax.persistence.MappedSuperclass;  
6 -  
7 -/**  
8 - * 操作日志通用字段  
9 - * Created by panzhao on 2017/3/6.  
10 - */  
11 -@MappedSuperclass  
12 -public abstract class Logger {  
13 -  
14 - @Id  
15 - @GeneratedValue  
16 - private Long id;  
17 -  
18 - /** 用户信息 */  
19 - private String userName;  
20 - private String name;  
21 -  
22 - /** ########## 客户端信息 ########### */  
23 - /** ip */  
24 - private String clientIp;  
25 - /** 浏览器 */  
26 - private String browser;  
27 - /** 系统平台 */  
28 - private String clientSystem;  
29 - /** 浏览器内核 */  
30 - private String browserCore;  
31 -  
32 - /** 操作时间 */  
33 - private Long ts;  
34 -  
35 - public String getUserName() {  
36 - return userName;  
37 - }  
38 -  
39 - public void setUserName(String userName) {  
40 - this.userName = userName;  
41 - }  
42 -  
43 - public String getName() {  
44 - return name;  
45 - }  
46 -  
47 - public void setName(String name) {  
48 - this.name = name;  
49 - }  
50 -  
51 - public String getClientIp() {  
52 - return clientIp;  
53 - }  
54 -  
55 - public void setClientIp(String clientIp) {  
56 - this.clientIp = clientIp;  
57 - }  
58 -  
59 - public String getBrowser() {  
60 - return browser;  
61 - }  
62 -  
63 - public void setBrowser(String browser) {  
64 - this.browser = browser;  
65 - }  
66 -  
67 - public String getClientSystem() {  
68 - return clientSystem;  
69 - }  
70 -  
71 - public void setClientSystem(String clientSystem) {  
72 - this.clientSystem = clientSystem;  
73 - }  
74 -  
75 - public String getBrowserCore() {  
76 - return browserCore;  
77 - }  
78 -  
79 - public void setBrowserCore(String browserCore) {  
80 - this.browserCore = browserCore;  
81 - }  
82 -  
83 - public Long getTs() {  
84 - return ts;  
85 - }  
86 -  
87 - public void setTs(Long ts) {  
88 - this.ts = ts;  
89 - }  
90 -} 1 +package com.bsth.entity.logger;
  2 +
  3 +import javax.persistence.GeneratedValue;
  4 +import javax.persistence.Id;
  5 +import javax.persistence.MappedSuperclass;
  6 +
  7 +/**
  8 + * 操作日志通用字段
  9 + * Created by panzhao on 2017/3/6.
  10 + */
  11 +@MappedSuperclass
  12 +public abstract class Logger {
  13 +
  14 + @Id
  15 + @GeneratedValue
  16 + private Long id;
  17 +
  18 + /** 用户信息 */
  19 + private String userName;
  20 + private String name;
  21 +
  22 + /** ########## 客户端信息 ########### */
  23 + /** ip */
  24 + private String clientIp;
  25 + /** 浏览器 */
  26 + private String browser;
  27 + /** 系统平台 */
  28 + private String clientSystem;
  29 + /** 浏览器内核 */
  30 + private String browserCore;
  31 +
  32 + /** 操作时间 */
  33 + private Long ts;
  34 +
  35 + public String getUserName() {
  36 + return userName;
  37 + }
  38 +
  39 + public void setUserName(String userName) {
  40 + this.userName = userName;
  41 + }
  42 +
  43 + public String getName() {
  44 + return name;
  45 + }
  46 +
  47 + public void setName(String name) {
  48 + this.name = name;
  49 + }
  50 +
  51 + public String getClientIp() {
  52 + return clientIp;
  53 + }
  54 +
  55 + public void setClientIp(String clientIp) {
  56 + this.clientIp = clientIp;
  57 + }
  58 +
  59 + public String getBrowser() {
  60 + return browser;
  61 + }
  62 +
  63 + public void setBrowser(String browser) {
  64 + this.browser = browser;
  65 + }
  66 +
  67 + public String getClientSystem() {
  68 + return clientSystem;
  69 + }
  70 +
  71 + public void setClientSystem(String clientSystem) {
  72 + this.clientSystem = clientSystem;
  73 + }
  74 +
  75 + public String getBrowserCore() {
  76 + return browserCore;
  77 + }
  78 +
  79 + public void setBrowserCore(String browserCore) {
  80 + this.browserCore = browserCore;
  81 + }
  82 +
  83 + public Long getTs() {
  84 + return ts;
  85 + }
  86 +
  87 + public void setTs(Long ts) {
  88 + this.ts = ts;
  89 + }
  90 +}
src/main/java/com/bsth/entity/logger/Logger_MileModify.java
1 -package com.bsth.entity.logger;  
2 -  
3 -import javax.persistence.Entity;  
4 -import javax.persistence.Table;  
5 -  
6 -/**  
7 - * 操作日志 -修改公里  
8 - * Created by panzhao on 2017/3/6.  
9 - */  
10 -@Entity  
11 -@Table(name = "logger_mile_modify")  
12 -public class Logger_MileModify extends Logger{  
13 -  
14 - /** 之前的公里 */  
15 - private Double beforeMile;  
16 -  
17 - /** 修改之后的公里 */  
18 - private Double afterMile;  
19 -  
20 - /** 线路 code/name */  
21 - private String lineStr;  
22 -  
23 - /** 路牌 */  
24 - private String lp;  
25 -  
26 - /** 车辆自编号 */  
27 - private String nbbm;  
28 -  
29 - /** 发车时间 */  
30 - private String fcsj;  
31 -  
32 - /** 班次ID */  
33 - private Long schId;  
34 -  
35 - /** 备注 */  
36 - private String remarks;  
37 -  
38 - public Double getBeforeMile() {  
39 - return beforeMile;  
40 - }  
41 -  
42 - public void setBeforeMile(Double beforeMile) {  
43 - this.beforeMile = beforeMile;  
44 - }  
45 -  
46 - public Double getAfterMile() {  
47 - return afterMile;  
48 - }  
49 -  
50 - public void setAfterMile(Double afterMile) {  
51 - this.afterMile = afterMile;  
52 - }  
53 -  
54 - public String getLineStr() {  
55 - return lineStr;  
56 - }  
57 -  
58 - public void setLineStr(String lineStr) {  
59 - this.lineStr = lineStr;  
60 - }  
61 -  
62 - public String getLp() {  
63 - return lp;  
64 - }  
65 -  
66 - public void setLp(String lp) {  
67 - this.lp = lp;  
68 - }  
69 -  
70 - public String getNbbm() {  
71 - return nbbm;  
72 - }  
73 -  
74 - public void setNbbm(String nbbm) {  
75 - this.nbbm = nbbm;  
76 - }  
77 -  
78 - public String getFcsj() {  
79 - return fcsj;  
80 - }  
81 -  
82 - public void setFcsj(String fcsj) {  
83 - this.fcsj = fcsj;  
84 - }  
85 -  
86 - public Long getSchId() {  
87 - return schId;  
88 - }  
89 -  
90 - public void setSchId(Long schId) {  
91 - this.schId = schId;  
92 - }  
93 -  
94 - public String getRemarks() {  
95 - return remarks;  
96 - }  
97 -  
98 - public void setRemarks(String remarks) {  
99 - this.remarks = remarks;  
100 - }  
101 -} 1 +package com.bsth.entity.logger;
  2 +
  3 +import javax.persistence.Entity;
  4 +import javax.persistence.Table;
  5 +
  6 +/**
  7 + * 操作日志 -修改公里
  8 + * Created by panzhao on 2017/3/6.
  9 + */
  10 +@Entity
  11 +@Table(name = "logger_mile_modify")
  12 +public class Logger_MileModify extends Logger{
  13 +
  14 + /** 之前的公里 */
  15 + private Double beforeMile;
  16 +
  17 + /** 修改之后的公里 */
  18 + private Double afterMile;
  19 +
  20 + /** 线路 code/name */
  21 + private String lineStr;
  22 +
  23 + /** 路牌 */
  24 + private String lp;
  25 +
  26 + /** 车辆自编号 */
  27 + private String nbbm;
  28 +
  29 + /** 发车时间 */
  30 + private String fcsj;
  31 +
  32 + /** 班次ID */
  33 + private Long schId;
  34 +
  35 + /** 备注 */
  36 + private String remarks;
  37 +
  38 + public Double getBeforeMile() {
  39 + return beforeMile;
  40 + }
  41 +
  42 + public void setBeforeMile(Double beforeMile) {
  43 + this.beforeMile = beforeMile;
  44 + }
  45 +
  46 + public Double getAfterMile() {
  47 + return afterMile;
  48 + }
  49 +
  50 + public void setAfterMile(Double afterMile) {
  51 + this.afterMile = afterMile;
  52 + }
  53 +
  54 + public String getLineStr() {
  55 + return lineStr;
  56 + }
  57 +
  58 + public void setLineStr(String lineStr) {
  59 + this.lineStr = lineStr;
  60 + }
  61 +
  62 + public String getLp() {
  63 + return lp;
  64 + }
  65 +
  66 + public void setLp(String lp) {
  67 + this.lp = lp;
  68 + }
  69 +
  70 + public String getNbbm() {
  71 + return nbbm;
  72 + }
  73 +
  74 + public void setNbbm(String nbbm) {
  75 + this.nbbm = nbbm;
  76 + }
  77 +
  78 + public String getFcsj() {
  79 + return fcsj;
  80 + }
  81 +
  82 + public void setFcsj(String fcsj) {
  83 + this.fcsj = fcsj;
  84 + }
  85 +
  86 + public Long getSchId() {
  87 + return schId;
  88 + }
  89 +
  90 + public void setSchId(Long schId) {
  91 + this.schId = schId;
  92 + }
  93 +
  94 + public String getRemarks() {
  95 + return remarks;
  96 + }
  97 +
  98 + public void setRemarks(String remarks) {
  99 + this.remarks = remarks;
  100 + }
  101 +}
src/main/java/com/bsth/repository/logger/MileModifyRepository.java
1 -package com.bsth.repository.logger;  
2 -  
3 -import com.bsth.entity.logger.Logger_MileModify;  
4 -import com.bsth.repository.BaseRepository;  
5 -import org.springframework.stereotype.Repository;  
6 -  
7 -/**  
8 - * Created by panzhao on 2017/3/6.  
9 - */  
10 -@Repository  
11 -public interface MileModifyRepository extends BaseRepository<Logger_MileModify, Long>{  
12 -} 1 +package com.bsth.repository.logger;
  2 +
  3 +import com.bsth.entity.logger.Logger_MileModify;
  4 +import com.bsth.repository.BaseRepository;
  5 +import org.springframework.stereotype.Repository;
  6 +
  7 +/**
  8 + * Created by panzhao on 2017/3/6.
  9 + */
  10 +@Repository
  11 +public interface MileModifyRepository extends BaseRepository<Logger_MileModify, Long>{
  12 +}
src/main/java/com/bsth/repository/oil/YlbRepository.java
@@ -37,6 +37,10 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{ @@ -37,6 +37,10 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{
37 List<Ylb> obtainYl(String rq); 37 List<Ylb> obtainYl(String rq);
38 38
39 39
  40 + @Transactional
  41 + @Modifying
  42 + @Query(value="SELECT * FROM bsth_c_ylb where to_days(?1)=to_days(rq) and nbbm =?2 ",nativeQuery=true)
  43 + List<Ylb> queryListYlb(String rq,String nbbm);
40 /** 44 /**
41 * 查询当天总的加注量和总里程 45 * 查询当天总的加注量和总里程
42 * @param rq 46 * @param rq
src/main/java/com/bsth/repository/oil/YlxxbRepository.java
@@ -24,6 +24,11 @@ public interface YlxxbRepository extends BaseRepository&lt;Ylxxb, Integer&gt;{ @@ -24,6 +24,11 @@ public interface YlxxbRepository extends BaseRepository&lt;Ylxxb, Integer&gt;{
24 24
25 @Transactional 25 @Transactional
26 @Modifying 26 @Modifying
  27 + @Query(value="SELECT * FROM bsth_c_ylxxb where to_days(?1)=to_days(yyrq) and ssgs=?2",nativeQuery=true)
  28 + List<Ylxxb> checkYlxx(String rq,String gs);
  29 +
  30 + @Transactional
  31 + @Modifying
27 @Query(value="SELECT * FROM bsth_c_ylxxb where to_days(?1)=to_days(yyrq) and nbbm =?2 and jylx=1",nativeQuery=true) 32 @Query(value="SELECT * FROM bsth_c_ylxxb where to_days(?1)=to_days(yyrq) and nbbm =?2 and jylx=1",nativeQuery=true)
28 List<Ylxxb> obtainYlxx2(String rq,String nbbm); 33 List<Ylxxb> obtainYlxx2(String rq,String nbbm);
29 34
src/main/java/com/bsth/service/logger/MileModifyService.java
1 -package com.bsth.service.logger;  
2 -  
3 -import com.bsth.entity.logger.Logger_MileModify;  
4 -import com.bsth.service.BaseService;  
5 -  
6 -/**  
7 - * Created by panzhao on 2017/3/6.  
8 - */  
9 -public interface MileModifyService extends BaseService<Logger_MileModify, Long>{  
10 -} 1 +package com.bsth.service.logger;
  2 +
  3 +import com.bsth.entity.logger.Logger_MileModify;
  4 +import com.bsth.service.BaseService;
  5 +
  6 +/**
  7 + * Created by panzhao on 2017/3/6.
  8 + */
  9 +public interface MileModifyService extends BaseService<Logger_MileModify, Long>{
  10 +}
src/main/java/com/bsth/service/logger/impl/MileModifyServiceImpl.java
1 -package com.bsth.service.logger.impl;  
2 -  
3 -import com.bsth.entity.logger.Logger_MileModify;  
4 -import com.bsth.service.impl.BaseServiceImpl;  
5 -import com.bsth.service.logger.MileModifyService;  
6 -import org.springframework.stereotype.Service;  
7 -  
8 -/**  
9 - * Created by panzhao on 2017/3/6.  
10 - */  
11 -@Service  
12 -public class MileModifyServiceImpl extends BaseServiceImpl<Logger_MileModify, Long> implements MileModifyService {  
13 -} 1 +package com.bsth.service.logger.impl;
  2 +
  3 +import com.bsth.entity.logger.Logger_MileModify;
  4 +import com.bsth.service.impl.BaseServiceImpl;
  5 +import com.bsth.service.logger.MileModifyService;
  6 +import org.springframework.stereotype.Service;
  7 +
  8 +/**
  9 + * Created by panzhao on 2017/3/6.
  10 + */
  11 +@Service
  12 +public class MileModifyServiceImpl extends BaseServiceImpl<Logger_MileModify, Long> implements MileModifyService {
  13 +}
src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
@@ -25,6 +25,7 @@ import org.springframework.jdbc.core.RowMapper; @@ -25,6 +25,7 @@ import org.springframework.jdbc.core.RowMapper;
25 import org.springframework.stereotype.Service; 25 import org.springframework.stereotype.Service;
26 26
27 import com.bsth.common.ResponseCode; 27 import com.bsth.common.ResponseCode;
  28 +import com.bsth.data.BasicData;
28 import com.bsth.entity.oil.Cyl; 29 import com.bsth.entity.oil.Cyl;
29 import com.bsth.entity.oil.Ylb; 30 import com.bsth.entity.oil.Ylb;
30 import com.bsth.entity.oil.Ylxxb; 31 import com.bsth.entity.oil.Ylxxb;
@@ -435,6 +436,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -435,6 +436,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
435 @Override 436 @Override
436 public Map<String, Object> checkYl(Map<String, Object> map) { 437 public Map<String, Object> checkYl(Map<String, Object> map) {
437 Map<String, Object> newMap=new HashMap<String,Object>(); 438 Map<String, Object> newMap=new HashMap<String,Object>();
  439 + String xlbm=map.get("xlbm_eq").toString();
438 // TODO Auto-generated method stub 440 // TODO Auto-generated method stub
439 try{ 441 try{
440 //获取车辆存油信息 442 //获取车辆存油信息
@@ -460,7 +462,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS @@ -460,7 +462,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
460 t.setJsy(y1.getJsy()); 462 t.setJsy(y1.getJsy());
461 t.setJzl(y1.getJzl()); 463 t.setJzl(y1.getJzl());
462 t.setSsgsdm(y1.getGsdm()); 464 t.setSsgsdm(y1.getGsdm());
463 - t.setXlbm("1024"); 465 + t.setXlbm(xlbm);
464 repository.save(t); 466 repository.save(t);
465 467
466 //设置存油量 468 //设置存油量
src/main/java/com/bsth/service/oil/impl/YlxxbServiceImpl.java
1 package com.bsth.service.oil.impl; 1 package com.bsth.service.oil.impl;
2 2
  3 +import java.sql.ResultSet;
  4 +import java.sql.SQLException;
3 import java.text.ParseException; 5 import java.text.ParseException;
4 import java.text.SimpleDateFormat; 6 import java.text.SimpleDateFormat;
5 import java.util.ArrayList; 7 import java.util.ArrayList;
@@ -10,9 +12,12 @@ import java.util.Map; @@ -10,9 +12,12 @@ import java.util.Map;
10 import org.slf4j.Logger; 12 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory; 13 import org.slf4j.LoggerFactory;
12 import org.springframework.beans.factory.annotation.Autowired; 14 import org.springframework.beans.factory.annotation.Autowired;
  15 +import org.springframework.jdbc.core.JdbcTemplate;
  16 +import org.springframework.jdbc.core.RowMapper;
13 import org.springframework.stereotype.Service; 17 import org.springframework.stereotype.Service;
14 18
15 import com.bsth.common.ResponseCode; 19 import com.bsth.common.ResponseCode;
  20 +import com.bsth.entity.excep.Offline;
16 import com.bsth.entity.oil.Ylb; 21 import com.bsth.entity.oil.Ylb;
17 import com.bsth.entity.oil.Ylxxb; 22 import com.bsth.entity.oil.Ylxxb;
18 import com.bsth.entity.search.CustomerSpecs; 23 import com.bsth.entity.search.CustomerSpecs;
@@ -31,27 +36,23 @@ public class YlxxbServiceImpl extends BaseServiceImpl&lt;Ylxxb,Integer&gt; implements @@ -31,27 +36,23 @@ public class YlxxbServiceImpl extends BaseServiceImpl&lt;Ylxxb,Integer&gt; implements
31 YlxxbRepository repository; 36 YlxxbRepository repository;
32 @Autowired 37 @Autowired
33 YlbRepository ylbRepository; 38 YlbRepository ylbRepository;
34 - 39 + @Autowired
  40 + JdbcTemplate jdbcTemplate;
35 @Override 41 @Override
36 public PageObject<Ylxxb> Pagequery(Map<String, Object> map) { 42 public PageObject<Ylxxb> Pagequery(Map<String, Object> map) {
37 43
38 String rq=map.get("yyrq").toString(); 44 String rq=map.get("yyrq").toString();
39 - SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");  
40 - try {  
41 - map.put("yyrq_eq", sdf.parseObject(rq));  
42 - } catch (ParseException e) {  
43 - // TODO Auto-generated catch block  
44 - e.printStackTrace();  
45 - } 45 + String gsdm=map.get("gsdm_like").toString();
  46 + String fgsdm=map.get("fgsdm_like").toString();
  47 +
  48 + String sql=" select x.*,y.jsy as ldgh,y.fgsdm as fgsdm from bsth_c_ylxxb x "
  49 + + " left join bsth_c_ylb y on x.nbbm = y.nbbm and x.jsy !=y.jsy "
  50 + + " where DATE_FORMAT(y.rq,'%Y-%m-%d')='"+rq+"' and y.ssgsdm='"+gsdm+"' "
  51 + + " and y.fgsdm='"+fgsdm+"' and DATE_FORMAT(x.yyrq,'%Y-%m-%d')='"+rq+"' "
  52 + + " and x.gsdm='"+gsdm+"'";
  53 +
46 //根具条件查询指定日期Ylxxb的数据 54 //根具条件查询指定日期Ylxxb的数据
47 - List<Ylxxb> iterator=repository.findAll(new CustomerSpecs<Ylxxb>(map));  
48 - map.remove("yyrq_eq");  
49 - try {  
50 - map.put("rq_eq", sdf.parse(rq));  
51 - } catch (ParseException e) {  
52 - // TODO Auto-generated catch block  
53 - e.printStackTrace();  
54 - } 55 +// List<Ylxxb> iterator=repository.checkYlxx(rq,gsdm);
55 /*if(map.get("gsdm_in")!=null){ 56 /*if(map.get("gsdm_in")!=null){
56 map.put("ssgsdm_in", map.get("gsdm_in")); 57 map.put("ssgsdm_in", map.get("gsdm_in"));
57 map.remove("gsdm_in"); 58 map.remove("gsdm_in");
@@ -62,30 +63,54 @@ public class YlxxbServiceImpl extends BaseServiceImpl&lt;Ylxxb,Integer&gt; implements @@ -62,30 +63,54 @@ public class YlxxbServiceImpl extends BaseServiceImpl&lt;Ylxxb,Integer&gt; implements
62 }*/ 63 }*/
63 64
64 //根具条件查询指定日期Ylb的数据 65 //根具条件查询指定日期Ylb的数据
65 - List<Ylb> ylbIterator=(List<Ylb>) ylbRepository.findAll(new CustomerSpecs<Ylb>(map));  
66 - List<Ylxxb> list=new ArrayList<Ylxxb>();  
67 - for (int i = 0; i < iterator.size(); i++) {  
68 - Ylxxb y1=iterator.get(i);  
69 - boolean fage=true;  
70 - String ldgh="";  
71 - for (int j = 0; j < ylbIterator.size(); j++) {  
72 - Ylb y2 = ylbIterator.get(j);  
73 - if(y1.getNbbm().equals(y2.getNbbm())){  
74 - if(y1.getJsy().equals(y2.getJsy())){  
75 - fage=false;  
76 - }  
77 - ldgh +=y2.getJsy()+"/";  
78 - }  
79 - }  
80 - if(fage){  
81 - y1.setLdgh(ldgh);  
82 - list.add(y1);  
83 - }  
84 - } 66 +// List<Ylb> ylbIterator=ylbRepository.checkYl(rq,gsdm,fgsdm);
  67 + List<Ylxxb> list=jdbcTemplate.query(sql,
  68 + new RowMapper<Ylxxb>(){
  69 + @Override
  70 + public Ylxxb mapRow(ResultSet rs, int rowNum) throws SQLException {
  71 + Ylxxb s = new Ylxxb();
  72 + s.setId(rs.getInt("id"));
  73 + s.setYyrq(rs.getDate("yyrq"));
  74 + s.setNbbm(rs.getString("nbbm"));
  75 + s.setGsdm(rs.getString("gsdm"));
  76 + s.setFgsdm(rs.getString("fgsdm"));
  77 + s.setJsy(rs.getString("jsy"));
  78 + s.setJzl(rs.getDouble("jzl"));
  79 + s.setStationid(rs.getString("stationid"));
  80 + s.setNylx(rs.getInt("nylx"));
  81 + s.setJyggh(rs.getString("jyggh"));
  82 + s.setYj(rs.getDouble("yj"));
  83 + s.setLdgh(rs.getString("ldgh"));
  84 + s.setBz(rs.getString("bz"));
  85 + return s;
  86 + }
  87 + });
  88 +
  89 + //正式使用用下面代码
  90 +// for (int i = 0; i < iterator.size(); i++) {
  91 +// Ylxxb y1=iterator.get(i);
  92 +// boolean fage=true;
  93 +// String ldgh="";
  94 +// for (int j = 0; j < ylbIterator.size(); j++) {
  95 +// Ylb y2 = ylbIterator.get(j);
  96 +// if(y1.getNbbm().equals(y2.getNbbm())){
  97 +// if(y1.getJsy().equals(y2.getJsy())){
  98 +// fage=false;
  99 +// }
  100 +// ldgh +=y2.getJsy()+"/";
  101 +// }
  102 +// }
  103 +// if(fage){
  104 +// y1.setLdgh(ldgh);
  105 +// list.add(y1);
  106 +// }
  107 +// }
  108 +
  109 +
85 110
86 PageHelper pageHelper = new PageHelper(list.size(), map); 111 PageHelper pageHelper = new PageHelper(list.size(), map);
87 pageHelper.getMap(); 112 pageHelper.getMap();
88 - PageObject<Ylxxb> pageObject=pageHelper.getPageObject(); 113 + PageObject<Ylxxb> pageObject = pageHelper.getPageObject();
89 pageObject.setDataList(list); 114 pageObject.setDataList(list);
90 return pageObject; 115 return pageObject;
91 } 116 }
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
@@ -157,4 +157,6 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L @@ -157,4 +157,6 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
157 Map<String,Object> lpChangeMulti(String leftIdx, String rightIdx, int type); 157 Map<String,Object> lpChangeMulti(String leftIdx, String rightIdx, int type);
158 158
159 void lpChange(ScheduleRealInfo leftSch, ScheduleRealInfo rightSch, int type); 159 void lpChange(ScheduleRealInfo leftSch, ScheduleRealInfo rightSch, int type);
  160 +
  161 + Map<String,Object> revokeRealArrive(Long id);
160 } 162 }
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
@@ -9,14 +9,13 @@ import com.bsth.controller.realcontrol.dto.DfsjChange; @@ -9,14 +9,13 @@ import com.bsth.controller.realcontrol.dto.DfsjChange;
9 import com.bsth.controller.realcontrol.dto.LpData; 9 import com.bsth.controller.realcontrol.dto.LpData;
10 import com.bsth.data.BasicData; 10 import com.bsth.data.BasicData;
11 import com.bsth.data.LineConfigData; 11 import com.bsth.data.LineConfigData;
12 -import com.bsth.data.arrival.ArrivalData_GPS;  
13 -import com.bsth.data.arrival.ArrivalEntity;  
14 import com.bsth.data.schedule.DayOfSchedule; 12 import com.bsth.data.schedule.DayOfSchedule;
15 import com.bsth.data.schedule.SchAttrCalculator; 13 import com.bsth.data.schedule.SchAttrCalculator;
16 import com.bsth.data.schedule.ScheduleComparator; 14 import com.bsth.data.schedule.ScheduleComparator;
17 import com.bsth.entity.Cars; 15 import com.bsth.entity.Cars;
18 import com.bsth.entity.Line; 16 import com.bsth.entity.Line;
19 import com.bsth.entity.Personnel; 17 import com.bsth.entity.Personnel;
  18 +import com.bsth.entity.oil.Ylb;
20 import com.bsth.entity.oil.Ylxxb; 19 import com.bsth.entity.oil.Ylxxb;
21 import com.bsth.entity.realcontrol.ChildTaskPlan; 20 import com.bsth.entity.realcontrol.ChildTaskPlan;
22 import com.bsth.entity.realcontrol.LineConfig; 21 import com.bsth.entity.realcontrol.LineConfig;
@@ -29,6 +28,7 @@ import com.bsth.entity.schedule.SchedulePlanInfo; @@ -29,6 +28,7 @@ import com.bsth.entity.schedule.SchedulePlanInfo;
29 import com.bsth.entity.sys.DutyEmployee; 28 import com.bsth.entity.sys.DutyEmployee;
30 import com.bsth.entity.sys.SysUser; 29 import com.bsth.entity.sys.SysUser;
31 import com.bsth.repository.LineRepository; 30 import com.bsth.repository.LineRepository;
  31 +import com.bsth.repository.oil.YlbRepository;
32 import com.bsth.repository.oil.YlxxbRepository; 32 import com.bsth.repository.oil.YlxxbRepository;
33 import com.bsth.repository.realcontrol.ChildTaskPlanRepository; 33 import com.bsth.repository.realcontrol.ChildTaskPlanRepository;
34 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository; 34 import com.bsth.repository.realcontrol.ScheduleRealInfoRepository;
@@ -116,6 +116,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -116,6 +116,9 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
116 116
117 @Autowired 117 @Autowired
118 YlxxbRepository ylxxbRepository; 118 YlxxbRepository ylxxbRepository;
  119 +
  120 + @Autowired
  121 + YlbRepository ylbRepository;
119 122
120 Logger logger = LoggerFactory.getLogger(this.getClass()); 123 Logger logger = LoggerFactory.getLogger(this.getClass());
121 124
@@ -457,12 +460,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -457,12 +460,13 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
457 @Override 460 @Override
458 public List<ScheduleRealInfo> queryUserInfoPx(String line, String date, String state,String type) { 461 public List<ScheduleRealInfo> queryUserInfoPx(String line, String date, String state,String type) {
459 // List<ScheduleRealInfo> list=new ArrayList<ScheduleRealInfo>(); 462 // List<ScheduleRealInfo> list=new ArrayList<ScheduleRealInfo>();
  463 + state=state+"";
460 String sqlPlan="select min(s.id) as id,s.j_Gh as jGh,s.cl_Zbh as clZbh," 464 String sqlPlan="select min(s.id) as id,s.j_Gh as jGh,s.cl_Zbh as clZbh,"
461 + " s.lp_Name as lpName,s.j_Name as jName,s.s_Gh as sGh,s.s_Name as sName" 465 + " s.lp_Name as lpName,s.j_Name as jName,s.s_Gh as sGh,s.s_Name as sName"
462 + " from bsth_c_s_sp_info_real s " 466 + " from bsth_c_s_sp_info_real s "
463 + " where s.xl_Bm = '"+line+"' and DATE_FORMAT(s.schedule_Date,'%Y-%m-%d') ='"+date+"' " 467 + " where s.xl_Bm = '"+line+"' and DATE_FORMAT(s.schedule_Date,'%Y-%m-%d') ='"+date+"' "
464 + " GROUP BY s.j_Gh,s.cl_Zbh,s.lp_Name ,s.j_Name,s.s_Gh," 468 + " GROUP BY s.j_Gh,s.cl_Zbh,s.lp_Name ,s.j_Name,s.s_Gh,"
465 - + " s.s_Name order by "+state+" "+type; 469 + + " s.s_Name order by ("+state+") "+type;
466 List<ScheduleRealInfo> list= jdbcTemplate.query(sqlPlan, 470 List<ScheduleRealInfo> list= jdbcTemplate.query(sqlPlan,
467 new RowMapper<ScheduleRealInfo>(){ 471 new RowMapper<ScheduleRealInfo>(){
468 @Override 472 @Override
@@ -806,8 +810,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -806,8 +810,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
806 rs.put("status", ResponseCode.ERROR); 810 rs.put("status", ResponseCode.ERROR);
807 rs.put("msg", "无实发时间,无法撤销!"); 811 rs.put("msg", "无实发时间,无法撤销!");
808 } else { 812 } else {
809 - //将对应的到离站数据标记为不可信  
810 - List<ArrivalEntity> list = ArrivalData_GPS.findByNbbm(sch.getClZbh()); 813 + //将对应的到离站数据标记为不可信 ### 废弃的代码 ####
  814 + /*List<ArrivalEntity> list = ArrivalData_GPS.findByNbbm(sch.getClZbh());
811 for (ArrivalEntity arr : list) { 815 for (ArrivalEntity arr : list) {
812 if (arr.getInOut() == 1 816 if (arr.getInOut() == 1
813 && arr.getUpDown() == Integer.parseInt(sch.getXlDir()) 817 && arr.getUpDown() == Integer.parseInt(sch.getXlDir())
@@ -816,7 +820,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -816,7 +820,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
816 arr.setEnable(false); 820 arr.setEnable(false);
817 break; 821 break;
818 } 822 }
819 - } 823 + }*/
820 824
821 sch.clearFcsjActual(); 825 sch.clearFcsjActual();
822 rs.put("status", ResponseCode.SUCCESS); 826 rs.put("status", ResponseCode.SUCCESS);
@@ -824,6 +828,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -824,6 +828,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
824 ts.add(sch); 828 ts.add(sch);
825 rs.put("ts", ts); 829 rs.put("ts", ts);
826 830
  831 + dayOfSchedule.save(sch);
  832 +
827 } 833 }
828 } catch (Exception e) { 834 } catch (Exception e) {
829 logger.error("", e); 835 logger.error("", e);
@@ -1663,7 +1669,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -1663,7 +1669,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1663 jhbc_a++; 1669 jhbc_a++;
1664 jhbc_aZ++; 1670 jhbc_aZ++;
1665 } 1671 }
1666 - if (scheduleRealInfo.getStatus() == 2) { 1672 + if (scheduleRealInfo.getStatus() != -1) {
1667 sjbc++; 1673 sjbc++;
1668 sjbcZ++; 1674 sjbcZ++;
1669 if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_0 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_1) { 1675 if ((Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) > sj_0 && (Integer.parseInt(fcsjActual[0]) * 60 + Integer.parseInt(fcsjActual[1])) < sj_1) {
@@ -2990,7 +2996,22 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -2990,7 +2996,22 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2990 Ylxxb y=listYlxxb.get(t); 2996 Ylxxb y=listYlxxb.get(t);
2991 jzl += y.getJzl(); 2997 jzl += y.getJzl();
2992 } 2998 }
  2999 +
  3000 + List<Ylb> listYlb=ylbRepository.queryListYlb( fcrq,s.getClZbh());
  3001 + Double ccyl=0.0;
  3002 + Double jcyl=0.0;
  3003 + Double yh=0.0;
  3004 + for (int i = 0; i < listYlb.size(); i++) {
  3005 + Ylb y=listYlb.get(i);
  3006 + ccyl +=y.getCzyl();
  3007 + jcyl+= y.getJzyl();
  3008 + yh+=y.getYh();
  3009 +
  3010 + }
2993 map.put("jzl", jzl); 3011 map.put("jzl", jzl);
  3012 + map.put("yh", yh);
  3013 + map.put("ccyl", ccyl);
  3014 + map.put("jcyl", jcyl);
2994 map.put("xlName", s.getXlName()); 3015 map.put("xlName", s.getXlName());
2995 map.put("clZbh", s.getClZbh()); 3016 map.put("clZbh", s.getClZbh());
2996 map.put("fcsjActual", s.getFcsjActual()); 3017 map.put("fcsjActual", s.getFcsjActual());
@@ -3439,4 +3460,39 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf @@ -3439,4 +3460,39 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3439 leftData.appendTo(rightSch, type); 3460 leftData.appendTo(rightSch, type);
3440 rightData.appendTo(leftSch, type); 3461 rightData.appendTo(leftSch, type);
3441 } 3462 }
  3463 +
  3464 + @Override
  3465 + public Map<String, Object> revokeRealArrive(Long id) {
  3466 + Map<String, Object> rs = new HashMap<>();
  3467 + List<ScheduleRealInfo> ts = new ArrayList<>();
  3468 +
  3469 + try {
  3470 + ScheduleRealInfo sch = dayOfSchedule.get(id);
  3471 + if (sch.getZdsjActual() == null) {
  3472 + rs.put("status", ResponseCode.ERROR);
  3473 + rs.put("msg", "无实际到达时间,无法撤销!");
  3474 + } else {
  3475 +
  3476 + sch.clearZdsjActual();
  3477 + //清除下一个班次的起点到达时间
  3478 + ScheduleRealInfo next = dayOfSchedule.next(sch);
  3479 + if (null != next) {
  3480 + next.setQdzArrDateSJ(null);
  3481 + ts.add(next);
  3482 + }
  3483 +
  3484 + rs.put("status", ResponseCode.SUCCESS);
  3485 +
  3486 + ts.add(sch);
  3487 + rs.put("ts", ts);
  3488 +
  3489 + dayOfSchedule.save(sch);
  3490 +
  3491 + }
  3492 + } catch (Exception e) {
  3493 + logger.error("", e);
  3494 + rs.put("status", ResponseCode.ERROR);
  3495 + }
  3496 + return rs;
  3497 + }
3442 } 3498 }
3443 \ No newline at end of file 3499 \ No newline at end of file
src/main/java/com/bsth/service/schedule/rules/ttinfo2/CalcuParam.java
1 -package com.bsth.service.schedule.rules.ttinfo2;  
2 -  
3 -import org.joda.time.DateTime;  
4 -  
5 -/**  
6 - * 时刻表计算参数。  
7 - */  
8 -public class CalcuParam {  
9 - /** 开始计算时间 */  
10 - private DateTime fromDate;  
11 - /** 结束计算时间 */  
12 - private DateTime toDate;  
13 - /** 线路id */  
14 - private Integer xlId;  
15 -  
16 - public CalcuParam() {}  
17 - public CalcuParam(  
18 - DateTime fromDate,  
19 - DateTime toDate,  
20 - Integer xlId) {  
21 - this.fromDate = fromDate;  
22 - this.toDate = toDate;  
23 - this.xlId = xlId;  
24 - }  
25 -  
26 - public DateTime getFromDate() {  
27 - return fromDate;  
28 - }  
29 -  
30 - public void setFromDate(DateTime fromDate) {  
31 - this.fromDate = fromDate;  
32 - }  
33 -  
34 - public DateTime getToDate() {  
35 - return toDate;  
36 - }  
37 -  
38 - public void setToDate(DateTime toDate) {  
39 - this.toDate = toDate;  
40 - }  
41 -  
42 - public Integer getXlId() {  
43 - return xlId;  
44 - }  
45 -  
46 - public void setXlId(Integer xlId) {  
47 - this.xlId = xlId;  
48 - }  
49 -} 1 +package com.bsth.service.schedule.rules.ttinfo2;
  2 +
  3 +import org.joda.time.DateTime;
  4 +
  5 +/**
  6 + * 时刻表计算参数。
  7 + */
  8 +public class CalcuParam {
  9 + /** 开始计算时间 */
  10 + private DateTime fromDate;
  11 + /** 结束计算时间 */
  12 + private DateTime toDate;
  13 + /** 线路id */
  14 + private Integer xlId;
  15 +
  16 + public CalcuParam() {}
  17 + public CalcuParam(
  18 + DateTime fromDate,
  19 + DateTime toDate,
  20 + Integer xlId) {
  21 + this.fromDate = fromDate;
  22 + this.toDate = toDate;
  23 + this.xlId = xlId;
  24 + }
  25 +
  26 + public DateTime getFromDate() {
  27 + return fromDate;
  28 + }
  29 +
  30 + public void setFromDate(DateTime fromDate) {
  31 + this.fromDate = fromDate;
  32 + }
  33 +
  34 + public DateTime getToDate() {
  35 + return toDate;
  36 + }
  37 +
  38 + public void setToDate(DateTime toDate) {
  39 + this.toDate = toDate;
  40 + }
  41 +
  42 + public Integer getXlId() {
  43 + return xlId;
  44 + }
  45 +
  46 + public void setXlId(Integer xlId) {
  47 + this.xlId = xlId;
  48 + }
  49 +}
src/main/java/com/bsth/service/schedule/rules/ttinfo2/ErrorBcCountFunction.java
1 -package com.bsth.service.schedule.rules.ttinfo2;  
2 -  
3 -import com.bsth.entity.schedule.TTInfoDetail;  
4 -import org.kie.api.runtime.rule.AccumulateFunction;  
5 -  
6 -import java.io.*;  
7 -  
8 -/**  
9 - * Created by xu on 17/2/28.  
10 - */  
11 -public class ErrorBcCountFunction implements AccumulateFunction {  
12 - @Override  
13 - public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {  
14 - }  
15 -  
16 - @Override  
17 - public void writeExternal(ObjectOutput out) throws IOException {  
18 - }  
19 -  
20 - protected static class ErrorCountData implements Externalizable {  
21 - public long errorcount = 0;  
22 - public TTInfoDetail ttInfoDetail;  
23 -  
24 - public ErrorCountData() {  
25 - }  
26 -  
27 - @Override  
28 - public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {  
29 - errorcount = in.readLong();  
30 - ttInfoDetail = (TTInfoDetail) in.readObject();  
31 - }  
32 -  
33 - @Override  
34 - public void writeExternal(ObjectOutput out) throws IOException {  
35 - out.writeLong(errorcount);  
36 - out.writeObject(ttInfoDetail);  
37 - }  
38 - }  
39 -  
40 - @Override  
41 - public Serializable createContext() {  
42 - return new ErrorCountData();  
43 - }  
44 -  
45 - @Override  
46 - public void init(Serializable context) throws Exception {  
47 - ErrorCountData errorCountData = (ErrorCountData) context;  
48 - errorCountData.errorcount = 0;  
49 - }  
50 -  
51 - @Override  
52 - public void accumulate(Serializable context, Object value) {  
53 - ErrorCountData errorCountData = (ErrorCountData) context;  
54 - TTInfoDetail ttInfoDetail = (TTInfoDetail) value;  
55 -  
56 - if (ttInfoDetail.getTtinfo() == null) {  
57 - errorCountData.errorcount ++;  
58 - return;  
59 - }  
60 -  
61 - if ("in".equals(ttInfoDetail.getBcType())) {  
62 - if (ttInfoDetail.getQdz() == null || ttInfoDetail.getTcc() == null) {  
63 - errorCountData.errorcount ++;  
64 - }  
65 - } else if ("out".equals(ttInfoDetail.getBcType())) {  
66 - if (ttInfoDetail.getTcc() == null || ttInfoDetail.getZdz() == null) {  
67 - errorCountData.errorcount ++;  
68 - }  
69 - } else {  
70 - if (ttInfoDetail.getQdz() == null || ttInfoDetail.getZdz() == null) {  
71 - errorCountData.errorcount ++;  
72 - }  
73 - }  
74 - }  
75 -  
76 - @Override  
77 - public void reverse(Serializable context, Object value) throws Exception {  
78 - ErrorCountData errorCountData = (ErrorCountData) context;  
79 - TTInfoDetail ttInfoDetail = (TTInfoDetail) value;  
80 -  
81 - if (ttInfoDetail.getTtinfo() == null) {  
82 - errorCountData.errorcount --;  
83 - return;  
84 - }  
85 -  
86 - if ("in".equals(ttInfoDetail.getBcType())) {  
87 - if (ttInfoDetail.getQdz() == null || ttInfoDetail.getTcc() == null) {  
88 - errorCountData.errorcount --;  
89 - }  
90 - } else if ("out".equals(ttInfoDetail.getBcType())) {  
91 - if (ttInfoDetail.getTcc() == null || ttInfoDetail.getZdz() == null) {  
92 - errorCountData.errorcount --;  
93 - }  
94 - } else {  
95 - if (ttInfoDetail.getQdz() == null || ttInfoDetail.getZdz() == null) {  
96 - errorCountData.errorcount --;  
97 - }  
98 - }  
99 -  
100 - }  
101 -  
102 - @Override  
103 - public Object getResult(Serializable context) throws Exception {  
104 - ErrorCountData errorCountData = (ErrorCountData) context;  
105 - return errorCountData.errorcount;  
106 - }  
107 -  
108 - @Override  
109 - public boolean supportsReverse() {  
110 - return true;  
111 - }  
112 -  
113 - @Override  
114 - public Class<?> getResultType() {  
115 - return Number.class;  
116 - }  
117 -} 1 +package com.bsth.service.schedule.rules.ttinfo2;
  2 +
  3 +import com.bsth.entity.schedule.TTInfoDetail;
  4 +import org.kie.api.runtime.rule.AccumulateFunction;
  5 +
  6 +import java.io.*;
  7 +
  8 +/**
  9 + * Created by xu on 17/2/28.
  10 + */
  11 +public class ErrorBcCountFunction implements AccumulateFunction {
  12 + @Override
  13 + public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
  14 + }
  15 +
  16 + @Override
  17 + public void writeExternal(ObjectOutput out) throws IOException {
  18 + }
  19 +
  20 + protected static class ErrorCountData implements Externalizable {
  21 + public long errorcount = 0;
  22 + public TTInfoDetail ttInfoDetail;
  23 +
  24 + public ErrorCountData() {
  25 + }
  26 +
  27 + @Override
  28 + public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
  29 + errorcount = in.readLong();
  30 + ttInfoDetail = (TTInfoDetail) in.readObject();
  31 + }
  32 +
  33 + @Override
  34 + public void writeExternal(ObjectOutput out) throws IOException {
  35 + out.writeLong(errorcount);
  36 + out.writeObject(ttInfoDetail);
  37 + }
  38 + }
  39 +
  40 + @Override
  41 + public Serializable createContext() {
  42 + return new ErrorCountData();
  43 + }
  44 +
  45 + @Override
  46 + public void init(Serializable context) throws Exception {
  47 + ErrorCountData errorCountData = (ErrorCountData) context;
  48 + errorCountData.errorcount = 0;
  49 + }
  50 +
  51 + @Override
  52 + public void accumulate(Serializable context, Object value) {
  53 + ErrorCountData errorCountData = (ErrorCountData) context;
  54 + TTInfoDetail ttInfoDetail = (TTInfoDetail) value;
  55 +
  56 + if (ttInfoDetail.getTtinfo() == null) {
  57 + errorCountData.errorcount ++;
  58 + return;
  59 + }
  60 +
  61 + if ("in".equals(ttInfoDetail.getBcType())) {
  62 + if (ttInfoDetail.getQdz() == null || ttInfoDetail.getTcc() == null) {
  63 + errorCountData.errorcount ++;
  64 + }
  65 + } else if ("out".equals(ttInfoDetail.getBcType())) {
  66 + if (ttInfoDetail.getTcc() == null || ttInfoDetail.getZdz() == null) {
  67 + errorCountData.errorcount ++;
  68 + }
  69 + } else {
  70 + if (ttInfoDetail.getQdz() == null || ttInfoDetail.getZdz() == null) {
  71 + errorCountData.errorcount ++;
  72 + }
  73 + }
  74 + }
  75 +
  76 + @Override
  77 + public void reverse(Serializable context, Object value) throws Exception {
  78 + ErrorCountData errorCountData = (ErrorCountData) context;
  79 + TTInfoDetail ttInfoDetail = (TTInfoDetail) value;
  80 +
  81 + if (ttInfoDetail.getTtinfo() == null) {
  82 + errorCountData.errorcount --;
  83 + return;
  84 + }
  85 +
  86 + if ("in".equals(ttInfoDetail.getBcType())) {
  87 + if (ttInfoDetail.getQdz() == null || ttInfoDetail.getTcc() == null) {
  88 + errorCountData.errorcount --;
  89 + }
  90 + } else if ("out".equals(ttInfoDetail.getBcType())) {
  91 + if (ttInfoDetail.getTcc() == null || ttInfoDetail.getZdz() == null) {
  92 + errorCountData.errorcount --;
  93 + }
  94 + } else {
  95 + if (ttInfoDetail.getQdz() == null || ttInfoDetail.getZdz() == null) {
  96 + errorCountData.errorcount --;
  97 + }
  98 + }
  99 +
  100 + }
  101 +
  102 + @Override
  103 + public Object getResult(Serializable context) throws Exception {
  104 + ErrorCountData errorCountData = (ErrorCountData) context;
  105 + return errorCountData.errorcount;
  106 + }
  107 +
  108 + @Override
  109 + public boolean supportsReverse() {
  110 + return true;
  111 + }
  112 +
  113 + @Override
  114 + public Class<?> getResultType() {
  115 + return Number.class;
  116 + }
  117 +}
src/main/java/com/bsth/service/schedule/rules/ttinfo2/Result.java
1 -package com.bsth.service.schedule.rules.ttinfo2;  
2 -  
3 -import java.util.ArrayList;  
4 -import java.util.List;  
5 -  
6 -/**  
7 - * 输出结果值。  
8 - */  
9 -public class Result {  
10 - private List<StatInfo> infos = new ArrayList<>();  
11 -  
12 - public List<StatInfo> getInfos() {  
13 - return infos;  
14 - }  
15 -  
16 - public void setInfos(List<StatInfo> infos) {  
17 - this.infos = infos;  
18 - }  
19 -  
20 - public static class StatInfo {  
21 - /** 时刻表id */  
22 - private Long ttid;  
23 - /** 时刻表名字 */  
24 - private String ttname;  
25 -  
26 - /** 所有班次数 */  
27 - private Long allbc;  
28 - /** 进场班次数 */  
29 - private Long inbc;  
30 - /** 出场班次数 */  
31 - private Long outbc;  
32 - /** 营运班次数 */  
33 - private Long yybc;  
34 -  
35 - /** 错误班次数 */  
36 - private Long errorbc;  
37 -  
38 - public Long getTtid() {  
39 - return ttid;  
40 - }  
41 -  
42 - public void setTtid(Long ttid) {  
43 - this.ttid = ttid;  
44 - }  
45 -  
46 - public String getTtname() {  
47 - return ttname;  
48 - }  
49 -  
50 - public void setTtname(String ttname) {  
51 - this.ttname = ttname;  
52 - }  
53 -  
54 - public Long getAllbc() {  
55 - return allbc;  
56 - }  
57 -  
58 - public void setAllbc(Long allbc) {  
59 - this.allbc = allbc;  
60 - }  
61 -  
62 - public Long getInbc() {  
63 - return inbc;  
64 - }  
65 -  
66 - public void setInbc(Long inbc) {  
67 - this.inbc = inbc;  
68 - }  
69 -  
70 - public Long getOutbc() {  
71 - return outbc;  
72 - }  
73 -  
74 - public void setOutbc(Long outbc) {  
75 - this.outbc = outbc;  
76 - }  
77 -  
78 - public Long getYybc() {  
79 - return yybc;  
80 - }  
81 -  
82 - public void setYybc(Long yybc) {  
83 - this.yybc = yybc;  
84 - }  
85 -  
86 - public Long getErrorbc() {  
87 - return errorbc;  
88 - }  
89 -  
90 - public void setErrorbc(Long errorbc) {  
91 - this.errorbc = errorbc;  
92 - }  
93 - }  
94 -} 1 +package com.bsth.service.schedule.rules.ttinfo2;
  2 +
  3 +import java.util.ArrayList;
  4 +import java.util.List;
  5 +
  6 +/**
  7 + * 输出结果值。
  8 + */
  9 +public class Result {
  10 + private List<StatInfo> infos = new ArrayList<>();
  11 +
  12 + public List<StatInfo> getInfos() {
  13 + return infos;
  14 + }
  15 +
  16 + public void setInfos(List<StatInfo> infos) {
  17 + this.infos = infos;
  18 + }
  19 +
  20 + public static class StatInfo {
  21 + /** 时刻表id */
  22 + private Long ttid;
  23 + /** 时刻表名字 */
  24 + private String ttname;
  25 +
  26 + /** 所有班次数 */
  27 + private Long allbc;
  28 + /** 进场班次数 */
  29 + private Long inbc;
  30 + /** 出场班次数 */
  31 + private Long outbc;
  32 + /** 营运班次数 */
  33 + private Long yybc;
  34 +
  35 + /** 错误班次数 */
  36 + private Long errorbc;
  37 +
  38 + public Long getTtid() {
  39 + return ttid;
  40 + }
  41 +
  42 + public void setTtid(Long ttid) {
  43 + this.ttid = ttid;
  44 + }
  45 +
  46 + public String getTtname() {
  47 + return ttname;
  48 + }
  49 +
  50 + public void setTtname(String ttname) {
  51 + this.ttname = ttname;
  52 + }
  53 +
  54 + public Long getAllbc() {
  55 + return allbc;
  56 + }
  57 +
  58 + public void setAllbc(Long allbc) {
  59 + this.allbc = allbc;
  60 + }
  61 +
  62 + public Long getInbc() {
  63 + return inbc;
  64 + }
  65 +
  66 + public void setInbc(Long inbc) {
  67 + this.inbc = inbc;
  68 + }
  69 +
  70 + public Long getOutbc() {
  71 + return outbc;
  72 + }
  73 +
  74 + public void setOutbc(Long outbc) {
  75 + this.outbc = outbc;
  76 + }
  77 +
  78 + public Long getYybc() {
  79 + return yybc;
  80 + }
  81 +
  82 + public void setYybc(Long yybc) {
  83 + this.yybc = yybc;
  84 + }
  85 +
  86 + public Long getErrorbc() {
  87 + return errorbc;
  88 + }
  89 +
  90 + public void setErrorbc(Long errorbc) {
  91 + this.errorbc = errorbc;
  92 + }
  93 + }
  94 +}
src/main/resources/datatools/ktrs/employeesConfigDataInput.ktr
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<transformation>  
3 - <info>  
4 - <name>&#x4eba;&#x5458;&#x914d;&#x7f6e;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</name>  
5 - <description>&#x4eba;&#x5458;&#x914d;&#x7f6e;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</description>  
6 - <extended_description>&#x4eba;&#x5458;&#x914d;&#x7f6e;&#x4fe1;&#x606f;</extended_description>  
7 - <trans_version/>  
8 - <trans_type>Normal</trans_type>  
9 - <trans_status>0</trans_status>  
10 - <directory>&#x2f;</directory>  
11 - <parameters>  
12 - <parameter>  
13 - <name>erroroutputdir</name>  
14 - <default_value/>  
15 - <description>ktr step&#x914d;&#x7f6e;&#x7684;&#x9519;&#x8bef;&#x8f93;&#x51fa;&#x76ee;&#x5f55;</description>  
16 - </parameter>  
17 - <parameter>  
18 - <name>filepath</name>  
19 - <default_value/>  
20 - <description>&#x5f85;&#x5904;&#x7406;&#x5bfc;&#x5165;&#x7684;excel&#x6587;&#x4ef6;</description>  
21 - </parameter>  
22 - </parameters>  
23 - <log>  
24 -<trans-log-table><connection/>  
25 -<schema/>  
26 -<table/>  
27 -<size_limit_lines/>  
28 -<interval/>  
29 -<timeout_days/>  
30 -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STATUS</id><enabled>Y</enabled><name>STATUS</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name><subject/></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name><subject/></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name><subject/></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name><subject/></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name><subject/></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name><subject/></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>STARTDATE</id><enabled>Y</enabled><name>STARTDATE</name></field><field><id>ENDDATE</id><enabled>Y</enabled><name>ENDDATE</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>DEPDATE</id><enabled>Y</enabled><name>DEPDATE</name></field><field><id>REPLAYDATE</id><enabled>Y</enabled><name>REPLAYDATE</name></field><field><id>LOG_FIELD</id><enabled>Y</enabled><name>LOG_FIELD</name></field><field><id>EXECUTING_SERVER</id><enabled>N</enabled><name>EXECUTING_SERVER</name></field><field><id>EXECUTING_USER</id><enabled>N</enabled><name>EXECUTING_USER</name></field><field><id>CLIENT</id><enabled>N</enabled><name>CLIENT</name></field></trans-log-table>  
31 -<perf-log-table><connection/>  
32 -<schema/>  
33 -<table/>  
34 -<interval/>  
35 -<timeout_days/>  
36 -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>SEQ_NR</id><enabled>Y</enabled><name>SEQ_NR</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>INPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>INPUT_BUFFER_ROWS</name></field><field><id>OUTPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>OUTPUT_BUFFER_ROWS</name></field></perf-log-table>  
37 -<channel-log-table><connection/>  
38 -<schema/>  
39 -<table/>  
40 -<timeout_days/>  
41 -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>LOGGING_OBJECT_TYPE</id><enabled>Y</enabled><name>LOGGING_OBJECT_TYPE</name></field><field><id>OBJECT_NAME</id><enabled>Y</enabled><name>OBJECT_NAME</name></field><field><id>OBJECT_COPY</id><enabled>Y</enabled><name>OBJECT_COPY</name></field><field><id>REPOSITORY_DIRECTORY</id><enabled>Y</enabled><name>REPOSITORY_DIRECTORY</name></field><field><id>FILENAME</id><enabled>Y</enabled><name>FILENAME</name></field><field><id>OBJECT_ID</id><enabled>Y</enabled><name>OBJECT_ID</name></field><field><id>OBJECT_REVISION</id><enabled>Y</enabled><name>OBJECT_REVISION</name></field><field><id>PARENT_CHANNEL_ID</id><enabled>Y</enabled><name>PARENT_CHANNEL_ID</name></field><field><id>ROOT_CHANNEL_ID</id><enabled>Y</enabled><name>ROOT_CHANNEL_ID</name></field></channel-log-table>  
42 -<step-log-table><connection/>  
43 -<schema/>  
44 -<table/>  
45 -<timeout_days/>  
46 -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>LOG_FIELD</id><enabled>N</enabled><name>LOG_FIELD</name></field></step-log-table>  
47 -<metrics-log-table><connection/>  
48 -<schema/>  
49 -<table/>  
50 -<timeout_days/>  
51 -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>METRICS_DATE</id><enabled>Y</enabled><name>METRICS_DATE</name></field><field><id>METRICS_CODE</id><enabled>Y</enabled><name>METRICS_CODE</name></field><field><id>METRICS_DESCRIPTION</id><enabled>Y</enabled><name>METRICS_DESCRIPTION</name></field><field><id>METRICS_SUBJECT</id><enabled>Y</enabled><name>METRICS_SUBJECT</name></field><field><id>METRICS_TYPE</id><enabled>Y</enabled><name>METRICS_TYPE</name></field><field><id>METRICS_VALUE</id><enabled>Y</enabled><name>METRICS_VALUE</name></field></metrics-log-table>  
52 - </log>  
53 - <maxdate>  
54 - <connection/>  
55 - <table/>  
56 - <field/>  
57 - <offset>0.0</offset>  
58 - <maxdiff>0.0</maxdiff>  
59 - </maxdate>  
60 - <size_rowset>10000</size_rowset>  
61 - <sleep_time_empty>50</sleep_time_empty>  
62 - <sleep_time_full>50</sleep_time_full>  
63 - <unique_connections>N</unique_connections>  
64 - <feedback_shown>Y</feedback_shown>  
65 - <feedback_size>50000</feedback_size>  
66 - <using_thread_priorities>Y</using_thread_priorities>  
67 - <shared_objects_file/>  
68 - <capture_step_performance>N</capture_step_performance>  
69 - <step_performance_capturing_delay>1000</step_performance_capturing_delay>  
70 - <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>  
71 - <dependencies>  
72 - </dependencies>  
73 - <partitionschemas>  
74 - </partitionschemas>  
75 - <slaveservers>  
76 - </slaveservers>  
77 - <clusterschemas>  
78 - </clusterschemas>  
79 - <created_user>-</created_user>  
80 - <created_date>2016&#x2f;06&#x2f;29 15&#x3a;12&#x3a;27.273</created_date>  
81 - <modified_user>-</modified_user>  
82 - <modified_date>2016&#x2f;06&#x2f;29 15&#x3a;12&#x3a;27.273</modified_date>  
83 - <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>  
84 - <is_key_private>N</is_key_private>  
85 - </info>  
86 - <notepads>  
87 - <notepad>  
88 - <note>&#x8fd9;&#x91cc;&#x6709;&#x4e9b;&#x95ee;&#x9898;&#xa;&#x5728;window2012&#x7684;&#x73af;&#x5883;&#x4e0b;&#xff0c;&#xa;MySql&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x4e2d;&#x5982;&#x679c;&#x8fd4;&#x56de;&#x4e2d;&#x6587;&#x5185;&#x5bb9;&#x7684;&#x5b57;&#x6bb5;&#xff0c;&#x8fd9;&#x4e2a;&#x5185;&#x5bb9;&#x4e71;&#x7801;&#xa;&#x89e3;&#x51b3;&#x529e;&#x6cd5;&#xff0c;&#x5c31;&#x662f;&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x5168;&#x90e8;&#x7f13;&#x5b58;&#xff0c;&#x5c31;&#x4e0d;&#x4e71;&#x7801;&#xa;linux&#x73af;&#x5883;&#x4e0b;&#x6ca1;&#x95ee;&#x9898;</note>  
89 - <xloc>101</xloc>  
90 - <yloc>264</yloc>  
91 - <width>333</width>  
92 - <heigth>90</heigth>  
93 - <fontname>YaHei Consolas Hybrid</fontname>  
94 - <fontsize>12</fontsize>  
95 - <fontbold>N</fontbold>  
96 - <fontitalic>N</fontitalic>  
97 - <fontcolorred>0</fontcolorred>  
98 - <fontcolorgreen>0</fontcolorgreen>  
99 - <fontcolorblue>0</fontcolorblue>  
100 - <backgroundcolorred>255</backgroundcolorred>  
101 - <backgroundcolorgreen>205</backgroundcolorgreen>  
102 - <backgroundcolorblue>112</backgroundcolorblue>  
103 - <bordercolorred>100</bordercolorred>  
104 - <bordercolorgreen>100</bordercolorgreen>  
105 - <bordercolorblue>100</bordercolorblue>  
106 - <drawshadow>Y</drawshadow>  
107 - </notepad>  
108 - </notepads>  
109 - <connection>  
110 - <name>bus_control_variable</name>  
111 - <server>&#x24;&#x7b;v_db_ip&#x7d;</server>  
112 - <type>MYSQL</type>  
113 - <access>Native</access>  
114 - <database>&#x24;&#x7b;v_db_dname&#x7d;</database>  
115 - <port>3306</port>  
116 - <username>&#x24;&#x7b;v_db_uname&#x7d;</username>  
117 - <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>  
118 - <servername/>  
119 - <data_tablespace/>  
120 - <index_tablespace/>  
121 - <attributes>  
122 - <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute>  
123 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
124 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
125 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
126 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
127 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
128 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
129 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
130 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
131 - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>  
132 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
133 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
134 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
135 - </attributes>  
136 - </connection>  
137 - <connection>  
138 - <name>bus_control_&#x516c;&#x53f8;_201</name>  
139 - <server>localhost</server>  
140 - <type>MYSQL</type>  
141 - <access>Native</access>  
142 - <database>control</database>  
143 - <port>3306</port>  
144 - <username>root</username>  
145 - <password>Encrypted </password>  
146 - <servername/>  
147 - <data_tablespace/>  
148 - <index_tablespace/>  
149 - <attributes>  
150 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
151 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
152 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
153 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
154 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
155 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
156 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
157 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
158 - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>  
159 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
160 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
161 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
162 - </attributes>  
163 - </connection>  
164 - <connection>  
165 - <name>bus_control_&#x672c;&#x673a;</name>  
166 - <server>localhost</server>  
167 - <type>MYSQL</type>  
168 - <access>Native</access>  
169 - <database>control</database>  
170 - <port>3306</port>  
171 - <username>root</username>  
172 - <password>Encrypted </password>  
173 - <servername/>  
174 - <data_tablespace/>  
175 - <index_tablespace/>  
176 - <attributes>  
177 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
178 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
179 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
180 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
181 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
182 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
183 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
184 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
185 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
186 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
187 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
188 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
189 - </attributes>  
190 - </connection>  
191 - <connection>  
192 - <name>xlab_mysql_youle</name>  
193 - <server>101.231.124.8</server>  
194 - <type>MYSQL</type>  
195 - <access>Native</access>  
196 - <database>xlab_youle</database>  
197 - <port>45687</port>  
198 - <username>xlab-youle</username>  
199 - <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>  
200 - <servername/>  
201 - <data_tablespace/>  
202 - <index_tablespace/>  
203 - <attributes>  
204 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
205 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
206 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
207 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
208 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
209 - <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>  
210 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
211 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
212 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
213 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>  
214 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>  
215 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
216 - </attributes>  
217 - </connection>  
218 - <connection>  
219 - <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>  
220 - <server>localhost</server>  
221 - <type>MYSQL</type>  
222 - <access>Native</access>  
223 - <database>xlab_youle</database>  
224 - <port>3306</port>  
225 - <username>root</username>  
226 - <password>Encrypted </password>  
227 - <servername/>  
228 - <data_tablespace/>  
229 - <index_tablespace/>  
230 - <attributes>  
231 - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>  
232 - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>  
233 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
234 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
235 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
236 - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>  
237 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
238 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
239 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
240 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>  
241 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>  
242 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
243 - </attributes>  
244 - </connection>  
245 - <connection>  
246 - <name>xlab_youle</name>  
247 - <server/>  
248 - <type>MYSQL</type>  
249 - <access>JNDI</access>  
250 - <database>xlab_youle</database>  
251 - <port>1521</port>  
252 - <username/>  
253 - <password>Encrypted </password>  
254 - <servername/>  
255 - <data_tablespace/>  
256 - <index_tablespace/>  
257 - <attributes>  
258 - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>  
259 - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>  
260 - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>  
261 - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>  
262 - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>  
263 - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>  
264 - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>  
265 - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>  
266 - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>  
267 - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>  
268 - </attributes>  
269 - </connection>  
270 - <order>  
271 - <hop> <from>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ecinfo</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>  
272 - <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop>  
273 - <hop> <from>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</from><to>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</to><enabled>Y</enabled> </hop>  
274 - <hop> <from>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</from><to>&#x7ebf;&#x8def;id&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>  
275 - <hop> <from>&#x7ebf;&#x8def;id&#x67e5;&#x8be2;</from><to>&#x8fc7;&#x6ee4;&#x7ebf;&#x8def;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>  
276 - <hop> <from>&#x9a7e;&#x9a76;&#x5458;id&#x67e5;&#x627e;</from><to>&#x8fc7;&#x6ee4;&#x9a7e;&#x9a76;&#x5458;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>  
277 - <hop> <from>&#x8fc7;&#x6ee4;&#x9a7e;&#x9a76;&#x5458;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</from><to>&#x552e;&#x7968;&#x5458;id&#x67e5;&#x627e;</to><enabled>Y</enabled> </hop>  
278 - <hop> <from>&#x552e;&#x7968;&#x5458;id&#x67e5;&#x627e;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ecinfo</to><enabled>Y</enabled> </hop>  
279 - <hop> <from>&#x8fc7;&#x6ee4;&#x7ebf;&#x8def;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</from><to>&#x5de5;&#x53f7;&#x6570;&#x636e;&#x5904;&#x7406;</to><enabled>Y</enabled> </hop>  
280 - <hop> <from>&#x5de5;&#x53f7;&#x6570;&#x636e;&#x5904;&#x7406;</from><to>&#x9a7e;&#x9a76;&#x5458;id&#x67e5;&#x627e;</to><enabled>Y</enabled> </hop>  
281 - </order>  
282 - <step>  
283 - <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>  
284 - <type>ExcelInput</type>  
285 - <description/>  
286 - <distribute>Y</distribute>  
287 - <custom_distribution/>  
288 - <copies>1</copies>  
289 - <partitioning>  
290 - <method>none</method>  
291 - <schema_name/>  
292 - </partitioning>  
293 - <header>Y</header>  
294 - <noempty>Y</noempty>  
295 - <stoponempty>N</stoponempty>  
296 - <filefield/>  
297 - <sheetfield/>  
298 - <sheetrownumfield/>  
299 - <rownumfield/>  
300 - <sheetfield/>  
301 - <filefield/>  
302 - <limit>0</limit>  
303 - <encoding/>  
304 - <add_to_result_filenames>Y</add_to_result_filenames>  
305 - <accept_filenames>Y</accept_filenames>  
306 - <accept_field>filepath_</accept_field>  
307 - <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>  
308 - <file>  
309 - <name/>  
310 - <filemask/>  
311 - <exclude_filemask/>  
312 - <file_required>N</file_required>  
313 - <include_subfolders>N</include_subfolders>  
314 - </file>  
315 - <fields>  
316 - <field>  
317 - <name>&#x7ebf;&#x8def;</name>  
318 - <type>String</type>  
319 - <length>-1</length>  
320 - <precision>-1</precision>  
321 - <trim_type>none</trim_type>  
322 - <repeat>N</repeat>  
323 - <format/>  
324 - <currency/>  
325 - <decimal/>  
326 - <group/>  
327 - </field>  
328 - <field>  
329 - <name>&#x642d;&#x73ed;&#x7f16;&#x7801;</name>  
330 - <type>String</type>  
331 - <length>-1</length>  
332 - <precision>-1</precision>  
333 - <trim_type>none</trim_type>  
334 - <repeat>N</repeat>  
335 - <format>&#x23;</format>  
336 - <currency/>  
337 - <decimal/>  
338 - <group/>  
339 - </field>  
340 - <field>  
341 - <name>&#x9a7e;&#x9a76;&#x5458;&#x5de5;&#x53f7;</name>  
342 - <type>String</type>  
343 - <length>-1</length>  
344 - <precision>-1</precision>  
345 - <trim_type>none</trim_type>  
346 - <repeat>N</repeat>  
347 - <format>&#x23;</format>  
348 - <currency/>  
349 - <decimal/>  
350 - <group/>  
351 - </field>  
352 - <field>  
353 - <name>&#x9a7e;&#x9a76;&#x5458;</name>  
354 - <type>String</type>  
355 - <length>-1</length>  
356 - <precision>-1</precision>  
357 - <trim_type>none</trim_type>  
358 - <repeat>N</repeat>  
359 - <format/>  
360 - <currency/>  
361 - <decimal/>  
362 - <group/>  
363 - </field>  
364 - <field>  
365 - <name>&#x552e;&#x7968;&#x5458;&#x5de5;&#x53f7;</name>  
366 - <type>String</type>  
367 - <length>-1</length>  
368 - <precision>-1</precision>  
369 - <trim_type>none</trim_type>  
370 - <repeat>N</repeat>  
371 - <format>&#x23;</format>  
372 - <currency/>  
373 - <decimal/>  
374 - <group/>  
375 - </field>  
376 - <field>  
377 - <name>&#x552e;&#x7968;&#x5458;</name>  
378 - <type>String</type>  
379 - <length>-1</length>  
380 - <precision>-1</precision>  
381 - <trim_type>none</trim_type>  
382 - <repeat>N</repeat>  
383 - <format/>  
384 - <currency/>  
385 - <decimal/>  
386 - <group/>  
387 - </field>  
388 - </fields>  
389 - <sheets>  
390 - <sheet>  
391 - <name>&#x5de5;&#x4f5c;&#x8868;1</name>  
392 - <startrow>0</startrow>  
393 - <startcol>0</startcol>  
394 - </sheet>  
395 - </sheets>  
396 - <strict_types>N</strict_types>  
397 - <error_ignored>N</error_ignored>  
398 - <error_line_skipped>N</error_line_skipped>  
399 - <bad_line_files_destination_directory/>  
400 - <bad_line_files_extension>warning</bad_line_files_extension>  
401 - <error_line_files_destination_directory/>  
402 - <error_line_files_extension>error</error_line_files_extension>  
403 - <line_number_files_destination_directory/>  
404 - <line_number_files_extension>line</line_number_files_extension>  
405 - <shortFileFieldName/>  
406 - <pathFieldName/>  
407 - <hiddenFieldName/>  
408 - <lastModificationTimeFieldName/>  
409 - <uriNameFieldName/>  
410 - <rootUriNameFieldName/>  
411 - <extensionFieldName/>  
412 - <sizeFieldName/>  
413 - <spreadsheet_type>JXL</spreadsheet_type>  
414 - <cluster_schema/>  
415 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
416 - <xloc>93</xloc>  
417 - <yloc>51</yloc>  
418 - <draw>Y</draw>  
419 - </GUI>  
420 - </step>  
421 -  
422 - <step>  
423 - <name>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</name>  
424 - <type>Constant</type>  
425 - <description/>  
426 - <distribute>Y</distribute>  
427 - <custom_distribution/>  
428 - <copies>1</copies>  
429 - <partitioning>  
430 - <method>none</method>  
431 - <schema_name/>  
432 - </partitioning>  
433 - <fields>  
434 - <field>  
435 - <name>isCancel</name>  
436 - <type>Integer</type>  
437 - <format/>  
438 - <currency/>  
439 - <decimal/>  
440 - <group/>  
441 - <nullif>0</nullif>  
442 - <length>-1</length>  
443 - <precision>-1</precision>  
444 - <set_empty_string>N</set_empty_string>  
445 - </field>  
446 - </fields>  
447 - <cluster_schema/>  
448 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
449 - <xloc>225</xloc>  
450 - <yloc>53</yloc>  
451 - <draw>Y</draw>  
452 - </GUI>  
453 - </step>  
454 -  
455 - <step>  
456 - <name>&#x552e;&#x7968;&#x5458;id&#x67e5;&#x627e;</name>  
457 - <type>DBJoin</type>  
458 - <description/>  
459 - <distribute>Y</distribute>  
460 - <custom_distribution/>  
461 - <copies>1</copies>  
462 - <partitioning>  
463 - <method>none</method>  
464 - <schema_name/>  
465 - </partitioning>  
466 - <connection>bus_control_variable</connection>  
467 - <rowlimit>1</rowlimit>  
468 - <sql>select id as sid from bsth_c_personnel&#xa;where job_code like &#x3f; and personnel_name &#x3d; &#x3f;</sql>  
469 - <outer_join>Y</outer_join>  
470 - <replace_vars>N</replace_vars>  
471 - <parameter>  
472 - <field>  
473 - <name>sgh_temp</name>  
474 - <type>String</type>  
475 - </field>  
476 - <field>  
477 - <name>&#x552e;&#x7968;&#x5458;</name>  
478 - <type>String</type>  
479 - </field>  
480 - </parameter>  
481 - <cluster_schema/>  
482 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
483 - <xloc>830</xloc>  
484 - <yloc>45</yloc>  
485 - <draw>Y</draw>  
486 - </GUI>  
487 - </step>  
488 -  
489 - <step>  
490 - <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ecinfo</name>  
491 - <type>InsertUpdate</type>  
492 - <description/>  
493 - <distribute>Y</distribute>  
494 - <custom_distribution/>  
495 - <copies>1</copies>  
496 - <partitioning>  
497 - <method>none</method>  
498 - <schema_name/>  
499 - </partitioning>  
500 - <connection>bus_control_variable</connection>  
501 - <commit>100</commit>  
502 - <update_bypassed>N</update_bypassed>  
503 - <lookup>  
504 - <schema/>  
505 - <table>bsth_c_s_ecinfo</table>  
506 - <key>  
507 - <name>xlid</name>  
508 - <field>xl</field>  
509 - <condition>&#x3d;</condition>  
510 - <name2/>  
511 - </key>  
512 - <key>  
513 - <name>&#x642d;&#x73ed;&#x7f16;&#x7801;</name>  
514 - <field>dbbm</field>  
515 - <condition>&#x3d;</condition>  
516 - <name2/>  
517 - </key>  
518 - <key>  
519 - <name>isCancel</name>  
520 - <field>is_cancel</field>  
521 - <condition>&#x3d;</condition>  
522 - <name2/>  
523 - </key>  
524 - <value>  
525 - <name>xl</name>  
526 - <rename>xlid</rename>  
527 - <update>N</update>  
528 - </value>  
529 - <value>  
530 - <name>dbbm</name>  
531 - <rename>&#x642d;&#x73ed;&#x7f16;&#x7801;</rename>  
532 - <update>N</update>  
533 - </value>  
534 - <value>  
535 - <name>jsy</name>  
536 - <rename>jid</rename>  
537 - <update>N</update>  
538 - </value>  
539 - <value>  
540 - <name>spy</name>  
541 - <rename>sid</rename>  
542 - <update>N</update>  
543 - </value>  
544 - <value>  
545 - <name>is_cancel</name>  
546 - <rename>isCancel</rename>  
547 - <update>N</update>  
548 - </value>  
549 - </lookup>  
550 - <cluster_schema/>  
551 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
552 - <xloc>833</xloc>  
553 - <yloc>198</yloc>  
554 - <draw>Y</draw>  
555 - </GUI>  
556 - </step>  
557 -  
558 - <step>  
559 - <name>&#x7ebf;&#x8def;id&#x67e5;&#x8be2;</name>  
560 - <type>DBLookup</type>  
561 - <description/>  
562 - <distribute>Y</distribute>  
563 - <custom_distribution/>  
564 - <copies>1</copies>  
565 - <partitioning>  
566 - <method>none</method>  
567 - <schema_name/>  
568 - </partitioning>  
569 - <connection>bus_control_variable</connection>  
570 - <cache>Y</cache>  
571 - <cache_load_all>Y</cache_load_all>  
572 - <cache_size>0</cache_size>  
573 - <lookup>  
574 - <schema/>  
575 - <table>bsth_c_line</table>  
576 - <orderby/>  
577 - <fail_on_multiple>N</fail_on_multiple>  
578 - <eat_row_on_failure>N</eat_row_on_failure>  
579 - <key>  
580 - <name>&#x7ebf;&#x8def;</name>  
581 - <field>name</field>  
582 - <condition>&#x3d;</condition>  
583 - <name2/>  
584 - </key>  
585 - <key>  
586 - <name>isCancel</name>  
587 - <field>destroy</field>  
588 - <condition>&#x3d;</condition>  
589 - <name2/>  
590 - </key>  
591 - <value>  
592 - <name>id</name>  
593 - <rename>xlid</rename>  
594 - <default/>  
595 - <type>Integer</type>  
596 - </value>  
597 - </lookup>  
598 - <cluster_schema/>  
599 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
600 - <xloc>397</xloc>  
601 - <yloc>144</yloc>  
602 - <draw>Y</draw>  
603 - </GUI>  
604 - </step>  
605 -  
606 - <step>  
607 - <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>  
608 - <type>GetVariable</type>  
609 - <description/>  
610 - <distribute>Y</distribute>  
611 - <custom_distribution/>  
612 - <copies>1</copies>  
613 - <partitioning>  
614 - <method>none</method>  
615 - <schema_name/>  
616 - </partitioning>  
617 - <fields>  
618 - <field>  
619 - <name>filepath_</name>  
620 - <variable>&#x24;&#x7b;filepath&#x7d;</variable>  
621 - <type>String</type>  
622 - <format/>  
623 - <currency/>  
624 - <decimal/>  
625 - <group/>  
626 - <length>-1</length>  
627 - <precision>-1</precision>  
628 - <trim_type>none</trim_type>  
629 - </field>  
630 - <field>  
631 - <name>erroroutputdir_</name>  
632 - <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>  
633 - <type>String</type>  
634 - <format/>  
635 - <currency/>  
636 - <decimal/>  
637 - <group/>  
638 - <length>-1</length>  
639 - <precision>-1</precision>  
640 - <trim_type>none</trim_type>  
641 - </field>  
642 - </fields>  
643 - <cluster_schema/>  
644 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
645 - <xloc>94</xloc>  
646 - <yloc>178</yloc>  
647 - <draw>Y</draw>  
648 - </GUI>  
649 - </step>  
650 -  
651 - <step>  
652 - <name>&#x8fc7;&#x6ee4;&#x7ebf;&#x8def;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</name>  
653 - <type>FilterRows</type>  
654 - <description/>  
655 - <distribute>Y</distribute>  
656 - <custom_distribution/>  
657 - <copies>1</copies>  
658 - <partitioning>  
659 - <method>none</method>  
660 - <schema_name/>  
661 - </partitioning>  
662 -<send_true_to/>  
663 -<send_false_to/>  
664 - <compare>  
665 -<condition>  
666 - <negated>N</negated>  
667 - <leftvalue>xlid</leftvalue>  
668 - <function>IS NOT NULL</function>  
669 - <rightvalue/>  
670 - </condition>  
671 - </compare>  
672 - <cluster_schema/>  
673 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
674 - <xloc>395</xloc>  
675 - <yloc>49</yloc>  
676 - <draw>Y</draw>  
677 - </GUI>  
678 - </step>  
679 -  
680 - <step>  
681 - <name>&#x8fc7;&#x6ee4;&#x9a7e;&#x9a76;&#x5458;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</name>  
682 - <type>FilterRows</type>  
683 - <description/>  
684 - <distribute>Y</distribute>  
685 - <custom_distribution/>  
686 - <copies>1</copies>  
687 - <partitioning>  
688 - <method>none</method>  
689 - <schema_name/>  
690 - </partitioning>  
691 -<send_true_to>&#x552e;&#x7968;&#x5458;id&#x67e5;&#x627e;</send_true_to>  
692 -<send_false_to/>  
693 - <compare>  
694 -<condition>  
695 - <negated>N</negated>  
696 - <leftvalue>jid</leftvalue>  
697 - <function>IS NOT NULL</function>  
698 - <rightvalue/>  
699 - </condition>  
700 - </compare>  
701 - <cluster_schema/>  
702 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
703 - <xloc>695</xloc>  
704 - <yloc>45</yloc>  
705 - <draw>Y</draw>  
706 - </GUI>  
707 - </step>  
708 -  
709 - <step>  
710 - <name>&#x9519;&#x8bef;&#x8f93;&#x51fa;</name>  
711 - <type>ExcelOutput</type>  
712 - <description/>  
713 - <distribute>Y</distribute>  
714 - <custom_distribution/>  
715 - <copies>1</copies>  
716 - <partitioning>  
717 - <method>none</method>  
718 - <schema_name/>  
719 - </partitioning>  
720 - <header>Y</header>  
721 - <footer>N</footer>  
722 - <encoding>UTF-8</encoding>  
723 - <append>N</append>  
724 - <add_to_result_filenames>Y</add_to_result_filenames>  
725 - <file>  
726 - <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x4eba;&#x5458;&#x914d;&#x7f6e;_&#x9519;&#x8bef;</name>  
727 - <extention>xls</extention>  
728 - <do_not_open_newfile_init>N</do_not_open_newfile_init>  
729 - <create_parent_folder>N</create_parent_folder>  
730 - <split>N</split>  
731 - <add_date>N</add_date>  
732 - <add_time>N</add_time>  
733 - <SpecifyFormat>N</SpecifyFormat>  
734 - <date_time_format/>  
735 - <sheetname>Sheet1</sheetname>  
736 - <autosizecolums>N</autosizecolums>  
737 - <nullisblank>N</nullisblank>  
738 - <protect_sheet>N</protect_sheet>  
739 - <password>Encrypted </password>  
740 - <splitevery>0</splitevery>  
741 - <usetempfiles>N</usetempfiles>  
742 - <tempdirectory/>  
743 - </file>  
744 - <template>  
745 - <enabled>N</enabled>  
746 - <append>N</append>  
747 - <filename>template.xls</filename>  
748 - </template>  
749 - <fields>  
750 - <field>  
751 - <name>&#x7ebf;&#x8def;</name>  
752 - <type>String</type>  
753 - <format/>  
754 - </field>  
755 - <field>  
756 - <name>&#x642d;&#x73ed;&#x7f16;&#x7801;</name>  
757 - <type>String</type>  
758 - <format/>  
759 - </field>  
760 - <field>  
761 - <name>&#x9a7e;&#x9a76;&#x5458;&#x5de5;&#x53f7;</name>  
762 - <type>String</type>  
763 - <format/>  
764 - </field>  
765 - <field>  
766 - <name>&#x9a7e;&#x9a76;&#x5458;</name>  
767 - <type>String</type>  
768 - <format/>  
769 - </field>  
770 - <field>  
771 - <name>&#x552e;&#x7968;&#x5458;&#x5de5;&#x53f7;</name>  
772 - <type>String</type>  
773 - <format/>  
774 - </field>  
775 - <field>  
776 - <name>&#x552e;&#x7968;&#x5458;</name>  
777 - <type>String</type>  
778 - <format/>  
779 - </field>  
780 - <field>  
781 - <name>isCancel</name>  
782 - <type>Integer</type>  
783 - <format/>  
784 - </field>  
785 - <field>  
786 - <name>xlid</name>  
787 - <type>Integer</type>  
788 - <format/>  
789 - </field>  
790 - <field>  
791 - <name>jid</name>  
792 - <type>Integer</type>  
793 - <format/>  
794 - </field>  
795 - <field>  
796 - <name>sid</name>  
797 - <type>Integer</type>  
798 - <format/>  
799 - </field>  
800 - <field>  
801 - <name>error_count</name>  
802 - <type>Integer</type>  
803 - <format/>  
804 - </field>  
805 - <field>  
806 - <name>error_desc</name>  
807 - <type>String</type>  
808 - <format/>  
809 - </field>  
810 - <field>  
811 - <name>error_column1</name>  
812 - <type>String</type>  
813 - <format/>  
814 - </field>  
815 - <field>  
816 - <name>error_column2</name>  
817 - <type>String</type>  
818 - <format/>  
819 - </field>  
820 - </fields>  
821 - <custom>  
822 - <header_font_name>arial</header_font_name>  
823 - <header_font_size>10</header_font_size>  
824 - <header_font_bold>N</header_font_bold>  
825 - <header_font_italic>N</header_font_italic>  
826 - <header_font_underline>no</header_font_underline>  
827 - <header_font_orientation>horizontal</header_font_orientation>  
828 - <header_font_color>black</header_font_color>  
829 - <header_background_color>none</header_background_color>  
830 - <header_row_height>255</header_row_height>  
831 - <header_alignment>left</header_alignment>  
832 - <header_image/>  
833 - <row_font_name>arial</row_font_name>  
834 - <row_font_size>10</row_font_size>  
835 - <row_font_color>black</row_font_color>  
836 - <row_background_color>none</row_background_color>  
837 - </custom>  
838 - <cluster_schema/>  
839 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
840 - <xloc>833</xloc>  
841 - <yloc>321</yloc>  
842 - <draw>Y</draw>  
843 - </GUI>  
844 - </step>  
845 -  
846 - <step>  
847 - <name>&#x9a7e;&#x9a76;&#x5458;id&#x67e5;&#x627e;</name>  
848 - <type>DBJoin</type>  
849 - <description/>  
850 - <distribute>Y</distribute>  
851 - <custom_distribution/>  
852 - <copies>1</copies>  
853 - <partitioning>  
854 - <method>none</method>  
855 - <schema_name/>  
856 - </partitioning>  
857 - <connection>bus_control_variable</connection>  
858 - <rowlimit>1</rowlimit>  
859 - <sql>select id as jid from bsth_c_personnel&#xa;where job_code like &#x3f; and personnel_name &#x3d; &#x3f;</sql>  
860 - <outer_join>Y</outer_join>  
861 - <replace_vars>N</replace_vars>  
862 - <parameter>  
863 - <field>  
864 - <name>jgh_temp</name>  
865 - <type>String</type>  
866 - </field>  
867 - <field>  
868 - <name>&#x9a7e;&#x9a76;&#x5458;</name>  
869 - <type>String</type>  
870 - </field>  
871 - </parameter>  
872 - <cluster_schema/>  
873 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
874 - <xloc>694</xloc>  
875 - <yloc>141</yloc>  
876 - <draw>Y</draw>  
877 - </GUI>  
878 - </step>  
879 -  
880 - <step>  
881 - <name>&#x5de5;&#x53f7;&#x6570;&#x636e;&#x5904;&#x7406;</name>  
882 - <type>ScriptValueMod</type>  
883 - <description/>  
884 - <distribute>Y</distribute>  
885 - <custom_distribution/>  
886 - <copies>1</copies>  
887 - <partitioning>  
888 - <method>none</method>  
889 - <schema_name/>  
890 - </partitioning>  
891 - <compatible>N</compatible>  
892 - <optimizationLevel>9</optimizationLevel>  
893 - <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>  
894 - <jsScript_name>Script 1</jsScript_name>  
895 - <jsScript_script>&#x2f;&#x2f; &#x56e0;&#x4e3a;&#x6570;&#x636e;&#x5e93;&#x4e2d;&#x7684;&#x6570;&#x636e;&#x5de5;&#x53f7;&#x53ef;&#x80fd;&#x5e26;suffix&#xff0c;&#x5982;55-12345678&#xa;&#x2f;&#x2f; &#x6240;&#x4ee5;&#x4e4b;&#x540e;&#x7684;&#x5339;&#x914d;&#x4f7f;&#x7528;like&#xff0c;&#x5219;&#x5143;&#x6570;&#x636e;&#x9700;&#x8981;&#x52a0;&#x4e0a;&#x25; &#x25;&#x7b26;&#x53f7;&#xa;&#xa;var jgh_temp&#x3b;&#xa;var sgh_temp&#x3b;&#xa;&#xa;if &#x28;&#x9a7e;&#x9a76;&#x5458;&#x5de5;&#x53f7;&#x29; &#x7b;&#xa; jgh_temp &#x3d; &#x27;&#x25;&#x27; &#x2b; &#x9a7e;&#x9a76;&#x5458;&#x5de5;&#x53f7; &#x2b; &#x27;&#x25;&#x27;&#x3b;&#xa;&#x7d; else &#x7b;&#xa; jgh_temp &#x3d; &#x9a7e;&#x9a76;&#x5458;&#x5de5;&#x53f7;&#x3b;&#xa;&#x7d;&#xa;&#xa;if &#x28;&#x552e;&#x7968;&#x5458;&#x5de5;&#x53f7;&#x29; &#x7b;&#xa; sgh_temp &#x3d; &#x27;&#x25;&#x27; &#x2b; &#x552e;&#x7968;&#x5458;&#x5de5;&#x53f7; &#x2b; &#x27;&#x25;&#x27;&#x3b;&#xa;&#x7d; else &#x7b;&#xa; sgh_temp &#x3d; &#x552e;&#x7968;&#x5458;&#x5de5;&#x53f7;&#x3b;&#xa;&#x7d;</jsScript_script>  
896 - </jsScript> </jsScripts> <fields> <field> <name>jgh_temp</name>  
897 - <rename>jgh_temp</rename>  
898 - <type>String</type>  
899 - <length>-1</length>  
900 - <precision>-1</precision>  
901 - <replace>N</replace>  
902 - </field> <field> <name>sgh_temp</name>  
903 - <rename>sgh_temp</rename>  
904 - <type>String</type>  
905 - <length>-1</length>  
906 - <precision>-1</precision>  
907 - <replace>N</replace>  
908 - </field> </fields> <cluster_schema/>  
909 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
910 - <xloc>548</xloc>  
911 - <yloc>47</yloc>  
912 - <draw>Y</draw>  
913 - </GUI>  
914 - </step>  
915 -  
916 - <step_error_handling>  
917 - <error>  
918 - <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ecinfo</source_step>  
919 - <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa;</target_step>  
920 - <is_enabled>Y</is_enabled>  
921 - <nr_valuename>error_count</nr_valuename>  
922 - <descriptions_valuename>error_desc</descriptions_valuename>  
923 - <fields_valuename>error_column1</fields_valuename>  
924 - <codes_valuename>error_column2</codes_valuename>  
925 - <max_errors/>  
926 - <max_pct_errors/>  
927 - <min_pct_rows/>  
928 - </error>  
929 - </step_error_handling>  
930 - <slave-step-copy-partition-distribution>  
931 -</slave-step-copy-partition-distribution>  
932 - <slave_transformation>N</slave_transformation>  
933 -  
934 -</transformation> 1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<transformation>
  3 + <info>
  4 + <name>&#x4eba;&#x5458;&#x914d;&#x7f6e;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</name>
  5 + <description>&#x4eba;&#x5458;&#x914d;&#x7f6e;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</description>
  6 + <extended_description>&#x4eba;&#x5458;&#x914d;&#x7f6e;&#x4fe1;&#x606f;</extended_description>
  7 + <trans_version/>
  8 + <trans_type>Normal</trans_type>
  9 + <trans_status>0</trans_status>
  10 + <directory>&#x2f;</directory>
  11 + <parameters>
  12 + <parameter>
  13 + <name>erroroutputdir</name>
  14 + <default_value/>
  15 + <description>ktr step&#x914d;&#x7f6e;&#x7684;&#x9519;&#x8bef;&#x8f93;&#x51fa;&#x76ee;&#x5f55;</description>
  16 + </parameter>
  17 + <parameter>
  18 + <name>filepath</name>
  19 + <default_value/>
  20 + <description>&#x5f85;&#x5904;&#x7406;&#x5bfc;&#x5165;&#x7684;excel&#x6587;&#x4ef6;</description>
  21 + </parameter>
  22 + </parameters>
  23 + <log>
  24 +<trans-log-table><connection/>
  25 +<schema/>
  26 +<table/>
  27 +<size_limit_lines/>
  28 +<interval/>
  29 +<timeout_days/>
  30 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STATUS</id><enabled>Y</enabled><name>STATUS</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name><subject/></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name><subject/></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name><subject/></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name><subject/></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name><subject/></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name><subject/></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>STARTDATE</id><enabled>Y</enabled><name>STARTDATE</name></field><field><id>ENDDATE</id><enabled>Y</enabled><name>ENDDATE</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>DEPDATE</id><enabled>Y</enabled><name>DEPDATE</name></field><field><id>REPLAYDATE</id><enabled>Y</enabled><name>REPLAYDATE</name></field><field><id>LOG_FIELD</id><enabled>Y</enabled><name>LOG_FIELD</name></field><field><id>EXECUTING_SERVER</id><enabled>N</enabled><name>EXECUTING_SERVER</name></field><field><id>EXECUTING_USER</id><enabled>N</enabled><name>EXECUTING_USER</name></field><field><id>CLIENT</id><enabled>N</enabled><name>CLIENT</name></field></trans-log-table>
  31 +<perf-log-table><connection/>
  32 +<schema/>
  33 +<table/>
  34 +<interval/>
  35 +<timeout_days/>
  36 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>SEQ_NR</id><enabled>Y</enabled><name>SEQ_NR</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>INPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>INPUT_BUFFER_ROWS</name></field><field><id>OUTPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>OUTPUT_BUFFER_ROWS</name></field></perf-log-table>
  37 +<channel-log-table><connection/>
  38 +<schema/>
  39 +<table/>
  40 +<timeout_days/>
  41 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>LOGGING_OBJECT_TYPE</id><enabled>Y</enabled><name>LOGGING_OBJECT_TYPE</name></field><field><id>OBJECT_NAME</id><enabled>Y</enabled><name>OBJECT_NAME</name></field><field><id>OBJECT_COPY</id><enabled>Y</enabled><name>OBJECT_COPY</name></field><field><id>REPOSITORY_DIRECTORY</id><enabled>Y</enabled><name>REPOSITORY_DIRECTORY</name></field><field><id>FILENAME</id><enabled>Y</enabled><name>FILENAME</name></field><field><id>OBJECT_ID</id><enabled>Y</enabled><name>OBJECT_ID</name></field><field><id>OBJECT_REVISION</id><enabled>Y</enabled><name>OBJECT_REVISION</name></field><field><id>PARENT_CHANNEL_ID</id><enabled>Y</enabled><name>PARENT_CHANNEL_ID</name></field><field><id>ROOT_CHANNEL_ID</id><enabled>Y</enabled><name>ROOT_CHANNEL_ID</name></field></channel-log-table>
  42 +<step-log-table><connection/>
  43 +<schema/>
  44 +<table/>
  45 +<timeout_days/>
  46 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>LOG_FIELD</id><enabled>N</enabled><name>LOG_FIELD</name></field></step-log-table>
  47 +<metrics-log-table><connection/>
  48 +<schema/>
  49 +<table/>
  50 +<timeout_days/>
  51 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>METRICS_DATE</id><enabled>Y</enabled><name>METRICS_DATE</name></field><field><id>METRICS_CODE</id><enabled>Y</enabled><name>METRICS_CODE</name></field><field><id>METRICS_DESCRIPTION</id><enabled>Y</enabled><name>METRICS_DESCRIPTION</name></field><field><id>METRICS_SUBJECT</id><enabled>Y</enabled><name>METRICS_SUBJECT</name></field><field><id>METRICS_TYPE</id><enabled>Y</enabled><name>METRICS_TYPE</name></field><field><id>METRICS_VALUE</id><enabled>Y</enabled><name>METRICS_VALUE</name></field></metrics-log-table>
  52 + </log>
  53 + <maxdate>
  54 + <connection/>
  55 + <table/>
  56 + <field/>
  57 + <offset>0.0</offset>
  58 + <maxdiff>0.0</maxdiff>
  59 + </maxdate>
  60 + <size_rowset>10000</size_rowset>
  61 + <sleep_time_empty>50</sleep_time_empty>
  62 + <sleep_time_full>50</sleep_time_full>
  63 + <unique_connections>N</unique_connections>
  64 + <feedback_shown>Y</feedback_shown>
  65 + <feedback_size>50000</feedback_size>
  66 + <using_thread_priorities>Y</using_thread_priorities>
  67 + <shared_objects_file/>
  68 + <capture_step_performance>N</capture_step_performance>
  69 + <step_performance_capturing_delay>1000</step_performance_capturing_delay>
  70 + <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
  71 + <dependencies>
  72 + </dependencies>
  73 + <partitionschemas>
  74 + </partitionschemas>
  75 + <slaveservers>
  76 + </slaveservers>
  77 + <clusterschemas>
  78 + </clusterschemas>
  79 + <created_user>-</created_user>
  80 + <created_date>2016&#x2f;06&#x2f;29 15&#x3a;12&#x3a;27.273</created_date>
  81 + <modified_user>-</modified_user>
  82 + <modified_date>2016&#x2f;06&#x2f;29 15&#x3a;12&#x3a;27.273</modified_date>
  83 + <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>
  84 + <is_key_private>N</is_key_private>
  85 + </info>
  86 + <notepads>
  87 + <notepad>
  88 + <note>&#x8fd9;&#x91cc;&#x6709;&#x4e9b;&#x95ee;&#x9898;&#xa;&#x5728;window2012&#x7684;&#x73af;&#x5883;&#x4e0b;&#xff0c;&#xa;MySql&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x4e2d;&#x5982;&#x679c;&#x8fd4;&#x56de;&#x4e2d;&#x6587;&#x5185;&#x5bb9;&#x7684;&#x5b57;&#x6bb5;&#xff0c;&#x8fd9;&#x4e2a;&#x5185;&#x5bb9;&#x4e71;&#x7801;&#xa;&#x89e3;&#x51b3;&#x529e;&#x6cd5;&#xff0c;&#x5c31;&#x662f;&#x6570;&#x636e;&#x5e93;&#x67e5;&#x8be2;&#x5168;&#x90e8;&#x7f13;&#x5b58;&#xff0c;&#x5c31;&#x4e0d;&#x4e71;&#x7801;&#xa;linux&#x73af;&#x5883;&#x4e0b;&#x6ca1;&#x95ee;&#x9898;</note>
  89 + <xloc>101</xloc>
  90 + <yloc>264</yloc>
  91 + <width>333</width>
  92 + <heigth>90</heigth>
  93 + <fontname>YaHei Consolas Hybrid</fontname>
  94 + <fontsize>12</fontsize>
  95 + <fontbold>N</fontbold>
  96 + <fontitalic>N</fontitalic>
  97 + <fontcolorred>0</fontcolorred>
  98 + <fontcolorgreen>0</fontcolorgreen>
  99 + <fontcolorblue>0</fontcolorblue>
  100 + <backgroundcolorred>255</backgroundcolorred>
  101 + <backgroundcolorgreen>205</backgroundcolorgreen>
  102 + <backgroundcolorblue>112</backgroundcolorblue>
  103 + <bordercolorred>100</bordercolorred>
  104 + <bordercolorgreen>100</bordercolorgreen>
  105 + <bordercolorblue>100</bordercolorblue>
  106 + <drawshadow>Y</drawshadow>
  107 + </notepad>
  108 + </notepads>
  109 + <connection>
  110 + <name>bus_control_variable</name>
  111 + <server>&#x24;&#x7b;v_db_ip&#x7d;</server>
  112 + <type>MYSQL</type>
  113 + <access>Native</access>
  114 + <database>&#x24;&#x7b;v_db_dname&#x7d;</database>
  115 + <port>3306</port>
  116 + <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
  117 + <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>
  118 + <servername/>
  119 + <data_tablespace/>
  120 + <index_tablespace/>
  121 + <attributes>
  122 + <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute>
  123 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  124 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  125 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  126 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  127 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  128 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  129 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  130 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  131 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  132 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  133 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  134 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  135 + </attributes>
  136 + </connection>
  137 + <connection>
  138 + <name>bus_control_&#x516c;&#x53f8;_201</name>
  139 + <server>localhost</server>
  140 + <type>MYSQL</type>
  141 + <access>Native</access>
  142 + <database>control</database>
  143 + <port>3306</port>
  144 + <username>root</username>
  145 + <password>Encrypted </password>
  146 + <servername/>
  147 + <data_tablespace/>
  148 + <index_tablespace/>
  149 + <attributes>
  150 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  151 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  152 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  153 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  154 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  155 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  156 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  157 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  158 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  159 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  160 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  161 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  162 + </attributes>
  163 + </connection>
  164 + <connection>
  165 + <name>bus_control_&#x672c;&#x673a;</name>
  166 + <server>localhost</server>
  167 + <type>MYSQL</type>
  168 + <access>Native</access>
  169 + <database>control</database>
  170 + <port>3306</port>
  171 + <username>root</username>
  172 + <password>Encrypted </password>
  173 + <servername/>
  174 + <data_tablespace/>
  175 + <index_tablespace/>
  176 + <attributes>
  177 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  178 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  179 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  180 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  181 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  182 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  183 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  184 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  185 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  186 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  187 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  188 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  189 + </attributes>
  190 + </connection>
  191 + <connection>
  192 + <name>xlab_mysql_youle</name>
  193 + <server>101.231.124.8</server>
  194 + <type>MYSQL</type>
  195 + <access>Native</access>
  196 + <database>xlab_youle</database>
  197 + <port>45687</port>
  198 + <username>xlab-youle</username>
  199 + <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>
  200 + <servername/>
  201 + <data_tablespace/>
  202 + <index_tablespace/>
  203 + <attributes>
  204 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  205 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  206 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  207 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  208 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  209 + <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>
  210 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  211 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  212 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  213 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  214 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  215 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  216 + </attributes>
  217 + </connection>
  218 + <connection>
  219 + <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>
  220 + <server>localhost</server>
  221 + <type>MYSQL</type>
  222 + <access>Native</access>
  223 + <database>xlab_youle</database>
  224 + <port>3306</port>
  225 + <username>root</username>
  226 + <password>Encrypted </password>
  227 + <servername/>
  228 + <data_tablespace/>
  229 + <index_tablespace/>
  230 + <attributes>
  231 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  232 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  233 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  234 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  235 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  236 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  237 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  238 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  239 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  240 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  241 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  242 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  243 + </attributes>
  244 + </connection>
  245 + <connection>
  246 + <name>xlab_youle</name>
  247 + <server/>
  248 + <type>MYSQL</type>
  249 + <access>JNDI</access>
  250 + <database>xlab_youle</database>
  251 + <port>1521</port>
  252 + <username/>
  253 + <password>Encrypted </password>
  254 + <servername/>
  255 + <data_tablespace/>
  256 + <index_tablespace/>
  257 + <attributes>
  258 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  259 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  260 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  261 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  262 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  263 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  264 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  265 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  266 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  267 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  268 + </attributes>
  269 + </connection>
  270 + <order>
  271 + <hop> <from>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ecinfo</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>
  272 + <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop>
  273 + <hop> <from>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</from><to>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</to><enabled>Y</enabled> </hop>
  274 + <hop> <from>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</from><to>&#x7ebf;&#x8def;id&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>
  275 + <hop> <from>&#x7ebf;&#x8def;id&#x67e5;&#x8be2;</from><to>&#x8fc7;&#x6ee4;&#x7ebf;&#x8def;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>
  276 + <hop> <from>&#x9a7e;&#x9a76;&#x5458;id&#x67e5;&#x627e;</from><to>&#x8fc7;&#x6ee4;&#x9a7e;&#x9a76;&#x5458;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>
  277 + <hop> <from>&#x8fc7;&#x6ee4;&#x9a7e;&#x9a76;&#x5458;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</from><to>&#x552e;&#x7968;&#x5458;id&#x67e5;&#x627e;</to><enabled>Y</enabled> </hop>
  278 + <hop> <from>&#x552e;&#x7968;&#x5458;id&#x67e5;&#x627e;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ecinfo</to><enabled>Y</enabled> </hop>
  279 + <hop> <from>&#x8fc7;&#x6ee4;&#x7ebf;&#x8def;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</from><to>&#x5de5;&#x53f7;&#x6570;&#x636e;&#x5904;&#x7406;</to><enabled>Y</enabled> </hop>
  280 + <hop> <from>&#x5de5;&#x53f7;&#x6570;&#x636e;&#x5904;&#x7406;</from><to>&#x9a7e;&#x9a76;&#x5458;id&#x67e5;&#x627e;</to><enabled>Y</enabled> </hop>
  281 + </order>
  282 + <step>
  283 + <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>
  284 + <type>ExcelInput</type>
  285 + <description/>
  286 + <distribute>Y</distribute>
  287 + <custom_distribution/>
  288 + <copies>1</copies>
  289 + <partitioning>
  290 + <method>none</method>
  291 + <schema_name/>
  292 + </partitioning>
  293 + <header>Y</header>
  294 + <noempty>Y</noempty>
  295 + <stoponempty>N</stoponempty>
  296 + <filefield/>
  297 + <sheetfield/>
  298 + <sheetrownumfield/>
  299 + <rownumfield/>
  300 + <sheetfield/>
  301 + <filefield/>
  302 + <limit>0</limit>
  303 + <encoding/>
  304 + <add_to_result_filenames>Y</add_to_result_filenames>
  305 + <accept_filenames>Y</accept_filenames>
  306 + <accept_field>filepath_</accept_field>
  307 + <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>
  308 + <file>
  309 + <name/>
  310 + <filemask/>
  311 + <exclude_filemask/>
  312 + <file_required>N</file_required>
  313 + <include_subfolders>N</include_subfolders>
  314 + </file>
  315 + <fields>
  316 + <field>
  317 + <name>&#x7ebf;&#x8def;</name>
  318 + <type>String</type>
  319 + <length>-1</length>
  320 + <precision>-1</precision>
  321 + <trim_type>none</trim_type>
  322 + <repeat>N</repeat>
  323 + <format/>
  324 + <currency/>
  325 + <decimal/>
  326 + <group/>
  327 + </field>
  328 + <field>
  329 + <name>&#x642d;&#x73ed;&#x7f16;&#x7801;</name>
  330 + <type>String</type>
  331 + <length>-1</length>
  332 + <precision>-1</precision>
  333 + <trim_type>none</trim_type>
  334 + <repeat>N</repeat>
  335 + <format>&#x23;</format>
  336 + <currency/>
  337 + <decimal/>
  338 + <group/>
  339 + </field>
  340 + <field>
  341 + <name>&#x9a7e;&#x9a76;&#x5458;&#x5de5;&#x53f7;</name>
  342 + <type>String</type>
  343 + <length>-1</length>
  344 + <precision>-1</precision>
  345 + <trim_type>none</trim_type>
  346 + <repeat>N</repeat>
  347 + <format>&#x23;</format>
  348 + <currency/>
  349 + <decimal/>
  350 + <group/>
  351 + </field>
  352 + <field>
  353 + <name>&#x9a7e;&#x9a76;&#x5458;</name>
  354 + <type>String</type>
  355 + <length>-1</length>
  356 + <precision>-1</precision>
  357 + <trim_type>none</trim_type>
  358 + <repeat>N</repeat>
  359 + <format/>
  360 + <currency/>
  361 + <decimal/>
  362 + <group/>
  363 + </field>
  364 + <field>
  365 + <name>&#x552e;&#x7968;&#x5458;&#x5de5;&#x53f7;</name>
  366 + <type>String</type>
  367 + <length>-1</length>
  368 + <precision>-1</precision>
  369 + <trim_type>none</trim_type>
  370 + <repeat>N</repeat>
  371 + <format>&#x23;</format>
  372 + <currency/>
  373 + <decimal/>
  374 + <group/>
  375 + </field>
  376 + <field>
  377 + <name>&#x552e;&#x7968;&#x5458;</name>
  378 + <type>String</type>
  379 + <length>-1</length>
  380 + <precision>-1</precision>
  381 + <trim_type>none</trim_type>
  382 + <repeat>N</repeat>
  383 + <format/>
  384 + <currency/>
  385 + <decimal/>
  386 + <group/>
  387 + </field>
  388 + </fields>
  389 + <sheets>
  390 + <sheet>
  391 + <name>&#x5de5;&#x4f5c;&#x8868;1</name>
  392 + <startrow>0</startrow>
  393 + <startcol>0</startcol>
  394 + </sheet>
  395 + </sheets>
  396 + <strict_types>N</strict_types>
  397 + <error_ignored>N</error_ignored>
  398 + <error_line_skipped>N</error_line_skipped>
  399 + <bad_line_files_destination_directory/>
  400 + <bad_line_files_extension>warning</bad_line_files_extension>
  401 + <error_line_files_destination_directory/>
  402 + <error_line_files_extension>error</error_line_files_extension>
  403 + <line_number_files_destination_directory/>
  404 + <line_number_files_extension>line</line_number_files_extension>
  405 + <shortFileFieldName/>
  406 + <pathFieldName/>
  407 + <hiddenFieldName/>
  408 + <lastModificationTimeFieldName/>
  409 + <uriNameFieldName/>
  410 + <rootUriNameFieldName/>
  411 + <extensionFieldName/>
  412 + <sizeFieldName/>
  413 + <spreadsheet_type>JXL</spreadsheet_type>
  414 + <cluster_schema/>
  415 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  416 + <xloc>93</xloc>
  417 + <yloc>51</yloc>
  418 + <draw>Y</draw>
  419 + </GUI>
  420 + </step>
  421 +
  422 + <step>
  423 + <name>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</name>
  424 + <type>Constant</type>
  425 + <description/>
  426 + <distribute>Y</distribute>
  427 + <custom_distribution/>
  428 + <copies>1</copies>
  429 + <partitioning>
  430 + <method>none</method>
  431 + <schema_name/>
  432 + </partitioning>
  433 + <fields>
  434 + <field>
  435 + <name>isCancel</name>
  436 + <type>Integer</type>
  437 + <format/>
  438 + <currency/>
  439 + <decimal/>
  440 + <group/>
  441 + <nullif>0</nullif>
  442 + <length>-1</length>
  443 + <precision>-1</precision>
  444 + <set_empty_string>N</set_empty_string>
  445 + </field>
  446 + </fields>
  447 + <cluster_schema/>
  448 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  449 + <xloc>225</xloc>
  450 + <yloc>53</yloc>
  451 + <draw>Y</draw>
  452 + </GUI>
  453 + </step>
  454 +
  455 + <step>
  456 + <name>&#x552e;&#x7968;&#x5458;id&#x67e5;&#x627e;</name>
  457 + <type>DBJoin</type>
  458 + <description/>
  459 + <distribute>Y</distribute>
  460 + <custom_distribution/>
  461 + <copies>1</copies>
  462 + <partitioning>
  463 + <method>none</method>
  464 + <schema_name/>
  465 + </partitioning>
  466 + <connection>bus_control_variable</connection>
  467 + <rowlimit>1</rowlimit>
  468 + <sql>select id as sid from bsth_c_personnel&#xa;where job_code like &#x3f; and personnel_name &#x3d; &#x3f;</sql>
  469 + <outer_join>Y</outer_join>
  470 + <replace_vars>N</replace_vars>
  471 + <parameter>
  472 + <field>
  473 + <name>sgh_temp</name>
  474 + <type>String</type>
  475 + </field>
  476 + <field>
  477 + <name>&#x552e;&#x7968;&#x5458;</name>
  478 + <type>String</type>
  479 + </field>
  480 + </parameter>
  481 + <cluster_schema/>
  482 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  483 + <xloc>830</xloc>
  484 + <yloc>45</yloc>
  485 + <draw>Y</draw>
  486 + </GUI>
  487 + </step>
  488 +
  489 + <step>
  490 + <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ecinfo</name>
  491 + <type>InsertUpdate</type>
  492 + <description/>
  493 + <distribute>Y</distribute>
  494 + <custom_distribution/>
  495 + <copies>1</copies>
  496 + <partitioning>
  497 + <method>none</method>
  498 + <schema_name/>
  499 + </partitioning>
  500 + <connection>bus_control_variable</connection>
  501 + <commit>100</commit>
  502 + <update_bypassed>N</update_bypassed>
  503 + <lookup>
  504 + <schema/>
  505 + <table>bsth_c_s_ecinfo</table>
  506 + <key>
  507 + <name>xlid</name>
  508 + <field>xl</field>
  509 + <condition>&#x3d;</condition>
  510 + <name2/>
  511 + </key>
  512 + <key>
  513 + <name>&#x642d;&#x73ed;&#x7f16;&#x7801;</name>
  514 + <field>dbbm</field>
  515 + <condition>&#x3d;</condition>
  516 + <name2/>
  517 + </key>
  518 + <key>
  519 + <name>isCancel</name>
  520 + <field>is_cancel</field>
  521 + <condition>&#x3d;</condition>
  522 + <name2/>
  523 + </key>
  524 + <value>
  525 + <name>xl</name>
  526 + <rename>xlid</rename>
  527 + <update>N</update>
  528 + </value>
  529 + <value>
  530 + <name>dbbm</name>
  531 + <rename>&#x642d;&#x73ed;&#x7f16;&#x7801;</rename>
  532 + <update>N</update>
  533 + </value>
  534 + <value>
  535 + <name>jsy</name>
  536 + <rename>jid</rename>
  537 + <update>N</update>
  538 + </value>
  539 + <value>
  540 + <name>spy</name>
  541 + <rename>sid</rename>
  542 + <update>N</update>
  543 + </value>
  544 + <value>
  545 + <name>is_cancel</name>
  546 + <rename>isCancel</rename>
  547 + <update>N</update>
  548 + </value>
  549 + </lookup>
  550 + <cluster_schema/>
  551 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  552 + <xloc>833</xloc>
  553 + <yloc>198</yloc>
  554 + <draw>Y</draw>
  555 + </GUI>
  556 + </step>
  557 +
  558 + <step>
  559 + <name>&#x7ebf;&#x8def;id&#x67e5;&#x8be2;</name>
  560 + <type>DBLookup</type>
  561 + <description/>
  562 + <distribute>Y</distribute>
  563 + <custom_distribution/>
  564 + <copies>1</copies>
  565 + <partitioning>
  566 + <method>none</method>
  567 + <schema_name/>
  568 + </partitioning>
  569 + <connection>bus_control_variable</connection>
  570 + <cache>Y</cache>
  571 + <cache_load_all>Y</cache_load_all>
  572 + <cache_size>0</cache_size>
  573 + <lookup>
  574 + <schema/>
  575 + <table>bsth_c_line</table>
  576 + <orderby/>
  577 + <fail_on_multiple>N</fail_on_multiple>
  578 + <eat_row_on_failure>N</eat_row_on_failure>
  579 + <key>
  580 + <name>&#x7ebf;&#x8def;</name>
  581 + <field>name</field>
  582 + <condition>&#x3d;</condition>
  583 + <name2/>
  584 + </key>
  585 + <key>
  586 + <name>isCancel</name>
  587 + <field>destroy</field>
  588 + <condition>&#x3d;</condition>
  589 + <name2/>
  590 + </key>
  591 + <value>
  592 + <name>id</name>
  593 + <rename>xlid</rename>
  594 + <default/>
  595 + <type>Integer</type>
  596 + </value>
  597 + </lookup>
  598 + <cluster_schema/>
  599 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  600 + <xloc>397</xloc>
  601 + <yloc>144</yloc>
  602 + <draw>Y</draw>
  603 + </GUI>
  604 + </step>
  605 +
  606 + <step>
  607 + <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>
  608 + <type>GetVariable</type>
  609 + <description/>
  610 + <distribute>Y</distribute>
  611 + <custom_distribution/>
  612 + <copies>1</copies>
  613 + <partitioning>
  614 + <method>none</method>
  615 + <schema_name/>
  616 + </partitioning>
  617 + <fields>
  618 + <field>
  619 + <name>filepath_</name>
  620 + <variable>&#x24;&#x7b;filepath&#x7d;</variable>
  621 + <type>String</type>
  622 + <format/>
  623 + <currency/>
  624 + <decimal/>
  625 + <group/>
  626 + <length>-1</length>
  627 + <precision>-1</precision>
  628 + <trim_type>none</trim_type>
  629 + </field>
  630 + <field>
  631 + <name>erroroutputdir_</name>
  632 + <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>
  633 + <type>String</type>
  634 + <format/>
  635 + <currency/>
  636 + <decimal/>
  637 + <group/>
  638 + <length>-1</length>
  639 + <precision>-1</precision>
  640 + <trim_type>none</trim_type>
  641 + </field>
  642 + </fields>
  643 + <cluster_schema/>
  644 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  645 + <xloc>94</xloc>
  646 + <yloc>178</yloc>
  647 + <draw>Y</draw>
  648 + </GUI>
  649 + </step>
  650 +
  651 + <step>
  652 + <name>&#x8fc7;&#x6ee4;&#x7ebf;&#x8def;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</name>
  653 + <type>FilterRows</type>
  654 + <description/>
  655 + <distribute>Y</distribute>
  656 + <custom_distribution/>
  657 + <copies>1</copies>
  658 + <partitioning>
  659 + <method>none</method>
  660 + <schema_name/>
  661 + </partitioning>
  662 +<send_true_to/>
  663 +<send_false_to/>
  664 + <compare>
  665 +<condition>
  666 + <negated>N</negated>
  667 + <leftvalue>xlid</leftvalue>
  668 + <function>IS NOT NULL</function>
  669 + <rightvalue/>
  670 + </condition>
  671 + </compare>
  672 + <cluster_schema/>
  673 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  674 + <xloc>395</xloc>
  675 + <yloc>49</yloc>
  676 + <draw>Y</draw>
  677 + </GUI>
  678 + </step>
  679 +
  680 + <step>
  681 + <name>&#x8fc7;&#x6ee4;&#x9a7e;&#x9a76;&#x5458;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</name>
  682 + <type>FilterRows</type>
  683 + <description/>
  684 + <distribute>Y</distribute>
  685 + <custom_distribution/>
  686 + <copies>1</copies>
  687 + <partitioning>
  688 + <method>none</method>
  689 + <schema_name/>
  690 + </partitioning>
  691 +<send_true_to>&#x552e;&#x7968;&#x5458;id&#x67e5;&#x627e;</send_true_to>
  692 +<send_false_to/>
  693 + <compare>
  694 +<condition>
  695 + <negated>N</negated>
  696 + <leftvalue>jid</leftvalue>
  697 + <function>IS NOT NULL</function>
  698 + <rightvalue/>
  699 + </condition>
  700 + </compare>
  701 + <cluster_schema/>
  702 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  703 + <xloc>695</xloc>
  704 + <yloc>45</yloc>
  705 + <draw>Y</draw>
  706 + </GUI>
  707 + </step>
  708 +
  709 + <step>
  710 + <name>&#x9519;&#x8bef;&#x8f93;&#x51fa;</name>
  711 + <type>ExcelOutput</type>
  712 + <description/>
  713 + <distribute>Y</distribute>
  714 + <custom_distribution/>
  715 + <copies>1</copies>
  716 + <partitioning>
  717 + <method>none</method>
  718 + <schema_name/>
  719 + </partitioning>
  720 + <header>Y</header>
  721 + <footer>N</footer>
  722 + <encoding>UTF-8</encoding>
  723 + <append>N</append>
  724 + <add_to_result_filenames>Y</add_to_result_filenames>
  725 + <file>
  726 + <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x4eba;&#x5458;&#x914d;&#x7f6e;_&#x9519;&#x8bef;</name>
  727 + <extention>xls</extention>
  728 + <do_not_open_newfile_init>N</do_not_open_newfile_init>
  729 + <create_parent_folder>N</create_parent_folder>
  730 + <split>N</split>
  731 + <add_date>N</add_date>
  732 + <add_time>N</add_time>
  733 + <SpecifyFormat>N</SpecifyFormat>
  734 + <date_time_format/>
  735 + <sheetname>Sheet1</sheetname>
  736 + <autosizecolums>N</autosizecolums>
  737 + <nullisblank>N</nullisblank>
  738 + <protect_sheet>N</protect_sheet>
  739 + <password>Encrypted </password>
  740 + <splitevery>0</splitevery>
  741 + <usetempfiles>N</usetempfiles>
  742 + <tempdirectory/>
  743 + </file>
  744 + <template>
  745 + <enabled>N</enabled>
  746 + <append>N</append>
  747 + <filename>template.xls</filename>
  748 + </template>
  749 + <fields>
  750 + <field>
  751 + <name>&#x7ebf;&#x8def;</name>
  752 + <type>String</type>
  753 + <format/>
  754 + </field>
  755 + <field>
  756 + <name>&#x642d;&#x73ed;&#x7f16;&#x7801;</name>
  757 + <type>String</type>
  758 + <format/>
  759 + </field>
  760 + <field>
  761 + <name>&#x9a7e;&#x9a76;&#x5458;&#x5de5;&#x53f7;</name>
  762 + <type>String</type>
  763 + <format/>
  764 + </field>
  765 + <field>
  766 + <name>&#x9a7e;&#x9a76;&#x5458;</name>
  767 + <type>String</type>
  768 + <format/>
  769 + </field>
  770 + <field>
  771 + <name>&#x552e;&#x7968;&#x5458;&#x5de5;&#x53f7;</name>
  772 + <type>String</type>
  773 + <format/>
  774 + </field>
  775 + <field>
  776 + <name>&#x552e;&#x7968;&#x5458;</name>
  777 + <type>String</type>
  778 + <format/>
  779 + </field>
  780 + <field>
  781 + <name>isCancel</name>
  782 + <type>Integer</type>
  783 + <format/>
  784 + </field>
  785 + <field>
  786 + <name>xlid</name>
  787 + <type>Integer</type>
  788 + <format/>
  789 + </field>
  790 + <field>
  791 + <name>jid</name>
  792 + <type>Integer</type>
  793 + <format/>
  794 + </field>
  795 + <field>
  796 + <name>sid</name>
  797 + <type>Integer</type>
  798 + <format/>
  799 + </field>
  800 + <field>
  801 + <name>error_count</name>
  802 + <type>Integer</type>
  803 + <format/>
  804 + </field>
  805 + <field>
  806 + <name>error_desc</name>
  807 + <type>String</type>
  808 + <format/>
  809 + </field>
  810 + <field>
  811 + <name>error_column1</name>
  812 + <type>String</type>
  813 + <format/>
  814 + </field>
  815 + <field>
  816 + <name>error_column2</name>
  817 + <type>String</type>
  818 + <format/>
  819 + </field>
  820 + </fields>
  821 + <custom>
  822 + <header_font_name>arial</header_font_name>
  823 + <header_font_size>10</header_font_size>
  824 + <header_font_bold>N</header_font_bold>
  825 + <header_font_italic>N</header_font_italic>
  826 + <header_font_underline>no</header_font_underline>
  827 + <header_font_orientation>horizontal</header_font_orientation>
  828 + <header_font_color>black</header_font_color>
  829 + <header_background_color>none</header_background_color>
  830 + <header_row_height>255</header_row_height>
  831 + <header_alignment>left</header_alignment>
  832 + <header_image/>
  833 + <row_font_name>arial</row_font_name>
  834 + <row_font_size>10</row_font_size>
  835 + <row_font_color>black</row_font_color>
  836 + <row_background_color>none</row_background_color>
  837 + </custom>
  838 + <cluster_schema/>
  839 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  840 + <xloc>833</xloc>
  841 + <yloc>321</yloc>
  842 + <draw>Y</draw>
  843 + </GUI>
  844 + </step>
  845 +
  846 + <step>
  847 + <name>&#x9a7e;&#x9a76;&#x5458;id&#x67e5;&#x627e;</name>
  848 + <type>DBJoin</type>
  849 + <description/>
  850 + <distribute>Y</distribute>
  851 + <custom_distribution/>
  852 + <copies>1</copies>
  853 + <partitioning>
  854 + <method>none</method>
  855 + <schema_name/>
  856 + </partitioning>
  857 + <connection>bus_control_variable</connection>
  858 + <rowlimit>1</rowlimit>
  859 + <sql>select id as jid from bsth_c_personnel&#xa;where job_code like &#x3f; and personnel_name &#x3d; &#x3f;</sql>
  860 + <outer_join>Y</outer_join>
  861 + <replace_vars>N</replace_vars>
  862 + <parameter>
  863 + <field>
  864 + <name>jgh_temp</name>
  865 + <type>String</type>
  866 + </field>
  867 + <field>
  868 + <name>&#x9a7e;&#x9a76;&#x5458;</name>
  869 + <type>String</type>
  870 + </field>
  871 + </parameter>
  872 + <cluster_schema/>
  873 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  874 + <xloc>694</xloc>
  875 + <yloc>141</yloc>
  876 + <draw>Y</draw>
  877 + </GUI>
  878 + </step>
  879 +
  880 + <step>
  881 + <name>&#x5de5;&#x53f7;&#x6570;&#x636e;&#x5904;&#x7406;</name>
  882 + <type>ScriptValueMod</type>
  883 + <description/>
  884 + <distribute>Y</distribute>
  885 + <custom_distribution/>
  886 + <copies>1</copies>
  887 + <partitioning>
  888 + <method>none</method>
  889 + <schema_name/>
  890 + </partitioning>
  891 + <compatible>N</compatible>
  892 + <optimizationLevel>9</optimizationLevel>
  893 + <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
  894 + <jsScript_name>Script 1</jsScript_name>
  895 + <jsScript_script>&#x2f;&#x2f; &#x56e0;&#x4e3a;&#x6570;&#x636e;&#x5e93;&#x4e2d;&#x7684;&#x6570;&#x636e;&#x5de5;&#x53f7;&#x53ef;&#x80fd;&#x5e26;suffix&#xff0c;&#x5982;55-12345678&#xa;&#x2f;&#x2f; &#x6240;&#x4ee5;&#x4e4b;&#x540e;&#x7684;&#x5339;&#x914d;&#x4f7f;&#x7528;like&#xff0c;&#x5219;&#x5143;&#x6570;&#x636e;&#x9700;&#x8981;&#x52a0;&#x4e0a;&#x25; &#x25;&#x7b26;&#x53f7;&#xa;&#xa;var jgh_temp&#x3b;&#xa;var sgh_temp&#x3b;&#xa;&#xa;if &#x28;&#x9a7e;&#x9a76;&#x5458;&#x5de5;&#x53f7;&#x29; &#x7b;&#xa; jgh_temp &#x3d; &#x27;&#x25;&#x27; &#x2b; &#x9a7e;&#x9a76;&#x5458;&#x5de5;&#x53f7; &#x2b; &#x27;&#x25;&#x27;&#x3b;&#xa;&#x7d; else &#x7b;&#xa; jgh_temp &#x3d; &#x9a7e;&#x9a76;&#x5458;&#x5de5;&#x53f7;&#x3b;&#xa;&#x7d;&#xa;&#xa;if &#x28;&#x552e;&#x7968;&#x5458;&#x5de5;&#x53f7;&#x29; &#x7b;&#xa; sgh_temp &#x3d; &#x27;&#x25;&#x27; &#x2b; &#x552e;&#x7968;&#x5458;&#x5de5;&#x53f7; &#x2b; &#x27;&#x25;&#x27;&#x3b;&#xa;&#x7d; else &#x7b;&#xa; sgh_temp &#x3d; &#x552e;&#x7968;&#x5458;&#x5de5;&#x53f7;&#x3b;&#xa;&#x7d;</jsScript_script>
  896 + </jsScript> </jsScripts> <fields> <field> <name>jgh_temp</name>
  897 + <rename>jgh_temp</rename>
  898 + <type>String</type>
  899 + <length>-1</length>
  900 + <precision>-1</precision>
  901 + <replace>N</replace>
  902 + </field> <field> <name>sgh_temp</name>
  903 + <rename>sgh_temp</rename>
  904 + <type>String</type>
  905 + <length>-1</length>
  906 + <precision>-1</precision>
  907 + <replace>N</replace>
  908 + </field> </fields> <cluster_schema/>
  909 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  910 + <xloc>548</xloc>
  911 + <yloc>47</yloc>
  912 + <draw>Y</draw>
  913 + </GUI>
  914 + </step>
  915 +
  916 + <step_error_handling>
  917 + <error>
  918 + <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_s_ecinfo</source_step>
  919 + <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa;</target_step>
  920 + <is_enabled>Y</is_enabled>
  921 + <nr_valuename>error_count</nr_valuename>
  922 + <descriptions_valuename>error_desc</descriptions_valuename>
  923 + <fields_valuename>error_column1</fields_valuename>
  924 + <codes_valuename>error_column2</codes_valuename>
  925 + <max_errors/>
  926 + <max_pct_errors/>
  927 + <min_pct_rows/>
  928 + </error>
  929 + </step_error_handling>
  930 + <slave-step-copy-partition-distribution>
  931 +</slave-step-copy-partition-distribution>
  932 + <slave_transformation>N</slave_transformation>
  933 +
  934 +</transformation>