Commit 7b8a7b79a31516e857dd2749ba7b33bf69b50a9f

Authored by 潘钊
2 parents 4af09336 6d35011e

Merge branch 'minhang' into pudong

# Conflicts:
#	src/main/resources/application-dev.properties
Showing 46 changed files with 1293 additions and 1377 deletions
src/main/java/com/bsth/XDApplication.java
1   -package com.bsth;
2   -
3   -import com.bsth.data.BasicData;
4   -import com.bsth.data.ThreadMonotor;
5   -import com.bsth.data.car_out_info.UpdateDBThread;
6   -import com.bsth.data.directive.DirectivesPstThread;
7   -import com.bsth.data.gpsdata.thread.GpsDataLoaderThread;
8   -import com.bsth.data.gpsdata.thread.OfflineMonitorThread;
9   -import com.bsth.data.schedule.late_adjust.ScheduleLateThread;
10   -import com.bsth.data.schedule.thread.CalcOilThread;
11   -import com.bsth.data.schedule.thread.SchedulePstThread;
12   -import com.bsth.data.schedule.thread.ScheduleRefreshThread;
13   -import com.bsth.data.schedule.thread.SubmitToTrafficManage;
14   -import com.bsth.util.DateUtils;
15   -import com.bsth.util.Tools;
16   -import org.slf4j.Logger;
17   -import org.slf4j.LoggerFactory;
18   -import org.springframework.beans.factory.annotation.Autowired;
19   -import org.springframework.boot.CommandLineRunner;
20   -import org.springframework.stereotype.Component;
21   -
22   -import java.util.concurrent.ScheduledExecutorService;
23   -import java.util.concurrent.TimeUnit;
24   -
25   -/**
26   - * 线调大部分服务都在这里启动
27   - * Created by panzhao on 2017/5/14.
28   - */
29   -@Component
30   -public class XDApplication implements CommandLineRunner {
31   -
32   - Logger log = LoggerFactory.getLogger(this.getClass());
33   -
34   - @Autowired
35   - BasicData.BasicDataLoader basicDataLoader;
36   - @Autowired
37   - UpdateDBThread fcxxUpdateThread;
38   - @Autowired
39   - GpsDataLoaderThread gpsDataLoader;
40   - @Autowired
41   - OfflineMonitorThread offlineMonitorThread;
42   - @Autowired
43   - ScheduleRefreshThread scheduleRefreshThread;
44   - @Autowired
45   - SchedulePstThread schedulePstThread;
46   - @Autowired
47   - ScheduleLateThread scheduleLateThread;
48   - @Autowired
49   - SubmitToTrafficManage submitToTrafficManage;
50   - @Autowired
51   - CalcOilThread calcOilThread;
52   - @Autowired
53   - DirectivesPstThread directivesPstThread;
54   - @Autowired
55   - ThreadMonotor threadMonotor;
56   -
57   - private static long timeDiff;
58   -
59   - static {
60   - timeDiff = (DateUtils.getTimestamp() + 1000 * 60 * 140) - System.currentTimeMillis();
61   - if (timeDiff < 0)
62   - timeDiff += (1000 * 60 * 60 * 24);
63   - }
64   -
65   - @Override
66   - public void run(String... strings) throws Exception {
67   - try {
68   - Tools tools = new Tools("application.properties");
69   - String environment = tools.getValue("spring.profiles.active");
70   - //预先加载基础的对照数据
71   - basicDataLoader.loadAllData();
72   - switch (environment){
73   - case "dev":
74   - devInit();
75   - break;
76   - case "prod":
77   - prodInit();
78   - break;
79   - }
80   - }catch (Exception e){
81   - log.error("线调后台启动出现异常!!", e);
82   - System.exit(1);
83   - }
84   - }
85   -
86   - public void devInit(){
87   - log.info("devInit...");
88   - ScheduledExecutorService sexec = Application.mainServices;
89   - //抓取GPS数据
90   - gpsDataLoader.setFlag(-1);
91   - sexec.scheduleWithFixedDelay(gpsDataLoader, 30, 2, TimeUnit.SECONDS);
92   - //实际排班更新线程
93   - sexec.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS);
94   - //实际排班延迟入库线程
95   - sexec.scheduleWithFixedDelay(schedulePstThread, 60, 30, TimeUnit.SECONDS);
96   -
97   - //线程监听(防止重要的线程阻塞、异常结束。以及部分主备切换工作)
98   - sexec.scheduleWithFixedDelay(threadMonotor, 240, 60, TimeUnit.SECONDS);
99   - }
100   -
101   - public void prodInit(){
102   - log.info("prodInit...");
103   - ScheduledExecutorService sexec = Application.mainServices;
104   - //发车信息
105   - sexec.scheduleWithFixedDelay(fcxxUpdateThread, 60, 40, TimeUnit.SECONDS);
106   - //抓取GPS数据
107   - sexec.scheduleWithFixedDelay(gpsDataLoader, 30, 2, TimeUnit.SECONDS);
108   - //GPS设备掉离线
109   - sexec.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS);
110   - //实际排班更新线程
111   - sexec.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS);
112   - //实际排班延迟入库线程
113   - sexec.scheduleWithFixedDelay(schedulePstThread, 60, 30, TimeUnit.SECONDS);
114   - //检查班次误点
115   - sexec.scheduleWithFixedDelay(scheduleLateThread, 60, 30, TimeUnit.SECONDS);
116   - //调度指令延迟入库
117   - sexec.scheduleWithFixedDelay(directivesPstThread, 180, 180, TimeUnit.SECONDS);
118   -
119   - //运管处静态数据提交
120   - log.info(timeDiff / 1000 / 60 + "分钟之后提交到运管处");
121   - sexec.scheduleAtFixedRate(submitToTrafficManage, timeDiff / 1000, 60 * 60 * 24, TimeUnit.SECONDS);
122   - //计算油、公里加注
123   - sexec.scheduleAtFixedRate(calcOilThread, timeDiff / 1000, 60 * 60 * 24, TimeUnit.SECONDS);
124   -
125   - //线程监听(防止重要的线程阻塞、异常结束。以及部分主备切换工作)
126   - sexec.scheduleWithFixedDelay(threadMonotor, 240, 60, TimeUnit.SECONDS);
127   - }
128   -}
  1 +package com.bsth;
  2 +
  3 +import com.bsth.data.BasicData;
  4 +import com.bsth.data.ThreadMonotor;
  5 +import com.bsth.data.car_out_info.UpdateDBThread;
  6 +import com.bsth.data.directive.DirectivesPstThread;
  7 +import com.bsth.data.gpsdata.thread.GpsDataLoaderThread;
  8 +import com.bsth.data.gpsdata.thread.OfflineMonitorThread;
  9 +import com.bsth.data.schedule.late_adjust.ScheduleLateThread;
  10 +import com.bsth.data.schedule.thread.CalcOilThread;
  11 +import com.bsth.data.schedule.thread.SchedulePstThread;
  12 +import com.bsth.data.schedule.thread.ScheduleRefreshThread;
  13 +import com.bsth.data.schedule.thread.SubmitToTrafficManage;
  14 +import com.bsth.util.DateUtils;
  15 +import com.bsth.util.Tools;
  16 +import org.slf4j.Logger;
  17 +import org.slf4j.LoggerFactory;
  18 +import org.springframework.beans.factory.annotation.Autowired;
  19 +import org.springframework.boot.CommandLineRunner;
  20 +import org.springframework.stereotype.Component;
  21 +
  22 +import java.util.concurrent.ScheduledExecutorService;
  23 +import java.util.concurrent.TimeUnit;
  24 +
  25 +/**
  26 + * 线调大部分服务都在这里启动
  27 + * Created by panzhao on 2017/5/14.
  28 + */
  29 +@Component
  30 +public class XDApplication implements CommandLineRunner {
  31 +
  32 + Logger log = LoggerFactory.getLogger(this.getClass());
  33 +
  34 + @Autowired
  35 + BasicData.BasicDataLoader basicDataLoader;
  36 + @Autowired
  37 + UpdateDBThread fcxxUpdateThread;
  38 + @Autowired
  39 + GpsDataLoaderThread gpsDataLoader;
  40 + @Autowired
  41 + OfflineMonitorThread offlineMonitorThread;
  42 + @Autowired
  43 + ScheduleRefreshThread scheduleRefreshThread;
  44 + @Autowired
  45 + SchedulePstThread schedulePstThread;
  46 + @Autowired
  47 + ScheduleLateThread scheduleLateThread;
  48 + @Autowired
  49 + SubmitToTrafficManage submitToTrafficManage;
  50 + @Autowired
  51 + CalcOilThread calcOilThread;
  52 + @Autowired
  53 + DirectivesPstThread directivesPstThread;
  54 + @Autowired
  55 + ThreadMonotor threadMonotor;
  56 +
  57 + private static long timeDiff;
  58 +
  59 + static {
  60 + timeDiff = (DateUtils.getTimestamp() + 1000 * 60 * 140) - System.currentTimeMillis();
  61 + if (timeDiff < 0)
  62 + timeDiff += (1000 * 60 * 60 * 24);
  63 + }
  64 +
  65 + @Override
  66 + public void run(String... strings) throws Exception {
  67 + try {
  68 + Tools tools = new Tools("application.properties");
  69 + String environment = tools.getValue("spring.profiles.active");
  70 + //预先加载基础的对照数据
  71 + basicDataLoader.loadAllData();
  72 + switch (environment){
  73 + case "dev":
  74 + devInit();
  75 + break;
  76 + case "prod":
  77 + prodInit();
  78 + break;
  79 + }
  80 + }catch (Exception e){
  81 + log.error("线调后台启动出现异常!!", e);
  82 + System.exit(1);
  83 + }
  84 + }
  85 +
  86 + public void devInit(){
  87 + log.info("devInit...");
  88 + ScheduledExecutorService sexec = Application.mainServices;
  89 + //抓取GPS数据
  90 + gpsDataLoader.setFlag(-1);
  91 + //sexec.scheduleWithFixedDelay(gpsDataLoader, 30, 2, TimeUnit.SECONDS);
  92 + //实际排班更新线程
  93 + //sexec.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS);
  94 + //实际排班延迟入库线程
  95 + //sexec.scheduleWithFixedDelay(schedulePstThread, 60, 30, TimeUnit.SECONDS);
  96 +
  97 + //线程监听(防止重要的线程阻塞、异常结束。以及部分主备切换工作)
  98 + //sexec.scheduleWithFixedDelay(threadMonotor, 240, 60, TimeUnit.SECONDS);
  99 + }
  100 +
  101 + public void prodInit(){
  102 + log.info("prodInit...");
  103 + ScheduledExecutorService sexec = Application.mainServices;
  104 + //发车信息
  105 + sexec.scheduleWithFixedDelay(fcxxUpdateThread, 60, 40, TimeUnit.SECONDS);
  106 + //抓取GPS数据
  107 + sexec.scheduleWithFixedDelay(gpsDataLoader, 30, 2, TimeUnit.SECONDS);
  108 + //GPS设备掉离线
  109 + sexec.scheduleWithFixedDelay(offlineMonitorThread, 120, 60, TimeUnit.SECONDS);
  110 + //实际排班更新线程
  111 + sexec.scheduleWithFixedDelay(scheduleRefreshThread, 15, 240, TimeUnit.SECONDS);
  112 + //实际排班延迟入库线程
  113 + sexec.scheduleWithFixedDelay(schedulePstThread, 60, 30, TimeUnit.SECONDS);
  114 + //检查班次误点
  115 + sexec.scheduleWithFixedDelay(scheduleLateThread, 60, 30, TimeUnit.SECONDS);
  116 + //调度指令延迟入库
  117 + sexec.scheduleWithFixedDelay(directivesPstThread, 180, 180, TimeUnit.SECONDS);
  118 +
  119 + //运管处静态数据提交
  120 + log.info(timeDiff / 1000 / 60 + "分钟之后提交到运管处");
  121 + sexec.scheduleAtFixedRate(submitToTrafficManage, timeDiff / 1000, 60 * 60 * 24, TimeUnit.SECONDS);
  122 + //计算油、公里加注
  123 + sexec.scheduleAtFixedRate(calcOilThread, timeDiff / 1000, 60 * 60 * 24, TimeUnit.SECONDS);
  124 +
  125 + //线程监听(防止重要的线程阻塞、异常结束。以及部分主备切换工作)
  126 + sexec.scheduleWithFixedDelay(threadMonotor, 240, 60, TimeUnit.SECONDS);
  127 + }
  128 +}
... ...
src/main/java/com/bsth/controller/oil/CwjyController.java
... ... @@ -33,6 +33,11 @@ public class CwjyController extends BaseController&lt;Cwjy, Integer&gt;{
33 33 return service.save(t);
34 34 }
35 35  
  36 + @RequestMapping(value = "/checkNbbm",method = RequestMethod.GET)
  37 + public int checkNbbm(Cwjy t){
  38 + return service.checkNbbm(t.getNbbm().trim());
  39 + }
  40 +
