Browse Source

Merge branch 'master' of http://192.168.1.220:10080/CoSharp/eip

huangzhiyong 7 years ago
parent
commit
186e2464d7

+ 63 - 0
src/main/java/com/yihu/hos/common/XmlUtil.java

@ -0,0 +1,63 @@
package com.yihu.hos.common;
import org.apache.log4j.Logger;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
/**
 * 封装 dom4j,简化操作 XML
 *
 * @author 张进军
 * @date 2017/6/19 14:02
 */
public class XmlUtil {
    private static Logger logger = Logger.getLogger(XmlUtil.class);
    /**
     * 将指定 XML 文件转换为 Document 对象
     *
     * @param xmlPath XML 路径
     * @return Document 对象
     */
    public static Document xml2doc(String xmlPath) {
        Document doc = null;
        try {
            SAXReader saxReader = new SAXReader();
            doc = saxReader.read(new File(xmlPath));
        } catch (DocumentException e) {
            logger.error("XML 转换成 Document 失败:" + e);
        }
        return doc;
    }
    /**
     * 将指定的 Document 对象转换成 XML 文件,并生成在指定路径下
     *
     * @param doc     被转换的 Document 对象
     * @param xmlPath 存放转换成的 XML 文件的路径
     * @return int 0: 生成失败,1:生成成功
     */
    public static int doc2xmlFormat(Document doc, String xmlPath) {
        int result = 0;
        try {
            OutputFormat outputFormat = OutputFormat.createCompactFormat();
            outputFormat.setEncoding("UTF-8");
            XMLWriter xmlWriter = new XMLWriter(new FileWriter(new File(xmlPath)), outputFormat);
            xmlWriter.write(doc);
            xmlWriter.close();
            result = 1;
        } catch (IOException e) {
            logger.error("Document 转换成 XML 失败:" + e);
        }
        return result;
    }
}

+ 26 - 4
src/main/java/com/yihu/hos/standard/service/adapter/AdapterSchemeService.java

@ -1,6 +1,7 @@
package com.yihu.hos.standard.service.adapter;
import com.fasterxml.jackson.databind.JsonNode;
import com.yihu.hos.common.XmlUtil;
import com.yihu.hos.core.datatype.CollectionUtil;
import com.yihu.hos.core.datatype.StringUtil;
import com.yihu.hos.standard.model.adapter.AdapterSchemeModel;
@ -13,14 +14,18 @@ import com.yihu.hos.web.framework.constant.SqlConstants;
import com.yihu.hos.web.framework.dao.SQLGeneralDAO;
import com.yihu.hos.web.framework.model.DetailModelResult;
import com.yihu.hos.web.framework.model.Result;
import org.apache.poi.ss.formula.functions.T;
import org.dom4j.Document;
import org.dom4j.Element;
import org.hibernate.Query;
import org.springframework.core.io.ClassPathResource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.util.*;
import static antlr.build.ANTLR.root;
/**
 * @created lingfeng 2015/12/25.
 */
