Commit 199915a65f4b017851225e6230cf9c964e24ed77

Authored by 廖磊
2 parents deab9798 2ea9f571

Merge branch 'minhang' of

http://222.66.0.204:8090/panzhaov5/bsth_control into minhang
src/main/java/com/bsth/service/schedule/impl/BServiceImpl.java
@@ -4,11 +4,9 @@ import com.bsth.entity.search.CustomerSpecs; @@ -4,11 +4,9 @@ import com.bsth.entity.search.CustomerSpecs;
4 import com.bsth.repository.BaseRepository; 4 import com.bsth.repository.BaseRepository;
5 import com.bsth.service.schedule.BService; 5 import com.bsth.service.schedule.BService;
6 import com.bsth.service.schedule.exception.ScheduleException; 6 import com.bsth.service.schedule.exception.ScheduleException;
7 -import com.bsth.service.schedule.utils.DataToolsService;  
8 import org.slf4j.Logger; 7 import org.slf4j.Logger;
9 import org.slf4j.LoggerFactory; 8 import org.slf4j.LoggerFactory;
10 import org.springframework.beans.factory.annotation.Autowired; 9 import org.springframework.beans.factory.annotation.Autowired;
11 -import org.springframework.beans.factory.annotation.Qualifier;  
12 import org.springframework.beans.factory.annotation.Value; 10 import org.springframework.beans.factory.annotation.Value;
13 import org.springframework.data.domain.Page; 11 import org.springframework.data.domain.Page;
14 import org.springframework.data.domain.Pageable; 12 import org.springframework.data.domain.Pageable;
@@ -32,10 +30,6 @@ public class BServiceImpl<T, ID extends Serializable> implements BService<T, ID> @@ -32,10 +30,6 @@ public class BServiceImpl<T, ID extends Serializable> implements BService<T, ID>
32 @Value("${hibernate.jdbc.batch_size}") 30 @Value("${hibernate.jdbc.batch_size}")
33 private int batchSize; 31 private int batchSize;
34 32
35 - @Autowired  
36 - @Qualifier(value = "dataToolsServiceImpl")  
37 - private DataToolsService dataToolsService;  
38 -  
39 /** 日志记录器 */ 33 /** 日志记录器 */
40 protected Logger logger = LoggerFactory.getLogger(this.getClass()); 34 protected Logger logger = LoggerFactory.getLogger(this.getClass());
41 35
src/main/resources/datatools/ktrs/legecy/scheduleRuleDataInput_insertupdate.ktr 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<transformation>
  3 + <info>
  4 + <name>&#x6392;&#x73ed;&#x89c4;&#x5219;&#x4fe1;&#x606f;&#x5bfc;&#x5165;</name>
  5 + <description/>
  6 + <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>&#x2f;Users&#x2f;xu&#x2f;resource&#x2f;project_code&#x2f;bsth_project&#x2f;bsth_control_etl&#x2f;&#x5bfc;&#x5165;&#x5bfc;&#x51fa;1</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>&#x2f;Users&#x2f;xu&#x2f;resource&#x2f;project_code&#x2f;bsth_project&#x2f;bsth_control_etl&#x2f;&#x5bfc;&#x5165;&#x5bfc;&#x51fa;1&#x2f;&#x6392;&#x7248;&#x89c4;&#x5219;&#x4fe1;&#x606f;.xls</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>2017&#x2f;01&#x2f;09 10&#x3a;10&#x3a;36.915</created_date>
  81 + <modified_user>-</modified_user>
  82 + <modified_date>2017&#x2f;01&#x2f;09 10&#x3a;10&#x3a;36.915</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>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</from><to>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</to><enabled>Y</enabled> </hop>
  276 + <hop> <from>&#x62c6;&#x5206;&#x8def;&#x724c;&#x8303;&#x56f4;</from><to>&#x8def;&#x724c;id&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>
  277 + <hop> <from>&#x6392;&#x5e8f;&#x8bb0;&#x5f55;</from><to>&#x5206;&#x7ec4;&#x5408;&#x5e76;&#x8def;&#x724c;id</to><enabled>Y</enabled> </hop>
  278 + <hop> <from>&#x5206;&#x7ec4;&#x5408;&#x5e76;&#x8def;&#x724c;id</from><to>&#x62c6;&#x5206;&#x4eba;&#x5458;&#x8303;&#x56f4;</to><enabled>Y</enabled> </hop>
  279 + <hop> <from>&#x62c6;&#x5206;&#x4eba;&#x5458;&#x8303;&#x56f4;</from><to>&#x62c6;&#x5206;&#x5206;&#x73ed;&#x642d;&#x73ed;&#x7f16;&#x7801;&#x5b57;&#x6bb5;</to><enabled>Y</enabled> </hop>
  280 + <hop> <from>&#x62c6;&#x5206;&#x5206;&#x73ed;&#x642d;&#x73ed;&#x7f16;&#x7801;&#x5b57;&#x6bb5;</from><to>&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>
  281 + <hop> <from>&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x67e5;&#x8be2;</from><to>&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x67e5;&#x8be2; 2</to><enabled>Y</enabled> </hop>
  282 + <hop> <from>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</from><to>&#x7ebf;&#x8def;id&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>
  283 + <hop> <from>&#x7ebf;&#x8def;id&#x67e5;&#x8be2;</from><to>&#x8fc7;&#x6ee4;&#x7ebf;&#x8def;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>
  284 + <hop> <from>&#x8fc7;&#x6ee4;&#x7ebf;&#x8def;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</from><to>&#x8f66;&#x8f86;&#x914d;&#x7f6e;id&#x67e5;&#x8be2;</to><enabled>Y</enabled> </hop>
  285 + <hop> <from>&#x8f66;&#x8f86;&#x914d;&#x7f6e;id&#x67e5;&#x8be2;</from><to>&#x8fc7;&#x6ee4;&#x8f66;&#x8f86;&#x914d;&#x7f6e;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>
  286 + <hop> <from>&#x8fc7;&#x6ee4;&#x8f66;&#x8f86;&#x914d;&#x7f6e;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</from><to>&#x62c6;&#x5206;&#x8def;&#x724c;&#x8303;&#x56f4;</to><enabled>Y</enabled> </hop>
  287 + <hop> <from>&#x8def;&#x724c;id&#x67e5;&#x8be2;</from><to>&#x8fc7;&#x6ee4;&#x8def;&#x724c;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>
  288 + <hop> <from>&#x8fc7;&#x6ee4;&#x8def;&#x724c;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</from><to>&#x6392;&#x5e8f;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>
  289 + <hop> <from>&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x67e5;&#x8be2; 2</from><to>&#x8fc7;&#x6ee4;&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</to><enabled>Y</enabled> </hop>
  290 + <hop> <from>&#x8fc7;&#x6ee4;&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</from><to>&#x5408;&#x5e76;&#x5206;&#x73ed;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</to><enabled>Y</enabled> </hop>
  291 + <hop> <from>&#x5408;&#x5e76;&#x5206;&#x73ed;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</from><to>&#x6392;&#x5e8f;&#x8bb0;&#x5f55; 2</to><enabled>Y</enabled> </hop>
  292 + <hop> <from>&#x6392;&#x5e8f;&#x8bb0;&#x5f55; 2</from><to>&#x5206;&#x7ec4;&#x5408;&#x5e76;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</to><enabled>Y</enabled> </hop>
  293 + <hop> <from>&#x63d2;&#x5165; &#x2f; &#x66f4;&#x65b0;bsth_c_s_sr1_flat</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</to><enabled>Y</enabled> </hop>
  294 + <hop> <from>&#x5206;&#x7ec4;&#x5408;&#x5e76;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</from><to>&#x542f;&#x7528;&#x65e5;&#x671f;&#x8f6c;&#x6362;</to><enabled>Y</enabled> </hop>
  295 + <hop> <from>&#x542f;&#x7528;&#x65e5;&#x671f;&#x8f6c;&#x6362;</from><to>&#x63d2;&#x5165; &#x2f; &#x66f4;&#x65b0;bsth_c_s_sr1_flat</to><enabled>Y</enabled> </hop>
  296 + </order>
  297 + <step>
  298 + <name>&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x67e5;&#x8be2;</name>
  299 + <type>DBLookup</type>
  300 + <description/>
  301 + <distribute>Y</distribute>
  302 + <custom_distribution/>
  303 + <copies>1</copies>
  304 + <partitioning>
  305 + <method>none</method>
  306 + <schema_name/>
  307 + </partitioning>
  308 + <connection>bus_control_variable</connection>
  309 + <cache>N</cache>
  310 + <cache_load_all>Y</cache_load_all>
  311 + <cache_size>0</cache_size>
  312 + <lookup>
  313 + <schema/>
  314 + <table>bsth_c_s_ecinfo</table>
  315 + <orderby/>
  316 + <fail_on_multiple>N</fail_on_multiple>
  317 + <eat_row_on_failure>N</eat_row_on_failure>
  318 + <key>
  319 + <name>xlid</name>
  320 + <field>xl</field>
  321 + <condition>&#x3d;</condition>
  322 + <name2/>
  323 + </key>
  324 + <key>
  325 + <name>dbbm1</name>
  326 + <field>dbbm</field>
  327 + <condition>&#x3d;</condition>
  328 + <name2/>
  329 + </key>
  330 + <key>
  331 + <name>isCancel</name>
  332 + <field>is_cancel</field>
  333 + <condition>&#x3d;</condition>
  334 + <name2/>
  335 + </key>
  336 + <value>
  337 + <name>id</name>
  338 + <rename>rycid1</rename>
  339 + <default/>
  340 + <type>Integer</type>
  341 + </value>
  342 + </lookup>
  343 + <cluster_schema/>
  344 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  345 + <xloc>904</xloc>
  346 + <yloc>101</yloc>
  347 + <draw>Y</draw>
  348 + </GUI>
  349 + </step>
  350 +
  351 + <step>
  352 + <name>&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x67e5;&#x8be2; 2</name>
  353 + <type>DBLookup</type>
  354 + <description/>
  355 + <distribute>Y</distribute>
  356 + <custom_distribution/>
  357 + <copies>1</copies>
  358 + <partitioning>
  359 + <method>none</method>
  360 + <schema_name/>
  361 + </partitioning>
  362 + <connection>bus_control_variable</connection>
  363 + <cache>N</cache>
  364 + <cache_load_all>Y</cache_load_all>
  365 + <cache_size>0</cache_size>
  366 + <lookup>
  367 + <schema/>
  368 + <table>bsth_c_s_ecinfo</table>
  369 + <orderby/>
  370 + <fail_on_multiple>N</fail_on_multiple>
  371 + <eat_row_on_failure>N</eat_row_on_failure>
  372 + <key>
  373 + <name>xlid</name>
  374 + <field>xl</field>
  375 + <condition>&#x3d;</condition>
  376 + <name2/>
  377 + </key>
  378 + <key>
  379 + <name>dbbm2</name>
  380 + <field>dbbm</field>
  381 + <condition>&#x3d;</condition>
  382 + <name2/>
  383 + </key>
  384 + <key>
  385 + <name>isCancel</name>
  386 + <field>is_cancel</field>
  387 + <condition>&#x3d;</condition>
  388 + <name2/>
  389 + </key>
  390 + <value>
  391 + <name>id</name>
  392 + <rename>rycid2</rename>
  393 + <default/>
  394 + <type>Integer</type>
  395 + </value>
  396 + </lookup>
  397 + <cluster_schema/>
  398 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  399 + <xloc>778</xloc>
  400 + <yloc>103</yloc>
  401 + <draw>Y</draw>
  402 + </GUI>
  403 + </step>
  404 +
  405 + <step>
  406 + <name>&#x5206;&#x7ec4;&#x5408;&#x5e76;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</name>
  407 + <type>GroupBy</type>
  408 + <description/>
  409 + <distribute>Y</distribute>
  410 + <custom_distribution/>
  411 + <copies>1</copies>
  412 + <partitioning>
  413 + <method>none</method>
  414 + <schema_name/>
  415 + </partitioning>
  416 + <all_rows>N</all_rows>
  417 + <ignore_aggregate>N</ignore_aggregate>
  418 + <field_ignore/>
  419 + <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>
  420 + <prefix>grp</prefix>
  421 + <add_linenr>N</add_linenr>
  422 + <linenr_fieldname/>
  423 + <give_back_row>N</give_back_row>
  424 + <group>
  425 + <field>
  426 + <name>xlid</name>
  427 + </field>
  428 + <field>
  429 + <name>cid</name>
  430 + </field>
  431 + <field>
  432 + <name>lpnames</name>
  433 + </field>
  434 + <field>
  435 + <name>lpids</name>
  436 + </field>
  437 + <field>
  438 + <name>&#x8d77;&#x59cb;&#x8def;&#x724c;</name>
  439 + </field>
  440 + <field>
  441 + <name>&#x8d77;&#x59cb;&#x4eba;&#x5458;</name>
  442 + </field>
  443 + <field>
  444 + <name>&#x4eba;&#x5458;&#x8303;&#x56f4;</name>
  445 + </field>
  446 + <field>
  447 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  448 + </field>
  449 + <field>
  450 + <name>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</name>
  451 + </field>
  452 + <field>
  453 + <name>isCancel</name>
  454 + </field>
  455 + </group>
  456 + <fields>
  457 + <field>
  458 + <aggregate>rycids</aggregate>
  459 + <subject>rycid</subject>
  460 + <type>CONCAT_STRING</type>
  461 + <valuefield>,</valuefield>
  462 + </field>
  463 + <field>
  464 + <aggregate>rybms</aggregate>
  465 + <subject>rybm</subject>
  466 + <type>CONCAT_STRING</type>
  467 + <valuefield>,</valuefield>
  468 + </field>
  469 + </fields>
  470 + <cluster_schema/>
  471 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  472 + <xloc>780</xloc>
  473 + <yloc>291</yloc>
  474 + <draw>Y</draw>
  475 + </GUI>
  476 + </step>
  477 +
  478 + <step>
  479 + <name>&#x5206;&#x7ec4;&#x5408;&#x5e76;&#x8def;&#x724c;id</name>
  480 + <type>GroupBy</type>
  481 + <description/>
  482 + <distribute>Y</distribute>
  483 + <custom_distribution/>
  484 + <copies>1</copies>
  485 + <partitioning>
  486 + <method>none</method>
  487 + <schema_name/>
  488 + </partitioning>
  489 + <all_rows>N</all_rows>
  490 + <ignore_aggregate>N</ignore_aggregate>
  491 + <field_ignore/>
  492 + <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>
  493 + <prefix>grp</prefix>
  494 + <add_linenr>N</add_linenr>
  495 + <linenr_fieldname/>
  496 + <give_back_row>N</give_back_row>
  497 + <group>
  498 + <field>
  499 + <name>xlid</name>
  500 + </field>
  501 + <field>
  502 + <name>cid</name>
  503 + </field>
  504 + <field>
  505 + <name>&#x8d77;&#x59cb;&#x8def;&#x724c;</name>
  506 + </field>
  507 + <field>
  508 + <name>&#x8d77;&#x59cb;&#x4eba;&#x5458;</name>
  509 + </field>
  510 + <field>
  511 + <name>&#x4eba;&#x5458;&#x8303;&#x56f4;</name>
  512 + </field>
  513 + <field>
  514 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  515 + </field>
  516 + <field>
  517 + <name>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</name>
  518 + </field>
  519 + <field>
  520 + <name>isCancel</name>
  521 + </field>
  522 + </group>
  523 + <fields>
  524 + <field>
  525 + <aggregate>lpids</aggregate>
  526 + <subject>lpid</subject>
  527 + <type>CONCAT_STRING</type>
  528 + <valuefield>,</valuefield>
  529 + </field>
  530 + <field>
  531 + <aggregate>lpnames</aggregate>
  532 + <subject>lpname</subject>
  533 + <type>CONCAT_STRING</type>
  534 + <valuefield>,</valuefield>
  535 + </field>
  536 + </fields>
  537 + <cluster_schema/>
  538 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  539 + <xloc>653</xloc>
  540 + <yloc>119</yloc>
  541 + <draw>Y</draw>
  542 + </GUI>
  543 + </step>
  544 +
  545 + <step>
  546 + <name>&#x539f;&#x59cb;&#x7cfb;&#x7edf;&#x5bfc;&#x51fa;&#x7684;Excel&#x8f93;&#x5165;</name>
  547 + <type>ExcelInput</type>
  548 + <description/>
  549 + <distribute>Y</distribute>
  550 + <custom_distribution/>
  551 + <copies>1</copies>
  552 + <partitioning>
  553 + <method>none</method>
  554 + <schema_name/>
  555 + </partitioning>
  556 + <header>Y</header>
  557 + <noempty>Y</noempty>
  558 + <stoponempty>N</stoponempty>
  559 + <filefield/>
  560 + <sheetfield/>
  561 + <sheetrownumfield/>
  562 + <rownumfield/>
  563 + <sheetfield/>
  564 + <filefield/>
  565 + <limit>0</limit>
  566 + <encoding/>
  567 + <add_to_result_filenames>Y</add_to_result_filenames>
  568 + <accept_filenames>Y</accept_filenames>
  569 + <accept_field>filepath_</accept_field>
  570 + <accept_stepname>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</accept_stepname>
  571 + <file>
  572 + <name/>
  573 + <filemask/>
  574 + <exclude_filemask/>
  575 + <file_required>N</file_required>
  576 + <include_subfolders>N</include_subfolders>
  577 + </file>
  578 + <fields>
  579 + <field>
  580 + <name>&#x7ebf;&#x8def;</name>
  581 + <type>String</type>
  582 + <length>-1</length>
  583 + <precision>-1</precision>
  584 + <trim_type>none</trim_type>
  585 + <repeat>N</repeat>
  586 + <format/>
  587 + <currency/>
  588 + <decimal/>
  589 + <group/>
  590 + </field>
  591 + <field>
  592 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  593 + <type>String</type>
  594 + <length>-1</length>
  595 + <precision>-1</precision>
  596 + <trim_type>none</trim_type>
  597 + <repeat>N</repeat>
  598 + <format/>
  599 + <currency/>
  600 + <decimal/>
  601 + <group/>
  602 + </field>
  603 + <field>
  604 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  605 + <type>String</type>
  606 + <length>-1</length>
  607 + <precision>-1</precision>
  608 + <trim_type>none</trim_type>
  609 + <repeat>N</repeat>
  610 + <format/>
  611 + <currency/>
  612 + <decimal/>
  613 + <group/>
  614 + </field>
  615 + <field>
  616 + <name>&#x8d77;&#x59cb;&#x8def;&#x724c;</name>
  617 + <type>String</type>
  618 + <length>-1</length>
  619 + <precision>-1</precision>
  620 + <trim_type>none</trim_type>
  621 + <repeat>N</repeat>
  622 + <format>&#x23;</format>
  623 + <currency/>
  624 + <decimal/>
  625 + <group/>
  626 + </field>
  627 + <field>
  628 + <name>&#x8def;&#x724c;&#x8303;&#x56f4;</name>
  629 + <type>String</type>
  630 + <length>-1</length>
  631 + <precision>-1</precision>
  632 + <trim_type>none</trim_type>
  633 + <repeat>N</repeat>
  634 + <format>&#x23;</format>
  635 + <currency/>
  636 + <decimal/>
  637 + <group/>
  638 + </field>
  639 + <field>
  640 + <name>&#x8d77;&#x59cb;&#x4eba;&#x5458;</name>
  641 + <type>String</type>
  642 + <length>-1</length>
  643 + <precision>-1</precision>
  644 + <trim_type>none</trim_type>
  645 + <repeat>N</repeat>
  646 + <format>&#x23;</format>
  647 + <currency/>
  648 + <decimal/>
  649 + <group/>
  650 + </field>
  651 + <field>
  652 + <name>&#x4eba;&#x5458;&#x8303;&#x56f4;</name>
  653 + <type>String</type>
  654 + <length>-1</length>
  655 + <precision>-1</precision>
  656 + <trim_type>none</trim_type>
  657 + <repeat>N</repeat>
  658 + <format>&#x23;</format>
  659 + <currency/>
  660 + <decimal/>
  661 + <group/>
  662 + </field>
  663 + <field>
  664 + <name>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</name>
  665 + <type>String</type>
  666 + <length>-1</length>
  667 + <precision>-1</precision>
  668 + <trim_type>none</trim_type>
  669 + <repeat>N</repeat>
  670 + <format>&#x23;</format>
  671 + <currency/>
  672 + <decimal/>
  673 + <group/>
  674 + </field>
  675 + </fields>
  676 + <sheets>
  677 + <sheet>
  678 + <name>&#x5de5;&#x4f5c;&#x8868;1</name>
  679 + <startrow>0</startrow>
  680 + <startcol>0</startcol>
  681 + </sheet>
  682 + </sheets>
  683 + <strict_types>N</strict_types>
  684 + <error_ignored>N</error_ignored>
  685 + <error_line_skipped>N</error_line_skipped>
  686 + <bad_line_files_destination_directory/>
  687 + <bad_line_files_extension>warning</bad_line_files_extension>
  688 + <error_line_files_destination_directory/>
  689 + <error_line_files_extension>error</error_line_files_extension>
  690 + <line_number_files_destination_directory/>
  691 + <line_number_files_extension>line</line_number_files_extension>
  692 + <shortFileFieldName/>
  693 + <pathFieldName/>
  694 + <hiddenFieldName/>
  695 + <lastModificationTimeFieldName/>
  696 + <uriNameFieldName/>
  697 + <rootUriNameFieldName/>
  698 + <extensionFieldName/>
  699 + <sizeFieldName/>
  700 + <spreadsheet_type>JXL</spreadsheet_type>
  701 + <cluster_schema/>
  702 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  703 + <xloc>208</xloc>
  704 + <yloc>21</yloc>
  705 + <draw>Y</draw>
  706 + </GUI>
  707 + </step>
  708 +
  709 + <step>
  710 + <name>&#x5408;&#x5e76;&#x5206;&#x73ed;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</name>
  711 + <type>ScriptValueMod</type>
  712 + <description/>
  713 + <distribute>Y</distribute>
  714 + <custom_distribution/>
  715 + <copies>1</copies>
  716 + <partitioning>
  717 + <method>none</method>
  718 + <schema_name/>
  719 + </partitioning>
  720 + <compatible>N</compatible>
  721 + <optimizationLevel>9</optimizationLevel>
  722 + <jsScripts> <jsScript> <jsScript_type>0</jsScript_type>
  723 + <jsScript_name>Script 1</jsScript_name>
  724 + <jsScript_script>&#x2f;&#x2f;Script here&#xa;&#xa;var rycid&#x3b;&#xa;var rybm&#x3b;&#xa;&#xa;if &#x28;rycid2 &#x3d;&#x3d; null&#x29; &#x7b;&#xa; rycid &#x3d; rycid1&#x3b;&#xa; rybm &#x3d; dbbm1&#x3b;&#xa;&#x7d; else &#x7b;&#xa; rycid &#x3d; rycid1 &#x2b; &#x22;-&#x22; &#x2b; rycid2&#x3b;&#xa; rybm &#x3d; dbbm1 &#x2b; &#x22;-&#x22; &#x2b; dbbm2&#x3b;&#xa;&#x7d;</jsScript_script>
  725 + </jsScript> </jsScripts> <fields> <field> <name>rycid</name>
  726 + <rename>rycid</rename>
  727 + <type>String</type>
  728 + <length>-1</length>
  729 + <precision>-1</precision>
  730 + <replace>N</replace>
  731 + </field> <field> <name>rybm</name>
  732 + <rename>rybm</rename>
  733 + <type>String</type>
  734 + <length>-1</length>
  735 + <precision>-1</precision>
  736 + <replace>N</replace>
  737 + </field> </fields> <cluster_schema/>
  738 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  739 + <xloc>917</xloc>
  740 + <yloc>201</yloc>
  741 + <draw>Y</draw>
  742 + </GUI>
  743 + </step>
  744 +
  745 + <step>
  746 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;&#x8f6c;&#x6362;</name>
  747 + <type>SelectValues</type>
  748 + <description/>
  749 + <distribute>Y</distribute>
  750 + <custom_distribution/>
  751 + <copies>1</copies>
  752 + <partitioning>
  753 + <method>none</method>
  754 + <schema_name/>
  755 + </partitioning>
  756 + <fields> <select_unspecified>N</select_unspecified>
  757 + <meta> <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  758 + <rename>&#x542f;&#x7528;&#x65e5;&#x671f;</rename>
  759 + <type>Timestamp</type>
  760 + <length>-2</length>
  761 + <precision>-2</precision>
  762 + <conversion_mask>yyyy-MM-dd</conversion_mask>
  763 + <date_format_lenient>false</date_format_lenient>
  764 + <date_format_locale/>
  765 + <date_format_timezone/>
  766 + <lenient_string_to_number>false</lenient_string_to_number>
  767 + <encoding/>
  768 + <decimal_symbol/>
  769 + <grouping_symbol/>
  770 + <currency_symbol/>
  771 + <storage_type/>
  772 + </meta> </fields> <cluster_schema/>
  773 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  774 + <xloc>777</xloc>
  775 + <yloc>368</yloc>
  776 + <draw>Y</draw>
  777 + </GUI>
  778 + </step>
  779 +
  780 + <step>
  781 + <name>&#x542f;&#x7528;&#x88ab;&#x6570;&#x636e;flag</name>
  782 + <type>Constant</type>
  783 + <description/>
  784 + <distribute>Y</distribute>
  785 + <custom_distribution/>
  786 + <copies>1</copies>
  787 + <partitioning>
  788 + <method>none</method>
  789 + <schema_name/>
  790 + </partitioning>
  791 + <fields>
  792 + <field>
  793 + <name>isCancel</name>
  794 + <type>Integer</type>
  795 + <format/>
  796 + <currency/>
  797 + <decimal/>
  798 + <group/>
  799 + <nullif>0</nullif>
  800 + <length>-1</length>
  801 + <precision>-1</precision>
  802 + <set_empty_string>N</set_empty_string>
  803 + </field>
  804 + </fields>
  805 + <cluster_schema/>
  806 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  807 + <xloc>361</xloc>
  808 + <yloc>22</yloc>
  809 + <draw>Y</draw>
  810 + </GUI>
  811 + </step>
  812 +
  813 + <step>
  814 + <name>&#x62c6;&#x5206;&#x4eba;&#x5458;&#x8303;&#x56f4;</name>
  815 + <type>SplitFieldToRows3</type>
  816 + <description/>
  817 + <distribute>Y</distribute>
  818 + <custom_distribution/>
  819 + <copies>1</copies>
  820 + <partitioning>
  821 + <method>none</method>
  822 + <schema_name/>
  823 + </partitioning>
  824 + <splitfield>&#x4eba;&#x5458;&#x8303;&#x56f4;</splitfield>
  825 + <delimiter>,</delimiter>
  826 + <newfield>dbbm</newfield>
  827 + <rownum>N</rownum>
  828 + <rownum_field/>
  829 + <resetrownumber>Y</resetrownumber>
  830 + <delimiter_is_regex>N</delimiter_is_regex>
  831 + <cluster_schema/>
  832 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  833 + <xloc>777</xloc>
  834 + <yloc>22</yloc>
  835 + <draw>Y</draw>
  836 + </GUI>
  837 + </step>
  838 +
  839 + <step>
  840 + <name>&#x62c6;&#x5206;&#x5206;&#x73ed;&#x642d;&#x73ed;&#x7f16;&#x7801;&#x5b57;&#x6bb5;</name>
  841 + <type>FieldSplitter</type>
  842 + <description/>
  843 + <distribute>Y</distribute>
  844 + <custom_distribution/>
  845 + <copies>1</copies>
  846 + <partitioning>
  847 + <method>none</method>
  848 + <schema_name/>
  849 + </partitioning>
  850 + <splitfield>dbbm</splitfield>
  851 + <delimiter>-</delimiter>
  852 + <enclosure/>
  853 + <fields> <field> <name>dbbm1</name>
  854 + <id/>
  855 + <idrem>N</idrem>
  856 + <type>String</type>
  857 + <format/>
  858 + <group/>
  859 + <decimal/>
  860 + <currency/>
  861 + <length>-1</length>
  862 + <precision>-1</precision>
  863 + <nullif/>
  864 + <ifnull/>
  865 + <trimtype>none</trimtype>
  866 + </field> <field> <name>dbbm2</name>
  867 + <id/>
  868 + <idrem>N</idrem>
  869 + <type>String</type>
  870 + <format/>
  871 + <group/>
  872 + <decimal/>
  873 + <currency/>
  874 + <length>-1</length>
  875 + <precision>-1</precision>
  876 + <nullif/>
  877 + <ifnull/>
  878 + <trimtype>none</trimtype>
  879 + </field> </fields> <cluster_schema/>
  880 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  881 + <xloc>901</xloc>
  882 + <yloc>22</yloc>
  883 + <draw>Y</draw>
  884 + </GUI>
  885 + </step>
  886 +
  887 + <step>
  888 + <name>&#x62c6;&#x5206;&#x8def;&#x724c;&#x8303;&#x56f4;</name>
  889 + <type>SplitFieldToRows3</type>
  890 + <description/>
  891 + <distribute>Y</distribute>
  892 + <custom_distribution/>
  893 + <copies>1</copies>
  894 + <partitioning>
  895 + <method>none</method>
  896 + <schema_name/>
  897 + </partitioning>
  898 + <splitfield>&#x8def;&#x724c;&#x8303;&#x56f4;</splitfield>
  899 + <delimiter>,</delimiter>
  900 + <newfield>lpname</newfield>
  901 + <rownum>N</rownum>
  902 + <rownum_field/>
  903 + <resetrownumber>Y</resetrownumber>
  904 + <delimiter_is_regex>N</delimiter_is_regex>
  905 + <cluster_schema/>
  906 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  907 + <xloc>364</xloc>
  908 + <yloc>259</yloc>
  909 + <draw>Y</draw>
  910 + </GUI>
  911 + </step>
  912 +
  913 + <step>
  914 + <name>&#x6392;&#x5e8f;&#x8bb0;&#x5f55;</name>
  915 + <type>SortRows</type>
  916 + <description/>
  917 + <distribute>Y</distribute>
  918 + <custom_distribution/>
  919 + <copies>1</copies>
  920 + <partitioning>
  921 + <method>none</method>
  922 + <schema_name/>
  923 + </partitioning>
  924 + <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>
  925 + <prefix>out</prefix>
  926 + <sort_size>1000000</sort_size>
  927 + <free_memory/>
  928 + <compress>N</compress>
  929 + <compress_variable/>
  930 + <unique_rows>N</unique_rows>
  931 + <fields>
  932 + <field>
  933 + <name>xlid</name>
  934 + <ascending>Y</ascending>
  935 + <case_sensitive>N</case_sensitive>
  936 + <presorted>N</presorted>
  937 + </field>
  938 + <field>
  939 + <name>cid</name>
  940 + <ascending>Y</ascending>
  941 + <case_sensitive>N</case_sensitive>
  942 + <presorted>N</presorted>
  943 + </field>
  944 + <field>
  945 + <name>&#x8d77;&#x59cb;&#x8def;&#x724c;</name>
  946 + <ascending>Y</ascending>
  947 + <case_sensitive>N</case_sensitive>
  948 + <presorted>N</presorted>
  949 + </field>
  950 + <field>
  951 + <name>&#x8d77;&#x59cb;&#x4eba;&#x5458;</name>
  952 + <ascending>Y</ascending>
  953 + <case_sensitive>N</case_sensitive>
  954 + <presorted>N</presorted>
  955 + </field>
  956 + <field>
  957 + <name>&#x4eba;&#x5458;&#x8303;&#x56f4;</name>
  958 + <ascending>Y</ascending>
  959 + <case_sensitive>N</case_sensitive>
  960 + <presorted>N</presorted>
  961 + </field>
  962 + <field>
  963 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  964 + <ascending>Y</ascending>
  965 + <case_sensitive>N</case_sensitive>
  966 + <presorted>N</presorted>
  967 + </field>
  968 + <field>
  969 + <name>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</name>
  970 + <ascending>Y</ascending>
  971 + <case_sensitive>N</case_sensitive>
  972 + <presorted>N</presorted>
  973 + </field>
  974 + <field>
  975 + <name>isCancel</name>
  976 + <ascending>Y</ascending>
  977 + <case_sensitive>N</case_sensitive>
  978 + <presorted>N</presorted>
  979 + </field>
  980 + </fields>
  981 + <cluster_schema/>
  982 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  983 + <xloc>516</xloc>
  984 + <yloc>119</yloc>
  985 + <draw>Y</draw>
  986 + </GUI>
  987 + </step>
  988 +
  989 + <step>
  990 + <name>&#x6392;&#x5e8f;&#x8bb0;&#x5f55; 2</name>
  991 + <type>SortRows</type>
  992 + <description/>
  993 + <distribute>Y</distribute>
  994 + <custom_distribution/>
  995 + <copies>1</copies>
  996 + <partitioning>
  997 + <method>none</method>
  998 + <schema_name/>
  999 + </partitioning>
  1000 + <directory>&#x25;&#x25;java.io.tmpdir&#x25;&#x25;</directory>
  1001 + <prefix>out</prefix>
  1002 + <sort_size>1000000</sort_size>
  1003 + <free_memory/>
  1004 + <compress>N</compress>
  1005 + <compress_variable/>
  1006 + <unique_rows>N</unique_rows>
  1007 + <fields>
  1008 + <field>
  1009 + <name>xlid</name>
  1010 + <ascending>Y</ascending>
  1011 + <case_sensitive>N</case_sensitive>
  1012 + <presorted>N</presorted>
  1013 + </field>
  1014 + <field>
  1015 + <name>cid</name>
  1016 + <ascending>Y</ascending>
  1017 + <case_sensitive>N</case_sensitive>
  1018 + <presorted>N</presorted>
  1019 + </field>
  1020 + <field>
  1021 + <name>lpnames</name>
  1022 + <ascending>Y</ascending>
  1023 + <case_sensitive>N</case_sensitive>
  1024 + <presorted>N</presorted>
  1025 + </field>
  1026 + <field>
  1027 + <name>lpids</name>
  1028 + <ascending>Y</ascending>
  1029 + <case_sensitive>N</case_sensitive>
  1030 + <presorted>N</presorted>
  1031 + </field>
  1032 + <field>
  1033 + <name>&#x8d77;&#x59cb;&#x8def;&#x724c;</name>
  1034 + <ascending>Y</ascending>
  1035 + <case_sensitive>N</case_sensitive>
  1036 + <presorted>N</presorted>
  1037 + </field>
  1038 + <field>
  1039 + <name>&#x8d77;&#x59cb;&#x4eba;&#x5458;</name>
  1040 + <ascending>Y</ascending>
  1041 + <case_sensitive>N</case_sensitive>
  1042 + <presorted>N</presorted>
  1043 + </field>
  1044 + <field>
  1045 + <name>&#x4eba;&#x5458;&#x8303;&#x56f4;</name>
  1046 + <ascending>Y</ascending>
  1047 + <case_sensitive>N</case_sensitive>
  1048 + <presorted>N</presorted>
  1049 + </field>
  1050 + <field>
  1051 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  1052 + <ascending>Y</ascending>
  1053 + <case_sensitive>N</case_sensitive>
  1054 + <presorted>N</presorted>
  1055 + </field>
  1056 + <field>
  1057 + <name>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</name>
  1058 + <ascending>Y</ascending>
  1059 + <case_sensitive>N</case_sensitive>
  1060 + <presorted>N</presorted>
  1061 + </field>
  1062 + <field>
  1063 + <name>isCancel</name>
  1064 + <ascending>Y</ascending>
  1065 + <case_sensitive>N</case_sensitive>
  1066 + <presorted>N</presorted>
  1067 + </field>
  1068 + </fields>
  1069 + <cluster_schema/>
  1070 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1071 + <xloc>919</xloc>
  1072 + <yloc>289</yloc>
  1073 + <draw>Y</draw>
  1074 + </GUI>
  1075 + </step>
  1076 +
  1077 + <step>
  1078 + <name>&#x63d2;&#x5165; &#x2f; &#x66f4;&#x65b0;bsth_c_s_sr1_flat</name>
  1079 + <type>InsertUpdate</type>
  1080 + <description/>
  1081 + <distribute>Y</distribute>
  1082 + <custom_distribution/>
  1083 + <copies>1</copies>
  1084 + <partitioning>
  1085 + <method>none</method>
  1086 + <schema_name/>
  1087 + </partitioning>
  1088 + <connection>bus_control_variable</connection>
  1089 + <commit>100</commit>
  1090 + <update_bypassed>N</update_bypassed>
  1091 + <lookup>
  1092 + <schema/>
  1093 + <table>bsth_c_s_sr1_flat</table>
  1094 + <key>
  1095 + <name>xlid</name>
  1096 + <field>xl</field>
  1097 + <condition>&#x3d;</condition>
  1098 + <name2/>
  1099 + </key>
  1100 + <key>
  1101 + <name>cid</name>
  1102 + <field>car_config_info</field>
  1103 + <condition>&#x3d;</condition>
  1104 + <name2/>
  1105 + </key>
  1106 + <value>
  1107 + <name>xl</name>
  1108 + <rename>xlid</rename>
  1109 + <update>Y</update>
  1110 + </value>
  1111 + <value>
  1112 + <name>car_config_info</name>
  1113 + <rename>cid</rename>
  1114 + <update>Y</update>
  1115 + </value>
  1116 + <value>
  1117 + <name>lp_names</name>
  1118 + <rename>lpnames</rename>
  1119 + <update>Y</update>
  1120 + </value>
  1121 + <value>
  1122 + <name>lp_ids</name>
  1123 + <rename>lpids</rename>
  1124 + <update>Y</update>
  1125 + </value>
  1126 + <value>
  1127 + <name>lp_start</name>
  1128 + <rename>&#x8d77;&#x59cb;&#x8def;&#x724c;</rename>
  1129 + <update>Y</update>
  1130 + </value>
  1131 + <value>
  1132 + <name>ry_start</name>
  1133 + <rename>&#x8d77;&#x59cb;&#x4eba;&#x5458;</rename>
  1134 + <update>Y</update>
  1135 + </value>
  1136 + <value>
  1137 + <name>ry_dbbms</name>
  1138 + <rename>rybms</rename>
  1139 + <update>Y</update>
  1140 + </value>
  1141 + <value>
  1142 + <name>qyrq</name>
  1143 + <rename>&#x542f;&#x7528;&#x65e5;&#x671f;</rename>
  1144 + <update>Y</update>
  1145 + </value>
  1146 + <value>
  1147 + <name>ry_config_ids</name>
  1148 + <rename>rycids</rename>
  1149 + <update>Y</update>
  1150 + </value>
  1151 + <value>
  1152 + <name>fbgs</name>
  1153 + <rename>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</rename>
  1154 + <update>Y</update>
  1155 + </value>
  1156 + </lookup>
  1157 + <cluster_schema/>
  1158 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1159 + <xloc>532</xloc>
  1160 + <yloc>297</yloc>
  1161 + <draw>Y</draw>
  1162 + </GUI>
  1163 + </step>
  1164 +
  1165 + <step>
  1166 + <name>&#x7ebf;&#x8def;id&#x67e5;&#x8be2;</name>
  1167 + <type>DBLookup</type>
  1168 + <description/>
  1169 + <distribute>Y</distribute>
  1170 + <custom_distribution/>
  1171 + <copies>1</copies>
  1172 + <partitioning>
  1173 + <method>none</method>
  1174 + <schema_name/>
  1175 + </partitioning>
  1176 + <connection>bus_control_variable</connection>
  1177 + <cache>N</cache>
  1178 + <cache_load_all>Y</cache_load_all>
  1179 + <cache_size>0</cache_size>
  1180 + <lookup>
  1181 + <schema/>
  1182 + <table>bsth_c_line</table>
  1183 + <orderby/>
  1184 + <fail_on_multiple>N</fail_on_multiple>
  1185 + <eat_row_on_failure>N</eat_row_on_failure>
  1186 + <key>
  1187 + <name>&#x7ebf;&#x8def;</name>
  1188 + <field>name</field>
  1189 + <condition>&#x3d;</condition>
  1190 + <name2/>
  1191 + </key>
  1192 + <key>
  1193 + <name>isCancel</name>
  1194 + <field>destroy</field>
  1195 + <condition>&#x3d;</condition>
  1196 + <name2/>
  1197 + </key>
  1198 + <value>
  1199 + <name>id</name>
  1200 + <rename>xlid</rename>
  1201 + <default/>
  1202 + <type>Integer</type>
  1203 + </value>
  1204 + </lookup>
  1205 + <cluster_schema/>
  1206 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1207 + <xloc>359</xloc>
  1208 + <yloc>110</yloc>
  1209 + <draw>Y</draw>
  1210 + </GUI>
  1211 + </step>
  1212 +
  1213 + <step>
  1214 + <name>&#x83b7;&#x53d6;&#x53d8;&#x91cf;</name>
  1215 + <type>GetVariable</type>
  1216 + <description/>
  1217 + <distribute>Y</distribute>
  1218 + <custom_distribution/>
  1219 + <copies>1</copies>
  1220 + <partitioning>
  1221 + <method>none</method>
  1222 + <schema_name/>
  1223 + </partitioning>
  1224 + <fields>
  1225 + <field>
  1226 + <name>filepath_</name>
  1227 + <variable>&#x24;&#x7b;filepath&#x7d;</variable>
  1228 + <type>String</type>
  1229 + <format/>
  1230 + <currency/>
  1231 + <decimal/>
  1232 + <group/>
  1233 + <length>-1</length>
  1234 + <precision>-1</precision>
  1235 + <trim_type>none</trim_type>
  1236 + </field>
  1237 + <field>
  1238 + <name>erroroutputdir_</name>
  1239 + <variable>&#x24;&#x7b;erroroutputdir&#x7d;</variable>
  1240 + <type>String</type>
  1241 + <format/>
  1242 + <currency/>
  1243 + <decimal/>
  1244 + <group/>
  1245 + <length>-1</length>
  1246 + <precision>-1</precision>
  1247 + <trim_type>none</trim_type>
  1248 + </field>
  1249 + </fields>
  1250 + <cluster_schema/>
  1251 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1252 + <xloc>53</xloc>
  1253 + <yloc>23</yloc>
  1254 + <draw>Y</draw>
  1255 + </GUI>
  1256 + </step>
  1257 +
  1258 + <step>
  1259 + <name>&#x8def;&#x724c;id&#x67e5;&#x8be2;</name>
  1260 + <type>DBLookup</type>
  1261 + <description/>
  1262 + <distribute>Y</distribute>
  1263 + <custom_distribution/>
  1264 + <copies>1</copies>
  1265 + <partitioning>
  1266 + <method>none</method>
  1267 + <schema_name/>
  1268 + </partitioning>
  1269 + <connection>bus_control_variable</connection>
  1270 + <cache>N</cache>
  1271 + <cache_load_all>Y</cache_load_all>
  1272 + <cache_size>0</cache_size>
  1273 + <lookup>
  1274 + <schema/>
  1275 + <table>bsth_c_s_gbi</table>
  1276 + <orderby/>
  1277 + <fail_on_multiple>N</fail_on_multiple>
  1278 + <eat_row_on_failure>N</eat_row_on_failure>
  1279 + <key>
  1280 + <name>xlid</name>
  1281 + <field>xl</field>
  1282 + <condition>&#x3d;</condition>
  1283 + <name2/>
  1284 + </key>
  1285 + <key>
  1286 + <name>lpname</name>
  1287 + <field>lp_name</field>
  1288 + <condition>&#x3d;</condition>
  1289 + <name2/>
  1290 + </key>
  1291 + <key>
  1292 + <name>isCancel</name>
  1293 + <field>is_cancel</field>
  1294 + <condition>&#x3d;</condition>
  1295 + <name2/>
  1296 + </key>
  1297 + <value>
  1298 + <name>id</name>
  1299 + <rename>lpid</rename>
  1300 + <default/>
  1301 + <type>Integer</type>
  1302 + </value>
  1303 + </lookup>
  1304 + <cluster_schema/>
  1305 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1306 + <xloc>516</xloc>
  1307 + <yloc>21</yloc>
  1308 + <draw>Y</draw>
  1309 + </GUI>
  1310 + </step>
  1311 +
  1312 + <step>
  1313 + <name>&#x8f66;&#x8f86;&#x914d;&#x7f6e;id&#x67e5;&#x8be2;</name>
  1314 + <type>DBJoin</type>
  1315 + <description/>
  1316 + <distribute>Y</distribute>
  1317 + <custom_distribution/>
  1318 + <copies>1</copies>
  1319 + <partitioning>
  1320 + <method>none</method>
  1321 + <schema_name/>
  1322 + </partitioning>
  1323 + <connection>bus_control_variable</connection>
  1324 + <rowlimit>1</rowlimit>
  1325 + <sql>select t1.id as cid from bsth_c_s_ccinfo t1 left join bsth_c_cars t2 on t1.cl &#x3d; t2.id&#xa;where t1.xl &#x3d; &#x3f; and t2.inside_code &#x3d; &#x3f; and t1.is_cancel &#x3d; &#x3f;</sql>
  1326 + <outer_join>Y</outer_join>
  1327 + <replace_vars>N</replace_vars>
  1328 + <parameter>
  1329 + <field>
  1330 + <name>xlid</name>
  1331 + <type>Integer</type>
  1332 + </field>
  1333 + <field>
  1334 + <name>&#x5185;&#x90e8;&#x7f16;&#x7801;</name>
  1335 + <type>String</type>
  1336 + </field>
  1337 + <field>
  1338 + <name>isCancel</name>
  1339 + <type>Integer</type>
  1340 + </field>
  1341 + </parameter>
  1342 + <cluster_schema/>
  1343 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1344 + <xloc>360</xloc>
  1345 + <yloc>184</yloc>
  1346 + <draw>Y</draw>
  1347 + </GUI>
  1348 + </step>
  1349 +
  1350 + <step>
  1351 + <name>&#x8fc7;&#x6ee4;&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</name>
  1352 + <type>FilterRows</type>
  1353 + <description/>
  1354 + <distribute>Y</distribute>
  1355 + <custom_distribution/>
  1356 + <copies>1</copies>
  1357 + <partitioning>
  1358 + <method>none</method>
  1359 + <schema_name/>
  1360 + </partitioning>
  1361 +<send_true_to/>
  1362 +<send_false_to/>
  1363 + <compare>
  1364 +<condition>
  1365 + <negated>N</negated>
  1366 + <conditions>
  1367 + <condition>
  1368 + <negated>N</negated>
  1369 + <leftvalue>rycid1</leftvalue>
  1370 + <function>IS NOT NULL</function>
  1371 + <rightvalue/>
  1372 + </condition>
  1373 + <condition>
  1374 + <negated>N</negated>
  1375 + <operator>OR</operator>
  1376 + <leftvalue>rycid2</leftvalue>
  1377 + <function>IS NOT NULL</function>
  1378 + <rightvalue/>
  1379 + </condition>
  1380 + </conditions>
  1381 + </condition>
  1382 + </compare>
  1383 + <cluster_schema/>
  1384 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1385 + <xloc>776</xloc>
  1386 + <yloc>204</yloc>
  1387 + <draw>Y</draw>
  1388 + </GUI>
  1389 + </step>
  1390 +
  1391 + <step>
  1392 + <name>&#x8fc7;&#x6ee4;&#x7ebf;&#x8def;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</name>
  1393 + <type>FilterRows</type>
  1394 + <description/>
  1395 + <distribute>Y</distribute>
  1396 + <custom_distribution/>
  1397 + <copies>1</copies>
  1398 + <partitioning>
  1399 + <method>none</method>
  1400 + <schema_name/>
  1401 + </partitioning>
  1402 +<send_true_to>&#x8f66;&#x8f86;&#x914d;&#x7f6e;id&#x67e5;&#x8be2;</send_true_to>
  1403 +<send_false_to/>
  1404 + <compare>
  1405 +<condition>
  1406 + <negated>N</negated>
  1407 + <leftvalue>xlid</leftvalue>
  1408 + <function>IS NOT NULL</function>
  1409 + <rightvalue/>
  1410 + </condition>
  1411 + </compare>
  1412 + <cluster_schema/>
  1413 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1414 + <xloc>203</xloc>
  1415 + <yloc>110</yloc>
  1416 + <draw>Y</draw>
  1417 + </GUI>
  1418 + </step>
  1419 +
  1420 + <step>
  1421 + <name>&#x8fc7;&#x6ee4;&#x8def;&#x724c;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</name>
  1422 + <type>FilterRows</type>
  1423 + <description/>
  1424 + <distribute>Y</distribute>
  1425 + <custom_distribution/>
  1426 + <copies>1</copies>
  1427 + <partitioning>
  1428 + <method>none</method>
  1429 + <schema_name/>
  1430 + </partitioning>
  1431 +<send_true_to>&#x6392;&#x5e8f;&#x8bb0;&#x5f55;</send_true_to>
  1432 +<send_false_to/>
  1433 + <compare>
  1434 +<condition>
  1435 + <negated>N</negated>
  1436 + <leftvalue>lpid</leftvalue>
  1437 + <function>IS NOT NULL</function>
  1438 + <rightvalue/>
  1439 + </condition>
  1440 + </compare>
  1441 + <cluster_schema/>
  1442 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1443 + <xloc>653</xloc>
  1444 + <yloc>23</yloc>
  1445 + <draw>Y</draw>
  1446 + </GUI>
  1447 + </step>
  1448 +
  1449 + <step>
  1450 + <name>&#x8fc7;&#x6ee4;&#x8f66;&#x8f86;&#x914d;&#x7f6e;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</name>
  1451 + <type>FilterRows</type>
  1452 + <description/>
  1453 + <distribute>Y</distribute>
  1454 + <custom_distribution/>
  1455 + <copies>1</copies>
  1456 + <partitioning>
  1457 + <method>none</method>
  1458 + <schema_name/>
  1459 + </partitioning>
  1460 +<send_true_to>&#x62c6;&#x5206;&#x8def;&#x724c;&#x8303;&#x56f4;</send_true_to>
  1461 +<send_false_to/>
  1462 + <compare>
  1463 +<condition>
  1464 + <negated>N</negated>
  1465 + <leftvalue>cid</leftvalue>
  1466 + <function>IS NOT NULL</function>
  1467 + <rightvalue/>
  1468 + </condition>
  1469 + </compare>
  1470 + <cluster_schema/>
  1471 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1472 + <xloc>208</xloc>
  1473 + <yloc>182</yloc>
  1474 + <draw>Y</draw>
  1475 + </GUI>
  1476 + </step>
  1477 +
  1478 + <step>
  1479 + <name>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</name>
  1480 + <type>ExcelOutput</type>
  1481 + <description/>
  1482 + <distribute>Y</distribute>
  1483 + <custom_distribution/>
  1484 + <copies>1</copies>
  1485 + <partitioning>
  1486 + <method>none</method>
  1487 + <schema_name/>
  1488 + </partitioning>
  1489 + <header>Y</header>
  1490 + <footer>N</footer>
  1491 + <encoding>UTF-8</encoding>
  1492 + <append>N</append>
  1493 + <add_to_result_filenames>Y</add_to_result_filenames>
  1494 + <file>
  1495 + <name>&#x24;&#x7b;erroroutputdir&#x7d;&#x2f;&#x6392;&#x7248;&#x89c4;&#x5219;&#x4fe1;&#x606f;&#x5bfc;&#x5165;_&#x9519;&#x8bef;</name>
  1496 + <extention>xls</extention>
  1497 + <do_not_open_newfile_init>N</do_not_open_newfile_init>
  1498 + <create_parent_folder>N</create_parent_folder>
  1499 + <split>N</split>
  1500 + <add_date>N</add_date>
  1501 + <add_time>N</add_time>
  1502 + <SpecifyFormat>N</SpecifyFormat>
  1503 + <date_time_format/>
  1504 + <sheetname>Sheet1</sheetname>
  1505 + <autosizecolums>N</autosizecolums>
  1506 + <nullisblank>N</nullisblank>
  1507 + <protect_sheet>N</protect_sheet>
  1508 + <password>Encrypted </password>
  1509 + <splitevery>0</splitevery>
  1510 + <usetempfiles>N</usetempfiles>
  1511 + <tempdirectory/>
  1512 + </file>
  1513 + <template>
  1514 + <enabled>N</enabled>
  1515 + <append>N</append>
  1516 + <filename>template.xls</filename>
  1517 + </template>
  1518 + <fields>
  1519 + <field>
  1520 + <name>xlid</name>
  1521 + <type>Integer</type>
  1522 + <format/>
  1523 + </field>
  1524 + <field>
  1525 + <name>cid</name>
  1526 + <type>Integer</type>
  1527 + <format/>
  1528 + </field>
  1529 + <field>
  1530 + <name>lpnames</name>
  1531 + <type>String</type>
  1532 + <format/>
  1533 + </field>
  1534 + <field>
  1535 + <name>lpids</name>
  1536 + <type>String</type>
  1537 + <format/>
  1538 + </field>
  1539 + <field>
  1540 + <name>&#x8d77;&#x59cb;&#x8def;&#x724c;</name>
  1541 + <type>String</type>
  1542 + <format/>
  1543 + </field>
  1544 + <field>
  1545 + <name>&#x8d77;&#x59cb;&#x4eba;&#x5458;</name>
  1546 + <type>String</type>
  1547 + <format/>
  1548 + </field>
  1549 + <field>
  1550 + <name>&#x4eba;&#x5458;&#x8303;&#x56f4;</name>
  1551 + <type>String</type>
  1552 + <format/>
  1553 + </field>
  1554 + <field>
  1555 + <name>&#x542f;&#x7528;&#x65e5;&#x671f;</name>
  1556 + <type>Timestamp</type>
  1557 + <format/>
  1558 + </field>
  1559 + <field>
  1560 + <name>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</name>
  1561 + <type>String</type>
  1562 + <format/>
  1563 + </field>
  1564 + <field>
  1565 + <name>isCancel</name>
  1566 + <type>Integer</type>
  1567 + <format/>
  1568 + </field>
  1569 + <field>
  1570 + <name>rycids</name>
  1571 + <type>String</type>
  1572 + <format/>
  1573 + </field>
  1574 + <field>
  1575 + <name>rybms</name>
  1576 + <type>String</type>
  1577 + <format/>
  1578 + </field>
  1579 + <field>
  1580 + <name>error_count</name>
  1581 + <type>Integer</type>
  1582 + <format/>
  1583 + </field>
  1584 + <field>
  1585 + <name>error_desc</name>
  1586 + <type>String</type>
  1587 + <format/>
  1588 + </field>
  1589 + <field>
  1590 + <name>error_column1</name>
  1591 + <type>String</type>
  1592 + <format/>
  1593 + </field>
  1594 + <field>
  1595 + <name>error_column2</name>
  1596 + <type>String</type>
  1597 + <format/>
  1598 + </field>
  1599 + </fields>
  1600 + <custom>
  1601 + <header_font_name>arial</header_font_name>
  1602 + <header_font_size>10</header_font_size>
  1603 + <header_font_bold>N</header_font_bold>
  1604 + <header_font_italic>N</header_font_italic>
  1605 + <header_font_underline>no</header_font_underline>
  1606 + <header_font_orientation>horizontal</header_font_orientation>
  1607 + <header_font_color>black</header_font_color>
  1608 + <header_background_color>none</header_background_color>
  1609 + <header_row_height>255</header_row_height>
  1610 + <header_alignment>left</header_alignment>
  1611 + <header_image/>
  1612 + <row_font_name>arial</row_font_name>
  1613 + <row_font_size>10</row_font_size>
  1614 + <row_font_color>black</row_font_color>
  1615 + <row_background_color>none</row_background_color>
  1616 + </custom>
  1617 + <cluster_schema/>
  1618 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1619 + <xloc>534</xloc>
  1620 + <yloc>392</yloc>
  1621 + <draw>Y</draw>
  1622 + </GUI>
  1623 + </step>
  1624 +
  1625 + <step_error_handling>
  1626 + <error>
  1627 + <source_step>&#x63d2;&#x5165; &#x2f; &#x66f4;&#x65b0;bsth_c_s_sr1_flat</source_step>
  1628 + <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</target_step>
  1629 + <is_enabled>Y</is_enabled>
  1630 + <nr_valuename>error_count</nr_valuename>
  1631 + <descriptions_valuename>error_desc</descriptions_valuename>
  1632 + <fields_valuename>error_column1</fields_valuename>
  1633 + <codes_valuename>error_column2</codes_valuename>
  1634 + <max_errors/>
  1635 + <max_pct_errors/>
  1636 + <min_pct_rows/>
  1637 + </error>
  1638 + </step_error_handling>
  1639 + <slave-step-copy-partition-distribution>
  1640 +</slave-step-copy-partition-distribution>
  1641 + <slave_transformation>N</slave_transformation>
  1642 +
  1643 +</transformation>
