<?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.user_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
|
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>
|