bug 687 732
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
-- V106__fix_order_closed_loop_permissions.sql
|
||||
-- 修复医嘱闭环模块权限,将 sys_menu 表中的权限标识更新为与后端 OrderClosedLoopController 一致的权限,并授权给相关角色
|
||||
|
||||
-- 1. 更新已有的“执行追踪”和“闭环统计”菜单的权限标识,与后端控制器的 @PreAuthorize 权限一致
|
||||
UPDATE sys_menu SET perms = 'inpatient:orderclosedloop:list' WHERE menu_id IN (20112, 20113);
|
||||
|
||||
-- 2. 添加按钮级权限:“编辑/执行/催办”权限
|
||||
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
||||
VALUES
|
||||
(20114, '医嘱执行编辑', 20112, 1, '', '', 'F', '0', '0', 'inpatient:orderclosedloop:edit', '#', 'admin', CURRENT_TIMESTAMP, '医嘱闭环-执行追踪编辑按钮权限'),
|
||||
(20115, '闭环统计催办', 20113, 1, '', '', 'F', '0', '0', 'inpatient:orderclosedloop:edit', '#', 'admin', CURRENT_TIMESTAMP, '医嘱闭环-闭环统计催办按钮权限')
|
||||
ON CONFLICT (menu_id) DO NOTHING;
|
||||
|
||||
-- 3. 为“医生”、“护士”、“管理员”相关角色授予这些新引入的权限按钮
|
||||
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||
SELECT r.role_id, m.menu_id
|
||||
FROM sys_role r
|
||||
CROSS JOIN sys_menu m
|
||||
WHERE r.role_name IN ('超级管理员', '管理员', 'admin', '医生', 'doctor', '门诊医生', '住院医生', '护士', 'nurse', '信息科管理员', '可用页面管理员')
|
||||
AND m.menu_id IN (20114, 20115)
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id
|
||||
);
|
||||
@@ -0,0 +1,35 @@
|
||||
-- V2026.0622.02__grant_closed_loop_menu_to_roles.sql
|
||||
-- 修复 V2026.0622.01 的遗漏:将"执行追踪"(20112)和"闭环统计"(20113)菜单本身
|
||||
-- 以及按钮权限(20114, 20115)一起授予相关角色。
|
||||
-- 原脚本只给角色授予了 20114/20115 按钮,漏掉了 20112/20113 父菜单,
|
||||
-- 导致 inpatient:orderclosedloop:list 权限无法加载到用户权限集合中。
|
||||
|
||||
-- 1. 将菜单 20112(执行追踪)、20113(闭环统计)、20114(医嘱执行编辑)、20115(闭环统计催办) 一起授权给相关角色
|
||||
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||
SELECT r.role_id, m.menu_id
|
||||
FROM sys_role r
|
||||
CROSS JOIN sys_menu m
|
||||
WHERE r.role_name IN (
|
||||
'超级管理员', '管理员', 'admin',
|
||||
'医生', 'doctor', '门诊医生', '住院医生',
|
||||
'护士', 'nurse',
|
||||
'信息科管理员', '可用页面管理员'
|
||||
)
|
||||
AND m.menu_id IN (20112, 20113, 20114, 20115)
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM sys_role_menu rm
|
||||
WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id
|
||||
);
|
||||
|
||||
-- 2. 兜底:对于 role_key 包含 doctor/nurse/admin 的角色也进行授权,
|
||||
-- 防止某些角色 role_name 为中文自定义名称(如"内科医生")但 role_key 仍匹配的情况
|
||||
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||
SELECT r.role_id, m.menu_id
|
||||
FROM sys_role r
|
||||
CROSS JOIN sys_menu m
|
||||
WHERE (r.role_key LIKE '%doctor%' OR r.role_key LIKE '%nurse%' OR r.role_key = 'admin')
|
||||
AND m.menu_id IN (20112, 20113, 20114, 20115)
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM sys_role_menu rm
|
||||
WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id
|
||||
);
|
||||
@@ -0,0 +1,34 @@
|
||||
-- 修复医嘱闭环模块权限
|
||||
-- 1. 将 sys_menu 权限标识更新为与后端 OrderClosedLoopController 一致
|
||||
-- 2. 新增按钮级权限菜单
|
||||
-- 3. 为相关角色授予全部闭环菜单权限
|
||||
|
||||
-- 1. 修正"执行追踪"和"闭环统计"菜单的权限标识
|
||||
UPDATE sys_menu SET perms = 'inpatient:orderclosedloop:list' WHERE menu_id IN (20112, 20113);
|
||||
|
||||
-- 2. 添加按钮级权限
|
||||
INSERT INTO sys_menu (menu_id, menu_name, parent_id, order_num, path, component, menu_type, visible, status, perms, icon, create_by, create_time, remark)
|
||||
VALUES
|
||||
(20114, '医嘱执行编辑', 20112, 1, '', '', 'F', '0', '0', 'inpatient:orderclosedloop:edit', '#', 'admin', CURRENT_TIMESTAMP, '医嘱闭环-执行追踪编辑按钮权限'),
|
||||
(20115, '闭环统计催办', 20113, 1, '', '', 'F', '0', '0', 'inpatient:orderclosedloop:edit', '#', 'admin', CURRENT_TIMESTAMP, '医嘱闭环-闭环统计催办按钮权限')
|
||||
ON CONFLICT (menu_id) DO NOTHING;
|
||||
|
||||
-- 3. 为相关角色授予闭环模块全部菜单(20112-20115)
|
||||
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||
SELECT r.role_id, m.menu_id
|
||||
FROM sys_role r
|
||||
CROSS JOIN (SELECT unnest(ARRAY[20112, 20113, 20114, 20115]) AS menu_id) m
|
||||
WHERE r.role_name IN ('超级管理员', '管理员', 'admin', '医生', 'doctor', '门诊医生', '住院医生', '护士', 'nurse', '信息科管理员', '可用页面管理员')
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id
|
||||
);
|
||||
|
||||
-- 4. 兜底:按 role_key 模糊匹配(覆盖自定义中文角色名)
|
||||
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||
SELECT r.role_id, m.menu_id
|
||||
FROM sys_role r
|
||||
CROSS JOIN (SELECT unnest(ARRAY[20112, 20113, 20114, 20115]) AS menu_id) m
|
||||
WHERE (r.role_key LIKE '%doctor%' OR r.role_key LIKE '%nurse%' OR r.role_key = 'admin')
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id
|
||||
);
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.healthlink.his.emr.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.healthlink.his.emr.domain.EmrQualityScore;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface EmrQualityScoreDataMapper extends BaseMapper<EmrQualityScore> {
|
||||
|
||||
List<EmrQualityScore> selectByEncounterId(@Param("encounterId") Long encounterId);
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
<?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.healthlink.his.emr.mapper.EmrQualityScoreDataMapper">
|
||||
|
||||
<select id="selectByEncounterId" resultType="com.healthlink.his.emr.domain.EmrQualityScore">
|
||||
SELECT * FROM emr_quality_score
|
||||
WHERE encounter_id = #{encounterId}
|
||||
ORDER BY check_time DESC
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@@ -76,19 +76,21 @@ export function getDispensaryList() {
|
||||
|
||||
// 停供
|
||||
export function stopSupply(busNo) {
|
||||
const ids = Array.isArray(busNo) ? busNo : [busNo];
|
||||
return request({
|
||||
url: '/inventory-manage/product/stop-supply',
|
||||
method: 'put',
|
||||
data: busNo,
|
||||
data: ids,
|
||||
});
|
||||
}
|
||||
|
||||
// 取消停供
|
||||
export function cancelSupply(busNo) {
|
||||
const ids = Array.isArray(busNo) ? busNo : [busNo];
|
||||
return request({
|
||||
url: '/inventory-manage/product/cancel-supply',
|
||||
method: 'put',
|
||||
data: busNo,
|
||||
data: ids,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user