src/main/resources/datatools/ktrs/scheduleRuleDataInput.ktr
@@ -290,9 +290,11 @@ @@ -290,9 +290,11 @@
290 <hop> <from>&#x8fc7;&#x6ee4;&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</from><to>&#x5408;&#x5e76;&#x5206;&#x73ed;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</to><enabled>Y</enabled> </hop> 290 <hop> <from>&#x8fc7;&#x6ee4;&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x4e3a;&#x7a7a;&#x8bb0;&#x5f55;</from><to>&#x5408;&#x5e76;&#x5206;&#x73ed;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</to><enabled>Y</enabled> </hop>
291 <hop> <from>&#x5408;&#x5e76;&#x5206;&#x73ed;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</from><to>&#x6392;&#x5e8f;&#x8bb0;&#x5f55; 2</to><enabled>Y</enabled> </hop> 291 <hop> <from>&#x5408;&#x5e76;&#x5206;&#x73ed;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</from><to>&#x6392;&#x5e8f;&#x8bb0;&#x5f55; 2</to><enabled>Y</enabled> </hop>
292 <hop> <from>&#x6392;&#x5e8f;&#x8bb0;&#x5f55; 2</from><to>&#x5206;&#x7ec4;&#x5408;&#x5e76;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</to><enabled>Y</enabled> </hop> 292 <hop> <from>&#x6392;&#x5e8f;&#x8bb0;&#x5f55; 2</from><to>&#x5206;&#x7ec4;&#x5408;&#x5e76;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</to><enabled>Y</enabled> </hop>
293 - <hop> <from>&#x63d2;&#x5165; &#x2f; &#x66f4;&#x65b0;bsth_c_s_sr1_flat</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</to><enabled>Y</enabled> </hop>  
294 <hop> <from>&#x5206;&#x7ec4;&#x5408;&#x5e76;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</from><to>&#x542f;&#x7528;&#x65e5;&#x671f;&#x8f6c;&#x6362;</to><enabled>Y</enabled> </hop> 293 <hop> <from>&#x5206;&#x7ec4;&#x5408;&#x5e76;&#x4eba;&#x5458;&#x914d;&#x7f6e;id</from><to>&#x542f;&#x7528;&#x65e5;&#x671f;&#x8f6c;&#x6362;</to><enabled>Y</enabled> </hop>
295 - <hop> <from>&#x542f;&#x7528;&#x65e5;&#x671f;&#x8f6c;&#x6362;</from><to>&#x63d2;&#x5165; &#x2f; &#x66f4;&#x65b0;bsth_c_s_sr1_flat</to><enabled>Y</enabled> </hop> 294 + <hop> <from>&#x542f;&#x7528;&#x65e5;&#x671f;&#x8f6c;&#x6362;</from><to>&#x5220;&#x9664;</to><enabled>Y</enabled> </hop>
  295 + <hop> <from>&#x5220;&#x9664;</from><to>&#x963b;&#x585e;&#x6570;&#x636e;&#x76f4;&#x5230;&#x6b65;&#x9aa4;&#x90fd;&#x5b8c;&#x6210;</to><enabled>Y</enabled> </hop>
  296 + <hop> <from>&#x963b;&#x585e;&#x6570;&#x636e;&#x76f4;&#x5230;&#x6b65;&#x9aa4;&#x90fd;&#x5b8c;&#x6210;</from><to>&#x89c4;&#x5219;&#x8868;&#x8f93;&#x51fa;</to><enabled>Y</enabled> </hop>
  297 + <hop> <from>&#x89c4;&#x5219;&#x8868;&#x8f93;&#x51fa;</from><to>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</to><enabled>Y</enabled> </hop>
