|
@@ -428,17 +428,17 @@
|
|
|
SELECT
|
|
|
a.*,r.id,r.project_id,r.supervisor_id,
|
|
|
CASE
|
|
|
- WHEN COALESCE(MAX(CASE WHEN r.select_type = 4 THEN 1 ELSE 0 END),0) = 1 THEN 4 -- 如果有 4
|
|
|
- WHEN COALESCE(MAX(CASE WHEN r.select_type = 2 THEN 1 ELSE 0 END),0) = 1 THEN 2 -- 如果有 2
|
|
|
+ WHEN COALESCE(MAX(CASE WHEN r.select_type = 4 THEN 1 ELSE 0 END),0) = 1 THEN 4
|
|
|
+ WHEN COALESCE(MAX(CASE WHEN r.select_type = 2 THEN 1 ELSE 0 END),0)= 1 THEN 2 -- 如果有 2
|
|
|
WHEN COALESCE(MAX(CASE WHEN r.select_type = 1 THEN 1 ELSE 0 END),0) = 1 THEN 1 -- 如果没有 2,但有 1
|
|
|
ELSE 0 -- 其他情况
|
|
|
END AS selectStatus,
|
|
|
|
|
|
-- 计算 selectStatus 为 1 或 2 的记录 id
|
|
|
CASE
|
|
|
- WHEN COALESCE(selectStatus, null) IN (1, 2 ,4) THEN r.id
|
|
|
+ WHEN COALESCE(MAX(r.select_type), null) IN (1,2,4) THEN r.id
|
|
|
ELSE NULL
|
|
|
- END AS recordId
|
|
|
+ END AS recordId,
|
|
|
|
|
|
COALESCE(system_dept.name, "测绘学院") AS deptName,
|
|
|
supervisor_user.nickname AS supervisor,
|
|
@@ -460,6 +460,7 @@
|
|
|
system_dept system_dept ON system_dept.id = a.dept_id
|
|
|
WHERE
|
|
|
1=1
|
|
|
+ AND a.deleted = 0
|
|
|
<if test="reqVO.username != null and reqVO.username != ''">
|
|
|
AND a.username LIKE CONCAT('%', #{reqVO.username}, '%')
|
|
|
</if>
|
|
@@ -493,16 +494,15 @@
|
|
|
<if test="reqVO.status != null and reqVO.status != '' ">
|
|
|
AND a.status = #{reqVO.status}
|
|
|
</if>
|
|
|
- AND a.deleted = 0
|
|
|
GROUP BY
|
|
|
a.id
|
|
|
|
|
|
<!-- 合并 HAVING 子句 -->
|
|
|
HAVING
|
|
|
CASE
|
|
|
- WHEN COALESCE(MAX(CASE WHEN r.select_type = 4 THEN 1 ELSE 0 END),0) = 1 THEN 4 -- 如果有 2
|
|
|
- WHEN COALESCE(MAX(CASE WHEN r.select_type = 2 THEN 1 ELSE 0 END),0) = 1 THEN 2 -- 如果有 2
|
|
|
- WHEN COALESCE(MAX(CASE WHEN r.select_type = 1 THEN 1 ELSE 0 END),0) = 1 THEN 1 -- 如果没有 2,但有 1
|
|
|
+ WHEN COALESCE(MAX(CASE WHEN r.select_type = 4 THEN 1 ELSE 0 END),0) = 1 THEN 4
|
|
|
+ WHEN COALESCE(MAX(CASE WHEN r.select_type = 2 THEN 1 ELSE 0 END),0)= 1 THEN 2 -- 如果有 2
|
|
|
+ WHEN COALESCE(MAX(CASE WHEN r.select_type = 1 THEN 1 ELSE 0 END),0) = 1 THEN 1
|
|
|
ELSE 0
|
|
|
END
|
|
|
<choose>
|
|
@@ -568,9 +568,9 @@
|
|
|
<!-- 合并 HAVING 条件 -->
|
|
|
HAVING
|
|
|
CASE
|
|
|
- WHEN COALESCE(MAX(CASE WHEN r.select_type = 4 THEN 1 ELSE 0 END),0) = 1 THEN 4 -- 如果有 4
|
|
|
- WHEN COALESCE(MAX(CASE WHEN r.select_type = 2 THEN 1 ELSE 0 END),0) = 1 THEN 2 -- 如果有 2
|
|
|
- WHEN COALESCE(MAX(CASE WHEN r.select_type = 1 THEN 1 ELSE 0 END),0) = 1 THEN 1 -- 如果没有 2,但有 1
|
|
|
+ WHEN COALESCE(MAX(CASE WHEN r.select_type = 4 THEN 1 ELSE 0 END),0) = 1 THEN 4
|
|
|
+ WHEN COALESCE(MAX(CASE WHEN r.select_type = 2 THEN 1 ELSE 0 END),0)= 1 THEN 2 -- 如果有 2
|
|
|
+ WHEN COALESCE(MAX(CASE WHEN r.select_type = 1 THEN 1 ELSE 0 END),0) = 1 THEN 1
|
|
|
ELSE 0
|
|
|
END
|
|
|
<choose>
|