36 41 @RequestMapping(value = "/queryList",method = RequestMethod.GET)
37 42 public List<Ylxxb> queryList(@RequestParam Map<String, Object> map){
38 43 List<Ylxxb> pagequery=null;
... ...
src/main/java/com/bsth/controller/realcontrol/ScheduleRealInfoController.java
... ... @@ -48,8 +48,9 @@ public class ScheduleRealInfoController extends BaseController&lt;ScheduleRealInfo,
48 48 */
49 49 @RequestMapping(value = "/outgoAdjust", method = RequestMethod.POST)
50 50 public Map<String, Object> outgoAdjust(@RequestParam Long id, @RequestParam String remarks,
51   - @RequestParam String dfsj,String bcType) {
52   - return scheduleRealInfoService.outgoAdjust(id, remarks, dfsj, bcType);
  51 + @RequestParam String dfsj,String bcType,
  52 + @RequestParam(defaultValue = "") String opType) {
  53 + return scheduleRealInfoService.outgoAdjust(id, remarks, dfsj, bcType, opType);
53 54 }
54 55  
55 56 /**
... ...
src/main/java/com/bsth/controller/report/ReportController.java
... ... @@ -185,8 +185,8 @@ public class ReportController {
185 185 return new ArrayList<Map<String, Object>>();
186 186 }
187 187 @RequestMapping(value = "/sreachZd", method = RequestMethod.GET)
188   - public List<Map<String, String>> sreachPersonnel(@RequestParam String line,@RequestParam int zdlx,@RequestParam String zd) {
189   - return service.sreachZd(line,zdlx, zd);
  188 + public List<Map<String, String>> sreachPersonnel(@RequestParam String line,@RequestParam int zdlx) {
  189 + return service.sreachZd(line,zdlx);
190 190 }
191 191  
192 192  
... ...
src/main/java/com/bsth/data/ThreadMonotor.java
1   -package com.bsth.data;
2   -
3   -import com.bsth.data.gpsdata.arrival.GpsRealAnalyse;
4   -import com.bsth.data.gpsdata.thread.GpsDataLoaderThread;
5   -import com.bsth.data.msg_queue.DirectivePushQueue;
6   -import com.bsth.data.msg_queue.WebSocketPushQueue;
7   -import org.slf4j.Logger;
8   -import org.slf4j.LoggerFactory;
9   -import org.springframework.stereotype.Component;
10   -
11   -/**
12   - * Created by panzhao on 2017/5/11.
13   - */
14   -@Component
15   -public class ThreadMonotor extends Thread{
16   -
17   - Logger log = LoggerFactory.getLogger(this.getClass());
18   -
19   - @Override
20   - public void run() {
21   -
22   - //线调GPS分析主线程
23   - if(GpsRealAnalyse.isBlock()){
24   - log.warn("GpsRealAnalyse isBlock true !!!!");
25   - GpsRealAnalyse.shutdown();
26   - }
27   -
28   - if(GpsRealAnalyse.isIdle()){
29   - //切换到备用的网关实时GPS对照数据
30   - GpsDataLoaderThread.setFlag(-1);
31   - }
32   -
33   - //webSocket 消息推送队列
34   - if(WebSocketPushQueue.isIdle()){
35   - log.warn("WebSocketPushQueue isIdle true !!!!");
36   - WebSocketPushQueue.start();
37   - }
38   -
39   - //网关指令推送队列(系统自动发送的)
40   - if(DirectivePushQueue.isIdle()){
41   - log.warn("DirectivePushQueue isIdle true !!!!");
42   - DirectivePushQueue.start();
43   - }
44   - }
  1 +package com.bsth.data;
  2 +
  3 +import com.bsth.data.gpsdata.arrival.GpsRealAnalyse;
  4 +import com.bsth.data.gpsdata.thread.GpsDataLoaderThread;
  5 +import com.bsth.data.msg_queue.DirectivePushQueue;
  6 +import com.bsth.data.msg_queue.WebSocketPushQueue;
  7 +import org.slf4j.Logger;
  8 +import org.slf4j.LoggerFactory;
  9 +import org.springframework.stereotype.Component;
  10 +
  11 +/**
  12 + * Created by panzhao on 2017/5/11.
  13 + */
  14 +@Component
  15 +public class ThreadMonotor extends Thread{
  16 +
  17 + Logger log = LoggerFactory.getLogger(this.getClass());
  18 +
  19 + @Override
  20 + public void run() {
  21 +
  22 + //线调GPS分析主线程
  23 + if(GpsRealAnalyse.isBlock()){
  24 + log.warn("GpsRealAnalyse isBlock true !!!!");
  25 + GpsRealAnalyse.shutdown();
  26 + }
  27 +
  28 + if(GpsRealAnalyse.isIdle()){
  29 + //切换到备用的网关实时GPS对照数据
  30 + GpsDataLoaderThread.setFlag(-1);
  31 + }
  32 +
  33 + //webSocket 消息推送队列
  34 + if(WebSocketPushQueue.isIdle()){
  35 + log.warn("WebSocketPushQueue isIdle true !!!!");
  36 + WebSocketPushQueue.start();
  37 + }
  38 +
  39 + //网关指令推送队列(系统自动发送的)
  40 + if(DirectivePushQueue.isIdle()){
  41 + log.warn("DirectivePushQueue isIdle true !!!!");
  42 + DirectivePushQueue.start();
  43 + }
  44 + }
45 45 }
46 46 \ No newline at end of file
... ...
src/main/java/com/bsth/data/gpsdata/arrival/handlers/ReverseSignalHandle.java
... ... @@ -38,7 +38,7 @@ public class ReverseSignalHandle extends SignalHandle {
38 38 if (isReverse(gps, prev)) {
39 39 RouteReverse reverse = reverseSearch(prevs, gps);
40 40  
41   - if (reverse.getCount() >= 3
  41 + if (reverse != null && reverse.getCount() >= 3
42 42 && reverse.isClose()
43 43 && !GeoCacheData.isEndStation(gps.getLineId(), gps.getUpDown(), reverse.getTurned())) {
44 44 scheduleSignalState.reverseAnalyse(reverse);
... ...
src/main/java/com/bsth/data/schedule/DayOfSchedule.java
... ... @@ -109,7 +109,7 @@ public class DayOfSchedule {
109 109 private static DateTimeFormatter fmtyyyyMMdd = DateTimeFormat.forPattern("yyyy-MM-dd"), fmtHHmm = DateTimeFormat.forPattern("HH:mm");
110 110  
111 111 //数据恢复
112   - private void dataRecovery() {
  112 + public void dataRecovery() {
113 113 GpsDataRecovery.run = true;
114 114  
115 115 Collection<LineConfig> confs = lineConfigs.getAll();
... ...
src/main/java/com/bsth/data/schedule/edit_logs/SchEditLogger.java 0 → 100644
  1 +package com.bsth.data.schedule.edit_logs;
  2 +
  3 +/**
  4 + * 班次修正记录
  5 + * Created by panzhao on 2017/5/16.
  6 + */
  7 +public class SchEditLogger {
  8 +
  9 + /**
  10 + * 待发调整
  11 + */
  12 + public static void dftz(Long id, String remarks, String dfsj, String bcType, String opType){
  13 +
  14 + }
  15 +}
... ...
src/main/java/com/bsth/entity/realcontrol/ScheduleRealInfo.java
... ... @@ -924,4 +924,8 @@ public class ScheduleRealInfo {
924 924 public void setFcpSn(int fcpSn) {
925 925 this.fcpSn = fcpSn;
926 926 }
  927 +
  928 + public boolean isInout(){
  929 + return this.getBcType().equals("out") || this.getBcType().equals("in");
  930 + }
927 931 }
... ...
src/main/java/com/bsth/repository/oil/YlbRepository.java
... ... @@ -56,6 +56,11 @@ public interface YlbRepository extends BaseRepository&lt;Ylb, Integer&gt;{
56 56 + " and xlbm like %?4% and nbbm like %?5% order by ?6 asc ",nativeQuery=true)
57 57 List<Ylb> obtainYl(String rq,String gsdm,String fgsdm,String xlbm,String nbbm,String px);
58 58  
  59 + @Query(value="SELECT * FROM bsth_c_ylb where to_days(?1)=to_days(rq) and ssgsdm like %?2% "
  60 + + " and fgsdm like %?3%"
  61 + + " and xlbm = ?4 and nbbm like %?5% order by ?6 asc ",nativeQuery=true)
  62 + List<Ylb> obtainYl_eq(String rq,String gsdm,String fgsdm,String xlbm,String nbbm,String px);
  63 +
59 64  
60 65 @Query(value="SELECT * FROM bsth_c_ylb where to_days(?1)=to_days(rq) and nbbm =?2 and jsy=?3 ",nativeQuery=true)
61 66 List<Ylb> queryListYlb(String rq,String nbbm,String jgh);
... ...
src/main/java/com/bsth/repository/realcontrol/ScheduleRealInfoRepository.java
... ... @@ -170,9 +170,12 @@ public interface ScheduleRealInfoRepository extends BaseRepository&lt;ScheduleRealI
170 170 List<ScheduleRealInfo> scheduleByDateAndLineYbb(String line,String date,String date2);
171 171  
172 172  
173   - @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh,min(s.fcsj) as fcsj ) from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 and s.gsBm like %?3% and s.fgsBm like %?4% and s.clZbh like %?5% GROUP BY xlBm,clZbh,jGh,scheduleDate,jGh ORDER BY clZbh,fcsj")
  173 + @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh,min(s.fcsj) as fcsj ) from ScheduleRealInfo s where s.xlBm like %?1% and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 and s.gsBm like %?3% and s.fgsBm like %?4% and s.clZbh like %?5% GROUP BY xlBm,clZbh,jGh,scheduleDate ORDER BY clZbh,fcsj")
174 174 List<Map<String,Object>> yesterdayDataList(String line,String date,String gsbm,String fgsbm,String nbbm);
175 175  
  176 + @Query(value="select new map(s.scheduleDate as scheduleDate,s.xlBm as xlBm,s.clZbh as clZbh,s.jGh as jGh,min(s.fcsj) as fcsj ) from ScheduleRealInfo s where s.xlBm =?1 and DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?2 and s.gsBm like %?3% and s.fgsBm like %?4% and s.clZbh like %?5% GROUP BY xlBm,clZbh,jGh,scheduleDate ORDER BY clZbh,fcsj")
  177 + List<Map<String,Object>> yesterdayDataList_eq(String line,String date,String gsbm,String fgsbm,String nbbm);
  178 +
176 179 @Query(value="select s from ScheduleRealInfo s where DATE_FORMAT(s.scheduleDate,'%Y-%m-%d') = ?1 ORDER BY xlBm,lpName,clZbh,xlDir")
177 180 List<ScheduleRealInfo> setLD(String date);
178 181  
... ...
src/main/java/com/bsth/service/forms/impl/FormsServiceImpl.java
... ... @@ -547,16 +547,18 @@ public class FormsServiceImpl implements FormsService {
547 547 });
548 548  
549 549 List<Ylb> listYlb= ylbRepository.obtainYl(startDate, gsdm, fgsdm, xlbm, "", "xlbm");
550   - List<ScheduleRealInfo> listReal=scheduleRealInfoRepository.scheduleByDateAndLineTjrb(xlbm, startDate);
  550 + List<ScheduleRealInfo> listReal=scheduleRealInfoRepository.scheduleByDateAndLine(xlbm, startDate);
551 551 for (int i = 0; i < list.size(); i++) {
552 552 List<ScheduleRealInfo> newList=new ArrayList<ScheduleRealInfo>();
553 553 Singledata sin=list.get(i);
554   - sin.setxL(BasicData.lineCode2NameMap.get(sin.getxL()));
  554 +
555 555 String jsy=sin.getJsy();
556 556 String clzbh=sin.getClzbh();
  557 + String xl=sin.getxL();
  558 + sin.setxL(BasicData.lineCode2NameMap.get(xl));
557 559 for (int j = 0; j < listReal.size(); j++) {
558 560 ScheduleRealInfo s=listReal.get(j);
559   - if(s.getjGh().equals(jsy) && s.getClZbh().equals(clzbh)){
  561 + if(s.getjGh().equals(jsy) && s.getClZbh().equals(clzbh)&&s.getXlBm().equals(xl)){
560 562 newList.add(s);
561 563 }
562 564 }
... ...
src/main/java/com/bsth/service/oil/CwjyService.java
... ... @@ -14,4 +14,6 @@ public interface CwjyService extends BaseService&lt;Cwjy, Integer&gt;{
14 14 Ylxxb bynbbm(Map<String, Object> map);
15 15  
16 16 Map<String, Object> savejzl(Map<String, Object> map) throws Exception ;
  17 +
  18 + int checkNbbm(String nbbm);
17 19 }
... ...
src/main/java/com/bsth/service/oil/impl/CwjyServiceImpl.java
... ... @@ -317,4 +317,13 @@ public class CwjyServiceImpl extends BaseServiceImpl&lt;Cwjy,Integer&gt; implements Cw
317 317 return yList;
318 318 }
319 319  
  320 + @Override
  321 + public int checkNbbm(String nbbm) {
  322 + // TODO Auto-generated method stub
  323 + String sql="select count(*) from bsth_c_cwjy where nbbm ='"+nbbm+"'";
  324 + int cs=jdbcTemplate.queryForObject(sql, Integer.class);
  325 +
  326 + return cs;
  327 + }
  328 +
320 329 }
... ...
src/main/java/com/bsth/service/oil/impl/YlbServiceImpl.java
... ... @@ -270,6 +270,7 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
270 270 List<Ylb> addList = new ArrayList<Ylb>();
271 271 List<Ylb> updateList = new ArrayList<Ylb>();
272 272 String ins="";
  273 + Map<String, Object> ylMap=new HashMap<String, Object>();
273 274 for (int x = 0; x < listpb.size(); x++) {
274 275 String type = "add";
275 276 boolean sfdc = true;
... ... @@ -332,17 +333,23 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
332 333 t.setCzyl(0.0);
333 334 }
334 335 }
335   -
  336 +
336 337 Double jzl = 0.0;
337   - // 把当天的YLXXB的加注量设置为当天YLB的加注量(根据车号,驾驶员判断)
338   - for (int j = 0; j < ylxxList.size(); j++) {
339   - Ylxxb ylxxb = ylxxList.get(j);
340   - if (map.get("clZbh").toString().equals(ylxxb.getNbbm())
341   - && map.get("jGh").toString().equals(ylxxb.getJsy())) {
342   -// jzl += ylxxb.getJzl();
343   - jzl =Arith.add(jzl, ylxxb.getJzl());
  338 + //一人一车加注量只匹配一次
  339 + if(ylMap.get(map.get("clZbh").toString()+"_"+ map.get("jGh").toString())!=null){
  340 +
  341 + }else{
  342 + // 把当天的YLXXB的加注量设置为当天YLB的加注量(根据车号,驾驶员判断)
  343 + for (int j = 0; j < ylxxList.size(); j++) {
  344 + Ylxxb ylxxb = ylxxList.get(j);
  345 + if (map.get("clZbh").toString().equals(ylxxb.getNbbm())
  346 + && map.get("jGh").toString().equals(ylxxb.getJsy())) {
  347 + jzl =Arith.add(jzl, ylxxb.getJzl());
  348 + }
344 349 }
  350 + ylMap.put(map.get("clZbh").toString()+"_"+ map.get("jGh").toString(),map.get("xlBm") == null ? "" : map.get("xlBm").toString());
345 351 }
  352 +
346 353  
347 354 t.setJzl(jzl);
348 355 t.setNbbm(map.get("clZbh").toString());
... ... @@ -435,8 +442,16 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
435 442 // 获取车辆存油信息
436 443 List<Cyl> cylList = cylRepository.obtainCyl(nbbm,gsbm);
437 444 // 指定日期YLB信息
438   - List<Ylb> ylbList =repository.obtainYl(rq,gsbm,fgsbm,"",nbbm,"nbbm,jcsx");
439   - List<Ylb> iterator2=repository.obtainYl(rq,gsbm,fgsbm,"",nbbm,"jcsx");
  445 + List<Ylb> ylbList =new ArrayList<Ylb>();
  446 + List<Ylb> iterator2=new ArrayList<Ylb>();
  447 + if(xlbm.equals("")){
  448 + ylbList=repository.obtainYl(rq,gsbm,fgsbm,xlbm,nbbm,"jcsx");
  449 + iterator2=repository.obtainYl(rq,gsbm,fgsbm,xlbm,nbbm,"nbbm,jcsx");
  450 + }else{
  451 + ylbList=repository.obtainYl_eq(rq,gsbm,fgsbm,xlbm,nbbm,"jcsx");
  452 + iterator2=repository.obtainYl_eq(rq,gsbm,fgsbm,xlbm,nbbm,"nbbm,jcsx");
  453 + }
  454 +
440 455 for (int i=0;i<ylbList.size();i++) {
441 456 Ylb ylb = ylbList.get(i);
442 457 // 判断是否已经计算过
... ... @@ -499,9 +514,6 @@ public class YlbServiceImpl extends BaseServiceImpl&lt;Ylb,Integer&gt; implements YlbS
499 514 t.setYh(yh);
500 515 t.setJzyl(nextJzyl);
501 516 }
502   -
503   -
504   -
505 517 } else {
506 518 t.setCzyl(nextJzyl);
507 519 Double yh=0.0;
... ...
src/main/java/com/bsth/service/realcontrol/ScheduleRealInfoService.java
... ... @@ -16,7 +16,7 @@ public interface ScheduleRealInfoService extends BaseService&lt;ScheduleRealInfo, L
16 16  
17 17 Map<String, Collection<ScheduleRealInfo>> findByLines(String lines);
18 18  
19   - Map<String, Object> outgoAdjust(Long id, String remarks, String dfsj, String bcType);
  19 + Map<String, Object> outgoAdjust(Long id, String remarks, String dfsj, String bcType, String opType);
20 20  
21 21 Map<String, Object> destroy(String idsStr/*, int spaceAdjust*/, String remarks, String reason/*, int spaceNum*/);
22 22  
... ...
src/main/java/com/bsth/service/realcontrol/impl/ScheduleRealInfoServiceImpl.java
... ... @@ -207,7 +207,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
207 207 private static DateTimeFormatter fmtHHmm = DateTimeFormat.forPattern("HH:mm");
208 208  
209 209 @Override
210   - public Map<String, Object> outgoAdjust(Long id, String remarks, String dfsj, String bcType) {
  210 + public Map<String, Object> outgoAdjust(Long id, String remarks, String dfsj, String bcType, String opType) {
211 211 Map<String, Object> map = new HashMap<>();
212 212 try {
213 213  
... ... @@ -1155,7 +1155,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1155 1155 sch = list.get(i);
1156 1156  
1157 1157 //调整待发
1158   - outgoAdjust(sch.getId(), null, fmtHHmm.print(st), null);
  1158 + outgoAdjust(sch.getId(), null, fmtHHmm.print(st), null, "间隔调整");
1159 1159 }
1160 1160  
1161 1161 rs.put("status", ResponseCode.SUCCESS);
... ... @@ -1325,7 +1325,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1325 1325 if (StringUtils.isNotEmpty(jhlc)) {
1326 1326 double jhlcNum = Double.parseDouble(jhlc);
1327 1327 //烂班
1328   - if(jhlcNum == 0 && sch.getJhlcOrig() != 0)
  1328 + if(jhlcNum == 0 && sch.getJhlcOrig() != 0 && !sch.isInout())
1329 1329 destroy(sch.getId() + "", "", map.get("adjustExps").toString());
1330 1330 else if(jhlcNum != sch.getJhlc()){
1331 1331 sch.setJhlc(jhlcNum);
... ... @@ -1375,7 +1375,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
1375 1375 schedule = dayOfSchedule.get(id);
1376 1376  
1377 1377 if(schedule != null)
1378   - outgoAdjust(id, null, dfsj, null);
  1378 + outgoAdjust(id, null, dfsj, null, "批量调整");
1379 1379 }
1380 1380  
1381 1381 rs.put("status", ResponseCode.SUCCESS);
... ... @@ -2983,16 +2983,22 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
2983 2983 // String date = sdfMonth.format(org.apache.commons.lang.time.DateUtils.addDays(new Date(), -1));
2984 2984 // String date = "2016-09-20";
2985 2985 // System.out.println("shijian1:"+new Date());
2986   - List<Map<String, Object>> yesterdayDataList = scheduleRealInfoRepository.yesterdayDataList(line, date,gsbm,fgsbm,nbbm);
  2986 +
  2987 + List<Map<String, Object>> yesterdayDataList = new ArrayList<Map<String, Object>>();
  2988 + if(line.equals("")){
  2989 + yesterdayDataList=scheduleRealInfoRepository.yesterdayDataList(line, date,gsbm,fgsbm,nbbm);
  2990 + }else{
  2991 + yesterdayDataList=scheduleRealInfoRepository.yesterdayDataList_eq(line, date,gsbm,fgsbm,nbbm);
  2992 + }
  2993 +
2987 2994 // System.out.println("shijian2:"+new Date());
2988 2995 // List<ScheduleRealInfo> list = scheduleRealInfoRepository.scheduleByDateAndLine(line, date);
2989 2996 List<ScheduleRealInfo> lists = scheduleRealInfoRepository.queryListWaybill3(jGh, nbbm, date,gsbm,fgsbm);
2990 2997 // System.out.println("shijian3:"+new Date());
2991 2998 for (int x = 0; x < yesterdayDataList.size(); x++) {
2992   -
2993 2999 String jName = yesterdayDataList.get(x).get("jGh").toString();
2994 3000 String clZbh = yesterdayDataList.get(x).get("clZbh").toString();
2995   -
  3001 + String xlbm = yesterdayDataList.get(x).get("xlBm").toString();
2996 3002 // double jhlc = 0, yygl = 0, ksgl = 0, tempJhlc = 0, jcclc = 0;
2997 3003 double addMileage = 0, remMileage = 0;
2998 3004 Map<String, Object> map = new HashMap<String, Object>();
... ... @@ -3001,7 +3007,8 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3001 3007 String bCompany="";
3002 3008 List<ScheduleRealInfo> listS=new ArrayList<ScheduleRealInfo>();
3003 3009 for (ScheduleRealInfo scheduleRealInfo : lists) {
3004   - if(scheduleRealInfo.getjGh().equals(jName) && scheduleRealInfo.getClZbh().equals(clZbh)){
  3010 + if(scheduleRealInfo.getjGh().equals(jName) && scheduleRealInfo.getClZbh().equals(clZbh)
  3011 + && scheduleRealInfo.getXlBm().equals(xlbm)){
3005 3012 if (fage) {
3006 3013 //根据线路代码获取公司
3007 3014 company=scheduleRealInfo.getGsBm();
... ... @@ -3222,7 +3229,7 @@ public class ScheduleRealInfoServiceImpl extends BaseServiceImpl&lt;ScheduleRealInf
3222 3229 if (StringUtils.isEmpty(dc.getOld_dfsj()) || StringUtils.isEmpty(dc.getNew_dfsj()))
3223 3230 continue;
3224 3231  
3225   - tempMap = outgoAdjust(dc.getSchId(), "", dc.getNew_dfsj(), null);
  3232 + tempMap = outgoAdjust(dc.getSchId(), "", dc.getNew_dfsj(), null, "批量调整");
3226 3233  
3227 3234 if (tempMap.get("status").equals(ResponseCode.SUCCESS)) {
3228 3235 list.addAll((Collection<? extends ScheduleRealInfo>) tempMap.get("ts"));
... ...
src/main/java/com/bsth/service/report/ReportService.java
... ... @@ -17,7 +17,7 @@ public interface ReportService {
17 17 List<ArrivalInfo> queryListClzd(String line,String zd,String zdlx,String fcsj,String ddsj);
18 18 List<StationRoute> queryStrinon(String line,int zd);
19 19 List<Map<String, Object>> queryInOutStrtion(String line,String date,int zd,String lzsj);
20   - List<Map<String, String>> sreachZd(String line,int zdlx,String zd);
  20 + List<Map<String, String>> sreachZd(String line,int zdlx);
21 21  
22 22 List<Object[]> historyMessageCount(String line, String date, String code);
23 23  
... ...
src/main/java/com/bsth/service/report/impl/ReportServiceImpl.java
... ... @@ -252,18 +252,16 @@ public class ReportServiceImpl implements ReportService{
252 252 return list;
253 253 }
254 254 @Override
255   - public List<Map<String, String>> sreachZd(String line, int zdlx,String zd) {
  255 + public List<Map<String, String>> sreachZd(String line, int zdlx) {
256 256 List<Map<String, String>> list = new ArrayList<>();
257 257 // TODO Auto-generated method stub
258 258 List<StationRoute> listSr=stationRoutRepository.findByLine(line,zdlx);
259 259 for (int i = 0; i < listSr.size(); i++) {
260 260 StationRoute t=listSr.get(i);
261   - if(t.getStationName().indexOf(zd)!=-1){
262   - Map<String, String> newMap=new HashMap<String,String>();
263   - newMap.put("id",t.getStationCode());
264   - newMap.put("text", t.getStationName());
265   - list.add(newMap);
266   - }
  261 + Map<String, String> newMap=new HashMap<String,String>();
  262 + newMap.put("id",t.getStationCode());
  263 + newMap.put("text", t.getStationName());
  264 + list.add(newMap);
267 265 }
268 266 return list;
269 267 }
... ...
src/main/java/com/bsth/service/schedule/datatools/CarConfigInfoDataToolsImpl.java 0 → 100644
  1 +package com.bsth.service.schedule.datatools;
  2 +
  3 +/**
  4 + * Created by xu on 17/5/16.
  5 + */
  6 +public class CarConfigInfoDataToolsImpl {
  7 +}
... ...
src/main/java/com/bsth/service/schedule/datatools/CarsDataToolsImpl.java 0 → 100644
  1 +package com.bsth.service.schedule.datatools;
  2 +
  3 +/**
  4 + * Created by xu on 17/5/16.
  5 + */
  6 +public class CarsDataToolsImpl {
  7 +}
... ...
src/main/java/com/bsth/service/schedule/datatools/EmployeeConfigInfoDataToolsImpl.java 0 → 100644
  1 +package com.bsth.service.schedule.datatools;
  2 +
  3 +/**
  4 + * Created by xu on 17/5/16.
  5 + */
  6 +public class EmployeeConfigInfoDataToolsImpl {
  7 +}
... ...
src/main/java/com/bsth/service/schedule/datatools/EmployeeDataToolsImpl.java 0 → 100644
  1 +package com.bsth.service.schedule.datatools;
  2 +
  3 +/**
  4 + * Created by xu on 17/5/16.
  5 + */
  6 +public class EmployeeDataToolsImpl {
  7 +}
... ...
src/main/java/com/bsth/service/schedule/datatools/GuideboardInfoDataToolsImpl.java 0 → 100644
  1 +package com.bsth.service.schedule.datatools;
  2 +
  3 +/**
  4 + * Created by xu on 17/5/16.
  5 + */
  6 +public class GuideboardInfoDataToolsImpl {
  7 +}
... ...
src/main/java/com/bsth/service/schedule/datatools/ScheduleRule1FlatDataToolsImpl.java 0 → 100644
  1 +package com.bsth.service.schedule.datatools;
  2 +
  3 +/**
  4 + * Created by xu on 17/5/16.
  5 + */
  6 +public class ScheduleRule1FlatDataToolsImpl {
  7 +}
... ...
src/main/java/com/bsth/service/schedule/datatools/TTInfoDetailDataToolsImpl.java 0 → 100644
  1 +package com.bsth.service.schedule.datatools;
  2 +
  3 +/**
  4 + * Created by xu on 17/5/16.
  5 + */
  6 +public class TTInfoDetailDataToolsImpl {
  7 +}
... ...
src/main/java/com/bsth/service/schedule/datatools/TTInfoDetailForEdit.java 0 → 100644
  1 +package com.bsth.service.schedule.datatools;
  2 +
  3 +/**
  4 + * Created by xu on 17/5/16.
  5 + */
  6 +public interface TTInfoDetailForEdit {
  7 +}
... ...
src/main/resources/application-dev.properties
... ... @@ -10,7 +10,8 @@ spring.jpa.show-sql= true
10 10 spring.datasource.driver-class-name= com.mysql.jdbc.Driver
11 11 spring.datasource.url= jdbc:mysql://127.0.0.1/pd_control?useUnicode=true&characterEncoding=utf-8&useSSL=false
12 12 spring.datasource.username= root
13   -spring.datasource.password= panzhao
  13 +spring.datasource.password= root
  14 +
14 15 #spring.datasource.url= jdbc:mysql://192.168.168.117/pd_control?useUnicode=true&characterEncoding=utf-8&useSSL=false
15 16 #spring.datasource.username= root
16 17 #spring.datasource.password= root
... ... @@ -28,8 +29,6 @@ spring.datasource.validation-query=select 1
28 29  
29 30 ##
30 31 #222.66.0.204:5555
31   -##\u5B9E\u65F6gps
32   -#http.gps.real.url= http://114.80.178.12:18080/transport_server/rtgps/
33   -#http.gps.real.url= http://27.115.69.123:8800/transport_server/rtgps/
  32 +http.gps.real.url= http://114.80.178.12:18080/transport_server/rtgps/
34 33 ##\u6D88\u606F\u4E0B\u53D1
35   -http.send.directive = http://192.168.168.201:9090/transport_server/message/
  34 +#http.send.directive = http://192.168.168.201:9090/transport_server/message/
36 35 \ No newline at end of file
... ...
src/main/resources/datatools/ktrs/carsDataInput.ktr
1   -<?xml version="1.0" encoding="UTF-8"?>
2   -<transformation>
3   - <info>
4   - <name>&#x8f66;&#x8f86;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</name>
5   - <description>&#x8f66;&#x8f86;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</description>
6   - <extended_description>&#x8f66;&#x8f86;&#x57fa;&#x7840;&#x4fe1;&#x606f;</extended_description>
7   - <trans_version/>
8   - <trans_type>Normal</trans_type>
9   - <trans_status>0</trans_status>
10   - <directory>&#x2f;</directory>
11   - <parameters>
12   - <parameter>
13   - <name>erroroutputdir</name>
14   - <default_value/>
15   - <description>ktr step&#x914d;&#x7f6e;&#x7684;&#x9519;&#x8bef;&#x8f93;&#x51fa;&#x76ee;&#x5f55;</description>
16   - </parameter>
17   - <parameter>
18   - <name>filepath</name>
19   - <default_value/>
20   - <description>&#x5f85;&#x5904;&#x7406;&#x5bfc;&#x5165;&#x7684;excel&#x6587;&#x4ef6;</description>
21   - </parameter>
22   - </parameters>
23   - <log>
24   -<trans-log-table><connection/>
25   -<schema/>
26   -<table/>
27   -<size_limit_lines/>
28   -<interval/>
29   -<timeout_days/>
30   -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STATUS</id><enabled>Y</enabled><name>STATUS</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name><subject/></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name><subject/></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name><subject/></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name><subject/></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name><subject/></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name><subject/></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>STARTDATE</id><enabled>Y</enabled><name>STARTDATE</name></field><field><id>ENDDATE</id><enabled>Y</enabled><name>ENDDATE</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>DEPDATE</id><enabled>Y</enabled><name>DEPDATE</name></field><field><id>REPLAYDATE</id><enabled>Y</enabled><name>REPLAYDATE</name></field><field><id>LOG_FIELD</id><enabled>Y</enabled><name>LOG_FIELD</name></field><field><id>EXECUTING_SERVER</id><enabled>N</enabled><name>EXECUTING_SERVER</name></field><field><id>EXECUTING_USER</id><enabled>N</enabled><name>EXECUTING_USER</name></field><field><id>CLIENT</id><enabled>N</enabled><name>CLIENT</name></field></trans-log-table>
31   -<perf-log-table><connection/>
32   -<schema/>
33   -<table/>
34   -<interval/>
35   -<timeout_days/>
36   -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>SEQ_NR</id><enabled>Y</enabled><name>SEQ_NR</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>INPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>INPUT_BUFFER_ROWS</name></field><field><id>OUTPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>OUTPUT_BUFFER_ROWS</name></field></perf-log-table>
37   -<channel-log-table><connection/>
38   -<schema/>
39   -<table/>
40   -<timeout_days/>
41   -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>LOGGING_OBJECT_TYPE</id><enabled>Y</enabled><name>LOGGING_OBJECT_TYPE</name></field><field><id>OBJECT_NAME</id><enabled>Y</enabled><name>OBJECT_NAME</name></field><field><id>OBJECT_COPY</id><enabled>Y</enabled><name>OBJECT_COPY</name></field><field><id>REPOSITORY_DIRECTORY</id><enabled>Y</enabled><name>REPOSITORY_DIRECTORY</name></field><field><id>FILENAME</id><enabled>Y</enabled><name>FILENAME</name></field><field><id>OBJECT_ID</id><enabled>Y</enabled><name>OBJECT_ID</name></field><field><id>OBJECT_REVISION</id><enabled>Y</enabled><name>OBJECT_REVISION</name></field><field><id>PARENT_CHANNEL_ID</id><enabled>Y</enabled><name>PARENT_CHANNEL_ID</name></field><field><id>ROOT_CHANNEL_ID</id><enabled>Y</enabled><name>ROOT_CHANNEL_ID</name></field></channel-log-table>
42   -<step-log-table><connection/>
43   -<schema/>
44   -<table/>
45   -<timeout_days/>
46   -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>LOG_FIELD</id><enabled>N</enabled><name>LOG_FIELD</name></field></step-log-table>
47   -<metrics-log-table><connection/>
48   -<schema/>
49   -<table/>
50   -<timeout_days/>
51   -<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>METRICS_DATE</id><enabled>Y</enabled><name>METRICS_DATE</name></field><field><id>METRICS_CODE</id><enabled>Y</enabled><name>METRICS_CODE</name></field><field><id>METRICS_DESCRIPTION</id><enabled>Y</enabled><name>METRICS_DESCRIPTION</name></field><field><id>METRICS_SUBJECT</id><enabled>Y</enabled><name>METRICS_SUBJECT</name></field><field><id>METRICS_TYPE</id><enabled>Y</enabled><name>METRICS_TYPE</name></field><field><id>METRICS_VALUE</id><enabled>Y</enabled><name>METRICS_VALUE</name></field></metrics-log-table>
52   - </log>
53   - <maxdate>
54   - <connection/>
55   - <table/>
56   - <field/>
57   - <offset>0.0</offset>
58   - <maxdiff>0.0</maxdiff>
59   - </maxdate>
60   - <size_rowset>10000</size_rowset>
61   - <sleep_time_empty>50</sleep_time_empty>
62   - <sleep_time_full>50</sleep_time_full>
63   - <unique_connections>N</unique_connections>
64   - <feedback_shown>Y</feedback_shown>
65   - <feedback_size>50000</feedback_size>
66   - <using_thread_priorities>Y</using_thread_priorities>
67   - <shared_objects_file/>
68   - <capture_step_performance>N</capture_step_performance>
69   - <step_performance_capturing_delay>1000</step_performance_capturing_delay>
70   - <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
71   - <dependencies>
72   - </dependencies>
73   - <partitionschemas>
74   - </partitionschemas>
75   - <slaveservers>
76   - </slaveservers>
77   - <clusterschemas>
78   - </clusterschemas>
79   - <created_user>-</created_user>
80   - <created_date>2016&#x2f;06&#x2f;23 17&#x3a;44&#x3a;46.781</created_date>
81   - <modified_user>-</modified_user>
82   - <modified_date>2016&#x2f;06&#x2f;23 17&#x3a;44&#x3a;46.781</modified_date>
83   - <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>
84   - <is_key_private>N</is_key_private>
85   - </info>
86   - <notepads>
87   - </notepads>
88   - <connection>
89   - <name>192.168.168.1_jwgl_dw</name>
90   - <server>192.168.168.1</server>
91   - <type>ORACLE</type>
92   - <access>Native</access>
93   - <database>orcl</database>
94   - <port>1521</port>
95   - <username>jwgl_dw</username>
96   - <password>Encrypted 2be98afc86aa7f2e4cb13b977d2adabcd</password>
97   - <servername/>
98   - <data_tablespace/>
99   - <index_tablespace/>
100   - <attributes>
101   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
102   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
103   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
104   - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
105   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
106   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
107   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
108   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
109   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
110   - </attributes>
111   - </connection>
112   - <connection>
113   - <name>bus_control_variable</name>
114   - <server>&#x24;&#x7b;v_db_ip&#x7d;</server>
115   - <type>MYSQL</type>
116   - <access>Native</access>
117   - <database>&#x24;&#x7b;v_db_dname&#x7d;</database>
118   - <port>3306</port>
119   - <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
120   - <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>
121   - <servername/>
122   - <data_tablespace/>
123   - <index_tablespace/>
124   - <attributes>
125   - <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute>
126   - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
127   - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
128   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
129   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
130   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
131   - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
132   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
133   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
134   - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
135   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
136   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
137   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
138   - </attributes>
139   - </connection>
140   - <connection>
141   - <name>bus_control_&#x516c;&#x53f8;_201</name>
142   - <server>localhost</server>
143   - <type>MYSQL</type>
144   - <access>Native</access>
145   - <database>control</database>
146   - <port>3306</port>
147   - <username>root</username>
148   - <password>Encrypted </password>
149   - <servername/>
150   - <data_tablespace/>
151   - <index_tablespace/>
152   - <attributes>
153   - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
154   - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
155   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
156   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
157   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
158   - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
159   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
160   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
161   - <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
162   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
163   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
164   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
165   - </attributes>
166   - </connection>
167   - <connection>
168   - <name>bus_control_&#x672c;&#x673a;</name>
169   - <server>localhost</server>
170   - <type>MYSQL</type>
171   - <access>Native</access>
172   - <database>control</database>
173   - <port>3306</port>
174   - <username>root</username>
175   - <password>Encrypted </password>
176   - <servername/>
177   - <data_tablespace/>
178   - <index_tablespace/>
179   - <attributes>
180   - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
181   - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
182   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
183   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
184   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
185   - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
186   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
187   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
188   - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
189   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
190   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
191   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
192   - </attributes>
193   - </connection>
194   - <connection>
195   - <name>xlab_mysql_youle</name>
196   - <server>101.231.124.8</server>
197   - <type>MYSQL</type>
198   - <access>Native</access>
199   - <database>xlab_youle</database>
200   - <port>45687</port>
201   - <username>xlab-youle</username>
202   - <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>
203   - <servername/>
204   - <data_tablespace/>
205   - <index_tablespace/>
206   - <attributes>
207   - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
208   - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
209   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
210   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
211   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
212   - <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>
213   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
214   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
215   - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
216   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
217   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
218   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
219   - </attributes>
220   - </connection>
221   - <connection>
222   - <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>
223   - <server>localhost</server>
224   - <type>MYSQL</type>
225   - <access>Native</access>
226   - <database>xlab_youle</database>
227   - <port>3306</port>
228   - <username>root</username>
229   - <password>Encrypted </password>
230   - <servername/>
231   - <data_tablespace/>
232   - <index_tablespace/>
233   - <attributes>
234   - <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
235   - <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
236   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
237   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
238   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
239   - <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
240   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
241   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
242   - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
243   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
244   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
245   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
246   - </attributes>
247   - </connection>
248   - <connection>
249   - <name>xlab_youle</name>
250   - <server/>
251   - <type>MYSQL</type>
252   - <access>JNDI</access>
253   - <database>xlab_youle</database>
254   - <port>1521</port>
255   - <username/>
256   - <password>Encrypted </password>
257   - <servername/>
258   - <data_tablespace/>
259   - <index_tablespace/>
260   - <attributes>
261   - <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
262   - <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
263   - <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
264   - <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
265   - <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
266   - <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
267   - <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
268   - <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
269   - <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
270   - <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
271   - </attributes>
272   - </connection>
273   - <order>
274   - <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop>
275   - <hop> <from>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</to><enabled>Y</enabled> </hop>
276   - <hop> <from>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</to><enabled>Y</enabled> </hop>
277   - </order>
278   - <step>
279   - <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>
280   - <type>ExcelInput</type>
281   - <description/>
282   - <distribute>Y</distribute>
283   - <custom_distribution/>
284   - <copies>1</copies>
285   - <partitioning>
286   - <method>none</method>
287   - <schema_name/>
288   - </partitioning>
289   - <header>Y</header>
290   - <noempty>Y</noempty>
291   - <stoponempty>N</stoponempty>
292   - <filefield/>
293   - <sheetfield/>
294   - <sheetrownumfield/>
295   - <rownumfield/>
296   - <sheetfield/>
297   - <filefield/>
298   - <limit>0</limit>
299   - <encoding/>
300   - <add_to_result_filenames>Y</add_to_result_filenames>
301   - <accept_filenames>Y</accept_filenames>
302   - <accept_field>filepath_</accept_field>
303   - <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>
304   - <file>
305   - <name/>
306   - <filemask/>
307   - <exclude_filemask/>
308   - <file_required>N</file_required>
309   - <include_subfolders>N</include_subfolders>
310   - </file>
311   - <fields>
312   - <field>
313   - <name>&#x8f66;&#x724c;&#x53f7;</name>
314   - <type>String</type>
315   - <length>-1</length>
316   - <precision>-1</precision>
317   - <trim_type>none</trim_type>
318   - <repeat>N</repeat>
319   - <format/>
320   - <currency/>
321   - <decimal/>
322   - <group/>
323   - </field>
324   - <field>
325   - <name>&#x8f66;&#x8f86;&#x7f16;&#x7801;</name>
326   - <type>String</type>
327   - <length>-1</length>
328   - <precision>-1</precision>
329   - <trim_type>none</trim_type>
330   - <repeat>N</repeat>
331   - <format/>
332   - <currency/>
333   - <decimal/>
334   - <group/>
335   - </field>
336   - <field>
337   - <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
338   - <type>String</type>
339   - <length>-1</length>
340   - <precision>-1</precision>
341   - <trim_type>none</trim_type>
342   - <repeat>N</repeat>
343   - <format/>
344   - <currency/>
345   - <decimal/>
346   - <group/>
347   - </field>
348   - <field>
349   - <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>
350   - <type>String</type>
351   - <length>-1</length>
352   - <precision>-1</precision>
353   - <trim_type>none</trim_type>
354   - <repeat>N</repeat>
355   - <format/>
356   - <currency/>
357   - <decimal/>
358   - <group/>
359   - </field>
360   - <field>
361   - <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
362   - <type>String</type>
363   - <length>-1</length>
364   - <precision>-1</precision>
365   - <trim_type>none</trim_type>
366   - <repeat>N</repeat>
367   - <format/>
368   - <currency/>
369   - <decimal/>
370   - <group/>
371   - </field>
372   - <field>
373   - <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>
374   - <type>String</type>
375   - <length>-1</length>
376   - <precision>-1</precision>
377   - <trim_type>none</trim_type>
378   - <repeat>N</repeat>
379   - <format/>
380   - <currency/>
381   - <decimal/>
382   - <group/>
383   - </field>
384   - <field>
385   - <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
386   - <type>String</type>
387   - <length>-1</length>
388   - <precision>-1</precision>
389   - <trim_type>none</trim_type>
390   - <repeat>N</repeat>
391   - <format/>
392   - <currency/>
393   - <decimal/>
394   - <group/>
395   - </field>
396   - <field>
397   - <name>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</name>
398   - <type>String</type>
399   - <length>-1</length>
400   - <precision>-1</precision>
401   - <trim_type>none</trim_type>
402   - <repeat>N</repeat>
403   - <format/>
404   - <currency/>
405   - <decimal/>
406   - <group/>
407   - </field>
408   - <field>
409   - <name>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</name>
410   - <type>String</type>
411   - <length>-1</length>
412   - <precision>-1</precision>
413   - <trim_type>none</trim_type>
414   - <repeat>N</repeat>
415   - <format/>
416   - <currency/>
417   - <decimal/>
418   - <group/>
419   - </field>
420   - </fields>
421   - <sheets>
422   - <sheet>
423   - <name>&#x5de5;&#x4f5c;&#x8868;1</name>
424   - <startrow>0</startrow>
425   - <startcol>0</startcol>
426   - </sheet>
427   - </sheets>
428   - <strict_types>N</strict_types>
429   - <error_ignored>N</error_ignored>
430   - <error_line_skipped>N</error_line_skipped>
431   - <bad_line_files_destination_directory/>
432   - <bad_line_files_extension>warning</bad_line_files_extension>
433   - <error_line_files_destination_directory/>
434   - <error_line_files_extension>error</error_line_files_extension>
435   - <line_number_files_destination_directory/>
436   - <line_number_files_extension>line</line_number_files_extension>
437   - <shortFileFieldName/>
438   - <pathFieldName/>
439   - <hiddenFieldName/>
440   - <lastModificationTimeFieldName/>
441   - <uriNameFieldName/>
442   - <rootUriNameFieldName/>
443   - <extensionFieldName/>
444   - <sizeFieldName/>
445   - <spreadsheet_type>JXL</spreadsheet_type>
446   - <cluster_schema/>
447   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
448   - <xloc>131</xloc>
449   - <yloc>58</yloc>
450   - <draw>Y</draw>
451   - </GUI>
452   - </step>
453   -
454   - <step>
455   - <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</name>
456   - <type>InsertUpdate</type>
457   - <description/>
458   - <distribute>Y</distribute>
459   - <custom_distribution/>
460   - <copies>1</copies>
461   - <partitioning>
462   - <method>none</method>
463   - <schema_name/>
464   - </partitioning>
465   - <connection>bus_control_variable</connection>
466   - <commit>1000</commit>
467   - <update_bypassed>N</update_bypassed>
468   - <lookup>
469   - <schema/>
470   - <table>bsth_c_cars</table>
471   - <key>
472   - <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
473   - <field>inside_code</field>
474   - <condition>&#x3d;</condition>
475   - <name2/>
476   - </key>
477   - <value>
478   - <name>car_gride</name>
479   - <rename>&#x8f66;&#x724c;&#x53f7;</rename>
480   - <update>Y</update>
481   - </value>
482   - <value>
483   - <name>car_code</name>
484   - <rename>&#x8f66;&#x8f86;&#x7f16;&#x7801;</rename>
485   - <update>Y</update>
486   - </value>
487   - <value>
488   - <name>inside_code</name>
489   - <rename>&#x5185;&#x90e8;&#x7f16;&#x7801;</rename>
490   - <update>Y</update>
491   - </value>
492   - <value>
493   - <name>company</name>
494   - <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;</rename>
495   - <update>Y</update>
496   - </value>
497   - <value>
498   - <name>business_code</name>
499   - <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</rename>
500   - <update>Y</update>
501   - </value>
502   - <value>
503   - <name>branche_company</name>
504   - <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</rename>
505   - <update>Y</update>
506   - </value>
507   - <value>
508   - <name>branche_company_code</name>
509   - <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</rename>
510   - <update>Y</update>
511   - </value>
512   - <value>
513   - <name>supplier_name</name>
514   - <rename>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</rename>
515   - <update>Y</update>
516   - </value>
517   - <value>
518   - <name>equipment_code</name>
519   - <rename>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</rename>
520   - <update>Y</update>
521   - </value>
522   - </lookup>
523   - <cluster_schema/>
524   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
525   - <xloc>516</xloc>
526   - <yloc>138</yloc>
527   - <draw>Y</draw>
528   - </GUI>
529   - </step>
530   -
531   - <step>
532   - <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>
533   - <type>GetVariable</type>
534   - <description/>
535   - <distribute>Y</distribute>
536   - <custom_distribution/>
537   - <copies>1</copies>
538   - <partitioning>
539   - <method>none</method>
540   - <schema_name/>
541   - </partitioning>
542   - <fields>
543   - <field>
544   - <name>filepath_</name>
545   - <variable>&#x24;&#x7b;filepath&#x7d;</variable>
546   - <type>String</type>
547   - <format/>
548   - <currency/>
549   - <decimal/>
550   - <group/>
551   - <length>-1</length>
552   - <precision>-1</precision>
553   - <trim_type>none</trim_type>
554   - </field>
555   - <field>
556   - <name>erroroutputdir_</name>
557   - <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>
558   - <type>String</type>
559   - <format/>
560   - <currency/>
561   - <decimal/>
562   - <group/>
563   - <length>-1</length>
564   - <precision>-1</precision>
565   - <trim_type>none</trim_type>
566   - </field>
567   - </fields>
568   - <cluster_schema/>
569   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
570   - <xloc>134</xloc>
571   - <yloc>183</yloc>
572   - <draw>Y</draw>
573   - </GUI>
574   - </step>
575   -
576   - <step>
577   - <name>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</name>
578   - <type>ExcelOutput</type>
579   - <description/>
580   - <distribute>Y</distribute>
581   - <custom_distribution/>
582   - <copies>1</copies>
583   - <partitioning>
584   - <method>none</method>
585   - <schema_name/>
586   - </partitioning>
587   - <header>Y</header>
588   - <footer>N</footer>
589   - <encoding/>
590   - <append>N</append>
591   - <add_to_result_filenames>Y</add_to_result_filenames>
592   - <file>
593   - <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x8f66;&#x8f86;&#x57fa;&#x7840;&#x4fe1;&#x606f;_&#x9519;&#x8bef;</name>
594   - <extention>xls</extention>
595   - <do_not_open_newfile_init>N</do_not_open_newfile_init>
596   - <create_parent_folder>N</create_parent_folder>
597   - <split>N</split>
598   - <add_date>N</add_date>
599   - <add_time>N</add_time>
600   - <SpecifyFormat>N</SpecifyFormat>
601   - <date_time_format/>
602   - <sheetname>Sheet1</sheetname>
603   - <autosizecolums>N</autosizecolums>
604   - <nullisblank>N</nullisblank>
605   - <protect_sheet>N</protect_sheet>
606   - <password>Encrypted </password>
607   - <splitevery>0</splitevery>
608   - <usetempfiles>N</usetempfiles>
609   - <tempdirectory/>
610   - </file>
611   - <template>
612   - <enabled>N</enabled>
613   - <append>N</append>
614   - <filename>template.xls</filename>
615   - </template>
616   - <fields>
617   - <field>
618   - <name>&#x8f66;&#x724c;&#x53f7;</name>
619   - <type>String</type>
620   - <format/>
621   - </field>
622   - <field>
623   - <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
624   - <type>String</type>
625   - <format/>
626   - </field>
627   - <field>
628   - <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>
629   - <type>String</type>
630   - <format/>
631   - </field>
632   - <field>
633   - <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
634   - <type>String</type>
635   - <format/>
636   - </field>
637   - <field>
638   - <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>
639   - <type>String</type>
640   - <format/>
641   - </field>
642   - <field>
643   - <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
644   - <type>String</type>
645   - <format/>
646   - </field>
647   - <field>
648   - <name>&#x4f9b;&#x5e94;&#x5546;&#x540d;&#x79f0;</name>
649   - <type>String</type>
650   - <format/>
651   - </field>
652   - <field>
653   - <name>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</name>
654   - <type>String</type>
655   - <format/>
656   - </field>
657   - <field>
658   - <name>error_count</name>
659   - <type>Integer</type>
660   - <format/>
661   - </field>
662   - <field>
663   - <name>error_desc</name>
664   - <type>String</type>
665   - <format/>
666   - </field>
667   - <field>
668   - <name>error_column1</name>
669   - <type>String</type>
670   - <format/>
671   - </field>
672   - <field>
673   - <name>error_column2</name>
674   - <type>String</type>
675   - <format/>
676   - </field>
677   - </fields>
678   - <custom>
679   - <header_font_name>arial</header_font_name>
680   - <header_font_size>10</header_font_size>
681   - <header_font_bold>N</header_font_bold>
682   - <header_font_italic>N</header_font_italic>
683   - <header_font_underline>no</header_font_underline>
684   - <header_font_orientation>horizontal</header_font_orientation>
685   - <header_font_color>black</header_font_color>
686   - <header_background_color>none</header_background_color>
687   - <header_row_height>255</header_row_height>
688   - <header_alignment>left</header_alignment>
689   - <header_image/>
690   - <row_font_name>arial</row_font_name>
691   - <row_font_size>10</row_font_size>
692   - <row_font_color>black</row_font_color>
693   - <row_background_color>none</row_background_color>
694   - </custom>
695   - <cluster_schema/>
696   - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
697   - <xloc>328</xloc>
698   - <yloc>140</yloc>
699   - <draw>Y</draw>
700   - </GUI>
701   - </step>
702   -
703   - <step_error_handling>
704   - <error>
705   - <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</source_step>
706   - <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</target_step>
707   - <is_enabled>Y</is_enabled>
708   - <nr_valuename>error_count</nr_valuename>
709   - <descriptions_valuename>error_desc</descriptions_valuename>
710   - <fields_valuename>error_column1</fields_valuename>
711   - <codes_valuename>error_column2</codes_valuename>
712   - <max_errors/>
713   - <max_pct_errors/>
714   - <min_pct_rows/>
715   - </error>
716   - </step_error_handling>
717   - <slave-step-copy-partition-distribution>
718   -</slave-step-copy-partition-distribution>
719   - <slave_transformation>N</slave_transformation>
720   -
721   -</transformation>
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<transformation>
  3 + <info>
  4 + <name>&#x8f66;&#x8f86;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</name>
  5 + <description>&#x8f66;&#x8f86;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</description>
  6 + <extended_description>&#x8f66;&#x8f86;&#x57fa;&#x7840;&#x4fe1;&#x606f;</extended_description>
  7 + <trans_version/>
  8 + <trans_type>Normal</trans_type>
  9 + <trans_status>0</trans_status>
  10 + <directory>&#x2f;</directory>
  11 + <parameters>
  12 + <parameter>
  13 + <name>erroroutputdir</name>
  14 + <default_value/>
  15 + <description>ktr step&#x914d;&#x7f6e;&#x7684;&#x9519;&#x8bef;&#x8f93;&#x51fa;&#x76ee;&#x5f55;</description>
  16 + </parameter>
  17 + <parameter>
  18 + <name>filepath</name>
  19 + <default_value/>
  20 + <description>&#x5f85;&#x5904;&#x7406;&#x5bfc;&#x5165;&#x7684;excel&#x6587;&#x4ef6;</description>
  21 + </parameter>
  22 + </parameters>
  23 + <log>
  24 +<trans-log-table><connection/>
  25 +<schema/>
  26 +<table/>
  27 +<size_limit_lines/>
  28 +<interval/>
  29 +<timeout_days/>
  30 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STATUS</id><enabled>Y</enabled><name>STATUS</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name><subject/></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name><subject/></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name><subject/></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name><subject/></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name><subject/></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name><subject/></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>STARTDATE</id><enabled>Y</enabled><name>STARTDATE</name></field><field><id>ENDDATE</id><enabled>Y</enabled><name>ENDDATE</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>DEPDATE</id><enabled>Y</enabled><name>DEPDATE</name></field><field><id>REPLAYDATE</id><enabled>Y</enabled><name>REPLAYDATE</name></field><field><id>LOG_FIELD</id><enabled>Y</enabled><name>LOG_FIELD</name></field><field><id>EXECUTING_SERVER</id><enabled>N</enabled><name>EXECUTING_SERVER</name></field><field><id>EXECUTING_USER</id><enabled>N</enabled><name>EXECUTING_USER</name></field><field><id>CLIENT</id><enabled>N</enabled><name>CLIENT</name></field></trans-log-table>
  31 +<perf-log-table><connection/>
  32 +<schema/>
  33 +<table/>
  34 +<interval/>
  35 +<timeout_days/>
  36 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>SEQ_NR</id><enabled>Y</enabled><name>SEQ_NR</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>INPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>INPUT_BUFFER_ROWS</name></field><field><id>OUTPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>OUTPUT_BUFFER_ROWS</name></field></perf-log-table>
  37 +<channel-log-table><connection/>
  38 +<schema/>
  39 +<table/>
  40 +<timeout_days/>
  41 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>LOGGING_OBJECT_TYPE</id><enabled>Y</enabled><name>LOGGING_OBJECT_TYPE</name></field><field><id>OBJECT_NAME</id><enabled>Y</enabled><name>OBJECT_NAME</name></field><field><id>OBJECT_COPY</id><enabled>Y</enabled><name>OBJECT_COPY</name></field><field><id>REPOSITORY_DIRECTORY</id><enabled>Y</enabled><name>REPOSITORY_DIRECTORY</name></field><field><id>FILENAME</id><enabled>Y</enabled><name>FILENAME</name></field><field><id>OBJECT_ID</id><enabled>Y</enabled><name>OBJECT_ID</name></field><field><id>OBJECT_REVISION</id><enabled>Y</enabled><name>OBJECT_REVISION</name></field><field><id>PARENT_CHANNEL_ID</id><enabled>Y</enabled><name>PARENT_CHANNEL_ID</name></field><field><id>ROOT_CHANNEL_ID</id><enabled>Y</enabled><name>ROOT_CHANNEL_ID</name></field></channel-log-table>
  42 +<step-log-table><connection/>
  43 +<schema/>
  44 +<table/>
  45 +<timeout_days/>
  46 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>LOG_FIELD</id><enabled>N</enabled><name>LOG_FIELD</name></field></step-log-table>
  47 +<metrics-log-table><connection/>
  48 +<schema/>
  49 +<table/>
  50 +<timeout_days/>
  51 +<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>METRICS_DATE</id><enabled>Y</enabled><name>METRICS_DATE</name></field><field><id>METRICS_CODE</id><enabled>Y</enabled><name>METRICS_CODE</name></field><field><id>METRICS_DESCRIPTION</id><enabled>Y</enabled><name>METRICS_DESCRIPTION</name></field><field><id>METRICS_SUBJECT</id><enabled>Y</enabled><name>METRICS_SUBJECT</name></field><field><id>METRICS_TYPE</id><enabled>Y</enabled><name>METRICS_TYPE</name></field><field><id>METRICS_VALUE</id><enabled>Y</enabled><name>METRICS_VALUE</name></field></metrics-log-table>
  52 + </log>
  53 + <maxdate>
  54 + <connection/>
  55 + <table/>
  56 + <field/>
  57 + <offset>0.0</offset>
  58 + <maxdiff>0.0</maxdiff>
  59 + </maxdate>
  60 + <size_rowset>10000</size_rowset>
  61 + <sleep_time_empty>50</sleep_time_empty>
  62 + <sleep_time_full>50</sleep_time_full>
  63 + <unique_connections>N</unique_connections>
  64 + <feedback_shown>Y</feedback_shown>
  65 + <feedback_size>50000</feedback_size>
  66 + <using_thread_priorities>Y</using_thread_priorities>
  67 + <shared_objects_file/>
  68 + <capture_step_performance>N</capture_step_performance>
  69 + <step_performance_capturing_delay>1000</step_performance_capturing_delay>
  70 + <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
  71 + <dependencies>
  72 + </dependencies>
  73 + <partitionschemas>
  74 + </partitionschemas>
  75 + <slaveservers>
  76 + </slaveservers>
  77 + <clusterschemas>
  78 + </clusterschemas>
  79 + <created_user>-</created_user>
  80 + <created_date>2016&#x2f;06&#x2f;23 17&#x3a;44&#x3a;46.781</created_date>
  81 + <modified_user>-</modified_user>
  82 + <modified_date>2016&#x2f;06&#x2f;23 17&#x3a;44&#x3a;46.781</modified_date>
  83 + <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>
  84 + <is_key_private>N</is_key_private>
  85 + </info>
  86 + <notepads>
  87 + </notepads>
  88 + <connection>
  89 + <name>192.168.168.1_jwgl_dw</name>
  90 + <server>192.168.168.1</server>
  91 + <type>ORACLE</type>
  92 + <access>Native</access>
  93 + <database>orcl</database>
  94 + <port>1521</port>
  95 + <username>jwgl_dw</username>
  96 + <password>Encrypted 2be98afc86aa7f2e4cb13b977d2adabcd</password>
  97 + <servername/>
  98 + <data_tablespace/>
  99 + <index_tablespace/>
  100 + <attributes>
  101 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  102 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  103 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  104 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  105 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  106 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  107 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  108 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  109 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  110 + </attributes>
  111 + </connection>
  112 + <connection>
  113 + <name>bus_control_variable</name>
  114 + <server>&#x24;&#x7b;v_db_ip&#x7d;</server>
  115 + <type>MYSQL</type>
  116 + <access>Native</access>
  117 + <database>&#x24;&#x7b;v_db_dname&#x7d;</database>
  118 + <port>3306</port>
  119 + <username>&#x24;&#x7b;v_db_uname&#x7d;</username>
  120 + <password>&#x24;&#x7b;v_db_pwd&#x7d;</password>
  121 + <servername/>
  122 + <data_tablespace/>
  123 + <index_tablespace/>
  124 + <attributes>
  125 + <attribute><code>EXTRA_OPTION_MYSQL.characterEncoding</code><attribute>utf8</attribute></attribute>
  126 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  127 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  128 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  129 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  130 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  131 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  132 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  133 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  134 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  135 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  136 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  137 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  138 + </attributes>
  139 + </connection>
  140 + <connection>
  141 + <name>bus_control_&#x516c;&#x53f8;_201</name>
  142 + <server>localhost</server>
  143 + <type>MYSQL</type>
  144 + <access>Native</access>
  145 + <database>control</database>
  146 + <port>3306</port>
  147 + <username>root</username>
  148 + <password>Encrypted </password>
  149 + <servername/>
  150 + <data_tablespace/>
  151 + <index_tablespace/>
  152 + <attributes>
  153 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  154 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  155 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  156 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  157 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  158 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  159 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  160 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  161 + <attribute><code>STREAM_RESULTS</code><attribute>N</attribute></attribute>
  162 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  163 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  164 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  165 + </attributes>
  166 + </connection>
  167 + <connection>
  168 + <name>bus_control_&#x672c;&#x673a;</name>
  169 + <server>localhost</server>
  170 + <type>MYSQL</type>
  171 + <access>Native</access>
  172 + <database>control</database>
  173 + <port>3306</port>
  174 + <username>root</username>
  175 + <password>Encrypted </password>
  176 + <servername/>
  177 + <data_tablespace/>
  178 + <index_tablespace/>
  179 + <attributes>
  180 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  181 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  182 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  183 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  184 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  185 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  186 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  187 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  188 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  189 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  190 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  191 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  192 + </attributes>
  193 + </connection>
  194 + <connection>
  195 + <name>xlab_mysql_youle</name>
  196 + <server>101.231.124.8</server>
  197 + <type>MYSQL</type>
  198 + <access>Native</access>
  199 + <database>xlab_youle</database>
  200 + <port>45687</port>
  201 + <username>xlab-youle</username>
  202 + <password>Encrypted 2be98afc86aa78a88aa1be369d187a3df</password>
  203 + <servername/>
  204 + <data_tablespace/>
  205 + <index_tablespace/>
  206 + <attributes>
  207 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  208 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  209 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  210 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  211 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  212 + <attribute><code>PORT_NUMBER</code><attribute>45687</attribute></attribute>
  213 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  214 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  215 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  216 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  217 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  218 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  219 + </attributes>
  220 + </connection>
  221 + <connection>
  222 + <name>xlab_mysql_youle&#xff08;&#x672c;&#x673a;&#xff09;</name>
  223 + <server>localhost</server>
  224 + <type>MYSQL</type>
  225 + <access>Native</access>
  226 + <database>xlab_youle</database>
  227 + <port>3306</port>
  228 + <username>root</username>
  229 + <password>Encrypted </password>
  230 + <servername/>
  231 + <data_tablespace/>
  232 + <index_tablespace/>
  233 + <attributes>
  234 + <attribute><code>EXTRA_OPTION_MYSQL.defaultFetchSize</code><attribute>500</attribute></attribute>
  235 + <attribute><code>EXTRA_OPTION_MYSQL.useCursorFetch</code><attribute>true</attribute></attribute>
  236 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  237 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  238 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  239 + <attribute><code>PORT_NUMBER</code><attribute>3306</attribute></attribute>
  240 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  241 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  242 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  243 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>N</attribute></attribute>
  244 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>N</attribute></attribute>
  245 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  246 + </attributes>
  247 + </connection>
  248 + <connection>
  249 + <name>xlab_youle</name>
  250 + <server/>
  251 + <type>MYSQL</type>
  252 + <access>JNDI</access>
  253 + <database>xlab_youle</database>
  254 + <port>1521</port>
  255 + <username/>
  256 + <password>Encrypted </password>
  257 + <servername/>
  258 + <data_tablespace/>
  259 + <index_tablespace/>
  260 + <attributes>
  261 + <attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
  262 + <attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
  263 + <attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
  264 + <attribute><code>PORT_NUMBER</code><attribute>1521</attribute></attribute>
  265 + <attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>N</attribute></attribute>
  266 + <attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
  267 + <attribute><code>STREAM_RESULTS</code><attribute>Y</attribute></attribute>
  268 + <attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
  269 + <attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
  270 + <attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
  271 + </attributes>
  272 + </connection>
  273 + <order>
  274 + <hop> <from>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</from><to>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</to><enabled>Y</enabled> </hop>
  275 + <hop> <from>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</to><enabled>Y</enabled> </hop>
  276 + <hop> <from>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</from><to>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</to><enabled>Y</enabled> </hop>
  277 + </order>
  278 + <step>
  279 + <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>
  280 + <type>ExcelInput</type>
  281 + <description/>
  282 + <distribute>Y</distribute>
  283 + <custom_distribution/>
  284 + <copies>1</copies>
  285 + <partitioning>
  286 + <method>none</method>
  287 + <schema_name/>
  288 + </partitioning>
  289 + <header>Y</header>
  290 + <noempty>Y</noempty>
  291 + <stoponempty>N</stoponempty>
  292 + <filefield/>
  293 + <sheetfield/>
  294 + <sheetrownumfield/>
  295 + <rownumfield/>
  296 + <sheetfield/>
  297 + <filefield/>
  298 + <limit>0</limit>
  299 + <encoding/>
  300 + <add_to_result_filenames>Y</add_to_result_filenames>
  301 + <accept_filenames>Y</accept_filenames>
  302 + <accept_field>filepath_</accept_field>
  303 + <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>
  304 + <file>
  305 + <name/>
  306 + <filemask/>
  307 + <exclude_filemask/>
  308 + <file_required>N</file_required>
  309 + <include_subfolders>N</include_subfolders>
  310 + </file>
  311 + <fields>
  312 + <field>
  313 + <name>&#x8f66;&#x724c;&#x53f7;</name>
  314 + <type>String</type>
  315 + <length>-1</length>
  316 + <precision>-1</precision>
  317 + <trim_type>none</trim_type>
  318 + <repeat>N</repeat>
  319 + <format/>
  320 + <currency/>
  321 + <decimal/>
  322 + <group/>
  323 + </field>
  324 + <field>
  325 + <name>&#x8f66;&#x8f86;&#x7f16;&#x7801;</name>
  326 + <type>String</type>
  327 + <length>-1</length>
  328 + <precision>-1</precision>
  329 + <trim_type>none</trim_type>
  330 + <repeat>N</repeat>
  331 + <format/>
  332 + <currency/>
  333 + <decimal/>
  334 + <group/>
  335 + </field>
  336 + <field>
  337 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  338 + <type>String</type>
  339 + <length>-1</length>
  340 + <precision>-1</precision>
  341 + <trim_type>none</trim_type>
  342 + <repeat>N</repeat>
  343 + <format/>
  344 + <currency/>
  345 + <decimal/>
  346 + <group/>
  347 + </field>
  348 + <field>
  349 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>
  350 + <type>String</type>
  351 + <length>-1</length>
  352 + <precision>-1</precision>
  353 + <trim_type>none</trim_type>
  354 + <repeat>N</repeat>
  355 + <format/>
  356 + <currency/>
  357 + <decimal/>
  358 + <group/>
  359 + </field>
  360 + <field>
  361 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
  362 + <type>String</type>
  363 + <length>-1</length>
  364 + <precision>-1</precision>
  365 + <trim_type>none</trim_type>
  366 + <repeat>N</repeat>
  367 + <format/>
  368 + <currency/>
  369 + <decimal/>
  370 + <group/>
  371 + </field>
  372 + <field>
  373 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>
  374 + <type>String</type>
  375 + <length>-1</length>
  376 + <precision>-1</precision>
  377 + <trim_type>none</trim_type>
  378 + <repeat>N</repeat>
  379 + <format/>
  380 + <currency/>
  381 + <decimal/>
  382 + <group/>
  383 + </field>
  384 + <field>
  385 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
  386 + <type>String</type>
  387 + <length>-1</length>
  388 + <precision>-1</precision>
  389 + <trim_type>none</trim_type>
  390 + <repeat>N</repeat>
  391 + <format/>
  392 + <currency/>
  393 + <decimal/>
  394 + <group/>
  395 + </field>
  396 + <field>
  397 + <name>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</name>
  398 + <type>String</type>
  399 + <length>-1</length>
  400 + <precision>-1</precision>
  401 + <trim_type>none</trim_type>
  402 + <repeat>N</repeat>
  403 + <format/>
  404 + <currency/>
  405 + <decimal/>
  406 + <group/>
  407 + </field>
  408 + <field>
  409 + <name>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</name>
  410 + <type>String</type>
  411 + <length>-1</length>
  412 + <precision>-1</precision>
  413 + <trim_type>none</trim_type>
  414 + <repeat>N</repeat>
  415 + <format/>
  416 + <currency/>
  417 + <decimal/>
  418 + <group/>
  419 + </field>
  420 + </fields>
  421 + <sheets>
  422 + <sheet>
  423 + <name>&#x5de5;&#x4f5c;&#x8868;1</name>
  424 + <startrow>0</startrow>
  425 + <startcol>0</startcol>
  426 + </sheet>
  427 + </sheets>
  428 + <strict_types>N</strict_types>
  429 + <error_ignored>N</error_ignored>
  430 + <error_line_skipped>N</error_line_skipped>
  431 + <bad_line_files_destination_directory/>
  432 + <bad_line_files_extension>warning</bad_line_files_extension>
  433 + <error_line_files_destination_directory/>
  434 + <error_line_files_extension>error</error_line_files_extension>
  435 + <line_number_files_destination_directory/>
  436 + <line_number_files_extension>line</line_number_files_extension>
  437 + <shortFileFieldName/>
  438 + <pathFieldName/>
  439 + <hiddenFieldName/>
  440 + <lastModificationTimeFieldName/>
  441 + <uriNameFieldName/>
  442 + <rootUriNameFieldName/>
  443 + <extensionFieldName/>
  444 + <sizeFieldName/>
  445 + <spreadsheet_type>JXL</spreadsheet_type>
  446 + <cluster_schema/>
  447 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  448 + <xloc>131</xloc>
  449 + <yloc>58</yloc>
  450 + <draw>Y</draw>
  451 + </GUI>
  452 + </step>
  453 +
  454 + <step>
  455 + <name>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</name>
  456 + <type>InsertUpdate</type>
  457 + <description/>
  458 + <distribute>Y</distribute>
  459 + <custom_distribution/>
  460 + <copies>1</copies>
  461 + <partitioning>
  462 + <method>none</method>
  463 + <schema_name/>
  464 + </partitioning>
  465 + <connection>bus_control_variable</connection>
  466 + <commit>1000</commit>
  467 + <update_bypassed>N</update_bypassed>
  468 + <lookup>
  469 + <schema/>
  470 + <table>bsth_c_cars</table>
  471 + <key>
  472 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  473 + <field>inside_code</field>
  474 + <condition>&#x3d;</condition>
  475 + <name2/>
  476 + </key>
  477 + <value>
  478 + <name>car_plate</name>
  479 + <rename>&#x8f66;&#x724c;&#x53f7;</rename>
  480 + <update>Y</update>
  481 + </value>
  482 + <value>
  483 + <name>car_code</name>
  484 + <rename>&#x8f66;&#x8f86;&#x7f16;&#x7801;</rename>
  485 + <update>Y</update>
  486 + </value>
  487 + <value>
  488 + <name>inside_code</name>
  489 + <rename>&#x5185;&#x90e8;&#x7f16;&#x7801;</rename>
  490 + <update>Y</update>
  491 + </value>
  492 + <value>
  493 + <name>company</name>
  494 + <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;</rename>
  495 + <update>Y</update>
  496 + </value>
  497 + <value>
  498 + <name>business_code</name>
  499 + <rename>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</rename>
  500 + <update>Y</update>
  501 + </value>
  502 + <value>
  503 + <name>branche_company</name>
  504 + <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</rename>
  505 + <update>Y</update>
  506 + </value>
  507 + <value>
  508 + <name>branche_company_code</name>
  509 + <rename>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</rename>
  510 + <update>Y</update>
  511 + </value>
  512 + <value>
  513 + <name>supplier_name</name>
  514 + <rename>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</rename>
  515 + <update>Y</update>
  516 + </value>
  517 + <value>
  518 + <name>equipment_code</name>
  519 + <rename>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</rename>
  520 + <update>Y</update>
  521 + </value>
  522 + </lookup>
  523 + <cluster_schema/>
  524 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  525 + <xloc>516</xloc>
  526 + <yloc>138</yloc>
  527 + <draw>Y</draw>
  528 + </GUI>
  529 + </step>
  530 +
  531 + <step>
  532 + <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>
  533 + <type>GetVariable</type>
  534 + <description/>
  535 + <distribute>Y</distribute>
  536 + <custom_distribution/>
  537 + <copies>1</copies>
  538 + <partitioning>
  539 + <method>none</method>
  540 + <schema_name/>
  541 + </partitioning>
  542 + <fields>
  543 + <field>
  544 + <name>filepath_</name>
  545 + <variable>&#x24;&#x7b;filepath&#x7d;</variable>
  546 + <type>String</type>
  547 + <format/>
  548 + <currency/>
  549 + <decimal/>
  550 + <group/>
  551 + <length>-1</length>
  552 + <precision>-1</precision>
  553 + <trim_type>none</trim_type>
  554 + </field>
  555 + <field>
  556 + <name>erroroutputdir_</name>
  557 + <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>
  558 + <type>String</type>
  559 + <format/>
  560 + <currency/>
  561 + <decimal/>
  562 + <group/>
  563 + <length>-1</length>
  564 + <precision>-1</precision>
  565 + <trim_type>none</trim_type>
  566 + </field>
  567 + </fields>
  568 + <cluster_schema/>
  569 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  570 + <xloc>134</xloc>
  571 + <yloc>183</yloc>
  572 + <draw>Y</draw>
  573 + </GUI>
  574 + </step>
  575 +
  576 + <step>
  577 + <name>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</name>
  578 + <type>ExcelOutput</type>
  579 + <description/>
  580 + <distribute>Y</distribute>
  581 + <custom_distribution/>
  582 + <copies>1</copies>
  583 + <partitioning>
  584 + <method>none</method>
  585 + <schema_name/>
  586 + </partitioning>
  587 + <header>Y</header>
  588 + <footer>N</footer>
  589 + <encoding/>
  590 + <append>N</append>
  591 + <add_to_result_filenames>Y</add_to_result_filenames>
  592 + <file>
  593 + <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x8f66;&#x8f86;&#x57fa;&#x7840;&#x4fe1;&#x606f;_&#x9519;&#x8bef;</name>
  594 + <extention>xls</extention>
  595 + <do_not_open_newfile_init>N</do_not_open_newfile_init>
  596 + <create_parent_folder>N</create_parent_folder>
  597 + <split>N</split>
  598 + <add_date>N</add_date>
  599 + <add_time>N</add_time>
  600 + <SpecifyFormat>N</SpecifyFormat>
  601 + <date_time_format/>
  602 + <sheetname>Sheet1</sheetname>
  603 + <autosizecolums>N</autosizecolums>
  604 + <nullisblank>N</nullisblank>
  605 + <protect_sheet>N</protect_sheet>
  606 + <password>Encrypted </password>
  607 + <splitevery>0</splitevery>
  608 + <usetempfiles>N</usetempfiles>
  609 + <tempdirectory/>
  610 + </file>
  611 + <template>
  612 + <enabled>N</enabled>
  613 + <append>N</append>
  614 + <filename>template.xls</filename>
  615 + </template>
  616 + <fields>
  617 + <field>
  618 + <name>&#x8f66;&#x724c;&#x53f7;</name>
  619 + <type>String</type>
  620 + <format/>
  621 + </field>
  622 + <field>
  623 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  624 + <type>String</type>
  625 + <format/>
  626 + </field>
  627 + <field>
  628 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;</name>
  629 + <type>String</type>
  630 + <format/>
  631 + </field>
  632 + <field>
  633 + <name>&#x6240;&#x5c5e;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
  634 + <type>String</type>
  635 + <format/>
  636 + </field>
  637 + <field>
  638 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;</name>
  639 + <type>String</type>
  640 + <format/>
  641 + </field>
  642 + <field>
  643 + <name>&#x6240;&#x5c5e;&#x5206;&#x516c;&#x53f8;&#x4ee3;&#x7801;</name>
  644 + <type>String</type>
  645 + <format/>
  646 + </field>
  647 + <field>
  648 + <name>&#x8bbe;&#x5907;&#x4f9b;&#x5e94;&#x5382;&#x5546;</name>
  649 + <type>String</type>
  650 + <format/>
  651 + </field>
  652 + <field>
  653 + <name>&#x8bbe;&#x5907;&#x7ec8;&#x7aef;&#x53f7;</name>
  654 + <type>String</type>
  655 + <format/>
  656 + </field>
  657 + <field>
  658 + <name>error_count</name>
  659 + <type>Integer</type>
  660 + <format/>
  661 + </field>
  662 + <field>
  663 + <name>error_desc</name>
  664 + <type>String</type>
  665 + <format/>
  666 + </field>
  667 + <field>
  668 + <name>error_column1</name>
  669 + <type>String</type>
  670 + <format/>
  671 + </field>
  672 + <field>
  673 + <name>error_column2</name>
  674 + <type>String</type>
  675 + <format/>
  676 + </field>
  677 + </fields>
  678 + <custom>
  679 + <header_font_name>arial</header_font_name>
  680 + <header_font_size>10</header_font_size>
  681 + <header_font_bold>N</header_font_bold>
  682 + <header_font_italic>N</header_font_italic>
  683 + <header_font_underline>no</header_font_underline>
  684 + <header_font_orientation>horizontal</header_font_orientation>
  685 + <header_font_color>black</header_font_color>
  686 + <header_background_color>none</header_background_color>
  687 + <header_row_height>255</header_row_height>
  688 + <header_alignment>left</header_alignment>
  689 + <header_image/>
  690 + <row_font_name>arial</row_font_name>
  691 + <row_font_size>10</row_font_size>
  692 + <row_font_color>black</row_font_color>
  693 + <row_background_color>none</row_background_color>
  694 + </custom>
  695 + <cluster_schema/>
  696 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  697 + <xloc>328</xloc>
  698 + <yloc>140</yloc>
  699 + <draw>Y</draw>
  700 + </GUI>
  701 + </step>
  702 +
  703 + <step_error_handling>
  704 + <error>
  705 + <source_step>&#x63d2;&#x5165;&#x2f;&#x66f4;&#x65b0;bsth_c_cars 2</source_step>
  706 + <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</target_step>
  707 + <is_enabled>Y</is_enabled>
  708 + <nr_valuename>error_count</nr_valuename>
  709 + <descriptions_valuename>error_desc</descriptions_valuename>
  710 + <fields_valuename>error_column1</fields_valuename>
  711 + <codes_valuename>error_column2</codes_valuename>
  712 + <max_errors/>
  713 + <max_pct_errors/>
  714 + <min_pct_rows/>
  715 + </error>
  716 + </step_error_handling>
  717 + <slave-step-copy-partition-distribution>
  718 +</slave-step-copy-partition-distribution>
  719 + <slave_transformation>N</slave_transformation>
  720 +
  721 +</transformation>
... ...
src/main/resources/static/pages/oil/jyszAdd.html
... ... @@ -123,11 +123,18 @@ $(function(){
123 123 submitHandler : function(f) {
124 124 var params = form.serializeJSON();
125 125 error.hide();
126   - $post('/cwjy', params, function(res){
127   - layer.msg('新增加油设置成功.');
128   - $('#add_jysz').modal('hide');
129   - refreshJsTree();
130   - });
  126 + $get('/cwjy/checkNbbm',params,function(result){
  127 + if(result>0){
  128 + layer.msg('该车辆已经添加.');
  129 + }else{
  130 + $post('/cwjy', params, function(result){
  131 + layer.msg('新增加油设置成功.');
  132 + $('#add_jysz').modal('hide');
  133 + refreshJsTree();
  134 + });
  135 + }
  136 + })
  137 +
131 138 }
132 139 });
133 140  
... ...
src/main/resources/static/pages/report/inoutstation.html
... ... @@ -66,7 +66,7 @@
66 66 <span class="item-label" style="width: 60px;margin-left: 19px;">至: </span>
67 67 <input class="form-control" type="text" id="date2" style="width: 180px;"/>
68 68 <span class="item-label" style="width: 80px;">站点: </span>
69   - <select class="form-control" id="zdlx" class="sreach-zd" >
  69 + <select class="form-control sreach-zd" id="zdlx" >
70 70 <option value="">请选择</option>
71 71 <option value="0">上行</option>
72 72 <option value="1">下行</option>
... ... @@ -426,55 +426,31 @@
426 426 });
427 427 }
428 428 })
  429 + $(".sreach-zd").on("change",initZd);
  430 + var status=false;
429 431  
430   - $(".sreach-zd").click(function(){
  432 + function initZd(){
431 433 var line = $("#line").val();
432 434 var zdlx = $("#zdlx").val();
  435 + console.log(line+"===="+zdlx);
433 436 if(line==null|| line =="" || zdlx ==null || zdlx==""){
434   -
435 437 }else{
436   - $('#zd').select2({
437   - placeholder: '搜索站点...',
438   - ajax: {
439   - url: '/report/sreachZd',
440   - dataType: 'json',
441   - delay: 150,
442   - data: function(params){
443   - return{line: line,zdlx:zdlx,zd:params.term};
444   - },
445   - processResults: function (data) {
446   - return {
447   - results: data
448   - };
449   - },
450   - cache: true
451   - },
452   - templateResult: function(repo){
453   - if (repo.loading) return repo.text;
454   - var h = '<span>'+repo.text+'</span>';
455   - return h;
456   - },
457   - escapeMarkup: function (markup) { return markup; },
458   - minimumInputLength: 1,
459   - templateSelection: function(repo){
460   - return repo.text;
461   - },
462   - language: {
463   - noResults: function(){
464   - return '<span style="color:red;font-size: 12px;">没有搜索到站点!</span>';
465   - },
466   - inputTooShort : function(e) {
467   - return '<span style="color:gray;font-size: 12px;"><i class="fa fa-search"></i> 输入站点名称</span>';
468   - },
469   - searching : function() {
470   - return '<span style="color:gray;font-size: 12px;"> 正在搜索站点...</span>';
471   - }
  438 + $.get('/report/sreachZd',{line: line,zdlx:zdlx},function(result){
  439 + var zdList=result;
  440 + if(status){
  441 + $("#zd").select2("destroy").html('');
472 442 }
473   - });
  443 + console.log(zdList[0]["id"]);
  444 + var datas=[];
  445 + datas.push({id:" ",text:"全部"});
  446 + for(var i=0;i<zdList.length;i++){
  447 + datas.push({id: zdList[i]["id"], text: zdList[i]["text"]});
  448 + }
  449 + initPinYinSelect2('#zd',datas,'');
  450 + status=true;
  451 + })
474 452 }
475   - })
476   -
477   -
  453 + }
478 454  
479 455 $("#export").on("click",function(){
480 456 var rq=$("#date").val();
... ...
src/main/resources/static/real_control_v2/css/line_schedule.css
... ... @@ -17,12 +17,12 @@
17 17 }
18 18  
19 19 .line_schedule .footer-chart {
20   - height: 243px;
  20 + height: 233px;
21 21 margin-top: 5px;
22 22 }
23 23  
24 24 .line_schedule .uk-grid.top-container {
25   - height: calc(100% - 260px);
  25 + height: calc(100% - 250px);
26 26 margin-top: 5px;
27 27 overflow: hidden;
28 28 }
... ... @@ -127,7 +127,7 @@
127 127 }
128 128  
129 129 .schedule-body {
130   - height: calc(100% - 37px);
  130 + height: calc(100% - 31px);
131 131 background: #fff;
132 132 }
133 133  
... ...
src/main/resources/static/real_control_v2/css/main.css
... ... @@ -1158,3 +1158,8 @@ ul.left_tabs_lg li{
1158 1158 padding: 2px 7px;
1159 1159 border-radius: 3px;
1160 1160 }
  1161 +
  1162 +.uk-badge.sch_ldks{
  1163 + background: #8c8c8c;
  1164 + background-image: linear-gradient(to bottom,#a7a7a7,#8c8c8c);
  1165 +}
... ...
src/main/resources/static/real_control_v2/css/north.css
... ... @@ -2,6 +2,7 @@
2 2 /*height: 120px;*/
3 3 position: relative;
4 4 transition: all .3s ease;
  5 + padding-bottom: 0;
5 6 }
6 7  
7 8 .north.main {
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/badge_tooltip.html
... ... @@ -61,4 +61,12 @@
61 61 </div>
62 62 </div>
63 63 </script>
  64 +
  65 + <script id="sch-table-ldks-tootip-temp" type="text/html">
  66 + <div class="tl-tip-panel">
  67 + <div style="font-size: 13px;">
  68 + {{qdzName}} 空驶至 {{zdzName}}
  69 + </div>
  70 + </div>
  71 + </script>
64 72 </div>
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/dftz.html
... ... @@ -115,6 +115,10 @@
115 115 (function() {
116 116 var modal = '#schedule-dftz-modal'
117 117 ,sch;
  118 +
  119 + var isInout = function (code) {
  120 + return code=='out' || code=='in';
  121 + };
118 122 $(modal).on('init', function(e, data) {
119 123 e.stopPropagation();
120 124 sch=data.sch;
... ... @@ -125,12 +129,12 @@
125 129 var bctypes=dictionaryUtils.getByGroup('ScheduleType')
126 130 ,opts='';
127 131  
128   - if(sch.bcType == 'out' || sch.bcType == 'in'){
  132 + if(isInout(sch.bcType)){
129 133 $('[name=bcType]', modal).html('<option value="'+sch.bcType+'">'+bctypes[sch.bcType]+'</option>');
130 134 }
131 135 else{
132 136 for(var code in bctypes){
133   - if(code!='venting' && code!='major' && code != 'normal')
  137 + if(isInout(code))
134 138 continue;
135 139 opts+='<option value="'+code+'">'+bctypes[code]+'</option>';
136 140 }
... ... @@ -166,10 +170,12 @@
166 170 url='/real_control_v2/fragments/line_schedule/context_menu/bc_type_venting.html';
167 171 detailModal='#bctype-venting-modal';
168 172 }
169   - else{
  173 + else if(type=='major'){
170 174 detailModal='#bctype-major-modal';
171 175 url='/real_control_v2/fragments/line_schedule/context_menu/bc_type_major.html';
172 176 }
  177 + else
  178 + return;
173 179  
174 180 $.get(url, function(htmlStr){
175 181 $(document.body).append(htmlStr);
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/context_menu/lj_zrw.html
... ... @@ -99,6 +99,8 @@
99 99 <span class="uk-badge uk-badge-danger">放站</span>
100 100 {{else if sch.bcType == "region"}}
101 101 <span class="uk-badge">区间</span>
  102 + {{else if sch.bcType == "ldks"}}
  103 + <span class="uk-badge sch_ldks">空驶</span>
102 104 {{/if}}
103 105 {{if sch.sflj}}
104 106 <span class="uk-badge uk-badge-danger">临加</span>
... ...
src/main/resources/static/real_control_v2/fragments/line_schedule/sch_table.html
... ... @@ -74,6 +74,8 @@
74 74 <span class="uk-badge uk-badge-danger">放站</span>
75 75 {{else if sch.bcType == "region"}}
76 76 <span class="uk-badge sch_region">区间</span>
  77 + {{else if sch.bcType == "ldks"}}
  78 + <span class="uk-badge sch_ldks">空驶</span>
77 79 {{/if}}
78 80 {{if sch.sflj}}
79 81 <span class="uk-badge uk-badge-danger">临加</span>
... ... @@ -126,12 +128,14 @@
126 128 <span class="uk-badge uk-badge-danger">放站</span>
127 129 {{else if bcType == "region"}}
128 130 <span class="uk-badge sch_region">区间</span>
  131 + {{else if bcType == "ldks"}}
  132 + <span class="uk-badge uk-badge-notification sch_ldks">空驶</span>
129 133 {{/if}}
130 134 {{if sflj}}
131 135 <span class="uk-badge uk-badge-danger">临加</span>
132 136 {{/if}}
133 137 {{if cTasks.length > 0}}
134   - <span class="uk-badge uk-badge-notification c_task">{{cTasks.length}}</span>
  138 + <span class="uk-badge c_task">{{cTasks.length}}</span>
135 139 {{/if}}
136 140 </dd>
137 141 </script>
... ...
src/main/resources/static/real_control_v2/fragments/north/nav/history_sch/edit.html deleted 100644 → 0
1   -<div class="uk-modal ct-form-modal ct_move_modal" id="history-sch-edit-modal">
2   - <div class="uk-modal-dialog" style="width: 900px;">
3   - <a href="" class="uk-modal-close uk-close"></a>
4   - <div class="uk-modal-header">
5   - <h2>历史班次编辑</h2></div>
6   - <form class="uk-form uk-form-horizontal">
7   - </form>
8   - </div>
9   -
10   - <script id="history-sch-edit-form-temp" type="text/html">
11   - <input type="hidden" name="id" value="{{id}}"/>
12   -
13   - <div class="uk-grid">
14   - <div class="uk-width-1-3">
15   - <div class="uk-form-row">
16   - <label class="uk-form-label" >班次类型</label>
17   - <div class="uk-form-controls">
18   - <select class="form-control nt-dictionary" disabled data-code="{{bcType}}" name="bcType" data-group=ScheduleType></select>
19   - </div>
20   - </div>
21   - </div>
22   - <div class="uk-width-1-3">
23   - <div class="uk-form-row">
24   - <label class="uk-form-label" >起点</label>
25   - <div class="uk-form-controls">
26   - <input type="text" value="{{qdzName}}" disabled>
27   - </div>
28   - </div>
29   - </div>
30   - <div class="uk-width-1-3">
31   - <div class="uk-form-row">
32   - <label class="uk-form-label" >终点</label>
33   - <div class="uk-form-controls">
34   - <input type="text" value="{{zdzName}}" disabled>
35   - </div>
36   - </div>
37   - </div>
38   - </div>
39   -
40   - <div class="uk-grid">
41   - <div class="uk-width-1-3">
42   - <div class="uk-form-row">
43   - <label class="uk-form-label" >车辆</label>
44   - <div class="uk-form-controls">
45   - <div class="uk-autocomplete uk-form car-autocom">
46   - <input type="text" value="{{clZbh}}" name="clZbh" required>
47   - </div>
48   - </div>
49   - </div>
50   - </div>
51   - <div class="uk-width-1-3">
52   - <div class="uk-form-row">
53   - <label class="uk-form-label" >驾驶员</label>
54   - <div class="uk-form-controls">
55   - <div class="uk-autocomplete uk-form jsy-autocom">
56   - <input type="text" value="{{jGh}}/{{jName}}" name="jsy" required>
57   - </div>
58   - </div>
59   - </div>
60   - </div>
61   - </div>
62   -
63   - <div class="uk-grid">
64   - <div class="uk-width-1-3">
65   - <div class="uk-form-row">
66   - <label class="uk-form-label" >计发</label>
67   - <div class="uk-form-controls">
68   - <input type="text" value="{{fcsj}}" disabled>
69   - </div>
70   - </div>
71   - </div>
72   - <div class="uk-width-1-3">
73   - <div class="uk-form-row">
74   - <label class="uk-form-label" >待发</label>
75   - <div class="uk-form-controls">
76   - <input type="text" name="dfsj" value="{{dfsj}}" required>
77   - </div>
78   - </div>
79   - </div>
80   - <div class="uk-width-1-3">
81   - <div class="uk-form-row">
82   - <label class="uk-form-label" >实发</label>
83   - <div class="uk-form-controls">
84   - <input type="text" name="fcsjActual" value="{{fcsjActual}}" >
85   - </div>
86   - </div>
87   - </div>
88   - </div>
89   -
90   - <div class="uk-grid">
91   - <div class="uk-width-1-3">
92   - <div class="uk-form-row">
93   - <label class="uk-form-label" >计划里程</label>
94   - <div class="uk-form-controls">
95   - <input type="text" value="{{jhlc}}" disabled>
96   - </div>
97   - </div>
98   - </div>
99   - <div class="uk-width-1-3">
100   - <div class="uk-form-row">
101   - <label class="uk-form-label" >计划终点</label>
102   - <div class="uk-form-controls">
103   - <input type="text" value="{{zdsj}}" disabled>
104   - </div>
105   - </div>
106   - </div>
107   - <div class="uk-width-1-3">
108   - <div class="uk-form-row">
109   - <label class="uk-form-label" >实际终点</label>
110   - <div class="uk-form-controls">
111   - <input type="text" name="zdsjActual" value="{{zdsjActual}}" >
112   - </div>
113   - </div>
114   - </div>
115   - </div>
116   -
117   - <div class="uk-grid">
118   - <div class="uk-width-1-1">
119   - <div class="uk-form-row ct-stacked">
120   - <label class="uk-form-label" >备注</label>
121   - <div class="uk-form-controls" style="margin-top: 5px;">
122   - <textarea id="form-s-t" cols="30" rows="5" name="remarks" data-fv-stringlength="true" data-fv-stringlength-max="100" placeholder="备注">{{remarks}}</textarea>
123   - </div>
124   - </div>
125   - </div>
126   - </div>
127   - <div class="uk-modal-footer uk-text-right" style="margin-bottom: -20px;">
128   - <button type="button" class="uk-button uk-modal-close">取消</button>
129   - <button type="submit" class="uk-button uk-button-primary"><i class="uk-icon-check"></i> &nbsp;保存</button>
130   - </div>
131   - </script>
132   -
133   - <script>
134   - (function() {
135   - var modal = '#history-sch-edit-modal'
136   - ,sch,parentModal;
137   - $(modal).on('init', function(e, data) {
138   - var id = data.id;
139   - parentModal=data.parentModal;
140   -
141   - $.get('/realSchedule/'+id, function (sch) {
142   - var htmlStr = template('history-sch-edit-form-temp', sch);
143   - $('form', modal).html(htmlStr);
144   -
145   - //字典转换
146   - dictionaryUtils.transformDom($('.nt-dictionary', modal));
147   -
148   - //----------- Autocomplete --------------
149   - $.get('/basic/cars', function(rs) {
150   - //车辆
151   - gb_common.carAutocomplete($('.car-autocom', modal), rs);
152   - });
153   - $.get('/basic/all_personnel', function(rs) {
154   - //驾驶员
155   - gb_common.personAutocomplete($('.jsy-autocom', modal), rs);
156   - //售票员
157   - gb_common.personAutocomplete($('.spy-autocom', modal), rs);
158   - });
159   -
160   -
161   - //submit
162   - var f = $('form', modal).formValidation(gb_form_validation_opts);
163   - f.on('success.form.fv', function(e) {
164   - e.preventDefault();
165   - var data = $(this).serializeJSON();
166   -
167   - //拆分驾驶员工号和姓名
168   - data.jGh = data.jsy.split('/')[0];
169   - data.jName = data.jsy.split('/')[1];
170   - delete data.jsy;
171   - //拆分售票员工号和姓名
172   - if(data.sGh != null){
173   - data.sGh = data.spy.split('/')[0];
174   - data.sName = data.spy.split('/')[1];
175   - delete data.spy;
176   - }
177   -
178   - gb_common.$post('/realSchedule/history', data, function (rs) {
179   - //console.log(rs);
180   - UIkit.modal(modal).hide();
181   - $(parentModal).trigger('refresh');
182   - });
183   - });
184   - });
185   - });
186   - })();
187   - </script>
188   -</div>
src/main/resources/static/real_control_v2/fragments/north/nav/history_sch_maintain.html
... ... @@ -86,6 +86,8 @@
86 86 <span class="uk-badge uk-badge-danger">放站</span>
87 87 {{else if sch.bcType == "region"}}
88 88 <span class="uk-badge sch_region">区间</span>
  89 + {{else if sch.bcType == "ldks"}}
  90 + <span class="uk-badge sch_ldks">空驶</span>
89 91 {{/if}}
90 92 {{if sch.sflj}}
91 93 <span class="uk-badge uk-badge-danger">临加</span>
... ...
src/main/resources/static/real_control_v2/fragments/north/toolbar.html
... ... @@ -55,7 +55,7 @@
55 55 </li>
56 56 {{/each}}
57 57 </ul>
58   - <a class="uk-navbar-brand op-beijingtime-time" title="每次秒数到0与服务器同步一次,睡眠状态唤醒会短暂异常,可鼠标右击横幅任意区域立刻同步!">
  58 + <a class="uk-navbar-brand op-beijingtime-time" >
59 59 <span></span>
60 60 </a>
61 61 <div class="uk-navbar-content uk-navbar-flip uk-hidden-small" style="padding-left: 0;">
... ...
src/main/resources/static/real_control_v2/js/line_schedule/badge_tooltip.js
... ... @@ -2,6 +2,36 @@
2 2 /** badge 悬停 tip 相关 */
3 3 var gb_schedule_badge_tootip = (function () {
4 4  
  5 + var _opts = {
  6 + show:{
  7 + ready: true,
  8 + delay: 300
  9 + },
  10 + position: {
  11 + viewport: $(window),
  12 + my: 'center left',
  13 + at: 'center right'
  14 + },
  15 + hide: {
  16 + fixed: true,
  17 + delay: 300
  18 + },
  19 + events: {
  20 + hidden: function(event, api) {
  21 + //destroy dom
  22 + $(this).qtip('destroy', true);
  23 + }
  24 + }
  25 + };
  26 +
  27 + var getSch = function (e) {
  28 + var id = $(e).parents('dl').data('id'),
  29 + lineCode = $(e).parents('li.line_schedule').data('id'),
  30 + sch = gb_schedule_table.findScheduleByLine(lineCode)[id];
  31 + return sch;
  32 + };
  33 +
  34 + var _badge = '.schedule-wrap .ct_table_body .uk-badge';
5 35 var temps;
6 36 //html 模板
7 37 $.get('/real_control_v2/fragments/line_schedule/badge_tooltip.html', function(dom) {
... ... @@ -9,18 +39,13 @@ var gb_schedule_badge_tootip = (function () {
9 39 });
10 40  
11 41 //子任务 tootip
12   - $(document).on('mouseenter', '.schedule-wrap .ct_table_body .uk-badge.c_task', function() {
  42 + $(document).on('mouseenter', _badge + '.c_task', function() {
13 43 $(this).qtip({
14   - show: {
15   - ready: true,
16   - delay: 300
17   - },
  44 + show: _opts.show,
18 45 content: {
19 46 text: function() {
20   - var id = $(this).parents('dl').data('id'),
21   - lineCode = $(this).parents('li.line_schedule').data('id'),
22   - sch = gb_schedule_table.findScheduleByLine(lineCode)[id];
23   - //排序
  47 + var sch = getSch(this);
  48 + //子任务排序
24 49 var array = sch.cTasks.sort(function (a, b) {
25 50 var an = (a.mileageType=='service'?1:0)+''+(a.destroy?0:1);
26 51 var bn = (b.mileageType=='service'?1:0)+''+(b.destroy?0:1);
... ... @@ -29,134 +54,86 @@ var gb_schedule_badge_tootip = (function () {
29 54 return temps['sch-table-task-tootip-temp']({tasks: array});
30 55 }
31 56 },
32   - position: {
33   - viewport: $(window),
34   - my: 'center left',
35   - at: 'center right'
36   - },
  57 + position: _opts.position,
37 58 style: {
38 59 classes: 'qtip-light qtip-rounded qtip-shadow sch-badge-tip'
39 60 },
40   - hide: {
41   - fixed: true,
42   - delay: 300
43   - },
44   - events: {
45   - hidden: function(event, api) {
46   - //destroy dom
47   - $(this).qtip('destroy', true);
48   - }
49   - }
  61 + hide: _opts.hide,
  62 + events: _opts.events
50 63 });
51 64 });
52 65  
53 66 //区间 tootip
54   - $(document).on('mouseenter', '.schedule-wrap .ct_table_body .uk-badge.sch_region', function() {
  67 + $(document).on('mouseenter', _badge+'.sch_region', function() {
55 68 $(this).qtip({
56   - show: {
57   - ready: true,
58   - delay: 300
59   - },
  69 + show: _opts.show,
60 70 content: {
61 71 text: function() {
62   - var id = $(this).parents('dl').data('id'),
63   - lineCode = $(this).parents('li.line_schedule').data('id'),
64   - sch = gb_schedule_table.findScheduleByLine(lineCode)[id];
65   - return temps['sch-table-region-tootip-temp'](sch);
  72 + return temps['sch-table-region-tootip-temp'](getSch(this));
66 73 }
67 74 },
68   - position: {
69   - viewport: $(window),
70   - my: 'center left',
71   - at: 'center right'
72   - },
  75 + position: _opts.position,
73 76 style: {
74 77 classes: 'qtip-youtube sch-badge-tip'
75 78 },
76   - hide: {
77   - fixed: true,
78   - delay: 300
79   - },
80   - events: {
81   - hidden: function(event, api) {
82   - //destroy dom
83   - $(this).qtip('destroy', true);
84   - }
85   - }
  79 + hide: _opts.hide,
  80 + events: _opts.events
86 81 });
87 82 });
88 83  
89 84  
90 85 //出场 tootip
91   - $(document).on('mouseenter', '.schedule-wrap .ct_table_body .uk-badge.out', function() {
  86 + $(document).on('mouseenter', _badge+'.out', function() {
92 87 $(this).qtip({
93   - show: {
94   - ready: true,
95   - delay: 300
96   - },
  88 + show: _opts.show,
97 89 content: {
98 90 text: function() {
99   - var id = $(this).parents('dl').data('id'),
100   - lineCode = $(this).parents('li.line_schedule').data('id'),
101   - sch = gb_schedule_table.findScheduleByLine(lineCode)[id];
102   - return temps['sch-table-out-tootip-temp'](sch);
  91 + return temps['sch-table-out-tootip-temp'](getSch(this));
103 92 }
104 93 },
105   - position: {
106   - viewport: $(window),
107   - my: 'center left',
108   - at: 'center right'
109   - },
  94 + position: _opts.position,
110 95 style: {
111 96 classes: 'qtip-youtube sch-badge-tip'
112 97 },
113   - hide: {
114   - fixed: true,
115   - delay: 300
116   - },
117   - events: {
118   - hidden: function(event, api) {
119   - //destroy dom
120   - $(this).qtip('destroy', true);
121   - }
122   - }
  98 + hide: _opts.hide,
  99 + events: _opts.events
123 100 });
124 101 });
125 102  
126 103  
127 104 //进场 tootip
128   - $(document).on('mouseenter', '.schedule-wrap .ct_table_body .uk-badge.in', function() {
  105 + $(document).on('mouseenter', _badge+'.in', function() {
129 106 $(this).qtip({
130   - show: {
131   - ready: true,
132   - delay: 300
133   - },
  107 + show: _opts.show,
134 108 content: {
135 109 text: function() {
136   - var id = $(this).parents('dl').data('id'),
137   - lineCode = $(this).parents('li.line_schedule').data('id'),
138   - sch = gb_schedule_table.findScheduleByLine(lineCode)[id];
139   - return temps['sch-table-in-tootip-temp'](sch);
  110 + return temps['sch-table-in-tootip-temp'](getSch(this));
140 111 }
141 112 },
142   - position: {
143   - viewport: $(window),
144   - my: 'center left',
145   - at: 'center right'
146   - },
  113 + position: _opts.position,
147 114 style: {
148 115 classes: 'qtip-youtube sch-badge-tip'
149 116 },
150   - hide: {
151   - fixed: true,
152   - delay: 300
153   - },
154   - events: {
155   - hidden: function(event, api) {
156   - //destroy dom
157   - $(this).qtip('destroy', true);
  117 + hide: _opts.hide,
  118 + events: _opts.events
  119 + });
  120 + });
  121 +
  122 + //2点间空放
  123 + $(document).on('mouseenter', _badge+'.sch_ldks', function() {
  124 + $(this).qtip({
  125 + show: _opts.show,
  126 + content: {
  127 + text: function() {
  128 + return temps['sch-table-ldks-tootip-temp'](getSch(this));
158 129 }
159   - }
  130 + },
  131 + position: _opts.position,
  132 + style: {
  133 + classes: 'qtip-shadow qtip-bootstrap sch-badge-tip'
  134 + },
  135 + hide: _opts.hide,
  136 + events: _opts.events
160 137 });
161 138 });
162 139 })();
163 140 \ No newline at end of file
... ...
src/main/resources/static/real_control_v2/js/main.js
... ... @@ -170,7 +170,7 @@ function showUpdateDescription() {
170 170 //更新说明
171 171 var updateDescription = {
172 172 date: '2017-05-16',
173   - text: '<h5>菜单栏加入了服务器时间</h5>'
  173 + text: '<h5>修复了进出场班次公里设置为0后自动烂班的问题</h5>'
174 174 };
175 175  
176 176 var storage = window.localStorage
... ...
src/main/resources/static/real_control_v2/js/minute_timer.js deleted 100644 → 0
1   -/** 时钟 */
2   -var gb_minute_timer = (function () {
3   -
4   -
5   - var getServerTime = function (cb) {
6   - function oncallback(jqXHR) {
7   - var time = jqXHR && jqXHR.getResponseHeader("Date");
8   - if (time)
9   - callback(new Date(time))
10   - }
11   -
12   - if ("function" == typeof callback)
13   - $.ajax({
14   - url: "/real_control_v2/assets/imgs/time.gif",
15   - type: "HEAD"
16   - }).done(function (data, textStatus, jqXHR) {
17   - oncallback(jqXHR)
18   - }).fail(function (jqXHR, textStatus, errorThrown) {
19   - oncallback(jqXHR)
20   - })
21   - };
22   -
23   -
24   - setTimeout(function () {
25   - getServerTime(function () {
26   - console.log('cb,,', cb);
27   - });
28   - }, 5000);
29   -
30   -})();
31 0 \ No newline at end of file
src/main/resources/static/real_control_v2/js/north/second_timer.js
1   -/**
2   - * 工具栏上的时钟
3   - * @type {{}}
4   - */
5   -var gb_second_timer = (function () {
6   -
7   - var now;
8   - var _this;
9   - var secondTimer;
10   - var contextFlag;
11   -
12   - var init = function () {
13   - _this = $('.op-beijingtime-time>span')[0];
14   - getServerTime(function (time) {
15   - now = time;
16   - $('div.north').bind("contextmenu", function () {
17   - contextFlag = true;
18   - });
19   - setTime();
20   -
21   - secondTimer = window.setInterval(function () {
22   - if(0 == now.getSeconds() || true == contextFlag){
23   - minuteTimer();
24   - contextFlag = false;
25   - }
26   -
27   - now = new Date(now.getTime() + 1e3);
28   - setTime();
29   - }, 1e3);
30   - });
31   - };
32   -
33   - var getServerTime = function (callback) {
34   - function oncallback(jqXHR) {
35   - var time = jqXHR && jqXHR.getResponseHeader("Date");
36   - if (time)
37   - callback(new Date(time))
38   - }
39   -
40   - if ("function" == typeof callback)
41   - $.ajax({
42   - url: "/real_control_v2/assets/imgs/time.gif",
43   - type: "HEAD"
44   - }).done(function (data, textStatus, jqXHR) {
45   - oncallback(jqXHR)
46   - }).fail(function (jqXHR, textStatus, errorThrown) {
47   - oncallback(jqXHR)
48   - })
49   - };
50   -
51   - var timeFormat = function(str) {
52   - return ("0" + str).slice(-2)
53   - };
54   -
55   - var setTime = function () {
56   - _this.innerHTML = timeFormat(now.getHours()) + ':' + timeFormat(now.getMinutes()) + '.' + timeFormat(now.getSeconds());
57   - };
58   -
59   - var minuteTimer = function () {
60   - getServerTime(function(time) {
61   - now = time;
62   - setTime()
63   - })
64   - };
65   -
66   - window.setTimeout(init, 6000);
  1 +/**
  2 + * 工具栏上的时钟
  3 + * @type {{}}
  4 + */
  5 +var gb_second_timer = (function () {
  6 +
  7 + var now;
  8 + var _this;
  9 + var secondTimer;
  10 + var contextFlag;
  11 +
  12 + var init = function () {
  13 + _this = $('.op-beijingtime-time>span')[0];
  14 + getServerTime(function (time) {
  15 + now = time;
  16 + $('div.north').bind("contextmenu", function () {
  17 + contextFlag = true;
  18 + });
  19 + setTime();
  20 +
  21 + secondTimer = window.setInterval(function () {
  22 + if (0 == now.getSeconds() || true == contextFlag) {
  23 + minuteTimer();
  24 + contextFlag = false;
  25 + }
  26 +
  27 + now = new Date(now.getTime() + 1e3);
  28 + setTime();
  29 + }, 1e3);
  30 + });
  31 + };
  32 +
  33 + var getServerTime = function (callback) {
  34 + function oncallback(jqXHR) {
  35 + var time = jqXHR && jqXHR.getResponseHeader("Date");
  36 + if (time)
  37 + callback(new Date(time))
  38 + }
  39 +
  40 + if ("function" == typeof callback)
  41 + $.ajax({
  42 + url: "/real_control_v2/assets/imgs/time.gif",
  43 + type: "HEAD"
  44 + }).done(function (data, textStatus, jqXHR) {
  45 + oncallback(jqXHR)
  46 + }).fail(function (jqXHR, textStatus, errorThrown) {
  47 + oncallback(jqXHR)
  48 + })
  49 + };
  50 +
  51 + var timeFormat = function (str) {
  52 + return ("0" + str).slice(-2)
  53 + };
  54 +
  55 + var setTime = function () {
  56 + _this.innerHTML = timeFormat(now.getHours()) + ':' + timeFormat(now.getMinutes()) + '.' + timeFormat(now.getSeconds());
  57 + };
  58 +
  59 + var minuteTimer = function () {
  60 + getServerTime(function (time) {
  61 + now = time;
  62 + setTime()
  63 + })
  64 + };
  65 +
  66 + window.setTimeout(init, 6000);
  67 +
  68 +/* $(document).on('mouseenter', '.op-beijingtime-time', function () {
  69 + $(this).qtip({
  70 + show: {ready: true, delay: 300},
  71 + content: {
  72 + text: function () {
  73 + return '<div class="tl-tip-panel">' +
  74 + '<div style="font-size: 13px;">' +
  75 + '每次秒数到0与服务器同步一次<br>服务器每10分钟与国家授时中心标准时间同步一次<br>睡眠状态唤醒会短暂异常,可鼠标右击横幅任意区域立刻同步' +
  76 + '</div>' +
  77 + '</div>';
  78 + }
  79 + },
  80 + position: {
  81 + viewport: $(window),
  82 + my: 'top center',
  83 + at: 'bottom center'
  84 + },
  85 + style: {
  86 + classes: 'qtip-shadow qtip-tipped sch-badge-tip'
  87 + },
  88 + hide: {fixed: true, delay: 300},
  89 + events: {
  90 + hidden: function(event, api) {
  91 + //destroy dom
  92 + $(this).qtip('destroy', true);
  93 + }
  94 + }
  95 + });
  96 + });*/
67 97 })();
68 98 \ No newline at end of file
... ...
src/main/resources/static/real_control_v2/main.html
... ... @@ -184,8 +184,6 @@
184 184 <script src="/real_control_v2/js/websocket/sch_websocket.js" merge="custom_js"></script>
185 185 <!-- tts -->
186 186 <script src="/real_control_v2/js/utils/tts.js" merge="custom_js"></script>
187   -<!-- minute_timer.js -->
188   -<script src="/real_control_v2/js/minute_timer.js" merge="custom_js"></script>
189 187  
190 188 <!-- echart -->
191 189 <script src="/real_control_v2/assets/echarts-3/echarts.js" merge="plugins"></script>
... ...