296 </order> 298 </order>
297 <step> 299 <step>
298 <name>&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x67e5;&#x8be2;</name> 300 <name>&#x4eba;&#x5458;&#x914d;&#x7f6e;id&#x67e5;&#x8be2;</name>
@@ -1075,94 +1077,6 @@ @@ -1075,94 +1077,6 @@
1075 </step> 1077 </step>
1076 1078
1077 <step> 1079 <step>
1078 - <name>&#x63d2;&#x5165; &#x2f; &#x66f4;&#x65b0;bsth_c_s_sr1_flat</name>  
1079 - <type>InsertUpdate</type>  
1080 - <description/>  
1081 - <distribute>Y</distribute>  
1082 - <custom_distribution/>  
1083 - <copies>1</copies>  
1084 - <partitioning>  
1085 - <method>none</method>  
1086 - <schema_name/>  
1087 - </partitioning>  
1088 - <connection>bus_control_variable</connection>  
1089 - <commit>100</commit>  
1090 - <update_bypassed>N</update_bypassed>  
1091 - <lookup>  
1092 - <schema/>  
1093 - <table>bsth_c_s_sr1_flat</table>  
1094 - <key>  
1095 - <name>xlid</name>  
1096 - <field>xl</field>  
1097 - <condition>&#x3d;</condition>  
1098 - <name2/>  
1099 - </key>  
1100 - <key>  
1101 - <name>cid</name>  
1102 - <field>car_config_info</field>  
1103 - <condition>&#x3d;</condition>  
1104 - <name2/>  
1105 - </key>  
1106 - <value>  
1107 - <name>xl</name>  
1108 - <rename>xlid</rename>  
1109 - <update>Y</update>  
1110 - </value>  
1111 - <value>  
1112 - <name>car_config_info</name>  
1113 - <rename>cid</rename>  
1114 - <update>Y</update>  
1115 - </value>  
1116 - <value>  
1117 - <name>lp_names</name>  
1118 - <rename>lpnames</rename>  
1119 - <update>Y</update>  
1120 - </value>  
1121 - <value>  
1122 - <name>lp_ids</name>  
1123 - <rename>lpids</rename>  
1124 - <update>Y</update>  
1125 - </value>  
1126 - <value>  
1127 - <name>lp_start</name>  
1128 - <rename>&#x8d77;&#x59cb;&#x8def;&#x724c;</rename>  
1129 - <update>Y</update>  
1130 - </value>  
1131 - <value>  
1132 - <name>ry_start</name>  
1133 - <rename>&#x8d77;&#x59cb;&#x4eba;&#x5458;</rename>  
1134 - <update>Y</update>  
1135 - </value>  
1136 - <value>  
1137 - <name>ry_dbbms</name>  
1138 - <rename>rybms</rename>  
1139 - <update>Y</update>  
1140 - </value>  
1141 - <value>  
1142 - <name>qyrq</name>  
1143 - <rename>&#x542f;&#x7528;&#x65e5;&#x671f;</rename>  
1144 - <update>Y</update>  
1145 - </value>  
1146 - <value>  
1147 - <name>ry_config_ids</name>  
1148 - <rename>rycids</rename>  
1149 - <update>Y</update>  
1150 - </value>  
1151 - <value>  
1152 - <name>fbgs</name>  
1153 - <rename>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</rename>  
1154 - <update>Y</update>  
1155 - </value>  
1156 - </lookup>  
1157 - <cluster_schema/>  
1158 - <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>  
1159 - <xloc>532</xloc>  
1160 - <yloc>297</yloc>  
1161 - <draw>Y</draw>  
1162 - </GUI>  
1163 - </step>  
1164 -  
1165 - <step>  
1166 <name>&#x7ebf;&#x8def;id&#x67e5;&#x8be2;</name> 1080 <name>&#x7ebf;&#x8def;id&#x67e5;&#x8be2;</name>
1167 <type>DBLookup</type> 1081 <type>DBLookup</type>
1168 <description/> 1082 <description/>
@@ -1527,7 +1441,7 @@ @@ -1527,7 +1441,7 @@
1527 <format/> 1441 <format/>
1528 </field> 1442 </field>
1529 <field> 1443 <field>
1530 - <name>&#x8def;&#x724c;&#x8303;&#x56f4;</name> 1444 + <name>lpnames</name>
1531 <type>String</type> 1445 <type>String</type>
1532 <format/> 1446 <format/>
1533 </field> 1447 </field>
@@ -1572,6 +1486,11 @@ @@ -1572,6 +1486,11 @@
1572 <format/> 1486 <format/>
1573 </field> 1487 </field>
1574 <field> 1488 <field>
  1489 + <name>rybms</name>
  1490 + <type>String</type>
  1491 + <format/>
  1492 + </field>
  1493 + <field>
1575 <name>error_count</name> 1494 <name>error_count</name>
1576 <type>Integer</type> 1495 <type>Integer</type>
1577 <format/> 1496 <format/>
@@ -1611,15 +1530,149 @@ @@ -1611,15 +1530,149 @@
1611 </custom> 1530 </custom>
1612 <cluster_schema/> 1531 <cluster_schema/>
1613 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> 1532 <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
1614 - <xloc>534</xloc>  
1615 - <yloc>392</yloc> 1533 + <xloc>253</xloc>
  1534 + <yloc>501</yloc>
  1535 + <draw>Y</draw>
  1536 + </GUI>
  1537 + </step>
  1538 +
  1539 + <step>
  1540 + <name>&#x5220;&#x9664;</name>
  1541 + <type>Delete</type>
  1542 + <description/>
  1543 + <distribute>Y</distribute>
  1544 + <custom_distribution/>
  1545 + <copies>1</copies>
  1546 + <partitioning>
  1547 + <method>none</method>
  1548 + <schema_name/>
  1549 + </partitioning>
  1550 + <connection>bus_control_variable</connection>
  1551 + <commit>100</commit>
  1552 + <lookup>
  1553 + <schema/>
  1554 + <table>bsth_c_s_sr1_flat</table>
  1555 + <key>
  1556 + <name>xlid</name>
  1557 + <field>xl</field>
  1558 + <condition>&#x3d;</condition>
  1559 + <name2/>
  1560 + </key>
  1561 + </lookup>
  1562 + <cluster_schema/>
  1563 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1564 + <xloc>619</xloc>
  1565 + <yloc>370</yloc>
  1566 + <draw>Y</draw>
  1567 + </GUI>
  1568 + </step>
  1569 +
  1570 + <step>
  1571 + <name>&#x963b;&#x585e;&#x6570;&#x636e;&#x76f4;&#x5230;&#x6b65;&#x9aa4;&#x90fd;&#x5b8c;&#x6210;</name>
  1572 + <type>BlockUntilStepsFinish</type>
  1573 + <description/>
  1574 + <distribute>Y</distribute>
  1575 + <custom_distribution/>
  1576 + <copies>1</copies>
  1577 + <partitioning>
  1578 + <method>none</method>
  1579 + <schema_name/>
  1580 + </partitioning>
  1581 + <steps>
  1582 + <step>
  1583 + <name>&#x5220;&#x9664;</name>
  1584 + <CopyNr>0</CopyNr>
  1585 + </step>
  1586 + </steps>
  1587 + <cluster_schema/>
  1588 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1589 + <xloc>450</xloc>
  1590 + <yloc>370</yloc>
  1591 + <draw>Y</draw>
  1592 + </GUI>
  1593 + </step>
  1594 +
  1595 + <step>
  1596 + <name>&#x89c4;&#x5219;&#x8868;&#x8f93;&#x51fa;</name>
  1597 + <type>TableOutput</type>
  1598 + <description/>
  1599 + <distribute>Y</distribute>
  1600 + <custom_distribution/>
  1601 + <copies>1</copies>
  1602 + <partitioning>
  1603 + <method>none</method>
  1604 + <schema_name/>
  1605 + </partitioning>
  1606 + <connection>bus_control_variable</connection>
  1607 + <schema/>
  1608 + <table>bsth_c_s_sr1_flat</table>
  1609 + <commit>1000</commit>
  1610 + <truncate>N</truncate>
  1611 + <ignore_errors>N</ignore_errors>
  1612 + <use_batch>Y</use_batch>
  1613 + <specify_fields>Y</specify_fields>
  1614 + <partitioning_enabled>N</partitioning_enabled>
  1615 + <partitioning_field/>
  1616 + <partitioning_daily>N</partitioning_daily>
  1617 + <partitioning_monthly>Y</partitioning_monthly>
  1618 + <tablename_in_field>N</tablename_in_field>
  1619 + <tablename_field/>
  1620 + <tablename_in_table>Y</tablename_in_table>
  1621 + <return_keys>N</return_keys>
  1622 + <return_field/>
  1623 + <fields>
  1624 + <field>
  1625 + <column_name>xl</column_name>
  1626 + <stream_name>xlid</stream_name>
  1627 + </field>
  1628 + <field>
  1629 + <column_name>car_config_info</column_name>
  1630 + <stream_name>cid</stream_name>
  1631 + </field>
  1632 + <field>
  1633 + <column_name>lp_names</column_name>
  1634 + <stream_name>lpnames</stream_name>
  1635 + </field>
  1636 + <field>
  1637 + <column_name>lp_ids</column_name>
  1638 + <stream_name>lpids</stream_name>
  1639 + </field>
  1640 + <field>
  1641 + <column_name>lp_start</column_name>
  1642 + <stream_name>&#x8d77;&#x59cb;&#x8def;&#x724c;</stream_name>
  1643 + </field>
  1644 + <field>
  1645 + <column_name>ry_start</column_name>
  1646 + <stream_name>&#x8d77;&#x59cb;&#x4eba;&#x5458;</stream_name>
  1647 + </field>
  1648 + <field>
  1649 + <column_name>qyrq</column_name>
  1650 + <stream_name>&#x542f;&#x7528;&#x65e5;&#x671f;</stream_name>
  1651 + </field>
  1652 + <field>
  1653 + <column_name>fbgs</column_name>
  1654 + <stream_name>&#x7ffb;&#x73ed;&#x683c;&#x5f0f;</stream_name>
  1655 + </field>
  1656 + <field>
  1657 + <column_name>ry_dbbms</column_name>
  1658 + <stream_name>rybms</stream_name>
  1659 + </field>
  1660 + <field>
  1661 + <column_name>ry_config_ids</column_name>
  1662 + <stream_name>rycids</stream_name>
  1663 + </field>
  1664 + </fields>
  1665 + <cluster_schema/>
  1666 + <remotesteps> <input> </input> <output> </output> </remotesteps> <GUI>
  1667 + <xloc>259</xloc>
  1668 + <yloc>369</yloc>
