|
|
@@ -98,29 +98,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
</select>
|
|
|
|
|
|
<select id="selectUserByMgrRegion" parameterType="tStaffmgr" resultType="map">
|
|
|
- SELECT
|
|
|
- a.region "REGION",
|
|
|
- listagg ( b.NICK_NAME, ',' ) within GROUP ( ORDER BY a.region ) "NICKNAME",
|
|
|
- listagg ( b.user_id, ',' ) within GROUP ( ORDER BY a.region ) "USERID"
|
|
|
- FROM
|
|
|
- T_STAFFMGR a
|
|
|
- LEFT JOIN SYS_USER b ON a.STAFFID = b.STAFFID
|
|
|
- LEFT JOIN sys_dept d ON a.dept_id = d.dept_id
|
|
|
- <where>
|
|
|
- (
|
|
|
- a.region = '芳烃抽提'
|
|
|
- OR a.region = '汽油加氢'
|
|
|
- OR a.region = '压缩'
|
|
|
- OR a.region = '分离'
|
|
|
- OR a.region = '裂解'
|
|
|
- )
|
|
|
- AND a.DEL_FLAG = 0
|
|
|
- AND b.USER_ID IS NOT NULL
|
|
|
- </where>
|
|
|
- ${params.dataScope}
|
|
|
- GROUP BY
|
|
|
- a.region
|
|
|
- </select>
|
|
|
+ <![CDATA[
|
|
|
+ WITH split_regions AS (
|
|
|
+ SELECT
|
|
|
+ a.STAFFID,
|
|
|
+ a.DEL_FLAG,
|
|
|
+ a.dept_id,
|
|
|
+ TRIM(REGEXP_SUBSTR(a.region, '[^,]+', 1, LEVEL)) as single_region
|
|
|
+ FROM T_STAFFMGR a
|
|
|
+ WHERE (a.region LIKE '%芳烃抽提%' OR a.region LIKE '%汽油加氢%' OR a.region LIKE '%压缩%'
|
|
|
+ OR a.region LIKE '%分离%' OR a.region LIKE '%裂解%')
|
|
|
+ AND a.DEL_FLAG = 0
|
|
|
+ CONNECT BY LEVEL <= REGEXP_COUNT(a.region, '[^,]+')
|
|
|
+ AND PRIOR a.STAFFID = a.STAFFID
|
|
|
+ AND PRIOR DBMS_RANDOM.VALUE IS NOT NULL
|
|
|
+ )
|
|
|
+ SELECT
|
|
|
+ sr.single_region AS "REGION",
|
|
|
+ LISTAGG(b.NICK_NAME, ',') WITHIN GROUP (ORDER BY b.NICK_NAME) AS "NICKNAME",
|
|
|
+ LISTAGG(b.user_id, ',') WITHIN GROUP (ORDER BY b.user_id) AS "USERID"
|
|
|
+ FROM split_regions sr
|
|
|
+ LEFT JOIN SYS_USER b ON sr.STAFFID = b.STAFFID
|
|
|
+ LEFT JOIN sys_dept d ON sr.dept_id = d.dept_id
|
|
|
+ WHERE b.USER_ID IS NOT NULL
|
|
|
+ ]]>
|
|
|
+ ${params.dataScope}
|
|
|
+ GROUP BY sr.single_region
|
|
|
+ </select>
|
|
|
|
|
|
<select id="selectAllUser" resultType="SysUser">
|
|
|
select * from sys_user u where u.del_flag = '0'
|