| | |
| | | where dept_id = #{deptId} |
| | | </delete> |
| | | |
| | | <!-- |
| | | 查询科室/病区: |
| | | · userId 有值(普通用户 / 用户编辑页:查某个用户名下的部门)→ 关联 sys_user_dept; |
| | | · userId 为空(管理员:看本机构全部科室/病区)→ 只查 sys_dept,不关联关系表。 |
| | | 为什么要分支:HIS 采集写 sys_user_dept 时明确排除了 admin(CollectHISMapper 的 |
| | | yhyksxx/yhybfxx 都有 ud.user_id != 'admin'),管理员在关系表里没有数据,走 inner join |
| | | 会得到空列表,表现就是「登录成功但创建任务时选不到科室病区」。 |
| | | 另外不做院区过滤(管理员跨院区),院区隔离只对普通用户生效。 |
| | | --> |
| | | <select id="selectSysDeptListBySysUserDept" parameterType="com.ruoyi.common.core.domain.entity.SysUserDept" |
| | | resultMap="SysDeptResult"> |
| | | <include refid="selectDeptVo"/> |
| | | inner join sys_user_dept ud |
| | | on d.dept_code = ud.dept_code |
| | | where 1=1 |
| | | and d.del_flag = 0 |
| | | and ud.del_flag = 0 |
| | | <if test="orgid != null">and d.orgid = #{orgid} and ud.orgid = #{orgid}</if> |
| | | <if test="campusid != null">and d.campusid = #{campusid}</if> |
| | | <if test="userId != null">and ud.user_id = #{userId}</if> |
| | | <if test="deptType != null and deptType != ''">and d.dept_type = #{deptType}</if> |
| | | <choose> |
| | | <when test="userId != null"> |
| | | <include refid="selectDeptVo"/> |
| | | inner join sys_user_dept ud |
| | | on d.dept_code = ud.dept_code |
| | | where 1=1 |
| | | and d.del_flag = 0 |
| | | and ud.del_flag = 0 |
| | | <if test="orgid != null">and d.orgid = #{orgid} and ud.orgid = #{orgid}</if> |
| | | <if test="campusid != null">and d.campusid = #{campusid}</if> |
| | | <if test="deptType != null and deptType != ''">and d.dept_type = #{deptType}</if> |
| | | and ud.user_id = #{userId} |
| | | </when> |
| | | <otherwise> |
| | | <include refid="selectDeptVo"/> |
| | | where d.del_flag = 0 |
| | | <if test="orgid != null">and d.orgid = #{orgid}</if> |
| | | <if test="deptType != null and deptType != ''">and d.dept_type = #{deptType}</if> |
| | | </otherwise> |
| | | </choose> |
| | | </select> |
| | | </mapper> |