show TABLES like #{tableName}
select COLUMN_NAME as fieldName,DATA_TYPE as dbType from information_schema.COLUMNS where table_name = #{tableName} and table_schema = (select database())
select COLUMN_NAME as fieldName,DATA_TYPE as dbType from information_schema.COLUMNS where table_name = #{tableName} and table_schema = #{dbName}
select ${fields} from ${tableName} where ${where} ${limit}
${toOrderNo}
and operate = 'create'
AND tm.std_id = m.id
AND f.status = 'open'
and maintain.table_name = '${tableName}'
) ) a1
LEFT JOIN
(
SELECT ${tempHFields} from ${tableTempName} h
LEFT JOIN maintain_detail md on md.pre_merge_id = h.id
LEFT JOIN maintain m on m.id = md.parent_id
INNER JOIN (
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
UNION
SELECT
${A2fields}
from (
SELECT ${fields} from ${tableName} m
WHERE NOT EXISTS (
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
LEFT JOIN
(
SELECT ${tempHFields} from ${tableTempName} h
LEFT JOIN maintain_detail md on md.pre_merge_id = h.id
LEFT JOIN maintain m on m.id = md.parent_id
INNER JOIN (
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}'
)
)a where ${where} ${limit}
]]>
${toOrderNo}
AND tm.std_id = m.id
and maintain.table_name = '${tableName}'
) ) a1
LEFT JOIN
(
SELECT ${tempHFields} from ${tableTempName} h
LEFT JOIN maintain_detail md on md.pre_merge_id = h.id
LEFT JOIN maintain m on m.id = md.parent_id
INNER JOIN (
SELECT max(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
WHERE m.order_no <= ${fromOrderNo} and m.order_no > ${toOrderNo} and m.table_name = '${tableName}'
and operate = 'update'
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
UNION
SELECT
${A2fields}, 'update' as operate, a2.status as status
from (
SELECT ${fields} from ${tableName} m
) a1
LEFT JOIN
(
SELECT ${tempHFields}, f.status from ${tableTempName} h
LEFT JOIN maintain_detail md on md.pre_merge_id = h.id
LEFT JOIN maintain m on m.id = md.parent_id
LEFT JOIN flows f on m.flow_id = f.id
INNER JOIN (
SELECT max(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
WHERE m.order_no <= ${fromOrderNo} and m.order_no > ${toOrderNo} and m.table_name = '${tableName}'
and operate = 'update'
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}, 'create' as operate, f.status as status 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 = 'create'
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
WHERE maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo}
AND operate = 'delete'
AND mt.std_id = mt1.std_id
and maintain.table_name = '${tableName}'
)
UNION
SELECT ${tempFields}, 'delete' as operate, f.status as status 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 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
WHERE maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo}
AND operate = 'create'
AND mt.std_id = mt1.std_id
and maintain.table_name = '${tableName}'
)
)a where ${where} ${limit}
]]>
select ${fields} from ${tableName} where ${where}
UPDATE ${tableTempName} t
SET deal = 1
where EXISTS (
SELECT pre_merge_id from maintain_detail WHERE parent_id = ${maintainId}
and maintain_detail.pre_merge_id = t.id
)
select count(1) from ${tableName} where ${where}
${toOrderNo}
and maintain.table_name = '${tableName}'
AND f.status = 'open'
and operate = 'create'
AND tm.std_id = m.id
) ) a1
LEFT JOIN
(
SELECT ${tempHFields} from ${tableTempName} h
LEFT JOIN maintain_detail md on md.pre_merge_id = h.id
LEFT JOIN maintain m on m.id = md.parent_id
INNER JOIN (
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
UNION
SELECT
${A2fields}
from (
SELECT ${fields} from ${tableName} m
WHERE NOT EXISTS (
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
LEFT JOIN
(
SELECT ${tempHFields} from ${tableTempName} h
LEFT JOIN maintain_detail md on md.pre_merge_id = h.id
LEFT JOIN maintain m on m.id = md.parent_id
INNER JOIN (
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 ${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}'
)
)a where ${where}
]]>
${toOrderNo}
and maintain.table_name = '${tableName}'
AND tm.std_id = m.id
) ) a1
LEFT JOIN
(
SELECT ${tempHFields} from ${tableTempName} h
LEFT JOIN maintain_detail md on md.pre_merge_id = h.id
LEFT JOIN maintain m on m.id = md.parent_id
INNER JOIN (
SELECT max(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
WHERE m.order_no <= ${fromOrderNo} and m.order_no > ${toOrderNo}
and m.table_name = '${tableName}'
and operate = 'update'
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
UNION
SELECT
${A2fields}, 'update' as operate, a2.status as status
from (
SELECT ${fields} from ${tableName} m
) a1
LEFT JOIN
(
SELECT ${tempHFields}, f.status from ${tableTempName} h
LEFT JOIN maintain_detail md on md.pre_merge_id = h.id
LEFT JOIN maintain m on m.id = md.parent_id
LEFT JOIN flows f on m.flow_id = f.id
INNER JOIN (
SELECT max(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
WHERE m.order_no <= ${fromOrderNo} and m.order_no > ${toOrderNo}
and m.table_name = '${tableName}'
and operate = 'update'
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}, 'create' as operate, f.status as status 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 maintain.table_name = '${tableName}'
AND operate = 'create'
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
WHERE maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo}
AND operate = 'delete'
AND mt.std_id = mt1.std_id
AND maintain.table_name = '${tableName}'
)
UNION
SELECT ${tempFields}, 'delete' as operate, f.status as status 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 maintain.table_name = '${tableName}'
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
WHERE maintain.order_no <= ${fromOrderNo} and maintain.order_no > ${toOrderNo}
AND operate = 'create'
AND mt.std_id = mt1.std_id
and maintain.table_name = '${tableName}'
)
)a where ${where}
]]>
INSERT INTO ${tableName} (${fields}) VALUES ${values}
update ${tableName} set ${updateSegment}
where ${where}
DELETE FROM ${tableName} where ${where}
DELETE FROM ${tableTempName} where EXISTS (
SELECT pre_merge_id from maintain_detail d
where parent_id = ${maintainId} and d.pre_merge_id = ${tableTempName}.id
)
INSERT INTO ${tableName}
SELECT
${tempFields}
from ${tableTempName} t
where
EXISTS
(
SELECT std_id from ${tableTempName} tm
LEFT JOIN maintain_detail on tm.id = maintain_detail.pre_merge_id
WHERE maintain_detail.parent_id = ${maintainId}
and operate = 'create'
and tm.id = t.id
)
SELECT tm.id from ${tableTempName} tm
inner JOIN maintain_detail md on md.pre_merge_id = tm.id
where tm.std_id = ${stdId} and md.parent_id = ${maintainId}
INSERT INTO maintain_detail
SELECT md5(uuid()) as id, ${maintainId} as parent_id, ${operate} as operate, id as pre_merge_id, NOW() as create_time
from ${tableTempName} m WHERE m.deal = 0
INSERT INTO maintain_detail
SELECT md5(uuid()) as id, ${maintainId} as parent_id, 'delete' as operate, id as pre_merge_id, NOW() as create_time
from ${tableTempName} m WHERE m.deal = 0
update ${tableTempName}
set std_id = md5(uuid()) WHERE deal = 0
INSERT INTO ${recordTableName}
SELECT ${tempFieldList}, 0 as deal
from ${tableName}
SELECT
${fields}
from ${tableTempName} t
where
EXISTS
(
SELECT pre_merge_id from maintain_detail
LEFT JOIN maintain on maintain.id = maintain_detail.parent_id
WHERE maintain.id = ${maintainId}
and operate = ${operate}
and maintain_detail.pre_merge_id = t.id
)
update ${tableTempName}
INNER JOIN maintain_detail on ${tableTempName}.id = maintain_detail.pre_merge_id
set ${updateSegment}
WHERE maintain_detail.parent_id = ${maintainId}
DELETE ${tableTempName} from ${tableTempName}
INNER JOIN maintain_detail on maintain_detail.pre_merge_id = ${tableTempName}.id
WHERE maintain_detail.parent_id = ${maintainId} and ${tableTempName}.std_id = ${stdId}
select * from act_id_membership where USER_ID_ = #{userId} and GROUP_ID_ = #{roleId}
= ${fromOrderNo}
AND order_no < ${toOrderNo}
) a
WHERE
a.id = maintain_detail.parent_id )
) a
WHERE t.id = a.pre_merge_id)
]]>
= ${fromOrderNo}
AND order_no < ${toOrderNo}
) a
WHERE
a.id = maintain_detail.parent_id )
) a
WHERE t.id = a.pre_merge_id)
]]>