diff --git a/op-modules/op-sap/src/main/resources/mapper/SapProProcessMapper.xml b/op-modules/op-sap/src/main/resources/mapper/SapProProcessMapper.xml
new file mode 100644
index 00000000..073783b5
--- /dev/null
+++ b/op-modules/op-sap/src/main/resources/mapper/SapProProcessMapper.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.op.sap.mapper.SapProProcessMapper">
+
+    <resultMap type="SapProProcess" id="ProProcessResult">
+        <result property="processId"    column="process_id"    />
+        <result property="processCode"    column="process_code"    />
+        <result property="processName"    column="process_name"    />
+        <result property="attention"    column="attention"    />
+        <result property="enableFlag"    column="enable_flag"    />
+        <result property="remark"    column="remark"    />
+        <result property="attr1"    column="attr1"    />
+        <result property="attr2"    column="attr2"    />
+        <result property="attr3"    column="attr3"    />
+        <result property="attr4"    column="attr4"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="splitMerge"    column="split_merge"    />
+        <result property="splitMergNum"    column="split_merg_num"    />
+        <result property="sync"    column="sync"/>
+        <result property="workCenter"    column="work_center"/>
+        <result property="workTime"    column="work_time"/>
+        <result property="equipment"    column="equipment"/>
+    </resultMap>
+
+    <sql id="selectProProcessVo">
+        select process_id, process_code, process_name, attention,
+               enable_flag, remark, attr1, attr2, attr3, attr4, create_by, create_time,
+               update_by, update_time,split_merge,split_merg_num,sync,work_center,work_time,equipment
+        from pro_process
+    </sql>
+
+    <select id="selectProProcessList" parameterType="SapProProcess" resultMap="ProProcessResult">
+        <include refid="selectProProcessVo"/>
+        <where>
+            <if test="processCode != null  and processCode != ''"> and process_code = #{processCode}</if>
+            <if test="processName != null  and processName != ''"> and process_name like concat('%', #{processName}, '%')</if>
+            <if test="attention != null  and attention != ''"> and attention = #{attention}</if>
+            <if test="enableFlag != null  and enableFlag != ''"> and enable_flag = #{enableFlag}</if>
+        </where>
+        order by create_time desc
+    </select>
+
+    <select id="selectProProcessByProcessId" parameterType="String" resultMap="ProProcessResult">
+        <include refid="selectProProcessVo"/>
+        where process_id = #{processId}
+    </select>
+
+	<select id="checkProcessCodeUnique" parameterType="SapProProcess" resultMap="ProProcessResult">
+        select top 1 process_id, process_code, process_name, attention, enable_flag,
+               remark, attr1, attr2, attr3, attr4, create_by, create_time,
+                   update_by, update_time from pro_process
+        where process_code = #{processCode}
+    </select>
+
+    <select id="checkProcessNameUnique" parameterType="SapProProcess" resultMap="ProProcessResult">
+        select top 1 process_id, process_code, process_name, attention, enable_flag,
+               remark, attr1, attr2, attr3, attr4, create_by, create_time,
+                   update_by, update_time from pro_process
+        where process_name = #{processName}
+    </select>
+
+    <select id="selectProProcessByProcessName" parameterType="String" resultType="Integer">
+        select count(process_name) from pro_process where process_name = #{processName}
+    </select>
+
+    <insert id="insertProProcess" parameterType="SapProProcess" useGeneratedKeys="true" keyProperty="processId">
+        insert into pro_process
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            process_id,
+            <if test="processCode != null and processCode != ''">process_code,</if>
+            <if test="processName != null and processName != ''">process_name,</if>
+            <if test="attention != null">attention,</if>
+            <if test="enableFlag != null and enableFlag != ''">enable_flag,</if>
+            <if test="remark != null">remark,</if>
+            <if test="attr1 != null">attr1,</if>
+            <if test="attr2 != null">attr2,</if>
+            <if test="attr3 != null">attr3,</if>
+            <if test="attr4 != null">attr4,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="splitMerge != null">split_merge,</if>
+            <if test="splitMergNum != null">split_merg_num,</if>
+            <if test="sync != null">sync,</if>
+            <if test="workCenter != null">work_center,</if>
+            <if test="workTime != null">work_time,</if>
+            <if test="equipment != null">equipment,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            #{processId},
+            <if test="processCode != null and processCode != ''">#{processCode},</if>
+            <if test="processName != null and processName != ''">#{processName},</if>
+            <if test="attention != null">#{attention},</if>
+            <if test="enableFlag != null and enableFlag != ''">#{enableFlag},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="attr1 != null">#{attr1},</if>
+            <if test="attr2 != null">#{attr2},</if>
+            <if test="attr3 != null">#{attr3},</if>
+            <if test="attr4 != null">#{attr4},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="splitMerge != null">#{splitMerge},</if>
+            <if test="splitMergNum != null">#{splitMergNum},</if>
+            <if test="sync != null">#{sync},</if>
+            <if test="workCenter != null">#{workCenter},</if>
+            <if test="workTime != null">#{workTime},</if>
+            <if test="equipment != null">#{equipment},</if>
+         </trim>
+    </insert>
+    <update id="updateProProcess" parameterType="SapProProcess">
+        update pro_process
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="processCode != null and processCode != ''">process_code = #{processCode},</if>
+            <if test="processName != null and processName != ''">process_name = #{processName},</if>
+            <if test="attention != null">attention = #{attention},</if>
+            <if test="enableFlag != null and enableFlag != ''">enable_flag = #{enableFlag},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="attr1 != null">attr1 = #{attr1},</if>
+            <if test="attr2 != null">attr2 = #{attr2},</if>
+            <if test="attr3 != null">attr3 = #{attr3},</if>
+            <if test="attr4 != null">attr4 = #{attr4},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="splitMerge != null">split_merge = #{splitMerge},</if>
+            <if test="splitMergNum != null">split_merg_num = #{splitMergNum},</if>
+            <if test="sync != null">sync = #{sync},</if>
+            <if test="workCenter != null">work_center = #{workCenter},</if>
+            <if test="workTime != null">work_time = #{workTime},</if>
+            <if test="equipment != null">equipment = #{equipment},</if>
+        </trim>
+        where process_id = #{processId}
+    </update>
+
+    <delete id="deleteProProcessByProcessId" parameterType="String">
+        delete from pro_process where process_id = #{processId}
+    </delete>
+
+    <delete id="deleteProProcessByProcessIds" parameterType="String">
+        delete from pro_process where process_id in
+        <foreach item="processId" collection="array" open="(" separator="," close=")">
+            #{processId}
+        </foreach>
+    </delete>
+</mapper>
diff --git a/op-modules/op-sap/src/main/resources/mapper/SapProRouteMapper.xml b/op-modules/op-sap/src/main/resources/mapper/SapProRouteMapper.xml
new file mode 100644
index 00000000..2da47d31
--- /dev/null
+++ b/op-modules/op-sap/src/main/resources/mapper/SapProRouteMapper.xml
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.op.sap.mapper.SapProRouteMapper">
+
+    <resultMap type="SapProRoute" id="ProRouteResult">
+        <result property="routeId"    column="route_id"    />
+        <result property="routeCode"    column="route_code"    />
+        <result property="routeName"    column="route_name"    />
+        <result property="routeDesc"    column="route_desc"    />
+        <result property="enableFlag"    column="enable_flag"    />
+        <result property="remark"    column="remark"    />
+        <result property="attr1"    column="attr1"    />
+        <result property="attr2"    column="attr2"    />
+        <result property="attr3"    column="attr3"    />
+        <result property="attr4"    column="attr4"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="routeVersion"    column="route_version"    />
+        <result property="needCheck"    column="need_check"    />
+
+    </resultMap>
+
+    <sql id="selectProRouteVo">
+        select route_id, route_code, route_name, route_desc, enable_flag, remark,
+               attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time,
+               route_version,need_check
+        from pro_route
+    </sql>
+
+    <select id="selectProRouteList" parameterType="SapProRoute" resultMap="ProRouteResult">
+        <include refid="selectProRouteVo"/>
+        <where>
+            <if test="routeCode != null  and routeCode != ''"> and route_code = #{routeCode}</if>
+            <if test="routeName != null  and routeName != ''"> and route_name like concat('%', #{routeName}, '%')</if>
+            <if test="routeDesc != null  and routeDesc != ''"> and route_desc = #{routeDesc}</if>
+            <if test="enableFlag != null  and enableFlag != ''"> and enable_flag = #{enableFlag}</if>
+        </where>
+        order by create_time desc
+    </select>
+
+    <select id="selectProRouteByRouteId" parameterType="String" resultMap="ProRouteResult">
+        <include refid="selectProRouteVo"/>
+        where route_id = #{routeId}
+    </select>
+    <select id="selectProRouteByRouteCode" parameterType="String" resultType="Integer">
+        select count(route_code) from pro_route where route_code = #{routeCode}
+    </select>
+
+    <select id="getRouteByProductId" parameterType="String" resultMap="ProRouteResult">
+        select r.*
+        from pro_route r
+                 left join pro_route_product p
+                           on p.route_id = r.route_id
+        where r.enable_flag = 'Y'
+          and p.item_id = #{itemId}
+    </select>
+
+    <select id="checkRouteCodeUnique" parameterType="SapProRoute" resultMap="ProRouteResult">
+        select top 1 route_id, route_code, route_name, route_desc,
+               enable_flag, remark, attr1, attr2, attr3, attr4,
+               create_by, create_time, update_by, update_time,need_check
+        from pro_route
+        where route_code = #{routeCode}
+    </select>
+
+    <select id="selectAllRoute" resultMap="ProRouteResult">
+        select route_code, route_name
+        from pro_route
+        where enable_flag = 'Y'
+    </select>
+
+    <insert id="insertProRoute" parameterType="SapProRoute" useGeneratedKeys="true" keyProperty="routeId">
+        insert into pro_route
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="routeId != null and routeId != ''">route_id,</if>
+            <if test="routeCode != null and routeCode != ''">route_code,</if>
+            <if test="routeName != null and routeName != ''">route_name,</if>
+            <if test="routeDesc != null">route_desc,</if>
+            <if test="enableFlag != null and enableFlag != ''">enable_flag,</if>
+            <if test="remark != null">remark,</if>
+            <if test="attr1 != null">attr1,</if>
+            <if test="attr2 != null">attr2,</if>
+            <if test="attr3 != null">attr3,</if>
+            <if test="attr4 != null">attr4,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="routeVersion != null">route_version,</if>
+            <if test="needCheck != null">need_check,</if>
+
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="routeId != null and routeId != ''">#{routeId},</if>
+            <if test="routeCode != null and routeCode != ''">#{routeCode},</if>
+            <if test="routeName != null and routeName != ''">#{routeName},</if>
+            <if test="routeDesc != null">#{routeDesc},</if>
+            <if test="enableFlag != null and enableFlag != ''">#{enableFlag},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="attr1 != null">#{attr1},</if>
+            <if test="attr2 != null">#{attr2},</if>
+            <if test="attr3 != null">#{attr3},</if>
+            <if test="attr4 != null">#{attr4},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="routeVersion != null">#{routeVersion},</if>
+            <if test="needCheck != null">#{needCheck},</if>
+         </trim>
+    </insert>
+
+
+    <update id="updateProRoute" parameterType="SapProRoute">
+        update pro_route
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="routeCode != null and routeCode != ''">route_code = #{routeCode},</if>
+            <if test="routeName != null and routeName != ''">route_name = #{routeName},</if>
+            <if test="routeDesc != null">route_desc = #{routeDesc},</if>
+            <if test="enableFlag != null and enableFlag != ''">enable_flag = #{enableFlag},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="attr1 != null">attr1 = #{attr1},</if>
+            <if test="attr2 != null">attr2 = #{attr2},</if>
+            <if test="attr3 != null">attr3 = #{attr3},</if>
+            <if test="attr4 != null">attr4 = #{attr4},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="routeVersion != null">route_version = #{routeVersion},</if>
+            <if test="needCheck != null">#{needCheck},</if>
+        </trim>
+        where route_id = #{routeId}
+    </update>
+
+    <delete id="deleteProRouteByRouteId" parameterType="String">
+        delete from pro_route where route_id = #{routeId}
+    </delete>
+
+    <delete id="deleteProRouteByRouteIds" parameterType="String">
+        delete from pro_route where route_id in
+        <foreach item="routeId" collection="array" open="(" separator="," close=")">
+            #{routeId}
+        </foreach>
+    </delete>
+</mapper>
diff --git a/op-modules/op-sap/src/main/resources/mapper/SapProRouteProcessMapper.xml b/op-modules/op-sap/src/main/resources/mapper/SapProRouteProcessMapper.xml
new file mode 100644
index 00000000..593cd25d
--- /dev/null
+++ b/op-modules/op-sap/src/main/resources/mapper/SapProRouteProcessMapper.xml
@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.op.sap.mapper.SapProRouteProcessMapper">
+
+    <resultMap type="SapProRouteProcess" id="ProRouteProcessResult">
+        <result property="recordId"    column="record_id"    />
+        <result property="routeId"    column="route_id"    />
+        <result property="processId"    column="process_id"    />
+        <result property="processCode"    column="process_code"    />
+        <result property="processName"    column="process_name"    />
+        <result property="orderNum"    column="order_num"    />
+        <result property="nextProcessId"    column="next_process_id"    />
+        <result property="nextProcessCode"    column="next_process_code"    />
+        <result property="nextProcessName"    column="next_process_name"    />
+        <result property="linkType"    column="link_type"    />
+        <result property="defaultPreTime"    column="default_pre_time"    />
+        <result property="defaultSufTime"    column="default_suf_time"    />
+        <result property="colorCode"    column="color_code"    />
+        <result property="keyFlag" column="key_flag" ></result>
+        <result property="remark"    column="remark"    />
+        <result property="attr1"    column="attr1"    />
+        <result property="attr2"    column="attr2"    />
+        <result property="attr3"    column="attr3"    />
+        <result property="attr4"    column="attr4"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
+    <sql id="selectProRouteProcessVo">
+        select record_id, route_id, process_id, process_code, process_name, order_num, next_process_id, next_process_code, next_process_name, link_type, default_pre_time, default_suf_time, color_code,key_flag, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from pro_route_process
+    </sql>
+
+
+    <select id="selectProRouteProcessList" parameterType="SapProRouteProcess" resultMap="ProRouteProcessResult">
+        <include refid="selectProRouteProcessVo"/>
+        <where>
+            <if test="routeId != null "> and route_id = #{routeId}</if>
+            <if test="processId != null "> and process_id = #{processId}</if>
+            <if test="processCode != null  and processCode != ''"> and process_code = #{processCode}</if>
+            <if test="processName != null  and processName != ''"> and process_name like concat('%', #{processName}, '%')</if>
+            <if test="orderNum != null "> and order_num = #{orderNum}</if>
+            <if test="nextProcessId != null "> and next_process_id = #{nextProcessId}</if>
+            <if test="nextProcessCode != null  and nextProcessCode != ''"> and next_process_code = #{nextProcessCode}</if>
+            <if test="nextProcessName != null  and nextProcessName != ''"> and next_process_name like concat('%', #{nextProcessName}, '%')</if>
+            <if test="linkType != null  and linkType != ''"> and link_type = #{linkType}</if>
+            <if test="defaultPreTime != null "> and default_pre_time = #{defaultPreTime}</if>
+            <if test="defaultSufTime != null "> and default_suf_time = #{defaultSufTime}</if>
+            <if test="colorCode != null  and colorCode != ''"> and color_code = #{colorCode}</if>
+            <if test="keyFlag !=null and keyFlag !=''"> and key_flag = #{keyFlag}</if>
+        </where>
+        order by order_num asc
+    </select>
+
+    <select id="selectProRouteProcessByRecordId" parameterType="String" resultMap="ProRouteProcessResult">
+        <include refid="selectProRouteProcessVo"/>
+        where record_id = #{recordId}
+    </select>
+    <select id="selectProRouteProcessByProcessCode" parameterType="String" resultType="Integer">
+        SELECT count(*) FROM pro_route_process where process_code = #{processCode}
+    </select>
+    <select id="checkOrderNumExists" parameterType="SapProRouteProcess" resultMap="ProRouteProcessResult">
+        select top 1 record_id, route_id, process_id, process_code, process_name,
+               order_num, next_process_id, next_process_code, next_process_name,
+               link_type, default_pre_time, default_suf_time, color_code,key_flag,
+               remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by,
+               update_time
+        from pro_route_process
+        where route_id = #{routeId} and order_num = #{orderNum}
+    </select>
+
+    <select id="checkProcessExists" parameterType="SapProRouteProcess" resultMap="ProRouteProcessResult">
+        select top 1 record_id, route_id, process_id, process_code, process_name,
+               order_num, next_process_id, next_process_code, next_process_name,
+               link_type, default_pre_time, default_suf_time, color_code,key_flag,
+               remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by,
+               update_time
+        from pro_route_process
+            where route_id = #{routeId} and process_id = #{processId}
+    </select>
+
+    <select id="checkUpdateFlagUnique" parameterType="SapProRouteProcess" resultMap="ProRouteProcessResult">
+        select top 1 record_id, route_id, process_id, process_code, process_name,
+               order_num, next_process_id, next_process_code, next_process_name,
+               link_type, default_pre_time, default_suf_time, color_code,key_flag,
+               remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by,
+               update_time
+        from pro_route_process
+            where route_id = #{routeId} and key_flag = 'Y'
+    </select>
+
+    <select id="findPreProcess" parameterType="SapProRouteProcess" resultMap="ProRouteProcessResult">
+        select top 1 record_id, route_id, process_id, process_code, process_name,
+               order_num, next_process_id, next_process_code, next_process_name,
+               link_type, default_pre_time, default_suf_time, color_code,key_flag,
+               remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by,
+               update_time
+        from pro_route_process
+        where route_id = #{routeId}
+        <choose>
+            <when test="orderNum != null "> and order_num &lt; #{orderNum}</when>
+            <otherwise>
+                AND order_num &lt; (
+                    SELECT top 1 order_num
+                    FROM pro_route_process
+                    WHERE route_id = #{routeId}
+                )
+            </otherwise>
+        </choose>
+        ORDER BY order_num DESC
+    </select>
+
+    <select id="findNextProcess" parameterType="SapProRouteProcess" resultMap="ProRouteProcessResult">
+        select top 1 record_id, route_id, process_id, process_code, process_name, order_num,
+               next_process_id, next_process_code, next_process_name, link_type, default_pre_time,
+               default_suf_time, color_code,key_flag, remark, attr1, attr2, attr3, attr4, create_by,
+               create_time, update_by, update_time from pro_route_process
+        where route_id = #{routeId}
+        <choose>
+            <when test="orderNum != null "> and order_num &gt; #{orderNum}</when>
+            <otherwise>
+                AND order_num &gt; (
+                SELECT top 1 order_num
+                FROM pro_route_process
+                WHERE route_id = #{routeId}
+                )
+            </otherwise>
+        </choose>
+        ORDER BY order_num ASC
+    </select>
+
+    <insert id="insertProRouteProcess" parameterType="SapProRouteProcess" useGeneratedKeys="true" keyProperty="recordId">
+        insert into pro_route_process
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="recordId != null and recordId != ''">record_id,</if>
+            <if test="routeId != null">route_id,</if>
+            <if test="processId != null">process_id,</if>
+            <if test="processCode != null">process_code,</if>
+            <if test="processName != null">process_name,</if>
+            <if test="orderNum != null">order_num,</if>
+            <if test="nextProcessId != null">next_process_id,</if>
+            <if test="nextProcessCode != null">next_process_code,</if>
+            <if test="nextProcessName != null">next_process_name,</if>
+            <if test="linkType != null">link_type,</if>
+            <if test="defaultPreTime != null">default_pre_time,</if>
+            <if test="defaultSufTime != null">default_suf_time,</if>
+            <if test="colorCode != null">color_code,</if>
+            <if test="keyFlag !=null">key_flag,</if>
+            <if test="remark != null">remark,</if>
+            <if test="attr1 != null">attr1,</if>
+            <if test="attr2 != null">attr2,</if>
+            <if test="attr3 != null">attr3,</if>
+            <if test="attr4 != null">attr4,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="recordId != null and recordId != ''">#{recordId},</if>
+            <if test="routeId != null">#{routeId},</if>
+            <if test="processId != null">#{processId},</if>
+            <if test="processCode != null">#{processCode},</if>
+            <if test="processName != null">#{processName},</if>
+            <if test="orderNum != null">#{orderNum},</if>
+            <if test="nextProcessId != null">#{nextProcessId},</if>
+            <if test="nextProcessCode != null">#{nextProcessCode},</if>
+            <if test="nextProcessName != null">#{nextProcessName},</if>
+            <if test="linkType != null">#{linkType},</if>
+            <if test="defaultPreTime != null">#{defaultPreTime},</if>
+            <if test="defaultSufTime != null">#{defaultSufTime},</if>
+            <if test="colorCode != null">#{colorCode},</if>
+            <if test="keyFlag !=null">#{keyFlag},</if>
+            <if test="remark != null">#{remark},</if>
+            <if test="attr1 != null">#{attr1},</if>
+            <if test="attr2 != null">#{attr2},</if>
+            <if test="attr3 != null">#{attr3},</if>
+            <if test="attr4 != null">#{attr4},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+         </trim>
+    </insert>
+
+    <update id="updateProRouteProcess" parameterType="SapProRouteProcess">
+        update pro_route_process
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="routeId != null">route_id = #{routeId},</if>
+            <if test="processId != null">process_id = #{processId},</if>
+            <if test="processCode != null">process_code = #{processCode},</if>
+            <if test="processName != null">process_name = #{processName},</if>
+            <if test="orderNum != null">order_num = #{orderNum},</if>
+            <if test="nextProcessId != null">next_process_id = #{nextProcessId},</if>
+            <if test="nextProcessCode != null">next_process_code = #{nextProcessCode},</if>
+            <if test="nextProcessName != null">next_process_name = #{nextProcessName},</if>
+            <if test="linkType != null">link_type = #{linkType},</if>
+            <if test="defaultPreTime != null">default_pre_time = #{defaultPreTime},</if>
+            <if test="defaultSufTime != null">default_suf_time = #{defaultSufTime},</if>
+            <if test="keyFlag !=null">key_flag = #{keyFlag},</if>
+            <if test="colorCode != null">color_code = #{colorCode},</if>
+            <if test="remark != null">remark = #{remark},</if>
+            <if test="attr1 != null">attr1 = #{attr1},</if>
+            <if test="attr2 != null">attr2 = #{attr2},</if>
+            <if test="attr3 != null">attr3 = #{attr3},</if>
+            <if test="attr4 != null">attr4 = #{attr4},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+        </trim>
+        where record_id = #{recordId}
+    </update>
+
+    <delete id="deleteProRouteProcessByRecordId" parameterType="String">
+        delete from pro_route_process where record_id = #{recordId}
+    </delete>
+
+    <delete id="deleteProRouteProcessByRecordIds" parameterType="String">
+        delete from pro_route_process where record_id in
+        <foreach item="recordId" collection="array" open="(" separator="," close=")">
+            #{recordId}
+        </foreach>
+    </delete>
+    <delete id="deleteByRouteId" parameterType="String">
+        delete from pro_route_process where route_id = #{routeId}
+    </delete>
+</mapper>
diff --git a/op-modules/op-sap/src/main/resources/mapper/SapProRouteProductMapper.xml b/op-modules/op-sap/src/main/resources/mapper/SapProRouteProductMapper.xml
new file mode 100644
index 00000000..f63d3dbc
--- /dev/null
+++ b/op-modules/op-sap/src/main/resources/mapper/SapProRouteProductMapper.xml
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.op.sap.mapper.SapProRouteProductMapper">
+
+	<resultMap type="SapProRouteProduct" id="ProRouteProductResult">
+		<result property="recordId"	column="record_id"	/>
+		<result property="routeId"	column="route_id"	/>
+		<result property="itemId"	column="item_id"	/>
+		<result property="itemCode"	column="item_code"	/>
+		<result property="itemName"	column="item_name"	/>
+		<result property="remark"	column="remark"	/>
+		<result property="attr1"	column="attr1"	/>
+		<result property="attr2"	column="attr2"	/>
+		<result property="attr3"	column="attr3"	/>
+		<result property="attr4"	column="attr4"	/>
+		<result property="createBy"	column="create_by"	/>
+		<result property="createTime"	column="create_time"	/>
+		<result property="updateBy"	column="update_by"	/>
+		<result property="updateTime"	column="update_time"	/>
+	</resultMap>
+
+	<sql id="selectProRouteProductVo">
+		select record_id, route_id, item_id, item_code, item_name, remark, attr1, attr2, attr3, attr4, create_by, create_time, update_by, update_time from pro_route_product
+	</sql>
+
+	<select id="selectProRouteProductList" parameterType="SapProRouteProduct" resultMap="ProRouteProductResult">
+		<include refid="selectProRouteProductVo"/>
+		<where>
+			<if test="routeId != null  and routeId != ''"> and route_id = #{routeId}</if>
+			<if test="itemId != null  and itemId != ''"> and item_id = #{itemId}</if>
+			<if test="itemCode != null  and itemCode != ''"> and item_code = #{itemCode}</if>
+			<if test="itemName != null  and itemName != ''"> and item_name like concat('%', #{itemName}, '%')</if>
+			<if test="attr1 != null  and attr1 != ''"> and attr1 = #{attr1}</if>
+			<if test="attr2 != null  and attr2 != ''"> and attr2 = #{attr2}</if>
+			<if test="attr3 != null  and attr3 != ''"> and attr3 = #{attr3}</if>
+			<if test="attr4 != null  and attr4 != ''"> and attr4 = #{attr4}</if>
+		</where>
+	</select>
+
+	<select id="selectProRouteProductByRecordId" parameterType="String" resultMap="ProRouteProductResult">
+		<include refid="selectProRouteProductVo"/>
+		where record_id = #{recordId}
+	</select>
+<!--	原来逻辑:关联工厂里面的线体-->
+<!--	<select id="getRouteProdProductListUndo" resultType="com.op.technology.domain.ProRouteProduct">-->
+<!--		 select sf.f_code [key],-->
+<!--				sf.factory_name label-->
+<!--		 from sys_factory sf-->
+<!--		 where sf.f_type='l' and sf.status = '1' and sf.del_flag = '0'-->
+<!--	</select>-->
+<!--	现在逻辑:关联产品-->
+	<select id="getRouteProdProductListUndo" resultType="com.op.sap.domain.SapProRouteProduct">
+		select bp.product_code [key],
+			   bp.product_desc_zh label,
+			   bp.product_desc_zh itemName,
+			   bp.product_id itemId
+		from base_product bp
+		where bp.active_flag = '1' and bp.del_flag = '0'
+	</select>
+
+<!--	<select id="getRouteProdProductListDo" resultType="com.op.technology.domain.ProRouteProduct">-->
+<!--		select pl.item_code [key],-->
+<!--		       sf.factory_name label-->
+<!--		from pro_route_product pl-->
+<!--		left join sys_factory sf on pl.item_code = sf.f_code-->
+<!--		where pl.route_id = #{routeId}-->
+<!--	</select>-->
+
+	<select id="getRouteProdProductListDo" resultType="com.op.sap.domain.SapProRouteProduct">
+		select pp.item_code [key],
+		       bp.product_desc_zh label
+		from pro_route_product pp
+		left join base_product bp on pp.item_code = bp.product_code
+		where pp.route_id = #{routeId}
+	</select>
+
+	<insert id="insertProRouteProduct" parameterType="SapProRouteProduct">
+		insert into pro_route_product
+		<trim prefix="(" suffix=")" suffixOverrides=",">
+			<if test="recordId != null">record_id,</if>
+			<if test="routeId != null and routeId != ''">route_id,</if>
+			<if test="itemId != null and itemId != ''">item_id,</if>
+			<if test="itemCode != null and itemCode != ''">item_code,</if>
+			<if test="itemName != null and itemName != ''">item_name,</if>
+			<if test="remark != null">remark,</if>
+			<if test="attr1 != null">attr1,</if>
+			<if test="attr2 != null">attr2,</if>
+			<if test="attr3 != null">attr3,</if>
+			<if test="attr4 != null">attr4,</if>
+			<if test="createBy != null">create_by,</if>
+			<if test="createTime != null">create_time,</if>
+			<if test="updateBy != null">update_by,</if>
+			<if test="updateTime != null">update_time,</if>
+		 </trim>
+		<trim prefix="values (" suffix=")" suffixOverrides=",">
+			<if test="recordId != null">#{recordId},</if>
+			<if test="routeId != null and routeId != ''">#{routeId},</if>
+			<if test="itemId != null and itemId != ''">#{itemId},</if>
+			<if test="itemCode != null and itemCode != ''">#{itemCode},</if>
+			<if test="itemName != null and itemName != ''">#{itemName},</if>
+			<if test="remark != null">#{remark},</if>
+			<if test="attr1 != null">#{attr1},</if>
+			<if test="attr2 != null">#{attr2},</if>
+			<if test="attr3 != null">#{attr3},</if>
+			<if test="attr4 != null">#{attr4},</if>
+			<if test="createBy != null">#{createBy},</if>
+			<if test="createTime != null">#{createTime},</if>
+			<if test="updateBy != null">#{updateBy},</if>
+			<if test="updateTime != null">#{updateTime},</if>
+		 </trim>
+	</insert>
+
+	<update id="updateProRouteProduct" parameterType="SapProRouteProduct">
+		update pro_route_product
+		<trim prefix="SET" suffixOverrides=",">
+			<if test="routeId != null and routeId != ''">route_id = #{routeId},</if>
+			<if test="itemId != null and itemId != ''">item_id = #{itemId},</if>
+			<if test="itemCode != null and itemCode != ''">item_code = #{itemCode},</if>
+			<if test="itemName != null and itemName != ''">item_name = #{itemName},</if>
+			<if test="remark != null">remark = #{remark},</if>
+			<if test="attr1 != null">attr1 = #{attr1},</if>
+			<if test="attr2 != null">attr2 = #{attr2},</if>
+			<if test="attr3 != null">attr3 = #{attr3},</if>
+			<if test="attr4 != null">attr4 = #{attr4},</if>
+			<if test="createBy != null">create_by = #{createBy},</if>
+			<if test="createTime != null">create_time = #{createTime},</if>
+			<if test="updateBy != null">update_by = #{updateBy},</if>
+			<if test="updateTime != null">update_time = #{updateTime},</if>
+		</trim>
+		where record_id = #{recordId}
+	</update>
+
+	<delete id="deleteProRouteProductByRecordId" parameterType="String">
+		delete from pro_route_product where record_id = #{recordId}
+	</delete>
+
+	<delete id="deleteProRouteProductByRecordIds" parameterType="String">
+		delete from pro_route_product where record_id in
+		<foreach item="recordId" collection="array" open="(" separator="," close=")">
+			#{recordId}
+		</foreach>
+	</delete>
+	<delete id="deleteByRouteId">
+		delete from pro_route_product where route_id = #{routeId}
+	</delete>
+</mapper>
diff --git a/op-modules/op-sap/src/main/resources/mapper/SapSysUserMapper.xml b/op-modules/op-sap/src/main/resources/mapper/SapSysUserMapper.xml
new file mode 100644
index 00000000..cad40a0d
--- /dev/null
+++ b/op-modules/op-sap/src/main/resources/mapper/SapSysUserMapper.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.op.sap.mapper.SapSysUserMapper">
+
+    <resultMap type="SapSysUser" id="SysUserResult">
+        <id     property="userId"       column="user_id"      />
+        <result property="deptId"       column="dept_id"      />
+        <result property="userName"     column="user_name"    />
+        <result property="nickName"     column="nick_name"    />
+        <result property="email"        column="email"        />
+        <result property="phonenumber"  column="phonenumber"  />
+        <result property="sex"          column="sex"          />
+        <result property="avatar"       column="avatar"       />
+        <result property="password"     column="password"     />
+        <result property="status"       column="status"       />
+        <result property="delFlag"      column="del_flag"     />
+        <result property="loginIp"      column="login_ip"     />
+        <result property="loginDate"    column="login_date"   />
+        <result property="createBy"     column="create_by"    />
+        <result property="createTime"   column="create_time"  />
+        <result property="updateBy"     column="update_by"    />
+        <result property="updateTime"   column="update_time"  />
+        <result property="remark"       column="remark"       />
+        <association property="dept"    column="dept_id" javaType="SapSysDept" resultMap="deptResult" />
+        <collection  property="roles"   javaType="java.util.List"           resultMap="RoleResult" />
+    </resultMap>
+
+    <resultMap id="deptResult" type="SapSysDept">
+        <id     property="deptId"    column="dept_id"     />
+        <result property="parentId"  column="parent_id"   />
+        <result property="deptName"  column="dept_name"   />
+        <result property="ancestors" column="ancestors"   />
+        <result property="orderNum"  column="order_num"   />
+        <result property="leader"    column="leader"      />
+        <result property="status"    column="dept_status" />
+    </resultMap>
+
+    <resultMap id="RoleResult" type="SapSysRole">
+        <id     property="roleId"       column="role_id"        />
+        <result property="roleName"     column="role_name"      />
+        <result property="roleKey"      column="role_key"       />
+        <result property="roleSort"     column="role_sort"      />
+        <result property="dataScope"     column="data_scope"    />
+        <result property="status"       column="role_status"    />
+    </resultMap>
+
+
+	<select id="getPoolName" parameterType="String" resultType="String">
+        select url from sys_datasource
+		 where pool_name = #{poolName}
+	</select>
+    <select id="getNums"  resultType="Integer">
+        SELECT COUNT(*) FROM sys_datasource
+    </select>
+</mapper>