springboot+activiti7+react实现模仿钉钉功能的审批流(八、流程面板:待我审批、我已审批、我发起的、抄送我的、所有审批单)

就是查询sql,可以开启sql,查看sql输出来调试:
主要sql:

-- 我发起的流程        
SELECT DISTINCT
	RES.*,
	DEF.KEY_ AS PROC_DEF_KEY_,
	DEF.NAME_ AS PROC_DEF_NAME_,
	DEF.VERSION_ AS PROC_DEF_VERSION_,
	DEF.DEPLOYMENT_ID_ AS DEPLOYMENT_ID_,
	deployment.CATEGORY_ AS CATEGORY_ 
FROM
	ACT_HI_PROCINST RES
	LEFT OUTER JOIN ACT_RE_PROCDEF DEF ON RES.PROC_DEF_ID_ = DEF.ID_
	LEFT JOIN ACT_RE_DEPLOYMENT deployment ON DEF.DEPLOYMENT_ID_ = deployment.ID_
	LEFT JOIN act_business_form form ON deployment.CATEGORY_ = form.process_code 
WHERE
	RES.START_USER_ID_ = '用户id' 
ORDER BY
	RES.START_TIME_ DESC 
	LIMIT 10
	
-- 待我审批的流程  
SELECT
	t1.* 
FROM
	(
	SELECT DISTINCT
		RES.*,
		DEF.KEY_ AS PROC_DEF_KEY_,
		DEF.NAME_ AS PROC_DEF_NAME_,
		DEF.VERSION_ AS PROC_DEF_VERSION_,
		DEF.DEPLOYMENT_ID_ AS DEPLOYMENT_ID_,
		deployment.CATEGORY_ AS CATEGORY_,
		USER.NAME startUserName,
		form.NAME formName 
	FROM
		ACT_HI_PROCINST RES
		LEFT OUTER JOIN ACT_RE_PROCDEF DEF ON RES.PROC_DEF_ID_ = DEF.ID_
		LEFT JOIN ACT_RE_DEPLOYMENT deployment ON DEF.DEPLOYMENT_ID_ = deployment.ID_
		LEFT JOIN act_business_form form ON deployment.CATEGORY_ = form.process_code
		LEFT JOIN sys_user USER ON RES.START_USER_ID_ = CONCAT( USER.id, '' ) 
	) t1
	INNER JOIN ( SELECT DISTINCT RES.PROC_INST_ID_ FROM ACT_RU_TASK RES WHERE RES.ASSIGNEE_ = '用户id' ORDER BY RES.CREATE_TIME_ DESC ) t2 ON t1.PROC_INST_ID_ = t2.PROC_INST_ID_ 
	LIMIT 10
	
	
-- 所有流程实例        
SELECT DISTINCT
	RES.*,
	DEF.KEY_ AS PROC_DEF_KEY_,
	DEF.NAME_ AS PROC_DEF_NAME_,
	DEF.VERSION_ AS PROC_DEF_VERSION_,
	DEF.DEPLOYMENT_ID_ AS DEPLOYMENT_ID_,
	deployment.CATEGORY_ AS CATEGORY_ 
FROM
	ACT_HI_PROCINST RES
	LEFT OUTER JOIN ACT_RE_PROCDEF DEF ON RES.PROC_DEF_ID_ = DEF.ID_
	LEFT JOIN ACT_RE_DEPLOYMENT deployment ON DEF.DEPLOYMENT_ID_ = deployment.ID_
	LEFT JOIN act_business_form form ON deployment.CATEGORY_ = form.process_code
	LEFT JOIN sys_user USER ON RES.START_USER_ID_ = CONCAT( USER.id, '' ) 
ORDER BY
	RES.START_TIME_ DESC 
	LIMIT 10
	
	
-- 我已审批的流程       
SELECT
	t1.* 
FROM
	(
	SELECT DISTINCT
		RES.*,
		DEF.KEY_ AS PROC_DEF_KEY_,
		DEF.NAME_ AS PROC_DEF_NAME_,
		DEF.VERSION_ AS PROC_DEF_VERSION_,
		DEF.DEPLOYMENT_ID_ AS DEPLOYMENT_ID_,
		deployment.CATEGORY_ AS CATEGORY_,
		USER.NAME startUserName,
		form.NAME formName 
	FROM
		ACT_HI_PROCINST RES
		LEFT OUTER JOIN ACT_RE_PROCDEF DEF ON RES.PROC_DEF_ID_ = DEF.ID_
		LEFT JOIN ACT_RE_DEPLOYMENT deployment ON DEF.DEPLOYMENT_ID_ = deployment.ID_
		LEFT JOIN act_business_form form ON deployment.CATEGORY_ = form.process_code
		LEFT JOIN sys_user USER ON RES.START_USER_ID_ = CONCAT( USER.id, '' ) 
	) t1
	INNER JOIN (
	SELECT DISTINCT
		RES.PROC_INST_ID_ 
	FROM
		ACT_HI_TASKINST RES 
	WHERE
		RES.ASSIGNEE_ = '用户id' 
		AND RES.END_TIME_ IS NOT NULL 
	ORDER BY
		RES.END_TIME_ DESC 
	) t2 ON t1.PROC_INST_ID_ = t2.PROC_INST_ID_ 
	AND ( t1.DELETE_REASON_ IS NULL OR t1.DELETE_REASON_ != t1.PROC_INST_ID_ ) 
	LIMIT 10

-- 抄送我的流程        
SELECT
	t1.*,
	t2.id copy_id,
	t2.read_flag,
	t2.read_time 
FROM
	(
	SELECT DISTINCT
		RES.*,
		DEF.KEY_ AS PROC_DEF_KEY_,
		DEF.NAME_ AS PROC_DEF_NAME_,
		DEF.VERSION_ AS PROC_DEF_VERSION_,
		DEF.DEPLOYMENT_ID_ AS DEPLOYMENT_ID_,
		deployment.CATEGORY_ AS CATEGORY_,
		USER.NAME startUserName,
		form.NAME formName 
	FROM
		ACT_HI_PROCINST RES
		LEFT OUTER JOIN ACT_RE_PROCDEF DEF ON RES.PROC_DEF_ID_ = DEF.ID_
		LEFT JOIN ACT_RE_DEPLOYMENT deployment ON DEF.DEPLOYMENT_ID_ = deployment.ID_
		LEFT JOIN act_business_form form ON deployment.CATEGORY_ = form.process_code
		LEFT JOIN sys_user USER ON RES.START_USER_ID_ = CONCAT( USER.id, '' ) 
	) t1
	INNER JOIN ( SELECT RES.id, RES.process_instance_id PROC_INST_ID_, RES.read_flag, RES.read_time FROM act_copy_task RES WHERE RES.user_id = '用户id' ) t2 ON t1.PROC_INST_ID_ = t2.PROC_INST_ID_ 
ORDER BY
	t2.id DESC 
	LIMIT 10

抄送实现:

  • 1.建一个用户和流程的关联关系表,比如用户id-流程id;
  • 2.用serviceTask节点,把要抄送的人放节点属性上,执行服务节点时候往第1步的表里面塞值;
  • 3.查询的时候,用用户id去查第1步的表关联查询流程信息表。

抄送表结构


版权声明:本文为ltx1472580369原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。