<?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.zt.modules.workflowconfig.dao.WfDefStepDao">
|
|
<select id="queryStepsList" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
|
SELECT
|
wds.*,
|
s1.name as stepRouterName,
|
s2.name as stepReadRouterName,
|
case when task_group='cj' then '厂家'
|
when task_group='zy' then '专业'
|
else '' end as taskGroupName
|
FROM
|
wf_def_step wds
|
LEFT JOIN wf_def a ON a.id = wf_def_id
|
left join sys_menu s1 on s1.id = wds.step_router_id
|
left join sys_menu s2 on s2.id = wds.step_read_router_id
|
<where>
|
<if test="whereSql!=null">
|
${whereSql}
|
</if>
|
and a.id = #{id}
|
and wds.is_delete = 0
|
</where>
|
order by wds.step_no
|
</select>
|
|
<select id="workflowSelect" resultType="com.zt.modules.workflowconfig.model.WfDef">
|
SELECT
|
id,
|
name
|
FROM
|
wf_def
|
WHERE
|
status = 1 and is_delete = 0
|
order by id
|
</select>
|
|
<select id="getUserByWorkflowSteps" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
|
SELECT
|
a.id as stepId,
|
b.id as userId,
|
b.user_name as userName,
|
b.nick_name as realName,
|
c.dept_name AS deptName,
|
d.dept_name AS companyName
|
FROM
|
wf_def_step a
|
LEFT JOIN sys_user b ON instr(a.approver_ids,b.id) > 0
|
LEFT JOIN sys_dept c ON b.dept_id = c.id
|
LEFT JOIN sys_dept d ON b.company_id = d.id
|
WHERE
|
a.is_delete = 0
|
AND a.id = #{stepsId}
|
</select>
|
|
<select id="getUserList" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
|
SELECT
|
a.id AS userId,
|
a.username AS userName,
|
a.real_name AS realName,
|
c.name AS deptName
|
FROM
|
(
|
SELECT
|
a.*
|
FROM
|
sys_user a,
|
wf_def_step b
|
WHERE
|
(
|
b.approver_ids IS NULL
|
or CONCAT( ',', b.approver_ids, ',' ) NOT LIKE CONCAT( '%,', a.user_id, ',%' )
|
)
|
<if test="whereSql!=null">
|
and ${whereSql}
|
</if>
|
<if test="userName != '' and userName != null">
|
and a.name like concat('%',#{userName},'%')
|
</if>
|
AND a.is_delete = 0
|
ORDER BY a.name
|
) a
|
LEFT JOIN sys_dept c ON a.dept_id = c.id
|
</select>
|
|
<update id="addWorkflowStepsUser">
|
update wf_def_step set approver_ids = #{userId},update_date = CURRENT_TIMESTAMP where id = #{stepId}
|
</update>
|
|
<update id="deleteWorkflowStepsUser">
|
update wf_def_step set approver_ids = #{userId},update_date = CURRENT_TIMESTAMP where id = #{stepId}
|
</update>
|
|
<update id="delete">
|
update wf_def_step set is_delete = 1,update_date = CURRENT_TIMESTAMP where id = #{id}
|
</update>
|
|
<select id="getRoleByWorkflowSteps" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
|
SELECT
|
a.id as stepId,
|
b.id as roleId,
|
b.name as roleName,
|
d.name AS companyName
|
FROM
|
wf_def_step a
|
LEFT JOIN sys_role b ON instr(a.approver_role_ids,b.id) > 0
|
LEFT JOIN sys_dept d ON b.company_id = d.id
|
WHERE
|
a.is_delete = 0
|
AND a.id = #{stepsId}
|
</select>
|
|
<select id="getRoleList" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
|
SELECT
|
a.id AS roleId,
|
a.name AS roleName,
|
d.name AS companyName
|
FROM
|
(
|
SELECT
|
a.*
|
FROM
|
sys_role a,
|
wf_def_step b
|
WHERE
|
(
|
b.approver_role_ids IS NULL
|
or CONCAT( ',', b.approver_role_ids, ',' ) NOT LIKE CONCAT( '%,', a.id, ',%' )
|
)
|
<if test="whereSql!=null">
|
and ${whereSql}
|
</if>
|
<if test="roleName != '' and roleName != null">
|
and a.name like concat('%',#{roleName},'%')
|
</if>
|
AND a.is_delete = 0
|
|
) a
|
LEFT JOIN sys_dept d ON a.company_id = d.id
|
WHERE a.id not in (select id from sys_role where code in ('xtglybm','xtbmybm','xtsjybm','rx'))
|
ORDER BY d.name, a.sort
|
</select>
|
|
<update id="addWorkflowStepsRole">
|
update wf_def_step set approver_role_ids = #{roleId},update_date = CURRENT_TIMESTAMP where id = #{stepId}
|
</update>
|
|
<update id="deleteWorkflowStepsRole">
|
update wf_def_step set approver_role_ids = #{roleId},update_date = CURRENT_TIMESTAMP where id = #{stepId}
|
</update>
|
|
<update id="deleteFlowMenu">
|
update sys_role_menu set is_delete=0,update_date = CURRENT_TIMESTAMP WHERE ID IN
|
(
|
SELECT id FROM (
|
SELECT * FROM (
|
SELECT a.step_router_id AS menu_id,b.id AS role_id FROM wf_def_step a ,sys_role b
|
WHERE a.is_delete =0 AND b.is_delete=0
|
AND CONCAT(',',a.approver_role_ids,',') LIKE CONCAT(',',b.id,',')
|
UNION
|
SELECT a.step_read_router_id AS menu_id,b.id AS role_id FROM wf_def_step a ,sys_role b
|
WHERE a.is_delete =0 AND b.is_delete=0
|
AND CONCAT(',',a.approver_role_ids,',') LIKE CONCAT(',',b.id,',')
|
)
|
WHERE menu_id IS NOT NULL
|
GROUP BY menu_id,role_id
|
) b,sys_role_menu c WHERE b.menu_id=c.menu_id AND b.role_id=c.role_id
|
)
|
</update>
|
|
<select id="selectFlowMenu" resultType="com.zt.modules.workflowconfig.dto.FlowMenuDto">
|
select c.*,d.id as id2,d.menu_id as menuId2 from (
|
SELECT * FROM (
|
SELECT a.step_router_id AS menu_id,b.id AS role_id
|
FROM wf_def_step a ,sys_role b
|
WHERE a.is_delete =0 AND b.is_delete=0
|
AND CONCAT(',',a.approver_role_ids,',') LIKE CONCAT('%,',b.id,',%')
|
UNION
|
SELECT a.step_read_router_id AS menu_id,b.id AS role_id
|
FROM wf_def_step a ,sys_role b
|
WHERE a.is_delete =0 AND b.is_delete=0
|
AND CONCAT(',',a.approver_role_ids,',') LIKE CONCAT('%,',b.id,',%')
|
) b
|
WHERE menu_id IS NOT NULL AND menu_id <> 0
|
GROUP BY menu_id,role_id
|
)c
|
left join sys_role_menu d on d.role_id = c.role_id and d.menu_id = c.menu_id
|
where d.is_delete is null or d.is_delete = 1
|
</select>
|
<update id="deleteRoleFlowMenu">
|
update sys_role_menu set is_delete =1,update_date = CURRENT_TIMESTAMP where id in (select id2 from (select c.*,d.id as id2 from (
|
SELECT * FROM (
|
SELECT a.step_router_id AS menu_id,b.id AS role_id
|
FROM wf_def_step a ,sys_role b
|
WHERE a.is_delete =0 AND b.is_delete=0
|
AND CONCAT(',',a.approver_role_ids,',') LIKE CONCAT('%,',b.id,',%')
|
UNION
|
SELECT a.step_read_router_id AS menu_id,b.id AS role_id
|
FROM wf_def_step a ,sys_role b
|
WHERE a.is_delete =0 AND b.is_delete=0
|
AND CONCAT(',',a.approver_role_ids,',') LIKE CONCAT('%,',b.id,',%')
|
) b
|
WHERE menu_id IS NOT NULL AND menu_id <> 0
|
GROUP BY menu_id,role_id
|
)c
|
join sys_role_menu d
|
join sys_menu m
|
where d.menu_id = c.menu_id and d.menu_id = m.id and m.show_menu = 0
|
) f where f.role_id is null
|
)
|
</update>
|
|
<select id="selectFlowMenuOld" resultType="com.zt.modules.workflowconfig.dto.FlowMenuDto">
|
WITH menuList AS (
|
SELECT step_router_id AS step_menu_id FROM wf_def_step WHERE is_delete =0 AND step_router_id IS NOT null
|
UNION
|
SELECT step_read_router_id AS step_menu_id FROM wf_def_step WHERE is_delete =0 AND step_read_router_id IS NOT null
|
),
|
shoudList AS (
|
SELECT * FROM (
|
SELECT a.step_router_id AS menu_id,b.id AS role_id
|
FROM wf_def_step a ,sys_role b
|
WHERE a.is_delete =0 AND b.is_delete=0
|
AND CONCAT(',',a.approver_role_ids,',') LIKE CONCAT('%,',b.id,',%')
|
UNION
|
SELECT a.step_read_router_id AS menu_id,b.id AS role_id
|
FROM wf_def_step a ,sys_role b
|
WHERE a.is_delete =0 AND b.is_delete=0
|
AND CONCAT(',',a.approver_role_ids,',') LIKE CONCAT('%,',b.id,',%')
|
)
|
WHERE menu_id IS NOT NULL AND menu_id <> 0
|
GROUP BY menu_id,role_id
|
),existList as(
|
SELECT id as id2, menu_id AS menu_id2, role_id AS role_id2, is_delete AS is_delete2
|
FROM sys_role_menu b
|
WHERE menu_id IN (SELECT step_menu_id from menuList)
|
AND role_id NOT IN (1331061516255227905,1271368584383188993)
|
)
|
|
SELECT * FROM shoudList FULL OUTER JOIN existList ON menu_id=menu_id2 AND role_id = role_id2
|
</select>
|
|
|
<select id="querySteps" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
|
|
SELECT wds.* FROM wf_def_step wds LEFT JOIN wf_def wd ON wds.wf_def_id=wd.ID WHERE
|
wd.code=#{wfCode} AND wds.is_delete=0 ORDER BY wds.step_no ASC LIMIT 1
|
</select>
|
|
<select id="queryAllSteps" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
|
SELECT wds.* FROM wf_def_step wds LEFT JOIN wf_def wd ON wds.wf_def_id=wd.id WHERE
|
wd.code=#{wfCode} AND wds.is_delete=0 ORDER BY wds.step_no ASC LIMIT 100
|
</select>
|
|
<select id="getAllSteps" resultType="java.lang.String">
|
SELECT step_marker
|
FROM wf_def_step
|
WHERE is_delete = 0
|
AND step_no <> 100
|
ORDER BY wf_def_id,step_no
|
</select>
|
|
<select id="queryWfDefFirstStep" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
|
SELECT * FROM wf_def_step wds
|
WHERE 1=1
|
<if test="wfDefIdCode!=null">
|
and (CONCAT('',wf_def_id ) =#{wfDefIdCode} or wf_def_id in (select id from wf_def where code=#{wfDefIdCode}))
|
</if>
|
ORDER BY wds.step_no ASC LIMIT 1
|
</select>
|
|
<select id="queryWfDefFinallyStep" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
|
SELECT * FROM wf_def_step wds
|
WHERE 1=1 and wds.is_delete=0
|
<if test="wfDefIdCode!=null">
|
and (CONCAT('',wf_def_id ) = #{wfDefIdCode} or wf_def_id in (select id from wf_def where code=#{wfDefIdCode}))
|
</if>
|
ORDER BY wds.step_no desc LIMIT 1
|
</select>
|
|
<select id="queryWfDefStep" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
|
SELECT * FROM wf_def_step wds
|
WHERE 1=1
|
<if test="wfDefIdCode!=null">
|
and (CONCAT('',wf_def_id ) =#{wfDefIdCode} or wf_def_id in (select id from wf_def where code=#{wfDefIdCode})) /*liquan*/
|
</if>
|
<if test="stepIdMarker!=null">
|
and (CONCAT('',id) = #{stepIdMarker} or step_Marker = #{stepIdMarker}) /*liquan*/
|
</if>
|
ORDER BY wds.step_no desc LIMIT 1
|
</select>
|
|
<select id="queryWfDefNextStep" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
|
<![CDATA[
|
SELECT *
|
FROM wf_def_step wds
|
WHERE is_delete = 0
|
and step_type = 0
|
and wds.wf_def_id=#{wfDefId}
|
AND wds.step_no > #{stepNo}
|
ORDER BY wds.step_no ASC LIMIT 1
|
]]>
|
</select>
|
|
<select id="queryWfDefPreStep" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
|
<![CDATA[
|
SELECT *
|
FROM wf_def_step wds
|
WHERE is_delete = 0
|
and step_type = 0
|
AND wds.wf_def_id = #{wfDefId}
|
AND wds.step_no < #{stepNo}
|
ORDER BY wds.step_no DESC LIMIT 1
|
]]>
|
</select>
|
|
<select id="queryStepsBYMap" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
|
SELECT * FROM wf_def_step a,
|
wf_def b
|
WHERE a.is_delete=0
|
and a.is_delete=0
|
<if test="wfId!=null">
|
AND b.id=#{wfId}
|
</if>
|
<if test="wfCode!=null">
|
AND b.code=#{wfCode}
|
</if>
|
<if test="wfDefId!=null">
|
AND a.wf_def_id=#{wfDefId}
|
</if>
|
<if test="stepMarker!=null">
|
AND a.step_marker=#{stepMarker}
|
</if>
|
ORDER BY a.step_no
|
</select>
|
|
<select id="getWorkflowStepByCode" resultType="com.zt.modules.workflowconfig.model.WfDefStep">
|
<![CDATA[
|
SELECT *
|
FROM wf_def_step wds
|
WHERE is_delete = 0
|
AND wds.step_marker = #{stepMarker}
|
ORDER BY wds.step_no ASC LIMIT 1
|
]]>
|
</select>
|
|
</mapper>
|