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) {
|
export function stopSupply(busNo) {
|
||||||
|
const ids = Array.isArray(busNo) ? busNo : [busNo];
|
||||||
return request({
|
return request({
|
||||||
url: '/inventory-manage/product/stop-supply',
|
url: '/inventory-manage/product/stop-supply',
|
||||||
method: 'put',
|
method: 'put',
|
||||||
data: busNo,
|
data: ids,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 取消停供
|
// 取消停供
|
||||||
export function cancelSupply(busNo) {
|
export function cancelSupply(busNo) {
|
||||||
|
const ids = Array.isArray(busNo) ? busNo : [busNo];
|
||||||
return request({
|
return request({
|
||||||
url: '/inventory-manage/product/cancel-supply',
|
url: '/inventory-manage/product/cancel-supply',
|
||||||
method: 'put',
|
method: 'put',
|
||||||
data: busNo,
|
data: ids,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user