1616 <draw>Y</draw> 1669 <draw>Y</draw>
1617 </GUI> 1670 </GUI>
1618 </step> 1671 </step>
1619 1672
1620 <step_error_handling> 1673 <step_error_handling>
1621 <error> 1674 <error>
1622 - <source_step>&#x63d2;&#x5165; &#x2f; &#x66f4;&#x65b0;bsth_c_s_sr1_flat</source_step> 1675 + <source_step>&#x89c4;&#x5219;&#x8868;&#x8f93;&#x51fa;</source_step>
1623 <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</target_step> 1676 <target_step>&#x9519;&#x8bef;&#x8f93;&#x51fa; 2</target_step>
1624 <is_enabled>Y</is_enabled> 1677 <is_enabled>Y</is_enabled>
1625 <nr_valuename>error_count</nr_valuename> 1678 <nr_valuename>error_count</nr_valuename>
src/main/resources/static/pages/base/timesmodel/js/base-fun.js
@@ -332,6 +332,8 @@ var BaseFun = function() { @@ -332,6 +332,8 @@ var BaseFun = function() {
332 var rs = new Array(),bxrcgs= new Array(); 332 var rs = new Array(),bxrcgs= new Array();
333 // 遍历已分配好路牌的班型人次数组. 333 // 遍历已分配好路牌的班型人次数组.
334 for(var x = 0 ; x < bxrclist.length; x++) { 334 for(var x = 0 ; x < bxrclist.length; x++) {
  335 + /*if(x>0)
  336 + continue;*/
335 // 定义当前班型人次下的路牌数组. 337 // 定义当前班型人次下的路牌数组.
336 var cla = bxrclist[x].sslp; 338 var cla = bxrclist[x].sslp;
337 var dsdnmb = bxrclist[x].rs/bxrclist[x].fpcls; 339 var dsdnmb = bxrclist[x].rs/bxrclist[x].fpcls;
@@ -339,12 +341,13 @@ var BaseFun = function() { @@ -339,12 +341,13 @@ var BaseFun = function() {
339 var hoursV = bxrclist[x].hoursV*dsdnmb; 341 var hoursV = bxrclist[x].hoursV*dsdnmb;
340 // 遍历路牌 342 // 遍历路牌
341 for(var s = 0 ; s < cla.length; s++) { 343 for(var s = 0 ; s < cla.length; s++) {
  344 + /*if(s>1 || s==0)
  345 + continue;*/
342 //cla[s].lpName = bxrclist[x].type; 346 //cla[s].lpName = bxrclist[x].type;
343 // 获取路牌编号. 347 // 获取路牌编号.
344 var lpNo = cla[s].lpNo; 348 var lpNo = cla[s].lpNo;
345 // 定义路牌下的所有班次. 349 // 定义路牌下的所有班次.
346 var lpbc = new Array(); 350 var lpbc = new Array();
347 - bxrcgs.push({'lpNo':lpNo,'hoursV':hoursV,'type':bxrclist[x].type});  
348 // 遍历班次数. 351 // 遍历班次数.
349 for(var i =0 ; i <jsonArray.length; i++) { 352 for(var i =0 ; i <jsonArray.length; i++) {
350 // 判断当期遍历的班次是否属于当前的路牌. 353 // 判断当期遍历的班次是否属于当前的路牌.
@@ -359,10 +362,20 @@ var BaseFun = function() { @@ -359,10 +362,20 @@ var BaseFun = function() {
359 cara[l].lpName = bxrclist[x].type + '_' + lpNo ; 362 cara[l].lpName = bxrclist[x].type + '_' + lpNo ;
360 } 363 }
361 } 364 }
  365 + var _obj = baseF.getsxAndxxbc(lpbc,dataMap);
  366 + baseF.tcbc(_obj.sxbc,dataMap.smbcsjArr[0].kssj,dataMap.smbcsjArr[0].jssj);// 剔除上行不在时间范围内的班次
  367 + baseF.tcbc(_obj.xxbc,dataMap.smbcsjArr[1].kssj,dataMap.smbcsjArr[1].jssj);// 剔除下行不在时间范围内的班次
  368 + var tcnofwlpbc = _obj.sxbc.concat(_obj.xxbc);
362 // 按照发车序号顺序排序. 369 // 按照发车序号顺序排序.
363 - lpbc.sort(function(a,b){return b.fcno-a.fcno}); 370 + tcnofwlpbc.sort(function(a,b){return b.fcno-a.fcno});
  371 + /*var gsv = 0 ;
  372 + for(var z = 0 ;z < tza.length;z++) {
  373 + gsv = gsv + tza[z].bcsj + tza[z].STOPTIME;
  374 + }*/
  375 + // parseFloat((gsv/60).toFixed(2))
  376 + bxrcgs.push({'lpNo':lpNo,'hoursV':hoursV,'type':bxrclist[x].type});
364 // 调整班次数.也就是说调整工时. 377 // 调整班次数.也就是说调整工时.
365 - rs = rs.concat(baseF.tzlpgs01(lpbc,hoursV,map,dataMap,lpNo,saa,bxrclist[x].type,lpNo,cara.length)); 378 + rs = rs.concat(baseF.tzlpgs01(tcnofwlpbc,hoursV,map,dataMap,lpNo,saa,bxrclist[x].type,lpNo,cara.length));
366 } 379 }
367 } 380 }
368 var jar01 = baseF.tzsmbcsj01( 381 var jar01 = baseF.tzsmbcsj01(
@@ -375,6 +388,26 @@ var BaseFun = function() { @@ -375,6 +388,26 @@ var BaseFun = function() {
375 var jar = baseF.tzsmbcsj01( 388 var jar = baseF.tzsmbcsj01(
376 baseF.setbcsAndfcno(baseF.tzsmbcsj01(baseF.setbcsAndfcno(baseF.tzsztest(cara,jar01,dataMap)),dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap)), 389 baseF.setbcsAndfcno(baseF.tzsmbcsj01(baseF.setbcsAndfcno(baseF.tzsztest(cara,jar01,dataMap)),dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap)),
377 dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap); 390 dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap);
  391 + // return {'json':jar,'bxrcgs':bxrcgs};
  392 + for(var r = 0 ; r < bxrcgs.length; r++) {
  393 + var lpNo = bxrcgs[r].lpNo;
  394 + var gsv = 0 , bczs = 0;
  395 + for(var g = 0 ; g< jar.length; g++) {
  396 + if(jar[g].lpNo == lpNo) {
  397 + gsv = gsv + jar[g].bcsj + jar[g].STOPTIME;
  398 + bczs++;
  399 + }
  400 + }
  401 + bxrcgs[r].sjgsV = gsv;
  402 + bxrcgs[r].bczs = bczs;
  403 + }
  404 + var jar3 = baseF.dqbcsAndgs(bxrcgs,jar,dataMap,cara.length);
  405 + // return {'json':jar3,'bxrcgs':bxrcgs};
  406 + /*var jar4 = baseF.tzsmbcsj01(
  407 + baseF.setbcsAndfcno(baseF.tzsmbcsj01(baseF.setbcsAndfcno(baseF.tzsztest(cara,jar3,dataMap)),dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap)),
  408 + dataMap.smbcsjArr,dataMap.ccsjArr,dataMap.cclcArr,dataMap.qdzArr,saa[0].lbsj,dataMap);*/
  409 + var rsjar = baseF.tzsztest(cara,jar3,dataMap);
  410 + // return {'json':rsjar,'bxrcgs':bxrcgs};
378 var resultJA = new Array(); 411 var resultJA = new Array();
379 for(var m = 0 ; m < cara.length; m++) { 412 for(var m = 0 ; m < cara.length; m++) {
380 // 获取路牌编号. 413 // 获取路牌编号.
@@ -382,11 +415,11 @@ var BaseFun = function() { @@ -382,11 +415,11 @@ var BaseFun = function() {
382 // 定义路牌下的所有班次. 415 // 定义路牌下的所有班次.
383 var lpbc_ = new Array(); 416 var lpbc_ = new Array();
384 // 遍历班次数. 417 // 遍历班次数.
385 - for(var x =0 ; x <jar.length; x++) { 418 + for(var x =0 ; x <rsjar.length; x++) {
386 // 判断当期遍历的班次是否属于当前的路牌. 419 // 判断当期遍历的班次是否属于当前的路牌.
387 - if(jar[x].lpNo == lpNo_) {  
388 - delete jar[x].fcint;  
389 - lpbc_.push(jar[x]); 420 + if(rsjar[x].lpNo == lpNo_) {
  421 + delete rsjar[x].fcint;
  422 + lpbc_.push(rsjar[x]);
390 } 423 }
391 } 424 }
392 // 按照发车序号顺序排序. 425 // 按照发车序号顺序排序.
@@ -396,6 +429,222 @@ var BaseFun = function() { @@ -396,6 +429,222 @@ var BaseFun = function() {
396 return {'json':resultJA,'bxrcgs':bxrcgs}; 429 return {'json':resultJA,'bxrcgs':bxrcgs};
397 }, 430 },
398 431
  432 + dqbcsAndgs : function(bxrcgs,jar,dataMap,cla) {
  433 + var bxA = new Array(),rsA = new Array();
  434 + for(var b = 0 ;b <bxrcgs.length; b++) {
  435 + if(bxA.indexOf(bxrcgs[b].type)<0)
  436 + bxA.push(bxrcgs[b].type);
  437 + }
  438 + var maxXxsjA = [parseInt(dataMap.map.upTravelTime),parseInt(dataMap.map.downTravelTime)];
  439 + var v1 = Math.max.apply(null, maxXxsjA) *1.5;
  440 + for(var a = 0 ;a < bxA.length;a++) {
  441 + var type = bxA[a],bxszA = new Array();
  442 + for(var s = 0 ; s < bxrcgs.length; s++) {
  443 + if(type == bxrcgs[s].type)
  444 + bxszA.push({'szgs':bxrcgs[s].sjgsV,'szbc' : bxrcgs[s].bczs, 'lpNo':bxrcgs[s].lpNo,'type' :bxrcgs[s].type});
  445 + }
  446 + var lpA = new Array();
  447 + if(bxszA.length>1) {
  448 + /*bxszA.sort(function(c,d){return ((c.szbc - d.szbc) && (c.szgs - d.szgs))});*/
  449 + bxszA.sort(function(c,d){return d.szgs - c.szgs});
  450 + for(var t = 0 ;t < bxszA.length;t++) {
  451 + var lpN_ = bxszA[t].lpNo;
  452 + /*if(lpN_==bxszA[0].lpNo)
  453 + continue;*/
  454 + var dx = bxszA[t].szbc - bxszA[0].szbc;
  455 + var type_ = bxszA[t].type;
  456 + lpA = baseF.getlpbcA(lpN_,jar);
  457 + lpA.sort(function(x,y){return y.fcno - x.fcno});
  458 + var tempTag = false;
  459 + var isyddygbc = !baseF.issmbcsjArr(lpA[lpA.length-1].fcsj,dataMap.smbcsjArr);
  460 + var isydzhygbc = !baseF.issmbcsjArr(lpA[0].fcsj,dataMap.smbcsjArr);
  461 + if(dx>0) {
  462 + for(var j = 0 ; j < dx ; j++) {
  463 + for(var k = 0 ; k<lpA.length;k++) {
  464 + // 得到当前路牌下的发车时间.
  465 + var dqbcfcsj = baseF.getDateTime(lpA[k].fcsj);
  466 + // 判断时间范围.
  467 + if(dataMap.zgfsjd[0].ed < dqbcfcsj && dqbcfcsj < dataMap.wgfsjd[0].st) {
  468 + lpA.splice(k,1);
  469 + break;
  470 + }
  471 + }
  472 + }
  473 + tempTag = true;
  474 + }else if(bxszA[t].szgs < bxszA[0].szgs) {
  475 + var gsdx = bxszA[0].szgs - bxszA[t].szgs;
  476 + // console.log(gsdx + '---' + lpN_);
  477 + if(gsdx<=v1) {
  478 + if(isyddygbc && isydzhygbc) {
  479 + var dygbcydx = 0,zhygbcydx = 0;
  480 + if(gsdx%2==0) {
  481 + dygbcydx = gsdx/2;
  482 + zhygbcydx = dygbcydx;
  483 + }else {
  484 + dygbcydx = gsdx%2;
  485 + zhygbcydx = gsdx - dygbcydx;
  486 + }
  487 + baseF.dygbcUpd(lpA[lpA.length-1],dygbcydx);
  488 + baseF.zhygbcUpd(lpA[0],lpA[1],zhygbcydx);
  489 + }else if(isyddygbc) {
  490 + baseF.dygbcUpd(lpA[lpA.length-1],gsdx);
  491 + }else if(isydzhygbc) {
  492 + baseF.zhygbcUpd(lpA[0],lpA[1],gsdx);
  493 + }
  494 + }else {
  495 + var isZerInt = baseF.istzsjZero(lpA,dataMap);
  496 + var vag = 0,avgdx = 0;
  497 + if(gsdx % isZerInt==0) {
  498 + vag = gsdx / isZerInt;
  499 + }else {
  500 + vag = parseInt(gsdx / isZerInt);
  501 + avgdx = gsdx - vag*isZerInt;
  502 + if(isyddygbc && isydzhygbc) {
  503 + var dygbcydx = 0,zhygbcydx = 0;
  504 + if(avgdx%2==0) {
  505 + dygbcydx = avgdx/2;
  506 + zhygbcydx = dygbcydx;
  507 + }else {
  508 + dygbcydx = avgdx%2;
  509 + zhygbcydx = avgdx - dygbcydx;
  510 + }
  511 + baseF.dygbcUpd(lpA[lpA.length-1],dygbcydx);
  512 + baseF.zhygbcUpd(lpA[0],lpA[1],zhygbcydx);
  513 + }else if(isyddygbc) {
  514 + baseF.dygbcUpd(lpA[lpA.length-1],avgdx);
  515 + }else if(isydzhygbc) {
  516 + baseF.zhygbcUpd(lpA[0],lpA[1],avgdx);
  517 + }
  518 + }
  519 + var qbbfbc = new Array();
  520 + for(var v = 1 ; v < lpA.length;v++) {
  521 + var ddsj = baseF.getDateTime(lpA[v-1].fcsj);
  522 + if(baseF.getDateTime("13:00") <= baseF.getDateTime(lpA[v].fcsj)) {
  523 + if(lpA[v].STOPTIME > 0 && !baseF.issmbcsjArr(lpA[v].fcsj,dataMap.smbcsjArr) ) {
  524 + lpA[v].STOPTIME = lpA[v].STOPTIME + vag;
  525 + ddsj.setMinutes(ddsj.getMinutes() - lpA[v].STOPTIME);
  526 + lpA[v].ARRIVALTIME = baseF.getTimeStr(ddsj);
  527 + ddsj.setMinutes(ddsj.getMinutes() - lpA[v].bcsj);
  528 + lpA[v].fcsj = baseF.getTimeStr(ddsj);
  529 +
  530 + }
  531 + }else {
  532 + if(!baseF.issmbcsjArr(lpA[v].fcsj,dataMap.smbcsjArr)) {
  533 + qbbfbc.push(lpA[v]);
  534 + }
  535 + }
  536 + }
  537 + qbbfbc.sort(function(x,y){return x.fcno - y.fcno});
  538 + for(var q = 0 ; q < qbbfbc.length; q++) {
  539 + if(q<(qbbfbc.length-1))
  540 + qbbfbc[q].STOPTIME = qbbfbc[q].STOPTIME + vag;
  541 + if(q==0)
  542 + continue;
  543 + else {
  544 + var ddsj_ = baseF.getDateTime(qbbfbc[q-1].ARRIVALTIME);
  545 + ddsj_.setMinutes(ddsj_.getMinutes() + qbbfbc[q-1].STOPTIME);
  546 + qbbfbc[q].fcsj = baseF.getTimeStr(ddsj_);
  547 + ddsj_.setMinutes(ddsj_.getMinutes() + qbbfbc[q].bcsj);
  548 + qbbfbc[q].ARRIVALTIME = baseF.getTimeStr(ddsj_);
  549 + }
  550 + }
  551 + }
  552 + }
  553 + var start = baseF.getDateTime(lpA[0].ARRIVALTIME);
  554 + var end = baseF.getDateTime(lpA[lpA.length-1].fcsj);
  555 + var hourdx = start.getHours() - end.getHours();
  556 + var minuedx = hourdx* 60 + (start.getMinutes() - end.getMinutes()) + lpA[0].STOPTIME;
  557 + var dx = 0;
  558 + /*if(minuedx > bxszA[0].szgs && tempTag) {
  559 + dx = minuedx - bxszA[0].szgs;
  560 + console.log(dx);
  561 + }else */
  562 + if(minuedx < bxszA[0].szgs && tempTag) {
  563 + dx = bxszA[0].szgs - minuedx;
  564 + if(dx > v1 && isyddygbc && isydzhygbc) {
  565 + var dygbcydx = 0,zhygbcydx = 0;
  566 + if(dx%2==0) {
  567 + dygbcydx = dx/2;
  568 + zhygbcydx = dygbcydx;
  569 + }else {
  570 + dygbcydx = dx%2;
  571 + zhygbcydx = dx - dygbcydx;
  572 + }
  573 + baseF.dygbcUpd(lpA[lpA.length-1],dygbcydx);
  574 + baseF.zhygbcUpd(lpA[0],lpA[1],zhygbcydx);
  575 + }else {
  576 + if(isyddygbc && isydzhygbc) {
  577 + var dygbcydx = 0,zhygbcydx = 0;
  578 + if(dx%2==0) {
  579 + dygbcydx = dx/2;
  580 + zhygbcydx = dygbcydx;
  581 + }else {
  582 + dygbcydx = dx%2;
  583 + zhygbcydx = dx - dygbcydx;
  584 + }
  585 + baseF.dygbcUpd(lpA[lpA.length-1],dygbcydx);
  586 + baseF.zhygbcUpd(lpA[0],lpA[1],zhygbcydx);
  587 + }else if(isyddygbc) {
  588 + baseF.dygbcUpd(lpA[lpA.length-1],dx);
  589 + }else if(isydzhygbc) {
  590 + baseF.zhygbcUpd(lpA[0],lpA[1],dx);
  591 + }
  592 + }
  593 + }
  594 + rsA = rsA.concat(lpA);
  595 + }
  596 +
  597 + }else {
  598 + rsA = rsA.concat(baseF.getlpbcA(bxszA[0].lpNo,jar));
  599 + }
  600 + }
  601 + return rsA;
  602 + },
  603 +
  604 + istzsjZero : function(arr,dataMap) {
  605 + var rsint = 0;
  606 + for(var r = 1 ; r<arr.length;r++) {
  607 + if(arr[r].STOPTIME>0 && !baseF.issmbcsjArr(arr[r].fcsj,dataMap.smbcsjArr)) {
  608 + rsint++;
  609 + }
  610 + }
  611 + return rsint;
  612 + },
  613 +
  614 + dygbcUpd : function(obj,dx) {
  615 + obj.STOPTIME = obj.STOPTIME + dx;
  616 + var dygbcfcsj = baseF.getDateTime(obj.fcsj);
  617 + dygbcfcsj.setMinutes(dygbcfcsj.getMinutes() - dx);
  618 + obj.fcsj = baseF.getTimeStr(dygbcfcsj);
  619 + },
  620 +
  621 + zhygbcUpd: function(obj,xgOjb,dx) {
  622 + xgOjb.STOPTIME = xgOjb.STOPTIME + dx;
  623 + var zhygbcydx = baseF.getDateTime(obj.fcsj);
  624 + zhygbcydx.setMinutes(zhygbcydx.getMinutes() + dx);
  625 + obj.fcsj = baseF.getTimeStr(zhygbcydx);
  626 + zhygbcydx.setMinutes(zhygbcydx.getMinutes() + obj.bcsj);
  627 + obj.ARRIVALTIME = baseF.getTimeStr(zhygbcydx);
  628 + },
  629 +
  630 + issmbcsjArr : function(str,arr) {
  631 + var tag = false;
  632 + for(var a = 0 ;a < arr.length;a++) {
  633 + if(str == arr[a].kssj || str == arr[a].jssj)
  634 + tag = true;
  635 + }
  636 + return tag;
  637 + },
  638 +
  639 + getlpbcA : function(lpN_,jar) {
  640 + var lpA = new Array();
  641 + for(var p = 0 ; p < jar.length; p++ ) {
  642 + if(jar[p].lpNo == lpN_)
  643 + lpA.push(jar[p]);
  644 + }
  645 + return lpA;
  646 + },
  647 +
399 tzsztest : function(cara,tempa,dataMap) { 648 tzsztest : function(cara,tempa,dataMap) {
400 var jsrs = new Array(); 649 var jsrs = new Array();
401 for(var t = 0 ; t < cara.length; t++) { 650 for(var t = 0 ; t < cara.length; t++) {
@@ -445,22 +694,32 @@ var BaseFun = function() { @@ -445,22 +694,32 @@ var BaseFun = function() {
445 }, 694 },
446 695
447 tztzsjInit01 : function(ar,dataMap) { 696 tztzsjInit01 : function(ar,dataMap) {
  697 + var maxXxsjA = [parseInt(dataMap.map.upTravelTime),parseInt(dataMap.map.downTravelTime)];
  698 + var v1 = Math.max.apply(null, maxXxsjA) *1.5;
448 for(var r = 0 ; r< ar.length-1;r++) { 699 for(var r = 0 ; r< ar.length-1;r++) {
449 var sgbcfcsj = baseF.getDateTime(ar[r+1].fcsj),dqbcddsj = baseF.getDateTime(ar[r].ARRIVALTIME); 700 var sgbcfcsj = baseF.getDateTime(ar[r+1].fcsj),dqbcddsj = baseF.getDateTime(ar[r].ARRIVALTIME);
450 var dxmin = parseInt( (sgbcfcsj - dqbcddsj)/60000); 701 var dxmin = parseInt( (sgbcfcsj - dqbcddsj)/60000);
451 if(dxmin<0 || ar[r].STOPTIME<0) { 702 if(dxmin<0 || ar[r].STOPTIME<0) {
452 var cctag = baseF.dirDmToIndex(ar[r].xlDir); 703 var cctag = baseF.dirDmToIndex(ar[r].xlDir);
453 dxmin = ar[r].bcType == dataMap.bcTypeArr.cf ? 0 : baseF.isgfsjd01(baseF.getDateTime(ar[r].fcsj),dataMap) ? dataMap.gftzsj[cctag] : dataMap.dgtzsj[cctag]; 704 dxmin = ar[r].bcType == dataMap.bcTypeArr.cf ? 0 : baseF.isgfsjd01(baseF.getDateTime(ar[r].fcsj),dataMap) ? dataMap.gftzsj[cctag] : dataMap.dgtzsj[cctag];
454 - dqbcddsj.setMinutes(dqbcddsj.getMinutes() + dxmin); 705 + /*dqbcddsj.setMinutes(dqbcddsj.getMinutes() + dxmin);
455 ar[r+1].fcsj = baseF.getTimeStr(dqbcddsj); 706 ar[r+1].fcsj = baseF.getTimeStr(dqbcddsj);
456 dqbcddsj.setMinutes(dqbcddsj.getMinutes() + ar[r+1].bcsj); 707 dqbcddsj.setMinutes(dqbcddsj.getMinutes() + ar[r+1].bcsj);
457 - ar[r+1].ARRIVALTIME = baseF.getTimeStr(dqbcddsj); 708 + ar[r+1].ARRIVALTIME = baseF.getTimeStr(dqbcddsj);*/
458 /*sgbcfcsj.setMinutes(sgbcfcsj.getMinutes() - dxmin); 709 /*sgbcfcsj.setMinutes(sgbcfcsj.getMinutes() - dxmin);
459 ar[r].ARRIVALTIME = baseF.getTimeStr(sgbcfcsj); 710 ar[r].ARRIVALTIME = baseF.getTimeStr(sgbcfcsj);
460 sgbcfcsj.setMinutes(sgbcfcsj.getMinutes() - ar[r].bcsj); 711 sgbcfcsj.setMinutes(sgbcfcsj.getMinutes() - ar[r].bcsj);
461 ar[r].fcsj = baseF.getTimeStr(sgbcfcsj);*/ 712 ar[r].fcsj = baseF.getTimeStr(sgbcfcsj);*/
  713 + }else if(dxmin >= v1 && dxmin < 180) {
  714 + dxmin = v1;
  715 + }
  716 + if(ar[r].STOPTIME >0) {
  717 + dqbcddsj.setMinutes(dqbcddsj.getMinutes() + dxmin);
  718 + ar[r+1].fcsj = baseF.getTimeStr(dqbcddsj);
  719 + dqbcddsj.setMinutes(dqbcddsj.getMinutes() + ar[r+1].bcsj);
  720 + ar[r+1].ARRIVALTIME = baseF.getTimeStr(dqbcddsj);
  721 + ar[r].STOPTIME = dxmin >= 180 ? 0 : parseInt(dxmin);
462 } 722 }
463 - ar[r].STOPTIME = dxmin>180 ? 0 : dxmin;  
464 } 723 }
465 }, 724 },
466 725
@@ -573,64 +832,129 @@ var BaseFun = function() { @@ -573,64 +832,129 @@ var BaseFun = function() {
573 var jczwsj = saa[0].lbsj*2 + dataMap.ccsjArr[baseF.dirDmToIndex(arr[0].xlDir)] + 832 var jczwsj = saa[0].lbsj*2 + dataMap.ccsjArr[baseF.dirDmToIndex(arr[0].xlDir)] +
574 dataMap.jcsjArr[baseF.dirDmToIndex(arr[arr.length-1].xlDir)]; 833 dataMap.jcsjArr[baseF.dirDmToIndex(arr[arr.length-1].xlDir)];
575 // 定义路牌总工时.第一次切高峰之间和晚高峰之后的班次. 834 // 定义路牌总工时.第一次切高峰之间和晚高峰之后的班次.
576 - var lpdqzgs = parseFloat(((baseF.getlpzgs(arr) + jczwsj)/60).toFixed(2));  
577 - while(lpdqzgs>gs) {  
578 - for(var t = 0 ; t<arr.length;t++) {  
579 - // 得到当前路牌下的发车时间.  
580 - var dqbcfcsj = baseF.getDateTime(arr[t].fcsj);  
581 - // 判断时间范围.  
582 - if(!baseF.issplice(dqbcfcsj,dataMap,type,lpNo,cla)) {  
583 - arr.splice(t,1);  
584 - break; 835 + var lpdqzgs = parseFloat(((baseF.getlpzgs(arr) + jczwsj)/60).toFixed(2)),tagboolean = true;
  836 + while(tagboolean) {
  837 + if(lpdqzgs>gs) {
  838 + var temp = true ;
  839 + for(var t = 0 ; t<arr.length;t++) {
  840 + // 得到当前路牌下的发车时间.
  841 + var dqbcfcsj = baseF.getDateTime(arr[t].fcsj);
  842 + // 判断时间范围.
  843 + if(!baseF.issplice(dqbcfcsj,dataMap,type,lpNo,cla)) {
  844 + arr.splice(t,1);
  845 + temp = false;
  846 + break;
  847 + }
585 } 848 }
  849 + lpdqzgs = parseFloat(((baseF.getlpzgs(arr) + jczwsj)/60).toFixed(2));
  850 + if(temp)
  851 + tagboolean = false;
  852 + }else {
  853 + tagboolean = false;
586 } 854 }
587 - lpdqzgs = parseFloat(((baseF.getlpzgs(arr) + jczwsj)/60).toFixed(2));  
588 } 855 }
  856 + if(arr[0].xlDir == arr[arr.length-1].xlDir) {
  857 + baseF.addbc01(arr,arr[0],dataMap);
  858 + }
  859 + var gfzjst = null
589 for(var c = 0 ; c<arr.length;c++) { 860 for(var c = 0 ; c<arr.length;c++) {
590 var cfsjbc = baseF.getDateTime(arr[c].fcsj); 861 var cfsjbc = baseF.getDateTime(arr[c].fcsj);
591 if(dataMap.gfzjsjd[0].st <= cfsjbc && cfsjbc <= dataMap.gfzjsjd[0].ed && arr[c].bcType == dataMap.bcTypeArr.cf ) 862 if(dataMap.gfzjsjd[0].st <= cfsjbc && cfsjbc <= dataMap.gfzjsjd[0].ed && arr[c].bcType == dataMap.bcTypeArr.cf )
592 gfzjst = baseF.getDateTime(arr[c].ARRIVALTIME); 863 gfzjst = baseF.getDateTime(arr[c].ARRIVALTIME);
593 } 864 }
594 - gfzjst == null ? dataMap.gfzjsjd[0].st : gfzjst; 865 + gfzjst = gfzjst == null ? dataMap.gfzjsjd[0].st : gfzjst;
595 var gfzjbc = new Array(),wgfbc = new Array(),zgfbc = new Array(); 866 var gfzjbc = new Array(),wgfbc = new Array(),zgfbc = new Array();
596 - for(var a = 0 ; a<arr.length;a++) {  
597 - var tmkssj = baseF.getDateTime(arr[a].fcsj) 867 + for(var x = 0 ; x<arr.length;x++) {
  868 + var tmkssj = baseF.getDateTime(arr[x].fcsj)
598 if(gfzjst <= tmkssj && tmkssj <= dataMap.gfzjsjd[0].ed) 869 if(gfzjst <= tmkssj && tmkssj <= dataMap.gfzjsjd[0].ed)
599 - gfzjbc.push(arr[a]); 870 + gfzjbc.push(arr[x]);
600 else if(dataMap.wgfsjd[0].st <= tmkssj && tmkssj <= dataMap.wgfsjd[0].ed) 871 else if(dataMap.wgfsjd[0].st <= tmkssj && tmkssj <= dataMap.wgfsjd[0].ed)
601 - wgfbc.push(arr[a]); 872 + wgfbc.push(arr[x]);
602 else 873 else
603 - zgfbc.push(arr[a]); 874 + zgfbc.push(arr[x]);
604 } 875 }
605 gfzjbc.sort(function(a,b){return a.fcno-b.fcno}); 876 gfzjbc.sort(function(a,b){return a.fcno-b.fcno});
606 wgfbc.sort(function(a,b){return a.fcno-b.fcno}); 877 wgfbc.sort(function(a,b){return a.fcno-b.fcno});
607 - if(gfzjbc[gfzjbc.length-1].xlDir == wgfbc[0].xlDir)  
608 - gfzjbc.splice(gfzjbc.length-1,1);  
609 - if(type!='五工二休') {  
610 - var gfzjst = null;  
611 - var dxmin = parseInt((baseF.getDateTime(wgfbc[0].fcsj) - baseF.getDateTime(gfzjbc[gfzjbc.length-1].ARRIVALTIME))/60000);  
612 - var addmin = parseInt(dxmin/gfzjbc.length);  
613 - for(var g = 0 ;g < gfzjbc.length;g++) {  
614 - if(gfzjbc[g].bcType != dataMap.bcTypeArr.cf)  
615 - gfzjbc[g].STOPTIME = gfzjbc[g].STOPTIME + addmin;  
616 - if(g==0) {  
617 - continue;  
618 - }else {  
619 - var tempd = baseF.getDateTime(gfzjbc[g-1].ARRIVALTIME);  
620 - tempd.setMinutes(tempd.getMinutes() + gfzjbc[g-1].STOPTIME);  
621 - gfzjbc[g].fcsj = baseF.getTimeStr(tempd);  
622 - tempd.setMinutes(tempd.getMinutes() + gfzjbc[g].bcsj);  
623 - gfzjbc[g].ARRIVALTIME = baseF.getTimeStr(tempd); 878 + if(gfzjbc.length>0 && wgfbc.length>0) {
  879 + if(gfzjbc[gfzjbc.length-1].xlDir == wgfbc[0].xlDir && dataMap.map.linePlayType == "0"){
  880 + // addbc
  881 + baseF.addbc01(gfzjbc,gfzjbc[gfzjbc.length-1],dataMap);
  882 + }
  883 + if(type!='五工二休') {
  884 + var dxmin = parseInt((baseF.getDateTime(wgfbc[0].fcsj) - baseF.getDateTime(gfzjbc[gfzjbc.length-1].ARRIVALTIME))/60000);
  885 + var addmin = parseInt(dxmin/gfzjbc.length);
  886 + var rsM = baseF.gettzsjbs(gfzjbc,addmin,dataMap);
  887 + if(rsM.tag) {
  888 + for(var g = 0 ;g < gfzjbc.length;g++) {
  889 + if(gfzjbc[g].bcType != dataMap.bcTypeArr.cf)
  890 + gfzjbc[g].STOPTIME = gfzjbc[g].STOPTIME + addmin;
  891 + if(g==0) {
  892 + continue;
  893 + }else {
  894 + var tempd = baseF.getDateTime(gfzjbc[g-1].ARRIVALTIME);
  895 + tempd.setMinutes(tempd.getMinutes() + gfzjbc[g-1].STOPTIME);
  896 + gfzjbc[g].fcsj = baseF.getTimeStr(tempd);
  897 + tempd.setMinutes(tempd.getMinutes() + gfzjbc[g].bcsj);
  898 + gfzjbc[g].ARRIVALTIME = baseF.getTimeStr(tempd);
  899 + }
  900 + }
624 } 901 }
  902 + gfzjbc[gfzjbc.length-1].STOPTIME = parseInt((baseF.getDateTime(wgfbc[0].fcsj) - baseF.getDateTime(gfzjbc[gfzjbc.length-1].ARRIVALTIME))/60000);
625 } 903 }
626 - gfzjbc[gfzjbc.length-1].STOPTIME = parseInt((baseF.getDateTime(wgfbc[0].fcsj) - baseF.getDateTime(gfzjbc[gfzjbc.length-1].ARRIVALTIME))/60000);  
627 } 904 }
628 - return gfzjbc.concat(wgfbc).concat(zgfbc); 905 + var rsAy = gfzjbc.concat(wgfbc).concat(zgfbc);
  906 + rsAy.sort(function(a,b){return b.fcno-a.fcno});
  907 + rsAy[0].STOPTIME= 0;
  908 + return rsAy;
  909 + },
  910 +
  911 + addbc01 : function(gfzjbc,lastObj,dataMap) {
  912 + var kssj = new Date(),strArray = lastObj.ARRIVALTIME.split(':');
  913 + kssj.setHours(parseInt(strArray[0]));
  914 + kssj.setMinutes(parseInt(strArray[1]) + lastObj.STOPTIME);
  915 + var cctag = baseF.dirDmToIndex(lastObj.xlDir);
  916 + cctag = baseF.getfx(1,cctag);
  917 + var tzsj = baseF.isgfsjd01(kssj,dataMap) ? dataMap.gftzsj[cctag] : dataMap.dgtzsj[cctag];
  918 + var _xxsj = baseF.getxssj(dataMap.zgfsjd,dataMap.wgfsjd,kssj,dataMap.pcxssjArr,dataMap.gfxxsjArr,cctag);// 获取行驶时间
  919 + // 定义班次序号
  920 + var xhNo = lastObj.fcno+1;
  921 + var carArray = {'lp':lastObj.lp,'lpNo':lastObj.lpNo,'lpName':lastObj.lpName,'lpType':lastObj.lpType};
  922 + var ags = {'tcc_id':lastObj.tcc,'skbName':lastObj.ttinfo,'lineName':lastObj.xl+'_'};
  923 + gfzjbc.push(baseF.getbcObj( kssj,
  924 + _xxsj,
  925 + carArray,
  926 + 'normal',
  927 + dataMap.dira[cctag],
  928 + xhNo++,
  929 + dataMap.pcxslcArr[cctag],
  930 + ags,0,
  931 + dataMap.qdzArr[cctag],
  932 + dataMap.zdzArr[cctag],
  933 + null,tzsj,0));
  934 + },
  935 +
  936 + gettzsjbs : function(array,bs,dataMap) {
  937 + var tag = true,dx = 0;
  938 + var tempA = new Array(),maxXxsjA = [parseInt(dataMap.map.upTravelTime),parseInt(dataMap.map.downTravelTime)];
  939 + for(var r = 0 ; r<array.length;r++) {
  940 + tempA.push(array[r].STOPTIME + bs);
  941 + }
  942 + var v1 = Math.max.apply(null, maxXxsjA) *1.5;
  943 + var v2 = Math.max.apply(null, tempA);
  944 + if( v2 > v1) {
  945 + tag = false;
  946 + dx = parseInt(v2 -v1);
  947 + }
  948 + return {tag:tag,dx:dx};
629 }, 949 },
630 950
631 issplice : function (kssj,dataMap,type,lpNo,cla){ 951 issplice : function (kssj,dataMap,type,lpNo,cla){
632 - var tag = false;  
633 - if(type=='五工二休' || lpNo <Math.round(cla/2)) { 952 + var tag = false,booleanTag = false ;
  953 + if(cla % 2 ==0)
  954 + booleanTag = lpNo <= Math.round(cla/2);
  955 + else
  956 + booleanTag = lpNo < Math.round(cla/2);
  957 + if(type=='五工二休' || booleanTag) {
634 if((dataMap.zgfsjd[0].st <=kssj && kssj<= dataMap.zgfsjd[0].ed ) || 958 if((dataMap.zgfsjd[0].st <=kssj && kssj<= dataMap.zgfsjd[0].ed ) ||
635 ( dataMap.wgfsjd[0].st <= kssj && kssj <= dataMap.wgfsjd[0].ed)) 959 ( dataMap.wgfsjd[0].st <= kssj && kssj <= dataMap.wgfsjd[0].ed))
636 tag = true; 960 tag = true;
@@ -1152,12 +1476,12 @@ var BaseFun = function() { @@ -1152,12 +1476,12 @@ var BaseFun = function() {
1152 while(kssj<=endTime) { 1476 while(kssj<=endTime) {
1153 cctag = map.linePlayType=='1' ? 0 : baseF.getfx(fxTagDm,cctag); 1477 cctag = map.linePlayType=='1' ? 0 : baseF.getfx(fxTagDm,cctag);
1154 fxTagDm = 1; 1478 fxTagDm = 1;
1155 - var cfdd = baseF.getcfdd(map.cfdd,cctag); 1479 + /*var cfdd = baseF.getcfdd(map.cfdd,cctag);
1156 if(kssj> new Date (baseF.getCFDate(10,30)) && 1480 if(kssj> new Date (baseF.getCFDate(10,30)) &&
1157 kssj<new Date (baseF.getCFDate(11,30)) && $_cfn<1 && cfdd == cctag) { 1481 kssj<new Date (baseF.getCFDate(11,30)) && $_cfn<1 && cfdd == cctag) {
1158 $_cfn++; 1482 $_cfn++;
1159 rs.push(baseF.getbcObj( 1483 rs.push(baseF.getbcObj(
1160 - kssj,dataMap.zwcArr[0],cara[c],dataMap.bcTypeArr.cf, 1484 + kssj,dataMap.zwcAr r[0],cara[c],dataMap.bcTypeArr.cf,
1161 dataMap.dira[cctag],xhNo++,0,map,0,null,null,null,0,0));// 午餐班次 1485 dataMap.dira[cctag],xhNo++,0,map,0,null,null,null,0,0));// 午餐班次
1162 }else if(kssj> new Date (baseF.getCFDate(18,30)) && 1486 }else if(kssj> new Date (baseF.getCFDate(18,30)) &&
1163 kssj<new Date (baseF.getCFDate(19,30)) && $_cfw<1 && cfdd == cctag && 1487 kssj<new Date (baseF.getCFDate(19,30)) && $_cfw<1 && cfdd == cctag &&
@@ -1166,15 +1490,15 @@ var BaseFun = function() { @@ -1166,15 +1490,15 @@ var BaseFun = function() {
1166 rs.push(baseF.getbcObj( 1490 rs.push(baseF.getbcObj(
1167 kssj,dataMap.zwcArr[1],cara[c],dataMap.bcTypeArr.cf, 1491 kssj,dataMap.zwcArr[1],cara[c],dataMap.bcTypeArr.cf,
1168 dataMap.dira[cctag],xhNo++,0,map,0,null,null,null,0,0));// 晚餐班次 1492 dataMap.dira[cctag],xhNo++,0,map,0,null,null,null,0,0));// 晚餐班次
1169 - } 1493 + }*/
1170 var tzsj = baseF.isgfsjd01(kssj,dataMap) ? dataMap.gftzsj[cctag] : dataMap.dgtzsj[cctag]; 1494 var tzsj = baseF.isgfsjd01(kssj,dataMap) ? dataMap.gftzsj[cctag] : dataMap.dgtzsj[cctag];
1171 // var tzsj = dataMap.ztjxA[cctag]; 1495 // var tzsj = dataMap.ztjxA[cctag];
1172 var _xxsj = baseF.getxssj(dataMap.zgfsjd,dataMap.wgfsjd,kssj,dataMap.pcxssjArr,dataMap.gfxxsjArr,cctag);// 获取行驶时间 1496 var _xxsj = baseF.getxssj(dataMap.zgfsjd,dataMap.wgfsjd,kssj,dataMap.pcxssjArr,dataMap.gfxxsjArr,cctag);// 获取行驶时间
1173 - tzsj = baseF.isLastbc(kssj,endTime,tzsj,_xxsj) ? 0 : tzsj; 1497 + var xs_tzsj = baseF.isLastbc(kssj,endTime,tzsj,_xxsj) ? 0 : tzsj;
1174 rs.push(baseF.getbcObj( 1498 rs.push(baseF.getbcObj(
1175 kssj,_xxsj,cara[c],dataMap.bcTypeArr.normal, 1499 kssj,_xxsj,cara[c],dataMap.bcTypeArr.normal,
1176 dataMap.dira[cctag],xhNo++,dataMap.pcxslcArr[cctag],map,0, 1500 dataMap.dira[cctag],xhNo++,dataMap.pcxslcArr[cctag],map,0,
1177 - dataMap.qdzArr[cctag],dataMap.zdzArr[cctag],null,tzsj,0));// 正常班次 1501 + dataMap.qdzArr[cctag],dataMap.zdzArr[cctag],null,xs_tzsj,0));// 正常班次
1178 kssj = new Date(kssj.setMinutes(kssj.getMinutes() + tzsj)); 1502 kssj = new Date(kssj.setMinutes(kssj.getMinutes() + tzsj));
1179 } 1503 }
1180 } 1504 }
@@ -1336,8 +1660,8 @@ var BaseFun = function() { @@ -1336,8 +1660,8 @@ var BaseFun = function() {
1336 var _obj = baseF.getsxAndxxbc(list); 1660 var _obj = baseF.getsxAndxxbc(list);
1337 baseF.tcbc(_obj.sxbc,smbcsj[0].kssj,smbcsj[0].jssj);// 剔除上行不在时间范围内的班次 1661 baseF.tcbc(_obj.sxbc,smbcsj[0].kssj,smbcsj[0].jssj);// 剔除上行不在时间范围内的班次
1338 baseF.tcbc(_obj.xxbc,smbcsj[1].kssj,smbcsj[1].jssj);// 剔除下行不在时间范围内的班次 1662 baseF.tcbc(_obj.xxbc,smbcsj[1].kssj,smbcsj[1].jssj);// 剔除下行不在时间范围内的班次
1339 - baseF.dzsmsj(_obj.sxbc,smbcsj[0].kssj,smbcsj[0].jssj,_obj.xxbc);// 调整上行首末班车时间  
1340 baseF.dzsmsj(_obj.xxbc,smbcsj[1].kssj,smbcsj[1].jssj,_obj.sxbc);// 调整下行首末班车时间 1663 baseF.dzsmsj(_obj.xxbc,smbcsj[1].kssj,smbcsj[1].jssj,_obj.sxbc);// 调整下行首末班车时间
  1664 + baseF.dzsmsj(_obj.sxbc,smbcsj[0].kssj,smbcsj[0].jssj,_obj.xxbc);// 调整上行首末班车时间
1341 baseF.tzqtbc(_obj.sxbc,_obj.qt,sj,cl,zd,lbsj); 1665 baseF.tzqtbc(_obj.sxbc,_obj.qt,sj,cl,zd,lbsj);
1342 baseF.tzqtbc(_obj.xxbc,_obj.qt,sj,cl,zd,lbsj); 1666 baseF.tzqtbc(_obj.xxbc,_obj.qt,sj,cl,zd,lbsj);
1343 return _obj.sxbc.concat(_obj.xxbc).concat(_obj.qt); 1667 return _obj.sxbc.concat(_obj.xxbc).concat(_obj.qt);
@@ -1353,8 +1677,14 @@ var BaseFun = function() { @@ -1353,8 +1677,14 @@ var BaseFun = function() {
1353 var _obj = baseF.getsxAndxxbc(list,dm); 1677 var _obj = baseF.getsxAndxxbc(list,dm);
1354 baseF.tcbc(_obj.sxbc,smbcsj[0].kssj,smbcsj[0].jssj ,_obj.xxbc);// 剔除上行不在时间范围内的班次 1678 baseF.tcbc(_obj.sxbc,smbcsj[0].kssj,smbcsj[0].jssj ,_obj.xxbc);// 剔除上行不在时间范围内的班次
1355 baseF.tcbc(_obj.xxbc,smbcsj[1].kssj,smbcsj[1].jssj,_obj.sxbc);// 剔除下行不在时间范围内的班次 1679 baseF.tcbc(_obj.xxbc,smbcsj[1].kssj,smbcsj[1].jssj,_obj.sxbc);// 剔除下行不在时间范围内的班次
1356 - baseF.dzsmsj(_obj.sxbc,smbcsj[0].kssj,smbcsj[0].jssj,_obj.xxbc);// 调整上行首末班车时间  
1357 - baseF.dzsmsj(_obj.xxbc,smbcsj[1].kssj,smbcsj[1].jssj,_obj.sxbc);// 调整下行首末班车时间 1680 + if(smbcsj[1].jssj < smbcsj[0].jssj ) {
  1681 + baseF.dzsmsj(_obj.xxbc,smbcsj[1].kssj,smbcsj[1].jssj,_obj.sxbc);// 调整下行首末班车时间
  1682 + baseF.dzsmsj(_obj.sxbc,smbcsj[0].kssj,smbcsj[0].jssj,_obj.xxbc);// 调整上行首末班车时间
  1683 + }else {
  1684 + baseF.dzsmsj(_obj.sxbc,smbcsj[0].kssj,smbcsj[0].jssj,_obj.xxbc);// 调整上行首末班车时间
  1685 + baseF.dzsmsj(_obj.xxbc,smbcsj[1].kssj,smbcsj[1].jssj,_obj.sxbc);// 调整下行首末班车时间
  1686 + }
  1687 +
1358 return _obj.sxbc.concat(_obj.xxbc).concat(_obj.qt); 1688 return _obj.sxbc.concat(_obj.xxbc).concat(_obj.qt);
1359 }, 1689 },
1360 tcbc : function(ar,kssj,jssj,ppar) { 1690 tcbc : function(ar,kssj,jssj,ppar) {
src/main/resources/static/pages/base/timesmodel/js/d3.relationshipgraph.js
@@ -947,11 +947,30 @@ var RelationshipGraph = function () { @@ -947,11 +947,30 @@ var RelationshipGraph = function () {
947 key : 'statistics', 947 key : 'statistics',
948 value : function statistics() { 948 value : function statistics() {
949 var $_this = this, 949 var $_this = this,
950 - array = $_this.getSvgyAxisTransformY(),  
951 - gdata = d3.selectAll('rect.data')[0],  
952 - arrayTemp = new Array(),  
953 - minValue = 0,timeNum; 950 + // array = $_this.getSvgyAxisTransformY(),
  951 + array = $_this.configuration.taskTypes,
  952 + tza = $_this.getDataArray();
954 for(var a=0;a<array.length;a++) { 953 for(var a=0;a<array.length;a++) {
  954 + var lpNo = array[a].lpNo;
  955 + var timeNum = 0 ,tempNum = 0;
  956 + for(var z = 0 ;z < tza.length;z++) {
  957 + if(tza[z].lpNo == lpNo) {
  958 + timeNum = timeNum + tza[z].bcsj + tza[z].STOPTIME;
  959 + tempNum ++;
  960 + }
  961 + }
  962 + var className = 'statis_container_' + lpNo;
  963 + var textNodes = $("."+className).children("text");
  964 + var hours = parseInt(timeNum/60);
  965 + var mimus = timeNum%60, zgs = hours + (mimus==0? "": "." + mimus);
  966 + var zgs = parseFloat((timeNum/60).toFixed(2));
  967 + // var zgs = timeNum;
  968 + $(textNodes[0]).text("总工时:" + zgs);
  969 + $(textNodes[1]).text("总班次:"+(tempNum));
  970 + // $_this.pptjbx($("."+className).children("rect")[2],zgs*1,lpNo,$_this);
  971 + }
  972 + /*for(var a=0;a<array.length;a++) {
  973 + debugger;
955 var tempNum = 0,timeNum = 0,lpNo = ''; 974 var tempNum = 0,timeNum = 0,lpNo = '';
956 for(var g = 0 ; g <gdata.length;g++) { 975 for(var g = 0 ; g <gdata.length;g++) {
957 var temp_i = parseInt(d3.select(gdata[g]).attr('y'))-this.configuration.offsetY; 976 var temp_i = parseInt(d3.select(gdata[g]).attr('y'))-this.configuration.offsetY;
@@ -968,13 +987,14 @@ var RelationshipGraph = function () { @@ -968,13 +987,14 @@ var RelationshipGraph = function () {
968 minValue = array[a]; 987 minValue = array[a];
969 var className = 'statis_container_' + array[a]; 988 var className = 'statis_container_' + array[a];
970 var textNodes = $("."+className).children("text"); 989 var textNodes = $("."+className).children("text");
971 - /*var hours = parseInt(timeNum/60);  
972 - var mimus = timeNum%60,zgs = hours + (mimus==0? "": "." + mimus);*/ 990 + var hours = parseInt(timeNum/60);
  991 + var mimus = timeNum%60,zgs = hours + (mimus==0? "": "." + mimus);
973 var zgs = parseFloat((timeNum/60).toFixed(2)); 992 var zgs = parseFloat((timeNum/60).toFixed(2));
  993 + var zgs = timeNum;
974 $(textNodes[0]).text("总工时:" + zgs); 994 $(textNodes[0]).text("总工时:" + zgs);
975 $(textNodes[1]).text("总班次:"+(tempNum)); 995 $(textNodes[1]).text("总班次:"+(tempNum));
976 $_this.pptjbx($("."+className).children("rect")[2],zgs*1,lpNo,$_this); 996 $_this.pptjbx($("."+className).children("rect")[2],zgs*1,lpNo,$_this);
977 - } 997 + }*/
978 } 998 }
979 999
980 }, { 1000 }, {
@@ -1025,11 +1045,12 @@ var RelationshipGraph = function () { @@ -1025,11 +1045,12 @@ var RelationshipGraph = function () {
1025 value : function createStatistics() { 1045 value : function createStatistics() {
1026 var svg = d3.select('.gantt-chart'), 1046 var svg = d3.select('.gantt-chart'),
1027 _this = this, 1047 _this = this,
1028 - array = _this.getSvgyAxisTransformY(); 1048 + yAyxisA = _this.getSvgyAxisTransformY();
  1049 + array = _this.configuration.taskTypes;
1029 var g_statis = svg.selectAll('.g_statis').data([1]).enter().append('g').classed({'g_statis':true}).attr("transform", "translate(" + _this.configuration.offsetX + ", " + _this.configuration.offsetY + ")"); 1050 var g_statis = svg.selectAll('.g_statis').data([1]).enter().append('g').classed({'g_statis':true}).attr("transform", "translate(" + _this.configuration.offsetX + ", " + _this.configuration.offsetY + ")");
1030 for(var c = 0 ;c<array.length;c++) { 1051 for(var c = 0 ;c<array.length;c++) {
1031 - var className = 'statis_container_' + array[c];  
1032 - var statis_container = g_statis.append('g').attr("class",className).attr("transform", "translate(" + 0 + ", " + array[c] + ")"); 1052 + var className = 'statis_container_' + array[c].lpNo;
  1053 + var statis_container = g_statis.append('g').attr("class",className).attr("transform", "translate(" + 0 + ", " + yAyxisA[c] + ")");
1033 statis_container.append('rect').classed({'rect_shift':true}) 1054 statis_container.append('rect').classed({'rect_shift':true})
1034 .attr("x",-_this.configuration.offsetX) 1055 .attr("x",-_this.configuration.offsetX)
1035 .attr("y",9) 1056 .attr("y",9)
@@ -1527,7 +1548,8 @@ var RelationshipGraph = function () { @@ -1527,7 +1548,8 @@ var RelationshipGraph = function () {
1527 key : 'setIdValue', 1548 key : 'setIdValue',
1528 value : function setIdValue(obj) { 1549 value : function setIdValue(obj) {
1529 // 设置id属性值. 由一个 常量字符串 + 班次数 + 常量字符串 + 发车序号 + 常量字符 + 对应的y轴值. 1550 // 设置id属性值. 由一个 常量字符串 + 班次数 + 常量字符串 + 发车序号 + 常量字符 + 对应的y轴值.
1530 - return 'shift-rect-' + obj.bcs + '_' + obj.fcno + '_' + $_GlobalGraph.configuration.y(obj.parent); 1551 + // return 'shift-rect-' + obj.bcs + '_' + obj.fcno + '_' + $_GlobalGraph.configuration.y(obj.parent);
  1552 + return 'shift-rect-' + obj.bcs + '_' + obj.fcno + '_' + $_GlobalGraph.configuration.y(obj.lpName);
1531 } 1553 }
1532 }, { 1554 }, {
1533 /** 1555 /**
@@ -1615,7 +1637,8 @@ var RelationshipGraph = function () { @@ -1615,7 +1637,8 @@ var RelationshipGraph = function () {
1615 * */ 1637 * */
1616 key : 'setRectParenNodeIdV', 1638 key : 'setRectParenNodeIdV',
1617 value : function setRectParenNodeIdV(obj) { 1639 value : function setRectParenNodeIdV(obj) {
1618 - return 'parent_' + $_GlobalGraph.configuration.y(obj.parent) + '_' + obj.bcs + "_node_" + obj.fcno; 1640 + // return 'parent_' + $_GlobalGraph.configuration.y(obj.parent) + '_' + obj.bcs + "_node_" + obj.fcno;
  1641 + return 'parent_' + $_GlobalGraph.configuration.y(obj.lpName) + '_' + obj.bcs + "_node_" + obj.fcno;
1619 } 1642 }
1620 }, { 1643 }, {
1621 /** 1644 /**
@@ -1629,7 +1652,8 @@ var RelationshipGraph = function () { @@ -1629,7 +1652,8 @@ var RelationshipGraph = function () {
1629 * */ 1652 * */
1630 key : 'setNextNodeIdV', 1653 key : 'setNextNodeIdV',
1631 value : function setNextNodeIdV(obj) { 1654 value : function setNextNodeIdV(obj) {
1632 - return "shift-rect-" + (obj.bcs+1) + '_' + (obj.fcno+1) + '_' + $_GlobalGraph.configuration.y(obj.parent); 1655 + // return "shift-rect-" + (obj.bcs+1) + '_' + (obj.fcno+1) + '_' + $_GlobalGraph.configuration.y(obj.parent);
  1656 + return "shift-rect-" + (obj.bcs+1) + '_' + (obj.fcno+1) + '_' + $_GlobalGraph.configuration.y(obj.lpName);
1633 } 1657 }
1634 }, { 1658 }, {
1635 /** 1659 /**
@@ -1643,7 +1667,8 @@ var RelationshipGraph = function () { @@ -1643,7 +1667,8 @@ var RelationshipGraph = function () {
1643 * */ 1667 * */
1644 key : 'setLastNodeIdV', 1668 key : 'setLastNodeIdV',
1645 value : function setLastNodeIdV(obj) { 1669 value : function setLastNodeIdV(obj) {
1646 - return "shift-rect-" + (obj.bcs-1) + '_' + (obj.fcno-1)+ '_' + $_GlobalGraph.configuration.y(obj.parent); 1670 + // return "shift-rect-" + (obj.bcs-1) + '_' + (obj.fcno-1)+ '_' + $_GlobalGraph.configuration.y(obj.parent);
  1671 + return "shift-rect-" + (obj.bcs-1) + '_' + (obj.fcno-1)+ '_' + $_GlobalGraph.configuration.y(obj.lpName);
1647 } 1672 }
1648 }, { 1673 }, {
1649 /** 1674 /**
@@ -1671,7 +1696,8 @@ var RelationshipGraph = function () { @@ -1671,7 +1696,8 @@ var RelationshipGraph = function () {
1671 * */ 1696 * */
1672 key : 'setText01IdV', 1697 key : 'setText01IdV',
1673 value : function setText01IdV(obj) { 1698 value : function setText01IdV(obj) {
1674 - return "shift-rect-text01-" + obj.bcs + '_' + obj.fcno + $_GlobalGraph.configuration.y(obj.parent); 1699 + // return "shift-rect-text01-" + obj.bcs + '_' + obj.fcno + $_GlobalGraph.configuration.y(obj.parent);
  1700 + return "shift-rect-text01-" + obj.bcs + '_' + obj.fcno + $_GlobalGraph.configuration.y(obj.lpName);
1675 } 1701 }
1676 }, { 1702 }, {
1677 /** 1703 /**
@@ -1755,7 +1781,8 @@ var RelationshipGraph = function () { @@ -1755,7 +1781,8 @@ var RelationshipGraph = function () {
1755 * */ 1781 * */
1756 key : 'setCircleIdV', 1782 key : 'setCircleIdV',
1757 value : function setCircleIdV(obj) { 1783 value : function setCircleIdV(obj) {
1758 - return "shift-rect-circle-" + obj.bcs + '_' + obj.fcno + $_GlobalGraph.configuration.y(obj.parent); 1784 + // return "shift-rect-circle-" + obj.bcs + '_' + obj.fcno + $_GlobalGraph.configuration.y(obj.parent);
  1785 + return "shift-rect-circle-" + obj.bcs + '_' + obj.fcno + $_GlobalGraph.configuration.y(obj.lpName);
1759 } 1786 }
1760 }, { 1787 }, {
1761 /** 1788 /**
@@ -1833,7 +1860,8 @@ var RelationshipGraph = function () { @@ -1833,7 +1860,8 @@ var RelationshipGraph = function () {
1833 * */ 1860 * */
1834 key : 'setText02IdV', 1861 key : 'setText02IdV',
1835 value : function setText02IdV(obj) { 1862 value : function setText02IdV(obj) {
1836 - return "shift-rect-text02-" + obj.bcs + '_' + obj.fcno + $_GlobalGraph.configuration.y(obj.parent); 1863 + // return "shift-rect-text02-" + obj.bcs + '_' + obj.fcno + $_GlobalGraph.configuration.y(obj.parent);
  1864 + return "shift-rect-text02-" + obj.bcs + '_' + obj.fcno + $_GlobalGraph.configuration.y(obj.lpName);
1837 } 1865 }
1838 }, { 1866 }, {
1839 /** 1867 /**
@@ -1873,7 +1901,9 @@ var RelationshipGraph = function () { @@ -1873,7 +1901,9 @@ var RelationshipGraph = function () {
1873 * */ 1901 * */
1874 key : 'setText03IdV', 1902 key : 'setText03IdV',
1875 value : function setText03IdV(obj) { 1903 value : function setText03IdV(obj) {
1876 - return "shift-rect-text03-" + obj.bcs + '_' + obj.fcno + $_GlobalGraph.configuration.y(obj.parent); 1904 + /*return "shift-rect-text03-" + obj.bcs + '_' + obj.fcno + $_GlobalGraph.configuration.y(obj.parent);*/
  1905 + return "shift-rect-text03-" + obj.bcs + '_' + obj.fcno + $_GlobalGraph.configuration.y(obj.lpName);
  1906 +
1877 } 1907 }
1878 }, { 1908 }, {
1879 /** 1909 /**
@@ -1911,7 +1941,8 @@ var RelationshipGraph = function () { @@ -1911,7 +1941,8 @@ var RelationshipGraph = function () {
1911 * */ 1941 * */
1912 key : 'setText04IdV', 1942 key : 'setText04IdV',
1913 value : function (obj) { 1943 value : function (obj) {
1914 - return "shift-rect-text04-" + obj.bcs + '_' + obj.fcno + $_GlobalGraph.configuration.y(obj.parent); 1944 + /*return "shift-rect-text04-" + obj.bcs + '_' + obj.fcno + $_GlobalGraph.configuration.y(obj.parent);*/
  1945 + return "shift-rect-text04-" + obj.bcs + '_' + obj.fcno + $_GlobalGraph.configuration.y(obj.lpName);
1915 } 1946 }
1916 }, { 1947 }, {
1917 /** 1948 /**
@@ -2011,7 +2042,8 @@ var RelationshipGraph = function () { @@ -2011,7 +2042,8 @@ var RelationshipGraph = function () {
2011 * */ 2042 * */
2012 key : 'setCoverRectIdV', 2043 key : 'setCoverRectIdV',
2013 value : function setCoverRectIdV(obj) { 2044 value : function setCoverRectIdV(obj) {
2014 - return "shift-rect-cover-" + obj.bcs + '_' + obj.fcno + $_GlobalGraph.configuration.y(obj.parent); 2045 + /*return "shift-rect-cover-" + obj.bcs + '_' + obj.fcno + $_GlobalGraph.configuration.y(obj.parent);*/
  2046 + return "shift-rect-cover-" + obj.bcs + '_' + obj.fcno + $_GlobalGraph.configuration.y(obj.lpName);
2015 } 2047 }
2016 }, { 2048 }, {
2017 /** 2049 /**
@@ -2039,7 +2071,8 @@ var RelationshipGraph = function () { @@ -2039,7 +2071,8 @@ var RelationshipGraph = function () {
2039 * */ 2071 * */
2040 key : 'setCoverRectParentV', 2072 key : 'setCoverRectParentV',
2041 value : function setCoverRectParentV(obj) { 2073 value : function setCoverRectParentV(obj) {
2042 - return "shift-rect-" + obj.bcs + '_' + obj.fcno + '_' + $_GlobalGraph.configuration.y(obj.parent) + '-cover'; 2074 + //return "shift-rect-" + obj.bcs + '_' + obj.fcno + '_' + $_GlobalGraph.configuration.y(obj.parent) + '-cover';
  2075 + return "shift-rect-" + obj.bcs + '_' + obj.fcno + '_' + $_GlobalGraph.configuration.y(obj.lpName) + '-cover';
2043 } 2076 }
2044 }, { 2077 }, {
2045 /** 2078 /**
@@ -2053,7 +2086,8 @@ var RelationshipGraph = function () { @@ -2053,7 +2086,8 @@ var RelationshipGraph = function () {
2053 * */ 2086 * */
2054 key : 'setCoverRectLastIdV', 2087 key : 'setCoverRectLastIdV',
2055 value : function setCoverRectLastIdV(obj) { 2088 value : function setCoverRectLastIdV(obj) {
2056 - return "shift-rect-cover-" + obj.bcs + '_' + (obj.fcno+1) + $_GlobalGraph.configuration.y(obj.parent); 2089 + // return "shift-rect-cover-" + obj.bcs + '_' + (obj.fcno+1) + $_GlobalGraph.configuration.y(obj.parent);
  2090 + return "shift-rect-cover-" + obj.bcs + '_' + (obj.fcno+1) + $_GlobalGraph.configuration.y(obj.lpName);
2057 } 2091 }
2058 }, { 2092 }, {
2059 key : 'mouseUpEvent', 2093 key : 'mouseUpEvent',
src/main/resources/static/pages/base/timesmodel/js/gantt.js
@@ -388,7 +388,8 @@ @@ -388,7 +388,8 @@
388 * @return 返回甘特图的参数配置信息. 388 * @return 返回甘特图的参数配置信息.
389 * */ 389 * */
390 function getGraphArgus(p) { 390 function getGraphArgus(p) {
391 - var VALUEKEYNAME = 'Worldwide Gross',MULTIPLE = Math.round(105/parseInt(p.stopAraay[0].sxsj)) >=4 ? Math.round(90/parseInt(p.stopAraay[0].sxsj)) : 3 , 391 + var MULTIPLE = Math.round(105/parseInt(p.stopAraay[0].sxsj)) >=4 ? Math.round(90/parseInt(p.stopAraay[0].sxsj)) : Math.round(90/parseInt(p.stopAraay[0].sxsj)) *2;
  392 + var VALUEKEYNAME = 'Worldwide Gross' ,
392 DXHOURS = 24,MINUTE = 60,WIDTH = DXHOURS*MINUTE,MARGINLEFT = 380,HEIGHT = p.yAxisCarArray.length*60 + 240, 393 DXHOURS = 24,MINUTE = 60,WIDTH = DXHOURS*MINUTE,MARGINLEFT = 380,HEIGHT = p.yAxisCarArray.length*60 + 240,
393 MARGINBOTTOM = 240,OFFSETX = 90,OFFSETY = 180,OFFSETUPY = 120,OFFSETDOWNY = 60, 394 MARGINBOTTOM = 240,OFFSETX = 90,OFFSETY = 180,OFFSETUPY = 120,OFFSETDOWNY = 60,
394 STARTDATETIME = p.startDateTime ,ENDDATETIME = p.endDateTime ,TASKTYPES =p.yAxisCarArray ,TICKFORMAT ='%H:%M' ,SHOWTOOLTIPS = true; 395 STARTDATETIME = p.startDateTime ,ENDDATETIME = p.endDateTime ,TASKTYPES =p.yAxisCarArray ,TICKFORMAT ='%H:%M' ,SHOWTOOLTIPS = true;
src/test/java/com/bsth/service/schedule/BaseTest.java deleted 100644 → 0
1 -package com.bsth.service.schedule;  
2 -  
3 -import org.junit.runner.RunWith;  
4 -import org.springframework.boot.test.SpringApplicationConfiguration;  
5 -import org.springframework.test.context.ActiveProfiles;  
6 -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;  
7 -  
8 -/**  
9 - * 基础测试类。  
10 - */  
11 -@RunWith(SpringJUnit4ClassRunner.class)  
12 -@SpringApplicationConfiguration(classes = ScheduleTestApp.class)  
13 -@ActiveProfiles("scheduletest")  
14 -//@WebIntegrationTest({"server.port=0","management.port=0"})  
15 -public class BaseTest {  
16 -}  
src/test/java/com/bsth/service/schedule/ScheduleTestApp.java deleted 100644 → 0
1 -package com.bsth.service.schedule;  
2 -  
3 -import com.bsth.service.schedule.impl.SchedulePlanRuleResultServiceImpl;  
4 -import com.bsth.service.schedule.impl.SchedulePlanServiceImpl;  
5 -import com.bsth.service.schedule.rules.MyDroolsConfiguration;  
6 -import com.bsth.service.schedule.utils.DataToolsServiceImpl;  
7 -import org.springframework.boot.autoconfigure.SpringBootApplication;  
8 -import org.springframework.boot.orm.jpa.EntityScan;  
9 -import org.springframework.context.annotation.ComponentScan;  
10 -import org.springframework.context.annotation.Configuration;  
11 -import org.springframework.context.annotation.FilterType;  
12 -import org.springframework.data.jpa.repository.config.EnableJpaRepositories;  
13 -  
14 -/**  
15 - * 基础测试类(用于计划调度模块测试测试)。  
16 - * 配置计划调度的模块的用到的entity,repository,service  
17 - *  
18 - * 注意:测试环境下测试类 TestApp 和springdata的类不在统一级包里,必须指定EnableJpaRepositories  
19 - */  
20 -@Configuration  
21 -@EntityScan(  
22 - basePackages = {"com.bsth.entity"}  
23 -)  
24 -@ComponentScan(  
25 - basePackages = {"com.bsth.repository", "com.bsth.service"},  
26 - useDefaultFilters = false,  
27 - includeFilters = {  
28 - @ComponentScan.Filter(  
29 - type = FilterType.ASSIGNABLE_TYPE,  
30 - value = SchedulePlanRuleResultServiceImpl.class  
31 - ),  
32 - @ComponentScan.Filter(  
33 - type = FilterType.ASSIGNABLE_TYPE,  
34 - value = SchedulePlanServiceImpl.class  
35 - ),  
36 - @ComponentScan.Filter(  
37 - type = FilterType.ASSIGNABLE_TYPE,  
38 - value = MyDroolsConfiguration.class  
39 - ),  
40 - @ComponentScan.Filter(  
41 - type = FilterType.ASSIGNABLE_TYPE,  
42 - value = DataToolsServiceImpl.class  
43 - )  
44 - }  
45 -)  
46 -@EnableJpaRepositories(  
47 - basePackages = {"com.bsth.repository"}  
48 -)  
49 -@SpringBootApplication  
50 -public class ScheduleTestApp {  
51 -}  
src/test/java/com/bsth/service/schedule/rules/RuleTest1.java deleted 100644 → 0
1 -package com.bsth.service.schedule.rules;  
2 -  
3 -import com.bsth.entity.sys.SysUser;  
4 -import com.bsth.repository.sys.SysUserRepository;  
5 -import com.bsth.service.schedule.BaseTest;  
6 -import com.vividsolutions.jts.util.Assert;  
7 -import org.dbunit.database.DatabaseConnection;  
8 -import org.dbunit.database.IDatabaseConnection;  
9 -import org.dbunit.dataset.IDataSet;  
10 -import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;  
11 -import org.dbunit.operation.DatabaseOperation;  
12 -import org.junit.After;  
13 -import org.junit.Before;  
14 -import org.slf4j.Logger;  
15 -import org.slf4j.LoggerFactory;  
16 -import org.springframework.beans.factory.annotation.Autowired;  
17 -import org.springframework.core.io.ClassPathResource;  
18 -import org.springframework.core.io.Resource;  
19 -  
20 -import javax.sql.DataSource;  
21 -  
22 -public class RuleTest1 extends BaseTest {  
23 - /** 日志记录器 */  
24 - private static final Logger logger = LoggerFactory.getLogger(RuleTest1.class);  
25 -  
26 - @Autowired  
27 - private DataSource dataSource;  
28 -  
29 - @Autowired  
30 - private SysUserRepository sysUserRepository;  
31 -  
32 - /**  
33 - * 初始化数据。  
34 - */  
35 - @Before  
36 - public void initData() throws Exception {  
37 - logger.info("载入数据......");  
38 -  
39 - // 获取数据库连接  
40 - IDatabaseConnection iDatabaseConnection = new DatabaseConnection(dataSource.getConnection());  
41 - // 获取Dbunit数据源  
42 - Resource res = new ClassPathResource("testdata/d1.xml");  
43 - FlatXmlDataSetBuilder flatXmlDataSetBuilder = new FlatXmlDataSetBuilder();  
44 - flatXmlDataSetBuilder.setColumnSensing(false);  
45 - flatXmlDataSetBuilder.setCaseSensitiveTableNames(false);  
46 - IDataSet iDataSet = flatXmlDataSetBuilder.build(res.getInputStream());  
47 -  
48 - // 载入数据  
49 - DatabaseOperation.CLEAN_INSERT.execute(iDatabaseConnection, iDataSet);  
50 - }  
51 -  
52 - /**  
53 - * 清除数据。  
54 - */  
55 - @After  
56 - public void destoryData() throws Exception {  
57 - logger.info("清除数据......");  
58 - // 获取数据库连接  
59 - IDatabaseConnection iDatabaseConnection = new DatabaseConnection(dataSource.getConnection());  
60 - // 获取Dbunit数据源  
61 - Resource res = new ClassPathResource("testdata/d1.xml");  
62 - FlatXmlDataSetBuilder flatXmlDataSetBuilder = new FlatXmlDataSetBuilder();  
63 - flatXmlDataSetBuilder.setColumnSensing(false);  
64 - flatXmlDataSetBuilder.setCaseSensitiveTableNames(false);  
65 - IDataSet iDataSet = flatXmlDataSetBuilder.build(res.getInputStream());  
66 -  
67 - // 清除数据  
68 - DatabaseOperation.DELETE_ALL.execute(iDatabaseConnection, iDataSet);  
69 - }  
70 -  
71 - @org.junit.Test  
72 - public void t1() {  
73 - logger.info("t1()测试......");  
74 - SysUser sysUser = sysUserRepository.findOne(1);  
75 - Assert.equals("admin", sysUser.getUserName());  
76 - }  
77 -}  
78 -  
79 -//  
80 -//  
81 -//package com.bsth.service.schedule.rules;  
82 -//  
83 -// import com.bsth.Application;  
84 -// import com.bsth.service.schedule.rules.shiftloop.ScheduleCalcuParam_input;  
85 -// import com.bsth.service.schedule.rules.shiftloop.ScheduleResults_output;  
86 -// import com.bsth.service.schedule.rules.shiftloop.ScheduleRule_input;  
87 -// import com.bsth.service.schedule.rules.ttinfo.TTInfoCalcuParam_input;  
88 -// import com.bsth.service.schedule.rules.ttinfo.TTInfoResults_output;  
89 -// import com.bsth.service.schedule.rules.ttinfo.TTInfo_input;  
90 -// import org.joda.time.DateTime;  
91 -// import org.junit.Test;  
92 -// import org.junit.runner.RunWith;  
93 -// import org.kie.api.KieBase;  
94 -// import org.kie.api.runtime.KieSession;  
95 -// import org.slf4j.Logger;  
96 -// import org.slf4j.LoggerFactory;  
97 -// import org.springframework.beans.factory.annotation.Autowired;  
98 -// import org.springframework.boot.test.SpringApplicationConfiguration;  
99 -// import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;  
100 -//  
101 -// import java.util.Arrays;  
102 -//  
103 -//@RunWith(SpringJUnit4ClassRunner.class)  
104 -//@SpringApplicationConfiguration(classes = {Application.class})  
105 -//public class DroolsRulesTest {  
106 -//  
107 -// /** 日志记录器 */  
108 -// private final static Logger logger = LoggerFactory.getLogger(DroolsRulesTest.class);  
109 -//  
110 -// @Autowired  
111 -// private KieBase kieBase;  
112 -//  
113 -//// @Test  
114 -//// public void helloWorldDrlTest() throws Exception {  
115 -//// // 1、创建session,内部配置的是stateful  
116 -//// KieSession session = kieBase.newKieSession();  
117 -////  
118 -//// // 1.1 设置gloable对象,在drl中通过别名使用  
119 -//// List<String> gloableList = new ArrayList<String>();  
120 -//// session.setGlobal("list", gloableList);  
121 -////  
122 -//// // 1.2 可以设置一些监听器,再议  
123 -////  
124 -//// // 2、创建fact对象  
125 -//// Message message = new Message();  
126 -//// message.setMessage("Hello World");  
127 -//// message.setStatus(Message.HELLO);  
128 -//// session.insert(message);  
129 -////  
130 -//// // 3、执行rule  
131 -//// session.fireAllRules();  
132 -////  
133 -//// System.out.println(gloableList);  
134 -////  
135 -//// // 4、执行完毕销毁,有日志的也要关闭  
136 -//// session.dispose();  
137 -//// }  
138 -//  
139 -// // @Test  
140 -// public void ttinfoDrlTest() throws Exception {  
141 -// logger.info("------------ttinfoDrlTest 测试---------------");  
142 -//  
143 -// // 1、创建session,内部配置的是stateful  
144 -// KieSession session = kieBase.newKieSession();  
145 -//  
146 -// // 1.1 设置gloable对象,在drl中通过别人使用  
147 -// session.setGlobal("log", logger);  
148 -// TTInfoResults_output ttInfoResults_output = new TTInfoResults_output();  
149 -// session.setGlobal("results", ttInfoResults_output);  
150 -//  
151 -// // 1.2 可以设置一些监听器,再议  
152 -//  
153 -// // 2、创建fact对象  
154 -// TTInfoCalcuParam_input ttInfoCalcuParam_input = new TTInfoCalcuParam_input(  
155 -// new DateTime(2016, 8, 1, 0, 0),  
156 -// new DateTime(2016, 8, 10, 0, 0),  
157 -// "1"  
158 -// );  
159 -//  
160 -//  
161 -// TTInfo_input ttInfo_input1 = new TTInfo_input();  
162 -// ttInfo_input1.setTtInfoId("1");  
163 -// ttInfo_input1.setXlId("1");  
164 -// ttInfo_input1.setWeekdays(Arrays.asList(true, true, true, true, true, false, false));  
165 -// ttInfo_input1.getSpecialDays().add(new DateTime(2016, 8, 1, 0, 0));  
166 -// ttInfo_input1.setUpdateDate(new DateTime(2016, 1, 1, 0, 0));  
167 -// ttInfo_input1.setIsEnable(true);  
168 -// ttInfo_input1.setQyDate(new DateTime(2016, 1, 1, 0, 0));  
169 -//  
170 -// TTInfo_input ttInfo_input1_2 = new TTInfo_input();  
171 -// ttInfo_input1_2.setTtInfoId("2");  
172 -// ttInfo_input1_2.setXlId("1");  
173 -// ttInfo_input1_2.setWeekdays(Arrays.asList(true, false, false, false, false, true, false));  
174 -// ttInfo_input1_2.getSpecialDays().add(new DateTime(2016, 8, 11, 0, 0));  
175 -// ttInfo_input1_2.setUpdateDate(new DateTime(2015, 2, 1, 0, 0));  
176 -// ttInfo_input1_2.setIsEnable(true);  
177 -// ttInfo_input1_2.setQyDate(new DateTime(2016, 1, 1, 0, 0));  
178 -//  
179 -//  
180 -// TTInfoCalcuParam_input ttInfoCalcuParam_inpu2 = new TTInfoCalcuParam_input(  
181 -// new DateTime(2016, 8, 1, 0, 0),  
182 -// new DateTime(2016, 8, 10, 0, 0),  
183 -// "2"  
184 -// );  
185 -//  
186 -// TTInfo_input ttInfo_input2 = new TTInfo_input();  
187 -// ttInfo_input2.setTtInfoId("2");  
188 -// ttInfo_input2.setXlId("2");  
189 -// ttInfo_input2.setWeekdays(Arrays.asList(true, false, false, false, false, true, false));  
190 -// ttInfo_input2.getSpecialDays().add(new DateTime(2016, 8, 11, 0, 0));  
191 -// ttInfo_input2.setUpdateDate(new DateTime(2016, 1, 1, 0, 0));  
192 -// ttInfo_input2.setIsEnable(true);  
193 -// ttInfo_input2.setQyDate(new DateTime(2016, 1, 1, 0, 0));  
194 -//  
195 -// session.insert(ttInfoCalcuParam_input);  
196 -// session.insert(ttInfo_input1);  
197 -// session.insert(ttInfo_input1_2);  
198 -// session.insert(ttInfoCalcuParam_inpu2);  
199 -// session.insert(ttInfo_input2);  
200 -//  
201 -//  
202 -//  
203 -// // 3、执行rule  
204 -// session.fireAllRules();  
205 -//  
206 -// // 4、执行完毕销毁,有日志的也要关闭  
207 -// session.dispose();  
208 -//  
209 -// // 打印global结果  
210 -// logger.info(ttInfoResults_output.showTTInfoDesc1());  
211 -//  
212 -// }  
213 -//  
214 -// @Test  
215 -// public void shiftloopDrlTest() throws Exception {  
216 -// // 1、创建session,内部配置的是stateful  
217 -// KieSession session = kieBase.newKieSession();  
218 -//  
219 -// // 1.1 设置gloable对象,在drl中通过别名使用  
220 -// ScheduleResults_output scheduleResults_output = new ScheduleResults_output();  
221 -// session.setGlobal("scheduleResult", scheduleResults_output);  
222 -//  
223 -// // 1.2 可以设置一些监听器,再议  
224 -//  
225 -// // 2、创建fact对象  
226 -//  
227 -// ScheduleCalcuParam_input scheduleCalcuParam_input = new ScheduleCalcuParam_input();  
228 -// scheduleCalcuParam_input.setFromDate(new DateTime(2016, 8, 1, 0, 0));  
229 -// scheduleCalcuParam_input.setToDate(new DateTime(2016, 8, 10, 0, 0));  
230 -//  
231 -// ScheduleRule_input scheduleRule_input1 = new ScheduleRule_input();  
232 -// scheduleRule_input1.setRuleId("1");  
233 -// scheduleRule_input1.setQyrq(new DateTime(2016, 7, 22, 0, 0));  
234 -// scheduleRule_input1.getGuideboardIds().addAll(Arrays.asList(  
235 -// "9", "9" , "8" ,"8" ,"7" ,"7" ,"6" ,"6", "5", "5", "4", "4", "3", "3", "2", "2", "1", "1"));  
236 -// scheduleRule_input1.setStartGbdIndex(3);  
237 -// scheduleRule_input1.getEmployeeConfigIds().addAll(Arrays.asList("1", "2"));  
238 -// scheduleRule_input1.setStartEIndex(1);  
239 -// scheduleRule_input1.setCarConfigId("1");  
240 -//  
241 -//// ScheduleRule_input scheduleRule_input2 = new ScheduleRule_input();  
242 -//// scheduleRule_input2.setRuleId(2L);  
243 -//// scheduleRule_input2.setQyrq(new DateTime(2016, 7, 22, 0, 0));  
244 -//// scheduleRule_input2.getGuideboardIds().addAll(Arrays.asList(  
245 -//// 1L, 1L, 2L, 2L, 3L, 3L, 4L, 4L, 5L, 5L, 6L, 6L, 7L, 7L, 8L, 8L, 9L, 9L, 10L, 10L,  
246 -//// 11L, 11L, 12L, 12L, 13L, 13L));  
247 -//// scheduleRule_input2.setStartGbdIndex(7);  
248 -//// scheduleRule_input2.getEmployeeConfigIds().addAll(Arrays.asList(11L, 12L));  
249 -//// scheduleRule_input2.setStartEIndex(1);  
250 -//// scheduleRule_input2.setCarConfigId(2L);  
251 -//  
252 -// session.insert(scheduleCalcuParam_input);  
253 -// session.insert(scheduleRule_input1);  
254 -//// session.insert(scheduleRule_input2);  
255 -//  
256 -//  
257 -// // 3、执行rule  
258 -// session.fireAllRules();  
259 -//  
260 -// // 4、执行完毕销毁,有日志的也要关闭  
261 -// session.dispose();  
262 -//  
263 -// System.out.println(scheduleResults_output.showGuideboardDesc1());  
264 -//  
265 -// }  
266 -//}  
267 -  
src/test/java/com/bsth/service/schedule/rules/SchedulePlan1Test.java deleted 100644 → 0
1 -package com.bsth.service.schedule.rules;  
2 -  
3 -import com.bsth.service.schedule.BaseTest;  
4 -import org.dbunit.database.DatabaseConnection;  
5 -import org.dbunit.database.IDatabaseConnection;  
6 -import org.dbunit.dataset.IDataSet;  
7 -import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;  
8 -import org.dbunit.operation.DatabaseOperation;  
9 -import org.junit.After;  
10 -import org.junit.Before;  
11 -import org.junit.Test;  
12 -import org.slf4j.Logger;  
13 -import org.slf4j.LoggerFactory;  
14 -import org.springframework.beans.factory.annotation.Autowired;  
15 -import org.springframework.core.io.ClassPathResource;  
16 -import org.springframework.core.io.Resource;  
17 -  
18 -import javax.sql.DataSource;  
19 -  
20 -/**  
21 - * 排班计划测试(手工排班测试)。  
22 - */  
23 -public class SchedulePlan1Test extends BaseTest {  
24 - /** 日志记录器 */  
25 - private static final Logger logger = LoggerFactory.getLogger(SchedulePlan1Test.class);  
26 -  
27 - @Autowired  
28 - private DataSource dataSource;  
29 -  
30 - /**  
31 - * 初始化数据。  
32 - */  
33 - @Before  
34 - public void initData() throws Exception {  
35 - logger.info("载入数据......");  
36 -  
37 - // 获取数据库连接  
38 - IDatabaseConnection iDatabaseConnection = new DatabaseConnection(dataSource.getConnection());  
39 - // 获取Dbunit数据源  
40 - Resource res = new ClassPathResource("testdata/d2.xml");  
41 - FlatXmlDataSetBuilder flatXmlDataSetBuilder = new FlatXmlDataSetBuilder();  
42 - flatXmlDataSetBuilder.setColumnSensing(false);  
43 - flatXmlDataSetBuilder.setCaseSensitiveTableNames(false);  
44 - IDataSet iDataSet = flatXmlDataSetBuilder.build(res.getInputStream());  
45 -  
46 - // 载入数据  
47 - DatabaseOperation.CLEAN_INSERT.execute(iDatabaseConnection, iDataSet);  
48 - }  
49 -  
50 - /**  
51 - * 清除数据。  
52 - */  
53 - @After  
54 - public void destoryData() throws Exception {  
55 - logger.info("清除数据......");  
56 - // 获取数据库连接  
57 - IDatabaseConnection iDatabaseConnection = new DatabaseConnection(dataSource.getConnection());  
58 - // 获取Dbunit数据源  
59 - Resource res = new ClassPathResource("testdata/d2.xml");  
60 - FlatXmlDataSetBuilder flatXmlDataSetBuilder = new FlatXmlDataSetBuilder();  
61 - flatXmlDataSetBuilder.setColumnSensing(false);  
62 - flatXmlDataSetBuilder.setCaseSensitiveTableNames(false);  
63 - IDataSet iDataSet = flatXmlDataSetBuilder.build(res.getInputStream());  
64 -  
65 - // 清除数据  
66 - DatabaseOperation.DELETE_ALL.execute(iDatabaseConnection, iDataSet);  
67 - }  
68 -  
69 -  
70 - @Test  
71 - public void t1() {  
72 -  
73 - }  
74 -  
75 -  
76 -  
77 -  
78 -  
79 -  
80 -  
81 -  
82 -  
83 -  
84 -  
85 -  
86 -  
87 -  
88 -  
89 -  
90 -  
91 -  
92 -  
93 -  
94 -}  
src/test/java/com/bsth/service/schedule/rules/SchedulePlan2Test.java deleted 100644 → 0
1 -package com.bsth.service.schedule.rules;  
2 -  
3 -/**  
4 - * 时刻表测试(自动排班测试)。  
5 - */  
6 -public class SchedulePlan2Test {  
7 - // TODO:  
8 -}  
src/test/resources/.gitkeep deleted 100644 → 0
src/test/resources/application-scheduletest.properties deleted 100644 → 0
1 -#嵌入式tomcat配置  
2 -#server.port=9088  
3 -#management.port= 9001  
4 -#management.address= 127.0.0.1  
5 -  
6 -#JPA配置  
7 -spring.jpa.hibernate.ddl-auto= update  
8 -spring.jpa.hibernate.naming_strategy= org.hibernate.cfg.ImprovedNamingStrategy  
9 -spring.jpa.database= MYSQL  
10 -spring.jpa.show-sql= true  
11 -  
12 -#数据库连接池配置  
13 -spring.datasource.driver-class-name= com.mysql.jdbc.Driver  
14 -spring.datasource.url= jdbc:mysql://127.0.0.1/test_control?useUnicode=true&characterEncoding=utf-8&useSSL=false  
15 -spring.datasource.username= root  
16 -spring.datasource.password=  
17 -  
18 -#spring.datasource.driver-class-name= org.h2.Driver  
19 -#spring.datasource.url= jdbc:h2:mem:bookstore;DB_CLOSE_ON_EXIT=FALSE  
20 -#spring.datasource.username= sa  
21 -#spring.datasource.password=  
22 -  
23 -spring.datasource.max-active=100  
24 -spring.datasource.max-idle=8  
25 -spring.datasource.min-idle=8  
26 -spring.datasource.initial-size=5  
27 -  
28 -spring.datasource.test-on-borrow=true  
29 -spring.datasource.test-on-connect=true  
30 -spring.datasource.test-on-return=true  
31 -spring.datasource.test-while-idle=true  
32 -spring.datasource.validation-query=select 1  
33 -  
src/test/resources/datatools/config-scheduletest.properties deleted 100644 → 0
1 -# 配置数据导入导出用到的配置信息  
2 -  
3 -# 1、kettle配置文件路径(类路径)  
4 -datatools.kettle_properties=/datatools/kettle.properties  
5 -# 2、ktr文件通用配置变量(数据库连接,根据不同的环境需要修正)  
6 -#数据库ip地址  
7 -datatools.kvars_dbip=127.0.0.1  
8 -#数据库用户名  
9 -datatools.kvars_dbuname=root  
10 -#数据库密码  
11 -datatools.kvars_dbpwd=  
12 -#数据库库名  
13 -datatools.kvars_dbdname=qp_control  
14 -  
15 -# 3、上传数据配置信息  
16 -# 上传文件目录配置(根据不同的环境需要修正)  
17 -datatools.fileupload_dir=/Users/xu/resource/project_code/runtime_temp/bsth_control_u_d_files  
18 -# ktr转换文件,中配置的错误输出目录(根据不同的环境需要修正)  
19 -datatools.trans_errordir=/Users/xu/resource/project_code/runtime_temp/bsth_control_u_d_files/erroroutput  
20 -# 临时输出文件目录  
21 -datatools.trans_tempdir=/Users/xu/resource/project_code/runtime_temp/bsth_control_u_d_files/temp  
22 -# 模版文件目录  
23 -datatools.trans_templatedir=/Users/xu/resource/project_code/runtime_temp/bsth_control_u_d_files/template  
24 -  
25 -##---------------------------- 导入数据ktr ----------------------------##  
26 -# 车辆信息导入ktr转换  
27 -datatools.cars_datainputktr=/datatools/ktrs/carsDataInput.ktr  
28 -# 人员信息导入  
29 -datatools.employees_datainputktr=/datatools/ktrs/employeesDataInput.ktr  
30 -# 路牌信息导入  
31 -datatools.guideboards_datainputktr=/datatools/ktrs/guideboardDataInput.ktr  
32 -# 时刻表基础信息导入  
33 -datatools.ttinfo_datainputktr=/datatools/ktrs/ttinfoDataInput.ktr  
34 -# 时刻表明细信息导入(元数据)  
35 -datatools.ttinfodetail_metadatainputktr=/datatools/ktrs/ttinfodetailDataInputMetaData.ktr  
36 -# 时刻表明细编辑用数据  
37 -datatools.ttinfodetail_foreditktr=/datatools/ktrs/ttinfodetailoutputforedit.ktr  
38 -# 时刻表明细信息导入  
39 -datatools.ttinfodetail_datainputktr=/datatools/ktrs/ttinfodetailDataInput.ktr  
40 -# 时刻表明细信息导入2  
41 -datatools.ttinfodetail_datainputktr2=/datatools/ktrs/ttinfodetailDataInput2.ktr  
42 -  
43 -# 车辆配置信息导入  
44 -datatools.carsconfig_datainputktr=/datatools/ktrs/carsConfigDataInput.ktr  
45 -# 人员配置信息导入  
46 -datatools.employeesconfig_datainputktr=/datatools/ktrs/employeesConfigDataInput.ktr  
47 -  
48 -# 排版规则信息导入  
49 -datatools.schedulerule_datainputktr=/datatools/ktrs/scheduleRuleDataInput.ktr  
50 -  
51 -# 4、数据导出配置信息  
52 -# 导出数据文件目录配置(根据不同的环境需要修正)  
53 -datatools.fileoutput_dir=/Users/xu/resource/project_code/runtime_temp/bsth_control_u_d_files  
54 -  
55 -##---------------------------- 导出数据ktr -----------------------------##  
56 -# 车辆信息导出ktr转换  
57 -datatools.cars_dataoutputktr=/datatools/ktrs/carsDataOutput.ktr  
58 -# 人员信息导出ktr转换  
59 -datatools.employees_dataoutputktr=/datatools/ktrs/employeesDataOutput.ktr  
60 -# 时刻表导出元数据ktr转换  
61 -datatools.ttinfodetail_metaoutput=/datatools/ktrs/ttinfodetailDataOutputMetaData.ktr  
62 -# 时刻表导出数据ktr转换  
63 -datatools.ttinfodetail_output=/datatools/ktrs/ttinfodetailDataOutput.ktr  
64 -# 排版规则导出数据ktr转换  
65 -datatools.schedulerule_output=/datatools/ktrs/scheduleRuleDataOutput.ktr  
66 -  
67 -# 车辆配置信息导出ktr转换  
68 -datatools.carsconfig_dataoutputktr=/datatools/ktrs/carsConfigDataOutput.ktr  
69 -# 人员配置信息导出ktr转换  
70 -datatools.employeesconfig_dataoutputktr=/datatools/ktrs/employeesConfigDataOutput.ktr  
71 -  
72 -# 路牌信息导出  
73 -datatools.guideboards_dataoutputktr=/datatools/ktrs/guideboardDataOutput.ktr  
74 -  
75 -  
76 -# TODO:  
77 -  
78 -  
79 -  
80 -  
81 -  
82 -  
83 -  
84 -  
src/test/resources/testdata/d1.xml deleted 100644 → 0
1 -<?xml version='1.0' encoding='UTF-8'?>  
2 -<dataset>  
3 - <!-- 用户数据 -->  
4 - <bsth_c_sys_user id="1" user_name="admin" name="系统管理员" create_date="2000-01-01" enabled="1" last_login_date="2000-01-01" />  
5 -  
6 -</dataset>  
7 \ No newline at end of file 0 \ No newline at end of file
src/test/resources/testdata/d2.xml deleted 100644 → 0
1 -<?xml version='1.0' encoding='UTF-8'?>  
2 -<dataset>  
3 - <!-- 用户(对应实体 SysUser) -->  
4 - <bsth_c_sys_user id="1" user_name="admin" name="系统管理员" create_date="2000-01-01" enabled="1" last_login_date="2000-01-01" />  
5 -  
6 - <!-- 公司(对应实体 Business) -->  
7 - <bsth_c_business id="1" business_name="公交公司" business_code="88" up_code="0" create_by="1" create_date="2000-01-01" update_by="1" update_date="2000-01-01" />  
8 - <bsth_c_business id="2" business_name="金高公司" business_code="22" up_code="88" create_by="1" create_date="2000-01-01" update_by="1" update_date="2000-01-01" />  
9 - <bsth_c_business id="3" business_name="杨高公司" business_code="05" up_code="88" create_by="1" create_date="2000-01-01" update_by="1" update_date="2000-01-01" />  
10 - <bsth_c_business id="4" business_name="上南公司" business_code="55" up_code="88" create_by="1" create_date="2000-01-01" update_by="1" update_date="2000-01-01" />  
11 - <bsth_c_business id="5" business_name="南汇公司" business_code="26" up_code="88" create_by="1" create_date="2000-01-01" update_by="1" update_date="2000-01-01" />  
12 -  
13 - <!-- 线路(对应实体 Line) -->  
14 - <bsth_c_line id="1" name="测试线路1" line_code="l1" destroy="0" create_by="1" create_date="2000-01-01" update_by="1" update_date="2000-01-01" />  
15 - <!-- 线路标准(对应实体 LineInformation) -->  
16 - <bsth_c_line_information id="1" line="1" create_by="1" create_date="2000-01-01" update_by="1" update_date="2000-01-01" />  
17 -  
18 - <!-- 站点(对应实体 Station) -->  
19 - <bsth_c_station id="1" station_name="站1" station_cod="#112233" create_by="1" create_date="2000-01-01" update_by="1" update_date="2000-01-01" />  
20 - <bsth_c_station id="2" station_name="站2" station_cod="#223344" create_by="1" create_date="2000-01-01" update_by="1" update_date="2000-01-01" />  
21 - <!-- 站点路由(对应实体 StationRoute)-->  
22 - <bsth_c_stationroute id="1" line="1" station="1" station_name="上行起点站" station_mark="B" directions="0" destroy="0" create_by="1" create_date="2000-01-01" update_by="1" update_date="2000-01-01" />  
23 - <bsth_c_stationroute id="2" line="1" station="2" station_name="上行终点站" station_mark="E" directions="0" destroy="0" create_by="1" create_date="2000-01-01" update_by="1" update_date="2000-01-01" />  
24 - <bsth_c_stationroute id="3" line="1" station="2" station_name="下行起点站" station_mark="B" directions="1" destroy="0" create_by="1" create_date="2000-01-01" update_by="1" update_date="2000-01-01" />  
25 - <bsth_c_stationroute id="4" line="1" station="1" station_name="下行终点站" station_mark="E" directions="1" destroy="0" create_by="1" create_date="2000-01-01" update_by="1" update_date="2000-01-01" />  
26 -  
27 - <!-- 停车场(对应实体) -->  
28 -  
29 - <!-- TODO -->  
30 -  
31 -</dataset>  
32 \ No newline at end of file 0 \ No newline at end of file
src/test/resources/testdata/new.txt deleted 100644 → 0
1 -1、车辆配置,每辆车都可以配置单独的停车点及相关数据,并提供两种设置模式(早晚,复驶)  
2 -2、规则管理,修改规则的界面图形化,更加方便修改  
3 -3、时刻表管理,导入时刻表xls做严格数据判定,时刻表明细修改提供跟方便的图形化修改方式  
4 -4、排班计划管理,提供每次排班的操作信息,时间段,所使用的时刻表,可以查看具体的排班明细(细化到班次)  
5 - 生成排班时,提供详细的时刻表统计信息,提供两种排班模式(历史排班优先,规则优先)  
6 -5、调度值勤日报,列出每天的基于线路,路牌的排班统计,可以更换车辆,人员  
7 \ No newline at end of file 0 \ No newline at end of file
src/test/resources/testdata/problem.properties deleted 100644 → 0
1 -##1=时刻表明细导入,线路标准里所有的高峰低谷时间需要带入时刻表班次时间里,标准可以点击切换到线路标准界面  
2 -##2=时刻表明细编辑功能,数据工具移到时刻表里,类似工具栏的样子  
3 -3=时刻表导入,可以选一个已经存在的时刻表导入,而不是excel文件  
4 -##4=所有的删除,作废,都要有提示框操作  
5 -##5=排班计划错误提示,如果选的排班日期之前没有排班,提示错误,排班结果有重复与时刻表不符合,显示错误  
6 -##6=调度执行日报,显示最近排班日期,修改操作强化  
7 -7=警告功能,如时刻表选择相同的常规有效日,特殊有效日,车辆,人员配置重复等等  
8 -##8=时刻表明细编辑,颜色覆盖冲突  
9 -##9=下拉框貌似中文不能搜索  
10 -10=时刻表明细编辑,环线,选上下行,上下的站点在下行站点列表里  
11 -##11=人员基础信息导入问题,工号前要加公司代码  
12 -##12=套跑规则嵌入到主排班规则中  
13 -13=导入数据功能,需要加用户名  
14 -14=路牌编号自动生成  
15 -15=时刻表导入的时候表头后面不需要加数字  
16 -##16=时间框中文  
17 -##17=人员工号前公司编码自动加  
18 -19=线路运营概览  
19 -20=排班规则备注  
20 -##21=时刻表,两点间空驶,算空驶  
21 -22=搭班编码自动生成  
22 -##23=时刻表明细修改终点站停驶(停止1个半小时以上)  
23 -##24=线路标准里如果里程是0,用标准里程  
24 -##25=规则导出的日期格式修正  
25 -##26=人员录入,工号规则前加 "{公司编码}-"  
26 -  
27 -##27=调度执勤日报,换人后,工号前的-去掉  
28 -##28=时刻表导出,元数据ktr转换站名匹配有问题  
29 -##29=时刻编辑,超过70个班次,报错,改成150个班次  
30 -##30=时刻表公里数 三位数  
31 -  
32 -31=规则修改,路牌范围,人员范围可以拖动  
33 -##32=人员配置不存在的情况下,导入规则ktr,找不到的人员不添加,人员范围不存在的,规则不导入  
34 -##33=时刻表明细班次,里添加,是否停驶选项(计算工时使用)  
src/test/resources/testdata/test1.txt deleted 100644 → 0
1 -select * from jwgl_f_t_clxh_workflow_detail a where a.ID_LYSYLB = 36;  
2 -  
3 -select sum(amount - tl_amount) from jwgl_f_t_clxh_workflow_detail  
4 -where  
5 -to_date(statdateid, 'YYYYMMDD') >= to_date('20170301', 'YYYYMMDD')  
6 -and to_date(statdateid, 'YYYYMMDD') <= to_date('20170331', 'YYYYMMDD')  
7 -  
8 -select * from JWGL_D_T_LYSYLB  
9 -  
10 -  
11 -select  
12 -statdateid statdate  
13 -, ssjc gs  
14 -, xl xl  
15 -, zbh cl  
16 -, b.SYLB1 || '-' || b.SYLB2 as lylb  
17 -, (sum(amount) - sum(tl_amount)) ch  
18 -from JWGL_F_T_CLXH_WORKFLOW_DETAIL a, JWGL_D_T_LYSYLB b  
19 -where  
20 -to_date(statdateid, 'YYYYMMDD') >= to_date('20170301', 'YYYYMMDD')  
21 -and to_date(statdateid, 'YYYYMMDD') <= to_date('20170331', 'YYYYMMDD')  
22 -and a.ID_LYSYLB = b.ID(+)  
23 -group by  
24 -statdateid  
25 -, ssjc  
26 -, xl  
27 -, zbh  
28 -, b.SYLB1 || '-' || b.SYLB2  
29 -  
30 --- part1  
31 -  
32 -select sum(ch) from  
33 -(  
34 -select  
35 -statdateid statdate  
36 -, ssjc gs  
37 -, xl xl  
38 -, zbh cl  
39 -, b.SYLB1 || '-' || b.SYLB2 as lylb  
40 -, (sum(amount) - sum(tl_amount)) ch  
41 -from JWGL_F_T_CLXH_WORKFLOW_DETAIL a, JWGL_D_T_LYSYLB b  
42 -where  
43 -to_date(statdateid, 'YYYYMMDD') >= to_date('20170301', 'YYYYMMDD')  
44 -and to_date(statdateid, 'YYYYMMDD') <= to_date('20170331', 'YYYYMMDD')  
45 -and a.ID_LYSYLB = b.ID(+)  
46 -group by  
47 -statdateid  
48 -, ssjc  
49 -, xl  
50 -, zbh  
51 -, b.SYLB1 || '-' || b.SYLB2  
52 -)  
53 -where lylb in (  
54 -'路救-路救',  
55 -'小修-小修机工',  
56 -'专项-安检',  
57 -'专项-节检',  
58 -'专项-水箱',  
59 -'专项-电瓶',  
60 -'小修-小修电工',  
61 -'专项-电并',  
62 -'小修-小修车身',  
63 -'专项-镗固',  
64 -'保养-一级保养',  
65 -'小修-发动机',  
66 -'专项-轮胎',  
67 -'分摊-轮胎',  
68 -'专项-润滑油',  
69 -'总成-差变速',  
70 -'总成-大泵',  
71 -'总成-小总成',  
72 -'总成-发动机',  
73 -'保养-二级保养',  
74 -'保养-三级保养',  
75 -'整修-整修',  
76 -'空调-保外',  
77 -'空调-保内',  
78 -'事故-事故'  
79 -)  
80 -  
81 --- part2  
82 -  
83 -select sum(ch) from  
84 -(  
85 -select  
86 -statdateid statdate  
87 -, ssjc gs  
88 -, xl xl  
89 -, zbh cl  
90 -, b.SYLB1 || '-' || b.SYLB2 as lylb  
91 -, (sum(amount) - sum(tl_amount)) ch  
92 -from JWGL_F_T_CLXH_WORKFLOW_DETAIL a, JWGL_D_T_LYSYLB b  
93 -where  
94 -to_date(statdateid, 'YYYYMMDD') >= to_date('20170301', 'YYYYMMDD')  
95 -and to_date(statdateid, 'YYYYMMDD') <= to_date('20170331', 'YYYYMMDD')  
96 -and a.ID_LYSYLB = b.ID(+)  
97 -group by  
98 -statdateid  
99 -, ssjc  
100 -, xl  
101 -, zbh  
102 -, b.SYLB1 || '-' || b.SYLB2  
103 -)  
104 -where lylb in(  
105 -'分摊-镗固',  
106 -'专项-机油',  
107 -'分摊-机油',  
108 -'总成-其它',  
109 -'分摊-工具',  
110 -'分摊-辅助料',  
111 -'分摊-设备',  
112 -'车间经费-车间经费'  
113 -)  
114 -  
115 -  
116 -  
117 -  
118 -  
119 -  
120 -  
121 -  
122 -  
123 -  
124 -  
125 -  
126 -  
127 -  
128 -  
129 -  
130 -  
131 -  
132 -  
src/test/resources/testdata/test2.txt deleted 100644 → 0
1 -  
2 -select * from JWGL_FR_T_CH_REPORT_DATA1;  
3 -  
4 -select * from JWGL_FR_T_CH_REPORT_DATA2;  
5 -  
6 --- sum part1  
7 -  
8 -select  
9 -(  
10 -sum(lj_lj) + sum(xx_xxjg) + sum(xx_xxdg) + sum(zx_db) + sum(xx_xxcs) + sum(zx_tg) + sum(by_b1) +  
11 -sum(nvl(future_bx, 0)) + sum(xx_fdj) + sum(zx_lt) + sum(zx_rhy) + sum(zc_cbx) + sum(zc_db) + sum(zc_xzc) +  
12 -sum(zc_fdj) + sum(by_b2) + sum(by_b3) + sum(nvl(future_wx_db, 0)) + sum(nvl(future_wxfy, 0)) + sum(nvl(future_ktwx, 0)) + sum(nvl(future_sx, 0)) +  
13 -sum(nvl(future_dp, 0)) + sum(zx_zx) + sum(kt_bw) + sum(sg_sg)  
14 -) as part1  
15 -from JWGL_FR_T_CH_REPORT_DATA1  
16 -where  
17 -statdate >= to_date('20170301', 'YYYYMMDD')  
18 -and statdate <= to_date('20170331', 'YYYYMMDD')  
19 -  
20 --- sum part2  
21 -  
22 -select  
23 -(  
24 -sum(zx_tg) + sum(jy) + sum(qt) + sum(zcfl) + sum(gj) + sum(sb) + sum(cjjf)  
25 -) as part2  
26 -from JWGL_FR_T_CH_REPORT_DATA2  
27 -where statdate = to_date('20170331', 'YYYYMMDD')  
28 \ No newline at end of file 0 \ No newline at end of file
src/test/resources/testdata/test3.txt deleted 100644 → 0
1 -select count(*) from bsth_c_s_sp_rule_rst  
2 -  
3 -show index from bsth_c_s_sp_rule_rst  
4 -  
5 -select * from bsth_c_s_sp_rule_rst t  
6 -where not exists (select 1 from bsth_c_s_sp_rule_rst  
7 -where create_date > t.create_date and schedule_date < '2017-04-17' )  
8 -and t.xl_id = 10407 and t.schedule_date < '2017-04-17'  
9 -  
10 -show index from bsth_c_s_sp_rule_rst  
11 -  
12 -select * from bsth_c_s_sp_rule_rst  
13 -where xl_id = 1  
14 -  
15 -select * from bsth_c_s_sp_rule_rst t  
16 -where t.xl_id = 10407 and t.schedule_date < '2017-04-17'  
17 -  
18 -  
19 -select count(distinct concat(xl_id ,schedule_date, create_date)) / count(*) from bsth_c_s_sp_rule_rst  
20 -  
21 -select * from bsth_c_s_sp_rule_rst a  
22 -where exists (select 1 from  
23 -(select t.rule_id as rid, max(t.schedule_date) as sd from bsth_c_s_sp_rule_rst t  
24 -where t.xl_id = 10407 and t.schedule_date < '2017-04-17'  
25 -group by t.rule_id) a2 where a.rule_id = rid and a.schedule_date = sd)  
src/test/resources/testdata/test4.txt deleted 100644 → 0
1 -select count(*) from bsth_c_s_ttinfo_detail  
2 -  
3 -select * from bsth_c_s_ttinfo_detail  
4 -  
5 -select * from bsth_c_s_ttinfo_detail where zdz_code is null;  
6 -  
7 -select * from bsth_c_station;  
8 -  
9 -select * from bsth_c_car_park;  
10 -  
11 -update bsth_c_s_ttinfo_detail a  
12 -set a.qdz_code = (select station_cod from bsth_c_station b where a.qdz = b.id)  
13 -where a.bc_type <> 'out'  
14 -  
15 -update bsth_c_s_ttinfo_detail a  
16 -set a.qdz_name = (select station_name from bsth_c_station b where a.qdz = b.id)  
17 -where a.bc_type <> 'out'  
18 -  
19 -update bsth_c_s_ttinfo_detail a  
20 -set a.zdz_code = (select station_cod from bsth_c_station b where a.zdz = b.id)  
21 -where a.bc_type <> 'in'  
22 -  
23 -update bsth_c_s_ttinfo_detail a  
24 -set a.zdz_name = (select station_name from bsth_c_station b where a.zdz = b.id)  
25 -where a.bc_type <> 'in'  
26 -  
27 -update bsth_c_s_ttinfo_detail a  
28 -set a.qdz_code = (select park_code from bsth_c_car_park b where a.tcc = b.id)  
29 -where a.bc_type = 'out'  
30 -  
31 -update bsth_c_s_ttinfo_detail a  
32 -set a.qdz_name = (select park_name from bsth_c_car_park b where a.tcc = b.id)  
33 -where a.bc_type = 'out'  
34 -  
35 -update bsth_c_s_ttinfo_detail a  
36 -set a.zdz_code = (select park_code from bsth_c_car_park b where a.tcc = b.id)  
37 -where a.bc_type = 'in'  
38 -  
39 -update bsth_c_s_ttinfo_detail a  
40 -set a.zdz_name = (select park_name from bsth_c_car_park b where a.tcc = b.id)  
41 -where a.bc_type = 'in'  
42 -  
43 -commit;  
44 -  
45 -  
46 -  
src/test/resources/testdata/test5.txt deleted 100644 → 0
1 -update bsth_c_s_sp_info a  
2 -set a.schedule_plan = (  
3 -select sp_id from bsth_c_s_sp_r_info b where a.id = b.sp_info_id  
4 -)  
5 -where a.schedule_plan is null  
6 -  
7 -select count(*) from bsth_c_s_sp_info  
8 -where schedule_plan is null  
9 \ No newline at end of file 0 \ No newline at end of file
src/test/resources/testdata/test6.txt deleted 100644 → 0
1 -select * from bsth_c_s_sp_rule_rst;  
2 -  
3 -select * from bsth_c_s_sp_rule_rst  
4 -where qyrq is null;  
5 -  
6 -update bsth_c_s_sp_rule_rst a  
7 -set a.qyrq = (select qyrq from bsth_c_s_sr1_flat where id = a.rule_id)  
8 -where a.qyrq is null;  
9 -  
10 -select * from bsth_c_s_sp_rule_rst  
11 -where origingidindex is null;  
12 -  
13 -update bsth_c_s_sp_rule_rst a  
14 -set a.origingidindex = (select lp_start from bsth_c_s_sr1_flat where id = a.rule_id)  
15 -where a.origingidindex is null;  
16 -  
17 -970  
18 -789  
19 -604  
20 -985  
21 -北蔡2路  
22 -1048  
23 -1118  
24 -上南二分通勤  
25 -  
26 -  
27 --Xms128M -Xmx1024M -XX:PermSize=64M -XX:MaxPermSize=128M  
28 -  
29 -1118  
30 -572康桥  
31 -83