kimi
2020-03-13 8033eea1502d4cb0a91aa4b86c848ccb00ba8dc0
src/main/resources/mapping/TableInfoMapper.xml
@@ -28,9 +28,11 @@
          SELECT std_id FROM  ${tableTempName} tm
          LEFT JOIN maintain_detail ON tm.id = maintain_detail.pre_merge_id
        LEFT JOIN maintain ON maintain.id = maintain_detail.parent_id
          LEFT JOIN flows f on maintain.flow_id = f.id
        WHERE  maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo}
        and operate = 'create'
        AND tm.std_id = m.id
        AND f.status = 'open'
        and maintain.table_name = '${tableName}'
        ) ) a1
      LEFT JOIN
@@ -42,8 +44,10 @@
        SELECT MIN(m.order_no) as order_no, mt.std_id FROM ${tableTempName} mt
        LEFT JOIN maintain_detail md on md.pre_merge_id = mt.id
        LEFT JOIN maintain m on m.id = md.parent_id
        LEFT JOIN flows f on m.flow_id = f.id
        WHERE m.order_no <= ${fromOrderNo} and m.order_no > ${toOrderNo} and  m.table_name = '${tableName}'
        and operate = 'update'
        AND f.status = 'open'
        GROUP BY mt.std_id
        ) a on a.order_no = m.order_no and a.std_id = h.std_id
      )a2 on a1.id = a2.id WHERE  a2.id is null
@@ -56,8 +60,10 @@
          SELECT std_id FROM  ${tableTempName} tm
          LEFT JOIN maintain_detail ON tm.id = maintain_detail.pre_merge_id
        LEFT JOIN maintain ON maintain.id = maintain_detail.parent_id
        LEFT JOIN flows f on maintain.flow_id = f.id
        WHERE  maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo}
        and operate = 'create'
        AND f.status = 'open'
        AND tm.std_id = m.id
        and maintain.table_name = '${tableName}'
        ) ) a1
@@ -70,23 +76,29 @@
        SELECT MIN(m.order_no) as order_no, mt.std_id FROM ${tableTempName} mt
        LEFT JOIN maintain_detail md on md.pre_merge_id = mt.id
        LEFT JOIN maintain m on m.id = md.parent_id
        LEFT JOIN flows f on m.flow_id = f.id
        WHERE m.order_no <= ${fromOrderNo} and m.order_no > ${toOrderNo} and m.table_name = '${tableName}'
        and operate = 'update'
        AND f.status = 'open'
        GROUP BY mt.std_id
        ) a on a.order_no = m.order_no and a.std_id = h.std_id
      )a2 on a1.id = a2.id WHERE  a2.id is not null
         UNION
      SELECT ${tempFields} FROM maintain_detail md
        LEFT JOIN maintain ON maintain.id = md.parent_id
        LEFT JOIN flows f on maintain.flow_id = f.id
        LEFT JOIN ${tableTempName} mt on mt.id = md.pre_merge_id
        WHERE maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo} AND operate = 'delete'
         AND f.status = 'open'
         and  maintain.table_name = '${tableName}'
        AND NOT EXISTS (
            SELECT * FROM maintain_detail
            LEFT JOIN maintain ON maintain.id = maintain_detail.parent_id
            LEFT JOIN ${tableTempName} mt1 on mt1.id = maintain_detail.pre_merge_id
            LEFT JOIN flows f on maintain.flow_id = f.id
            WHERE  maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo}
            AND operate = 'create'
            AND f.status = 'open'
            AND mt.std_id = mt1.std_id
            and  maintain.table_name = '${tableName}'
        )
@@ -183,12 +195,12 @@
        select ${fields} from ${tableName} where ${where}
    </select>
    <select id="tempDeal"  statementType="STATEMENT"  resultType="java.lang.Long">
    <select id="tempDeal"  statementType="STATEMENT" resultType="java.lang.Integer">
        UPDATE ${tableTempName} t
        SET deal = 1
        where EXISTS (
        SELECT pre_merge_id from maintain_detail WHERE parent_id = ${maintainId}
        SELECT pre_merge_id from maintain_detail WHERE parent_id = ${maintainFieldId}
        and maintain_detail.pre_merge_id = t.id
        )
        </select>
@@ -208,8 +220,10 @@
          SELECT std_id FROM  ${tableTempName} tm
          LEFT JOIN maintain_detail ON tm.id = maintain_detail.pre_merge_id
        LEFT JOIN maintain ON maintain.id = maintain_detail.parent_id
        LEFT JOIN flows f on maintain.flow_id = f.id
        WHERE  maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo}
        and  maintain.table_name = '${tableName}'
        AND f.status = 'open'
        and operate = 'create'
        AND tm.std_id = m.id
        ) ) a1
@@ -222,8 +236,10 @@
        SELECT MIN(m.order_no) as order_no, mt.std_id FROM ${tableTempName} mt
        LEFT JOIN maintain_detail md on md.pre_merge_id = mt.id
        LEFT JOIN maintain m on m.id = md.parent_id
        LEFT JOIN flows f on m.flow_id = f.id
        WHERE m.order_no <= ${fromOrderNo} and m.order_no > ${toOrderNo} and  m.table_name = '${tableName}'
        and operate = 'update'
        AND f.status = 'open'
        GROUP BY mt.std_id
        ) a on a.order_no = m.order_no and a.std_id = h.std_id
      )a2 on a1.id = a2.id WHERE  a2.id is null
