1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<?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.testor.module.wf.dao.RuTaskDao">
<resultMap id="countToDoResult" type="java.util.HashMap">
<result column="num" property="num" javaType="java.lang.String"/>
<result column="processDefinitionId" property="processDefinitionId" javaType="java.lang.String"/>
<result column="processDefinitionName" property="processDefinitionName" javaType="java.lang.String"/>
<result column="processDefinitionKey" property="processDefinitionKey" javaType="java.lang.String"/>
</resultMap>
<delete id="deleteRuVariableException">
delete from ACT_RU_VARIABLE where EXECUTION_ID_ is null
</delete>
<delete id="deleteHiVariableException">
delete from act_hi_varinst where EXECUTION_ID_ is null
</delete>
<select id="getHisTask" resultType="com.tongtech.tfw.workflow.apis.task.model.dto.HisTask">
SELECT
task.ID_ AS taskId,
task.NAME_ AS taskName,
task.START_TIME_ AS startTime,
task.END_TIME_ AS endTime,
task.FORM_KEY_ as formKey,
task.PROC_INST_ID_ AS processInstanceId,
task.PROC_DEF_ID_ AS processDefinitionId,
procdef.NAME_ AS processDefinitionName,
procdef.VERSION_ AS processDefinitionVersion,
procdef.DESCRIPTION_ as processDefinitionDescription,
usr.FIRST_ AS startUser,
hiproc.BUSINESS_KEY_ AS bizId
FROM
act_hi_taskinst task
LEFT JOIN act_hi_procinst hiproc ON task.PROC_INST_ID_ = hiproc.PROC_INST_ID_
LEFT JOIN act_re_procdef procdef ON task.PROC_DEF_ID_ = procdef.ID_
LEFT JOIN act_id_user usr ON hiproc.START_USER_ID_ = usr.ID_
WHERE
task.END_TIME_ IS NOT NULL
<if test="his.processDefinitionName != null"> AND procdef.NAME_ LIKE CONCAT('%',#{his.processDefinitionName},'%')</if>
<if test="his.taskId != null"> AND task.ID_ =#{his.taskId}</if>
<if test="his.bizId != null"> AND hiproc.BUSINESS_KEY_ = #{his.bizId}</if>
<if test="his.processInstanceId != null"> AND task.PROC_INST_ID_ = #{his.processInstanceId}</if>
</select>
<select id="countToDo" resultMap="countToDoResult">
SELECT
count(distinct task.ID_) as num,
procdef.NAME_ AS processDefinitionName,
procdef.KEY_ as processDefinitionKey
FROM
act_re_procdef procdef
LEFT JOIN
act_ru_task task ON task.PROC_DEF_ID_ = procdef.ID_
LEFT JOIN
act_ru_identitylink idl ON task.ID_ = idl.TASK_ID_
left join
act_ru_variable var on var.PROC_INST_ID_= task.PROC_INST_ID_
WHERE
((task.ASSIGNEE_ = #{userId})
OR (task.ASSIGNEE_ IS NULL and idl.USER_ID_ = #{userId}
OR (task.ASSIGNEE_ IS NULL and idl.GROUP_ID_ IN (SELECT
g1.GROUP_ID_
FROM
act_id_membership g1
WHERE
g1.user_id_ = #{userId}))
))
and procdef.NAME_ not like '%危险作业%'
group by procdef.NAME_,procdef.KEY_
</select>
<select id="selectToDoList" resultType="com.tongtech.tfw.workflow.apis.task.model.dto.TodoTask" parameterType="com.tongtech.tfw.workflow.apis.task.model.dto.TodoTaskSqlParam">
SELECT DISTINCT
task.ID_ AS taskId,
task.NAME_ AS taskName,
task.PROC_INST_ID_ AS processInstanceId,
task.CREATE_TIME_ AS startTime,
task.FORM_KEY_ as formKey,
task.ASSIGNEE_ as assignee,
usr.FIRST_ AS startUser,
procdef.ID_ AS processDefinitionId,
procdef.NAME_ AS processDefinitionName,
procdef.VERSION_ AS processDefinitionVersion,
hiproc.BUSINESS_KEY_ AS bizId
FROM
act_ru_task task
LEFT JOIN
act_hi_procinst hiproc ON task.PROC_INST_ID_ = hiproc.PROC_INST_ID_
LEFT JOIN
act_re_procdef procdef ON task.PROC_DEF_ID_ = procdef.ID_
LEFT JOIN
act_ru_identitylink idl ON task.ID_ = idl.TASK_ID_
LEFT JOIN
act_id_user usr ON hiproc.START_USER_ID_ = usr.ID_
WHERE
((task.ASSIGNEE_ = #{todo.userId})
OR (
task.ASSIGNEE_ IS NULL and idl.USER_ID_ = #{todo.userId}
OR (task.ASSIGNEE_ IS NULL and idl.GROUP_ID_ IN (SELECT
g1.GROUP_ID_
FROM
act_id_membership g1
WHERE
g1.user_id_ = #{todo.userId}))
))
and procdef.NAME_ not like '%危险作业%'
<if test="todo.userName != null"> AND usr.FIRST_ LIKE CONCAT('%',#{todo.userName},'%')</if>
<if test="todo.proDefName != null"> AND procdef.NAME_ LIKE CONCAT('%',#{todo.proDefName},'%')</if>
<if test="todo.proDefId != null"> AND procdef.ID_ = #{todo.proDefId} </if>
<if test="todo.proDefKey != null"> AND procdef.KEY_ = #{todo.proDefKey} </if>
ORDER BY task.CREATE_TIME_ desc
</select>
<select id="selectHisTaskList" resultType="com.tongtech.tfw.workflow.apis.task.model.dto.HisTask" parameterType="com.tongtech.tfw.workflow.apis.task.model.dto.HisTaskSqlParam">
SELECT
task.ID_ AS taskId,
task.NAME_ AS taskName,
task.START_TIME_ AS startTime,
task.END_TIME_ AS endTime,
task.FORM_KEY_ as formKey,
task.PROC_INST_ID_ AS processInstanceId,
task.PROC_DEF_ID_ AS processDefinitionId,
procdef.NAME_ AS processDefinitionName,
procdef.VERSION_ AS processDefinitionVersion,
procdef.DESCRIPTION_ as processDefinitionDescription,
usr.FIRST_ AS startUser,
hiproc.BUSINESS_KEY_ AS bizId
FROM
act_hi_taskinst task
LEFT JOIN act_hi_procinst hiproc ON task.PROC_INST_ID_ = hiproc.PROC_INST_ID_
LEFT JOIN act_re_procdef procdef ON task.PROC_DEF_ID_ = procdef.ID_
LEFT JOIN act_id_user usr ON hiproc.START_USER_ID_ = usr.ID_
WHERE
task.END_TIME_ IS NOT NULL
AND task.ASSIGNEE_ = #{his.userId}
AND task.DELETE_REASON_ IS NULL
and procdef.NAME_ not like '%危险作业%'
<if test="his.userName != null"> AND usr.FIRST_ LIKE CONCAT('%',#{his.userName},'%')</if>
<if test="his.proDefName != null"> AND procdef.NAME_ LIKE CONCAT('%',#{his.proDefName},'%')</if>
<if test="his.taskId != null"> AND task.ID_ =#{his.taskId}</if>
<if test="his.bizId != null"> AND hiproc.BUSINESS_KEY_ = #{his.bizId}</if>
<if test="his.processInstanceId != null"> AND task.PROC_INST_ID_ = #{his.processInstanceId}</if>
ORDER BY task.END_TIME_ desc
</select>
</mapper>