YanZhuProject/sql/vw_sql.sql

141 lines
3.8 KiB
MySQL
Raw Normal View History

2024-02-24 23:32:04 +08:00
##全部根据finishTime判断代办已办
DROP view vw_flow_all;
CREATE VIEW vw_flow_all AS (
SELECT
RES.ID_ AS procInsId,
DEF.DEPLOYMENT_ID_ AS deployId,
RES.START_TIME_ AS createTime,
RES.END_TIME_ AS finishTime,
CASE
WHEN RES.END_TIME_ IS NULL THEN
TIMESTAMPDIFF(
MINUTE,
RES.START_TIME_,
DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S')
)
ELSE
TIMESTAMPDIFF(
MINUTE,
RES.START_TIME_,
RES.END_TIME_
)
END AS duration,
DEF.NAME_ AS procDefName,
DEF.VERSION_ AS procDefVersion,
DEF.CATEGORY_ AS category,
DEF.KEY_ AS procDefKey,
ppa.id AS businessKey,
ppa.dept_id as businessDeptId,
ppa.proj_name AS businessKeyName,
ppa.par_proj_name as businessKeyParName,
ru.user_id AS startUserId,
ru.nick_name AS startUserName,
rd.dept_name AS startDeptName,
ht.*
FROM
ACT_HI_PROCINST RES
LEFT OUTER JOIN ACT_RE_PROCDEF DEF ON RES.PROC_DEF_ID_ = DEF.ID_
LEFT OUTER JOIN pro_project_apply ppa ON RES.BUSINESS_KEY_ = ppa.id
LEFT JOIN sys_user ru ON ru.user_id = RES.START_USER_ID_
LEFT JOIN sys_dept rd ON rd.dept_id = ru.dept_id
LEFT JOIN (
SELECT
ht.ID_ AS taskId,
ht.NAME_ AS taskName,
tu.user_id AS assigneeId,
tu.nick_name AS assigneeName,
td.dept_name AS assigneeDeptName,
ht.PROC_INST_ID_
FROM
act_hi_taskinst ht
LEFT JOIN sys_user tu ON tu.user_id = ht.ASSIGNEE_
LEFT JOIN sys_dept td ON td.dept_id = tu.dept_id
WHERE
ht.ID_ IN (
SELECT
MAX(ID_)
FROM
act_hi_taskinst
GROUP BY
PROC_INST_ID_
)
GROUP BY ht.PROC_INST_ID_
) ht ON ht.PROC_INST_ID_ = RES.PROC_INST_ID_
);
##待办
DROP view vw_flow_await;
CREATE VIEW vw_flow_await AS (SELECT
RES.ID_ AS taskId,
RES.NAME_ AS taskName,
re.ID_ AS procInsId,
DEF.DEPLOYMENT_ID_ AS deployId,
DATE_FORMAT(re.START_TIME_, '%Y-%m-%d %H:%i:%S') AS createTime,
TIMESTAMPDIFF(
MINUTE,
re.START_TIME_,
DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S')
) AS duration,
DEF.NAME_ AS procDefName,
DEF.VERSION_ AS procDefVersion,
DEF.CATEGORY_ AS category,
DEF.KEY_ AS procDefKey,
ppa.id AS businessKey,
ppa.dept_id AS businessDeptId,
ppa.proj_name AS businessKeyName,
ppa.par_proj_name as businessKeyParName,
ru.user_id AS startUserId,
ru.nick_name AS startUserName,
rd.dept_name AS startDeptName,
RES.SUSPENSION_STATE_,
RES.ASSIGNEE_,
LINK.USER_ID_,
LINK.GROUP_ID_
FROM
ACT_RU_TASK RES
LEFT JOIN act_ru_execution re ON re.PARENT_ID_ IS NULL
AND re.PROC_INST_ID_ = RES.PROC_INST_ID_
LEFT OUTER JOIN ACT_RE_PROCDEF DEF ON re.PROC_DEF_ID_ = DEF.ID_
LEFT OUTER JOIN pro_project_apply ppa ON re.BUSINESS_KEY_ = ppa.id
LEFT JOIN sys_user ru ON ru.user_id = re.START_USER_ID_
LEFT JOIN sys_dept rd ON rd.dept_id = ru.dept_id
left JOIN ACT_RU_IDENTITYLINK LINK on LINK.TASK_ID_ = RES.ID_ AND LINK.TYPE_ = 'candidate'
WHERE
RES.SUSPENSION_STATE_ = 1)
##已办
DROP view vw_flow_finished;
CREATE VIEW vw_flow_finished AS (SELECT
RES.ID_ AS taskId,
RES.NAME_ AS taskName,
RES.PROC_INST_ID_ AS procInsId,
pd.DEPLOYMENT_ID_ as deployId,
DATE_FORMAT(RES.START_TIME_, '%Y-%m-%d %H:%i:%S') AS createTime,
DATE_FORMAT(RES.END_TIME_, '%Y-%m-%d %H:%i:%S') AS endTime,
TIMESTAMPDIFF(
MINUTE,
res.START_TIME_,
RES.END_TIME_
) AS duration,
DEF.END_TIME_ as finishTime,
pd.NAME_ AS procDefName,
pd.CATEGORY_ AS category,
pd.KEY_ AS procDefKey,
ppa.id AS businessKey,
ppa.dept_id AS businessDeptId,
ppa.proj_name AS businessKeyName,
ppa.par_proj_name as businessKeyParName,
ru.user_id AS startUserId,
ru.nick_name AS startUserName,
rd.dept_name AS startDeptName,
RES.ASSIGNEE_
FROM
act_hi_taskinst RES
LEFT OUTER JOIN act_hi_procinst DEF ON RES.PROC_INST_ID_ = DEF.PROC_INST_ID_
LEFT OUTER join act_re_procdef pd on RES.PROC_DEF_ID_ = pd.ID_
LEFT OUTER JOIN pro_project_apply ppa ON DEF.BUSINESS_KEY_ = ppa.id
LEFT JOIN sys_user ru ON ru.user_id = RES.ASSIGNEE_
LEFT JOIN sys_dept rd ON rd.dept_id = ru.dept_id
WHERE
RES.ASSIGNEE_ is not null and RES.END_TIME_ is not null)