@ -287,7 +292,7 @@ public class AdapterSchemeService extends SQLGeneralDAO {
            query = getCurrentSession().createQuery(adapterVersionHql);
            query.setParameter("schemeId", schemeModel.getId());
            List<AdapterSchemeVersionModel> versionModelList = query.list();
            if(versionModelList.size()>0){
            if (versionModelList.size() > 0) {
                AdapterSchemeResultModel resultDetailModel = new AdapterSchemeResultModel();
                resultDetailModel.setSchemeId(schemeModel.getId());
                resultDetailModel.setName(schemeModel.getName());
@ -299,7 +304,7 @@ public class AdapterSchemeService extends SQLGeneralDAO {
        return result;
    }
    public List delDuplicateArr(List<?> list){
    public List delDuplicateArr(List<?> list) {
        // 利用 Set 的特性,将所有项目放入 Set
        //中即可移除重复的项目
        Set<Object> set = new HashSet<>();
@ -311,8 +316,25 @@ public class AdapterSchemeService extends SQLGeneralDAO {
        // 将 Set 中的项目取出放到 nonDuplicateArray 中
        Object[] tempArray = set.toArray();
        for (int i = 0; i < tempArray.length; i++) {
           nonDuplicateArra.add ( tempArray[i]);
            nonDuplicateArra.add(tempArray[i]);
        }
        return nonDuplicateArra;
    }
    /**
     * 转换适配方案为华三的 XML 数据格式,一个表对应一个华三 XML。
     * @return
     */
    public List<Document> fillH3CDiJobXml() {
        List<Document> docList = new ArrayList<>();
        try {
            Document tmplDoc = XmlUtil.xml2doc(new ClassPathResource("/template/h3c-di-job.xml").getFile().getPath());
            Element rootElement = tmplDoc.getRootElement();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return docList;
    }
}

+ 658 - 0
src/main/resources/template/h3c-di-job.xml

@ -0,0 +1,658 @@
<transformation>
    <info>                <!-- 转换基本信息 -->
        <name>示例1</name> <!-- 转换名称 -->
        <description/>
        <extended_description/>
        <trans_version/>
        <trans_type>Normal</trans_type>
        <directory>&#x2f;</directory>
        <parameters>
        </parameters>
        <log>
            <trans-log-table>
                <connection/>
                <schema/>
                <table/>
                <size_limit_lines/>
                <interval/>
                <timeout_days/>
                <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>
            <perf-log-table>
                <connection/>
                <schema/>
                <table/>
                <interval/>
                <timeout_days/>
                <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>
            <channel-log-table>
                <connection/>
                <schema/>
                <table/>
                <timeout_days/>
                <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>
            <step-log-table>
                <connection/>
                <schema/>
                <table/>
                <timeout_days/>
                <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>
            <metrics-log-table>
                <connection/>
                <schema/>
                <table/>
                <timeout_days/>
                <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>
        </log>
        <maxdate>
            <connection/>
            <table/>
            <field/>
            <offset>0.0</offset>
            <maxdiff>0.0</maxdiff>
        </maxdate>
        <size_rowset>10000</size_rowset>
        <sleep_time_empty>50</sleep_time_empty>
        <sleep_time_full>50</sleep_time_full>
        <unique_connections>N</unique_connections>
        <feedback_shown>Y</feedback_shown>
        <feedback_size>50000</feedback_size>
        <using_thread_priorities>Y</using_thread_priorities>
        <shared_objects_file/>
        <capture_step_performance>N</capture_step_performance>
        <step_performance_capturing_delay>1000</step_performance_capturing_delay>
        <step_performance_capturing_size_limit>100</step_performance_capturing_size_limit>
        <dependencies>
        </dependencies>
        <partitionschemas>
        </partitionschemas>
        <slaveservers>
        </slaveservers>
        <clusterschemas>
        </clusterschemas>
        <created_user>-</created_user>
        <created_date>2017&#x2f;06&#x2f;13 16&#x3a;54&#x3a;18.691</created_date>
        <modified_user>-</modified_user>
        <modified_date>2017&#x2f;06&#x2f;13 16&#x3a;54&#x3a;18.691</modified_date>
        <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA&#x3d;</key_for_session_key>
        <is_key_private>N</is_key_private>
    </info>
    <notepads>     <!-- 转换中的注释信息 -->
    </notepads>
    <connection>   <!-- 转换中的数据库连接 -->
        <name>15.50</name>         <!-- 数据库连接名称 -->
        <server>100.4.15.50</server>   <!--  数据库连接地址 -->
        <type>POSTGRESQL</type>         <!-- 数据库类型 -->
        <access>Native</access>
        <database>test</database>     <!-- 数据库名称 -->
        <port>5432</port>
        <username>test</username>     <!-- 用户名 -->
        <password>Encrypted 2be98afc86aa7f2e4cb79a575ca86a3df</password>    <!-- 密码 -->
        <servername/>
        <data_tablespace/>
        <index_tablespace/>
        <attributes>
            <attribute>
                <code>FORCE_IDENTIFIERS_TO_LOWERCASE</code>
                <attribute>N</attribute>
            </attribute>
            <attribute>
                <code>FORCE_IDENTIFIERS_TO_UPPERCASE</code>
                <attribute>N</attribute>
            </attribute>
            <attribute>
                <code>IS_CLUSTERED</code>
                <attribute>N</attribute>
            </attribute>
            <attribute>
                <code>PORT_NUMBER</code>
                <attribute>5432</attribute>
            </attribute>
            <attribute>
                <code>PRESERVE_RESERVED_WORD_CASE</code>
                <attribute>N</attribute>
            </attribute>
            <attribute>
                <code>QUOTE_ALL_FIELDS</code>
                <attribute>N</attribute>
            </attribute>
            <attribute>
                <code>SUPPORTS_BOOLEAN_DATA_TYPE</code>
                <attribute>Y</attribute>
            </attribute>
            <attribute>
                <code>SUPPORTS_TIMESTAMP_DATA_TYPE</code>
                <attribute>Y</attribute>
            </attribute>
            <attribute>
                <code>USE_POOLING</code>
                <attribute>N</attribute>
            </attribute>
        </attributes>
    </connection>
    <connection>
        <name>mysqldb</name>
        <server>100.4.15.200</server>
        <type>MYSQL</type>
        <access>Native</access>
        <database>test</database>
        <port>3306</port>
        <username>root</username>
        <password>Encrypted 2be98afc86aa7f2e4cb79be71cd81b8de</password>
        <servername/>
        <data_tablespace/>
        <index_tablespace/>
        <attributes>
            <attribute>
                <code>EXTRA_OPTION_MYSQL.defaultFetchSize</code>
                <attribute>500</attribute>
            </attribute>
            <attribute>
                <code>EXTRA_OPTION_MYSQL.useCursorFetch</code>
                <attribute>true</attribute>
            </attribute>
            <attribute>
                <code>FORCE_IDENTIFIERS_TO_LOWERCASE</code>
                <attribute>N</attribute>
            </attribute>
            <attribute>
                <code>FORCE_IDENTIFIERS_TO_UPPERCASE</code>
                <attribute>N</attribute>
            </attribute>
            <attribute>
                <code>IS_CLUSTERED</code>
                <attribute>N</attribute>
            </attribute>
            <attribute>
                <code>PORT_NUMBER</code>
                <attribute>3306</attribute>
            </attribute>
            <attribute>
                <code>PRESERVE_RESERVED_WORD_CASE</code>
                <attribute>N</attribute>
            </attribute>
            <attribute>
                <code>QUOTE_ALL_FIELDS</code>
                <attribute>N</attribute>
            </attribute>
            <attribute>
                <code>STREAM_RESULTS</code>
                <attribute>Y</attribute>
            </attribute>
            <attribute>
                <code>SUPPORTS_BOOLEAN_DATA_TYPE</code>
                <attribute>Y</attribute>
            </attribute>
            <attribute>
                <code>SUPPORTS_TIMESTAMP_DATA_TYPE</code>
                <attribute>Y</attribute>
            </attribute>
            <attribute>
                <code>USE_POOLING</code>
                <attribute>N</attribute>
            </attribute>
        </attributes>
    </connection>
    <order>        <!-- 转换中步骤间的连线信息 -->
        <hop>      <!-- 单个连线信息 -->
            <from>&#x4ece;mysql&#x62bd;&#x53d6;</from>  <!-- 起始步骤 -->
            <to>&#x8f93;&#x51fa;&#x5230;pg</to>         <!-- 目的步骤 -->
            <enabled>Y</enabled>
        </hop>
    </order>
    <step>         <!-- 步骤1的信息 -->
        <name>&#x4ece;mysql&#x62bd;&#x53d6;</name>     <!-- 步骤名称 -->
        <type>TableInput</type>                        <!-- 步骤类型 -->
        <description/>
        <distribute>Y</distribute>
        <custom_distribution/>
        <copies>1</copies>
        <partitioning>
            <method>none</method>
            <schema_name/>
        </partitioning>
        <connection>mysqldb</connection>              <!-- 使用的数据库连接 -->
        <sql>SELECT&#xa; id&#xa;, name&#xa;, type&#xa;, url&#xa;, time&#xa;FROM
            transaction&#xa;</sql>     <!-- 生成的查询语句 -->
        <limit>0</limit>      <!-- 记录数量限制 -->
        <lookup/>            <!-- 接收数据的前序步骤 -->
        <execute_each_row>N</execute_each_row>
        <variables_active>N</variables_active>        <!-- 替换sql语句中的变量 -->
        <lazy_conversion_active>N</lazy_conversion_active>   <!--  允许建议转换 -->
        <cluster_schema/>
        <remotesteps>
            <input>
            </input>
            <output>
            </output>
        </remotesteps>
        <GUI>                  <!-- 步骤图标的显示位置 -->
            <xloc>112</xloc>
            <yloc>160</yloc>
            <draw>Y</draw>
        </GUI>
    </step>
    <step>                     <!-- 步骤2信息 -->
        <name>&#x8f93;&#x51fa;&#x5230;pg</name>
        <type>TableOutput</type>
        <description/>
        <distribute>Y</distribute>
        <custom_distribution/>
        <copies>1</copies>
        <partitioning>
            <method>none</method>
            <schema_name/>
        </partitioning>
        <connection>15.50</connection>
        <schema>public</schema>          <!-- 目标模式 -->
        <table>outPutTable1</table>      <!-- 目标表 -->
        <commit>1000</commit>
        <truncate>N</truncate>
        <ignore_errors>N</ignore_errors>
        <use_batch>Y</use_batch>
        <specify_fields>Y</specify_fields>  <!-- 指定数据库字段 -->
        <partitioning_enabled>N</partitioning_enabled>    <!-- 表分区数据 -->
        <partitioning_field/>
        <partitioning_daily>N</partitioning_daily>         <!-- 按日分区 -->
        <partitioning_monthly>Y</partitioning_monthly>     <!-- 按月分区 -->
        <tablename_in_field>N</tablename_in_field>
        <tablename_field/>
        <tablename_in_table>Y</tablename_in_table>
        <return_keys>N</return_keys>
        <return_field/>
        <fields>              <!-- 字段映射 -->
            <field>
                <column_name>id2</column_name>    <!-- 目标表字段名 -->
                <stream_name>id</stream_name>     <!-- 源字段名 -->
            </field>
            <field>
                <column_name>name2</column_name>
                <stream_name>name</stream_name>
            </field>
            <field>
                <column_name>type2</column_name>
                <stream_name>type</stream_name>
            </field>
            <field>
                <column_name>time2</column_name>
                <stream_name>time</stream_name>
            </field>
        </fields>
        <cluster_schema/>
        <remotesteps>
            <input>
            </input>
            <output>
            </output>
        </remotesteps>
        <GUI>
            <xloc>304</xloc>
            <yloc>160</yloc>
            <draw>Y</draw>
        </GUI>
    </step>
    <step_error_handling>
    </step_error_handling>
    <slave-step-copy-partition-distribution>
    </slave-step-copy-partition-distribution>
    <slave_transformation>N</slave_transformation>
</transformation>

+ 9 - 4
src/main/webapp/WEB-INF/ehr/jsp/common/indexJs.jsp

@ -161,7 +161,6 @@
                nodeWidth: 176,
                onSelect: function (obj) {
                	if (obj.data.url != undefined) {
                        debugger
                        if(obj.data.url.indexOf("report/signin") >= 0){
                            me.loadIframePage(obj.data.url);//质控页面
                        }else{
@ -191,14 +190,20 @@
						var self = $(this);
						if(!self.hasClass("l-selected")){
							var imgSrcs = self.find("img").attr("src");
							if(imgSrcs.indexOf("hover") > 0){	
							if(imgSrcs.indexOf("hover") > 0){
								self.find("img").attr("src",imgSrcs.substring(0,imgSrcs.length-10)+".png");
							}
						}
					});
                },
                onClick:function(obj){
                },
                onBeforeSelect(obj){//解决bug 3487【ESB】标准规范:点击标准规范的图标,图标会显示成白色。
                    if(obj.data == null){
                         if(obj.target.parentElement.parentElement.className.indexOf("l-selected") > 0){
                            return false;
                         }
                    }
                },
                //一级节点不可选中
                onAfterAppend: function () {
@ -207,7 +212,7 @@
//                  });
                }
            });
			
            //首页按钮
            $('#btnIndexHome').bind('click', function () {
                me.openHome();

+ 3 - 13
src/main/webapp/WEB-INF/ehr/jsp/qc/editorRuleJs.jsp

@ -36,7 +36,7 @@
                    name: "${model.name}",
                    describe: "${model.describe}",
                    rule: "${model.rule}",
                    error_code: "${model.error_code}",
                    error_code: "${model.error_code}"
                };
                me.actionUrl = "${contextRoot}/rule/updateRule";
@ -48,23 +48,13 @@
                    describe:"required",
                    rule:"required",
                    error_code:"required",
                    type:"required",
                },
                    type:"required"
                }
            });
        },
        bindEvents: function () {
            var me = this;
            $(".m-form-bottom").on("click", "#btnSave", function () {
                $("#btnSave").css("pointer-events", "none");
                $("#name_icon").removeClass("required");
                if ($("#name_icon").val() == "") {
                    $("#name_icon").addClass("required");
                    if (!$("#div_info_form").ligerAutoForm("validate")) {
                        return;
                    }
                    return;
                }
                if (!$("#div_info_form").ligerAutoForm("validate")) {
                    return;
                }

+ 27 - 0
src/test/java/com/yihu/hos/services/AdapterSchemeServiceTest.java

@ -0,0 +1,27 @@
package com.yihu.hos.services;
import com.yihu.hos.ESBApplication;
import com.yihu.hos.standard.service.adapter.AdapterSchemeService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
 * @author 张进军
 * @created 2017/6/16 16:35
 */
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = ESBApplication.class)
public class AdapterSchemeServiceTest {
    @Autowired
    private AdapterSchemeService adapterSchemeService;
    @Test
    public void testFillH3CDiJobXml() {
        adapterSchemeService.fillH3CDiJobXml();
    }
}