2023-09-09 01:36:45 +08:00
<?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.ruoyi.system.mapper.FlowBusinessKeyMapper" >
<select id= "selectAllFlowTaskByParams" parameterType= "com.ruoyi.system.domain.FlowTaskEntity" resultType= "com.ruoyi.system.domain.FlowTaskEntity" >
SELECT
fa.procInsId,
fa.deployId,
fa.createTime,
fa.finishTime,
fa.duration,
fa.procDefKey,
fa.procDefName,
fa.procDefVersion,
fa.category,
fa.businessKey,
fa.businessDeptId,
fa.businessKeyName,
fa.startUserId,
fa.startUserName,
fa.startDeptName,
fa.taskId,
fa.taskName,
fa.assigneeId,
fa.assigneeName,
fa.assigneeDeptName
FROM
vw_flow_all fa
<where >
2023-09-12 01:52:22 +08:00
<if test= "taskName != null and taskName != ''" > and fa.taskName like concat('%', #{taskName}, '%')</if>
2023-09-09 01:36:45 +08:00
<if test= "procDefName != null and procDefName != ''" > and fa.procDefName like concat('%', #{procDefName}, '%')</if>
2023-09-09 23:00:24 +08:00
<if test= "businessKey != null and businessKey != ''" > and fa.businessKey = #{businessKey}</if>
2023-09-10 21:58:04 +08:00
<if test= "startDeptName != null and startDeptName != ''" > and fa.startDeptName like concat('%', #{startDeptName}, '%')</if>
<if test= "startUserName != null and startUserName != ''" > and fa.startUserName like concat('%', #{startUserName}, '%')</if>
2023-09-09 01:36:45 +08:00
<if test= "businessKeyName != null and businessKeyName != ''" > and fa.businessKeyName like concat('%', #{businessKeyName}, '%')</if>
<if test= "category != null and category != ''" > and fa.category = #{category}</if>
<if test= "params.beginDate != null and params.beginDate != '' and params.endDate != null and params.endDate != ''" > and fa.createTime between #{params.beginDate} and #{params.endDate}</if>
<!-- 查询条件 - 项目部门 -->
2023-09-12 01:52:22 +08:00
<if test= "projectDeptId != null " > and fa.businessDeptId = #{projectDeptId}</if>
2023-09-09 01:36:45 +08:00
<!-- 子部门数据 -->
2023-09-12 01:52:22 +08:00
<if test= 'nowRole == "4"' > and fa.businessDeptId = #{nowDept}</if>
2023-09-09 01:36:45 +08:00
<!-- 监理单位/总包公司/分包单位查询当前关联数据 -->
2023-09-09 22:33:35 +08:00
<if test= 'nowRole == "5" or nowRole == "6" or nowRole == "7"' > and fa.businessKey in (select DISTINCT projectId from sur_project_unit_info where unitId=#{nowDept} and del_flag=0)</if>
2023-09-09 01:36:45 +08:00
<!-- 普通用户查询项目人员 -->
<if test= 'nowRole == "15" or nowRole == "16" or nowRole == "17" or nowRole == "99"' > and fa.startUserId = #{nowUser}</if>
<if test= 'activeName == "await"' > and fa.finishTime is null</if>
<if test= 'activeName == "finished"' > and fa.finishTime is not null</if>
</where>
order by fa.createTime desc
</select>
2023-09-09 22:33:35 +08:00
<!-- 查询工作流操作日志 -->
<select id= "selectCommentByProcInsId" parameterType= "string" resultType= "map" >
select * from vw_flow_comment where procInstId = #{procInstId} order by startTime DESC
</select>
<!-- 查询工作流携带的参数 -->
<select id= "selectFormDatasByProcInsId" parameterType= "string" resultType= "map" >
select hv.NAME_ as `name`,hv.TEXT_ as text from act_hi_varinst hv where hv.PROC_INST_ID_ = #{procInstId}
</select>
<!-- 查询我的代办任务 -->
<select id= "selectMyAwaitFlowTask" parameterType= "com.ruoyi.system.domain.FlowTaskEntity" resultType= "map" >
select fa.* from vw_flow_await fa
where
1=1
<if test= "procDefName != null and procDefName != ''" > and fa.procDefName like concat('%', #{procDefName}, '%')</if>
2023-09-17 02:06:22 +08:00
<if test= "businessKey != null and businessKey != ''" > and fa.businessKey = #{businessKey}</if>
2023-09-09 22:33:35 +08:00
<if test= "businessKeyName != null and businessKeyName != ''" > and fa.businessKeyName like concat('%', #{businessKeyName}, '%')</if>
<if test= "category != null and category != ''" > and fa.category = #{category}</if>
<if test= "params.beginDate != null and params.beginDate != '' and params.endDate != null and params.endDate != ''" > and fa.createTime between #{params.beginDate} and #{params.endDate}</if>
<!-- 查询条件 - 项目部门 -->
2023-09-12 01:52:22 +08:00
<if test= "projectDeptId != null " > and fa.businessDeptId = #{projectDeptId}</if>
2023-09-09 22:33:35 +08:00
<!-- 子部门数据 -->
2023-09-12 01:52:22 +08:00
<if test= 'nowRole == "4"' > and fa.businessDeptId = #{nowDept}</if>
2023-09-09 22:33:35 +08:00
<!-- 监理单位/总包公司/分包单位查询当前关联数据 -->
<if test= 'nowRole == "5" or nowRole == "6" or nowRole == "7"' > and fa.businessKey in (select DISTINCT projectId from sur_project_unit_info where unitId=#{nowDept} and del_flag=0)</if>
<!-- 普通用户查询项目人员 -->
2023-09-10 18:30:35 +08:00
<if test= 'nowRole == "15" or nowRole == "16" or nowRole == "17" or nowRole == "99"' > and fa.businessKey in (select DISTINCT project_id from sur_project_userinfo where user_id=#{nowUser} and is_del=0)</if>
2023-09-09 22:33:35 +08:00
AND (fa.ASSIGNEE_ = #{nowUser}
OR (
fa.ASSIGNEE_ IS NULL
AND (
fa.USER_ID_ = #{nowUser}
OR (
fa.GROUP_ID_ IN
<foreach collection= "roleIds" item= "roleId" open= "(" separator= "," close= ")" >
#{roleId}
</foreach>
)
)
)
)
order by fa.createTime desc
</select>
<!-- 查询我的已办任务 -->
<select id= "selectMyFinishedFlowTask" parameterType= "com.ruoyi.system.domain.FlowTaskEntity" resultType= "map" >
select fa.* from vw_flow_finished fa
where
fa.ASSIGNEE_=#{nowUser}
<if test= "procDefName != null and procDefName != ''" > and fa.procDefName like concat('%', #{procDefName}, '%')</if>
<if test= "businessKey != null and businessKey != ''" > and fa.businessKey = #{businessKey}</if>
<if test= "businessKeyName != null and businessKeyName != ''" > and fa.businessKeyName like concat('%', #{businessKeyName}, '%')</if>
<if test= "category != null and category != ''" > and fa.category = #{category}</if>
<if test= "params.beginDate != null and params.beginDate != '' and params.endDate != null and params.endDate != ''" > and fa.endTime between #{params.beginDate} and #{params.endDate}</if>
order by fa.endTime desc
</select>
2023-09-22 00:32:08 +08:00
<select id= "groupByCategory" parameterType= "com.ruoyi.system.domain.FlowTaskEntity" resultType= "com.ruoyi.system.domain.FlowTaskEntity" >
SELECT a.dict_label taskName,b.cnt assigneeId,c.cnt procDefVersion FROM
( SELECT * FROM sys_dict_data WHERE dict_type = 'sys_process_category') a
LEFT JOIN (SELECT category,COUNT(1) cnt FROM vw_flow_all WHERE finishTime IS NOT NULL
<if test= "deployId !=null and deployId!=''" > and businessDeptId=#{deployId}</if>
<if test= "businessKey !=null and businessKey!=''" > and businessKey=#{businessKey}</if>
GROUP BY category) b ON a.dict_value=b.category
2023-09-23 16:30:45 +08:00
LEFT JOIN (SELECT category,COUNT(1) cnt FROM vw_flow_all WHERE finishTime IS NULL AND taskName!='提交申请'
2023-09-22 00:32:08 +08:00
<if test= "deployId !=null and deployId!=''" > and businessDeptId=#{deployId}</if>
<if test= "businessKey !=null and businessKey!=''" > and businessKey=#{businessKey}</if>
GROUP BY category) c ON a.dict_value=c.category
</select>
<select id= "groupByUnit" parameterType= "com.ruoyi.system.domain.FlowTaskEntity" resultType= "com.ruoyi.system.domain.FlowTaskEntity" >
SELECT cat taskName, COUNT(1) assigneeId FROM (
SELECT *,'总包单位' cat FROM vw_flow_all WHERE finishTime IS NULL AND taskName LIKE '总包%'
<if test= "deployId !=null and deployId!=''" > and businessDeptId=#{deployId}</if>
<if test= "businessKey !=null and businessKey!=''" > and businessKey=#{businessKey}</if>
UNION
SELECT *,'监理单位' cat FROM vw_flow_all WHERE finishTime IS NULL AND taskName LIKE '监理%'
<if test= "deployId !=null and deployId!=''" > and businessDeptId=#{deployId}</if>
<if test= "businessKey !=null and businessKey!=''" > and businessKey=#{businessKey}</if>
UNION
SELECT *,'设计单位' cat FROM vw_flow_all WHERE finishTime IS NULL AND taskName LIKE '设计%'
<if test= "deployId !=null and deployId!=''" > and businessDeptId=#{deployId}</if>
<if test= "businessKey !=null and businessKey!=''" > and businessKey=#{businessKey}</if>
UNION
SELECT *,'甲方代表' cat FROM vw_flow_all WHERE finishTime IS NULL AND taskName LIKE '甲方%'
<if test= "deployId !=null and deployId!=''" > and businessDeptId=#{deployId}</if>
<if test= "businessKey !=null and businessKey!=''" > and businessKey=#{businessKey}</if>
UNION
SELECT *,'子公司' cat FROM vw_flow_all WHERE finishTime IS NULL AND taskName LIKE '工程%'
<if test= "deployId !=null and deployId!=''" > and businessDeptId=#{deployId}</if>
<if test= "businessKey !=null and businessKey!=''" > and businessKey=#{businessKey}</if>
2023-09-24 18:35:52 +08:00
) a
2023-09-22 00:32:08 +08:00
GROUP BY cat
</select>
2023-09-09 22:33:35 +08:00
2023-09-09 01:36:45 +08:00
</mapper>