@@ -236,8 +252,10 @@
          SELECT std_id FROM  ${tableTempName} tm
          LEFT JOIN maintain_detail ON tm.id = maintain_detail.pre_merge_id
        LEFT JOIN maintain ON maintain.id = maintain_detail.parent_id
        LEFT JOIN flows f on maintain.flow_id = f.id
        WHERE  maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo}
         and maintain.table_name = '${tableName}'
         AND f.status = 'open'
        and operate = 'create'
        AND tm.std_id = m.id
        ) ) a1
@@ -250,8 +268,10 @@
        SELECT MIN(m.order_no) as order_no, mt.std_id FROM ${tableTempName} mt
        LEFT JOIN maintain_detail md on md.pre_merge_id = mt.id
        LEFT JOIN maintain m on m.id = md.parent_id
        LEFT JOIN flows f on m.flow_id = f.id
        WHERE m.order_no <= ${fromOrderNo} and m.order_no > ${toOrderNo}  and m.table_name = '${tableName}'
        and operate = 'update'
        AND f.status = 'open'
        GROUP BY mt.std_id
        ) a on a.order_no = m.order_no and a.std_id = h.std_id
      )a2 on a1.id = a2.id WHERE  a2.id is not null
@@ -259,15 +279,19 @@
      SELECT ${tempFields} FROM maintain_detail md
        LEFT JOIN maintain ON maintain.id = md.parent_id
        LEFT JOIN ${tableTempName} mt on mt.id = md.pre_merge_id
        LEFT JOIN flows f on maintain.flow_id = f.id
        WHERE maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo}
        and  maintain.table_name = '${tableName}'
        AND f.status = 'open'
        AND operate = 'delete'
        AND NOT EXISTS (
            SELECT * FROM maintain_detail
            LEFT JOIN maintain ON maintain.id = maintain_detail.parent_id
            LEFT JOIN ${tableTempName} mt1 on mt1.id = maintain_detail.pre_merge_id
            LEFT JOIN flows f on maintain.flow_id = f.id
            WHERE  maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo}
            AND operate = 'create'
            AND f.status = 'open'
            AND mt.std_id = mt1.std_id
            and  maintain.table_name = '${tableName}'
        )
@@ -380,7 +404,7 @@
    <delete id="deleteTempByMaintainId">
        DELETE FROM ${tableTempName}  where EXISTS (
        SELECT pre_merge_id from maintain_detail d
        where parent_id = ${maintainId} and d.pre_merge_id = ${tableTempName}.id
        where parent_id = ${maintainFieldId} and d.pre_merge_id = ${tableTempName}.id
        )
    </delete>
@@ -395,7 +419,7 @@
        (
        SELECT  std_id from ${tableTempName} tm
        LEFT JOIN maintain_detail on tm.id = maintain_detail.pre_merge_id
        WHERE maintain_detail.parent_id = ${maintainId}
        WHERE maintain_detail.parent_id = ${maintainFieldId}
        and operate = 'create'
        and tm.id = t.id
        )
@@ -411,7 +435,15 @@
    <select id="insertMatintainDetailFromTemp" statementType="STATEMENT" resultType="java.lang.Integer">
        INSERT INTO maintain_detail
        SELECT md5(uuid()) as id, ${maintainId} as parent_id, 'create' as operate, id as pre_merge_id, NOW() as createdate
        SELECT md5(uuid()) as id, ${maintainFieldId} as parent_id, ${operate} as operate, id as pre_merge_id, NOW() as create_time
        from ${tableTempName}  m WHERE m.deal = 0
    </select>
    <select id="insertMatintainDetailFromStandrad" statementType="STATEMENT" resultType="java.lang.Integer">
        INSERT INTO maintain_detail
        SELECT md5(uuid()) as id, ${maintainFieldId} as parent_id, 'delete' as operate, id as pre_merge_id, NOW() as create_time
        from ${tableTempName}  m WHERE m.deal = 0
    </select>
@@ -420,6 +452,13 @@
        update ${tableTempName}
        set std_id = md5(uuid()) WHERE deal = 0
    </select>
    <select id="insertRecordFromStandrad" statementType="STATEMENT" resultType="java.lang.Integer">
         INSERT INTO ${recordTableName}
        SELECT ${tempFieldList}, 0 as deal
        from  ${tableName}
    </select>
@@ -432,9 +471,27 @@
        (
        SELECT  pre_merge_id from maintain_detail
        LEFT JOIN maintain on maintain.id = maintain_detail.parent_id
        WHERE maintain.id = ${maintainId}
        WHERE maintain.id = ${maintainFieldId}
        and operate = ${operate}
        and maintain_detail.pre_merge_id = t.id
        )
    </select>
    <select id="updateRecordByMaintainId" statementType="STATEMENT" resultType="java.lang.Integer">
         update ${tableTempName}
        INNER JOIN maintain_detail on ${tableTempName}.id = maintain_detail.pre_merge_id
        set ${updateSegment}
        WHERE maintain_detail.parent_id = ${maintainFieldId}
    </select>
    <select id="deleteRecordByMaintainId" statementType="STATEMENT" resultType="java.lang.Integer">
        DELETE  ${tableTempName} from  ${tableTempName}
        INNER JOIN maintain_detail on maintain_detail.pre_merge_id =  ${tableTempName}.id
        WHERE maintain_detail.parent_id = ${maintainFieldId} and  ${tableTempName}.std_id = ${stdId}
    </select>
</mapper>