Merge branch 'fix-diagnosis-20250505'
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
-- 清理菜单表中的孤儿记录(可选 · 跟 T1+T2 无关)
|
||||
--
|
||||
-- 背景:admin 启动时会按菜单表的 component 字段去 import.meta.glob 出来的 vue 文件里找匹配,
|
||||
-- 找不到就 console.error("找不到组件 xxx")。前端 admin/src/views/stats/ 下没有 doctor-daily 目录,
|
||||
-- 但菜单表里仍残留 component='stats/doctor-daily/index' 的记录 → 每次刷页面都会有这条警告。
|
||||
--
|
||||
-- 安全提示:
|
||||
-- 1. **先跑下面的 SELECT**,确认要删的记录确实是孤儿(前端 views 下不存在)。
|
||||
-- 2. 如果想保留菜单数据但不再触发 console.error,可以改 component 为空字符串而不是删除。
|
||||
-- 3. 如果以后该功能要回归,可以从 git 历史里恢复或重新写 menu SQL。
|
||||
--
|
||||
-- 步骤 1:探测
|
||||
-- =============================================================
|
||||
-- SELECT id, pid, type, name, perms, paths, component, is_show, create_time
|
||||
-- FROM zyt_system_menu
|
||||
-- WHERE component LIKE '%doctor-daily%'
|
||||
-- OR perms LIKE '%doctor.daily%'
|
||||
-- OR paths LIKE '%doctor-daily%';
|
||||
|
||||
-- 步骤 2(可选 A):把这条菜单及其子按钮全部删掉
|
||||
-- =============================================================
|
||||
-- 先把它的子节点(按钮权限)一并清理
|
||||
-- DELETE FROM zyt_system_menu
|
||||
-- WHERE pid IN (
|
||||
-- SELECT id FROM (
|
||||
-- SELECT id FROM zyt_system_menu WHERE component = 'stats/doctor-daily/index'
|
||||
-- ) t
|
||||
-- );
|
||||
-- DELETE FROM zyt_system_menu WHERE component = 'stats/doctor-daily/index';
|
||||
|
||||
-- 步骤 2(可选 B):仅置空 component,保留菜单与按钮权限不动(最稳妥)
|
||||
-- =============================================================
|
||||
-- UPDATE zyt_system_menu
|
||||
-- SET component = ''
|
||||
-- WHERE component = 'stats/doctor-daily/index';
|
||||
@@ -0,0 +1,17 @@
|
||||
# 二诊只读病例详情接口权限注册(T1+T2 - 2026-05-05)
|
||||
# 挂在「中医诊单」(perms=tcm.diagnosis/lists) 菜单下
|
||||
# tcm.diagnosis/readonlyDetail 二诊只读病例详情接口
|
||||
|
||||
SET @diag_menu_id := (SELECT id FROM zyt_system_menu WHERE perms = 'tcm.diagnosis/lists' LIMIT 1);
|
||||
|
||||
INSERT INTO zyt_system_menu (
|
||||
pid, type, name, icon, sort, perms, paths, component,
|
||||
selected, params, is_cache, is_show, is_disable, create_time, update_time
|
||||
)
|
||||
SELECT
|
||||
@diag_menu_id, 'A', '患者信息详情', '', 70,
|
||||
'tcm.diagnosis/readonlyDetail', '', '',
|
||||
'', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE @diag_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM zyt_system_menu WHERE perms = 'tcm.diagnosis/readonlyDetail');
|
||||
@@ -0,0 +1,44 @@
|
||||
# 诊单待办事项:菜单按钮权限注册(T5 - 2026-05-05)
|
||||
# 挂在「中医诊单」(perms=tcm.diagnosis/lists) 菜单下,按钮型权限节点:
|
||||
# tcm.diagnosisTodo/lists 待办列表
|
||||
# tcm.diagnosisTodo/add 新增待办
|
||||
# tcm.diagnosisTodo/cancel 取消待办
|
||||
# detail 不单独注册(前端不主动调,由列表/详情接口已覆盖)
|
||||
|
||||
SET @diag_menu_id := (SELECT id FROM zyt_system_menu WHERE perms = 'tcm.diagnosis/lists' LIMIT 1);
|
||||
|
||||
INSERT INTO zyt_system_menu (
|
||||
pid, type, name, icon, sort, perms, paths, component,
|
||||
selected, params, is_cache, is_show, is_disable, create_time, update_time
|
||||
)
|
||||
SELECT
|
||||
@diag_menu_id, 'A', '待办列表', '', 60,
|
||||
'tcm.diagnosisTodo/lists', '', '',
|
||||
'', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE @diag_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM zyt_system_menu WHERE perms = 'tcm.diagnosisTodo/lists');
|
||||
|
||||
INSERT INTO zyt_system_menu (
|
||||
pid, type, name, icon, sort, perms, paths, component,
|
||||
selected, params, is_cache, is_show, is_disable, create_time, update_time
|
||||
)
|
||||
SELECT
|
||||
@diag_menu_id, 'A', '新增待办', '', 61,
|
||||
'tcm.diagnosisTodo/add', '', '',
|
||||
'', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE @diag_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM zyt_system_menu WHERE perms = 'tcm.diagnosisTodo/add');
|
||||
|
||||
INSERT INTO zyt_system_menu (
|
||||
pid, type, name, icon, sort, perms, paths, component,
|
||||
selected, params, is_cache, is_show, is_disable, create_time, update_time
|
||||
)
|
||||
SELECT
|
||||
@diag_menu_id, 'A', '取消待办', '', 62,
|
||||
'tcm.diagnosisTodo/cancel', '', '',
|
||||
'', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE @diag_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM zyt_system_menu WHERE perms = 'tcm.diagnosisTodo/cancel');
|
||||
@@ -0,0 +1,29 @@
|
||||
-- 诊单待办事项(T5 - 2026-05-05)
|
||||
-- 用途:医助在诊单上挂「将来要提醒自己的事」,到点由企微推送给创建人本人。
|
||||
-- 设计:状态机 0=待执行 → 1=已发送(成功)/ 2=已取消(人工) / 3=发送失败(终态,不重试)
|
||||
-- 索引说明:
|
||||
-- idx_diagnosis_id —— 编辑页/列表按诊单查询
|
||||
-- idx_creator_id —— 反查某 admin 创建过的待办(取消权限校验等)
|
||||
-- idx_status_remind_time —— 复合索引,cron 扫表「status=0 AND remind_time<=now」核心索引
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zyt_tcm_diagnosis_todo` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`diagnosis_id` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '所属诊单 id(zyt_tcm_diagnosis.id)',
|
||||
`patient_id` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '冗余患者 id,便于反查',
|
||||
`content` varchar(500) NOT NULL DEFAULT '' COMMENT '提醒内容(企微推送正文)',
|
||||
`remind_time` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '提醒时间戳(秒);cron 扫描 remind_time<=now',
|
||||
`status` tinyint(1) unsigned NOT NULL DEFAULT 0 COMMENT '状态:0=待执行 1=已发送 2=已取消 3=发送失败',
|
||||
`creator_id` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '创建人 admin.id(推送目标)',
|
||||
`creator_name` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人姓名快照',
|
||||
`notified_at` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '实际推送时间(成功时写入)',
|
||||
`error` varchar(500) NOT NULL DEFAULT '' COMMENT '失败原因(status=3 时写入)',
|
||||
`cancelled_at` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '取消时间',
|
||||
`cancelled_by` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '取消人 admin.id',
|
||||
`create_time` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '创建时间',
|
||||
`update_time` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '更新时间',
|
||||
`delete_time` int(11) unsigned NULL DEFAULT NULL COMMENT '软删除时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_diagnosis_id` (`diagnosis_id`),
|
||||
KEY `idx_creator_id` (`creator_id`),
|
||||
KEY `idx_status_remind_time` (`status`, `remind_time`)
|
||||
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '诊单待办事项(企微定时推送给创建人)';
|
||||
@@ -0,0 +1,30 @@
|
||||
# 诊单跟踪备注接口权限注册(2026-05-05)
|
||||
# 挂在「中医诊单」(perms=tcm.diagnosis/lists) 菜单下
|
||||
# tcm.diagnosis/addTrackingNote 新增跟踪备注
|
||||
# tcm.diagnosis/trackingNotes 拉取跟踪备注列表
|
||||
|
||||
SET @diag_menu_id := (SELECT id FROM zyt_system_menu WHERE perms = 'tcm.diagnosis/lists' LIMIT 1);
|
||||
|
||||
INSERT INTO zyt_system_menu (
|
||||
pid, type, name, icon, sort, perms, paths, component,
|
||||
selected, params, is_cache, is_show, is_disable, create_time, update_time
|
||||
)
|
||||
SELECT
|
||||
@diag_menu_id, 'A', '新增跟踪备注', '', 80,
|
||||
'tcm.diagnosis/addTrackingNote', '', '',
|
||||
'', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE @diag_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM zyt_system_menu WHERE perms = 'tcm.diagnosis/addTrackingNote');
|
||||
|
||||
INSERT INTO zyt_system_menu (
|
||||
pid, type, name, icon, sort, perms, paths, component,
|
||||
selected, params, is_cache, is_show, is_disable, create_time, update_time
|
||||
)
|
||||
SELECT
|
||||
@diag_menu_id, 'A', '跟踪备注列表', '', 81,
|
||||
'tcm.diagnosis/trackingNotes', '', '',
|
||||
'', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE @diag_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM zyt_system_menu WHERE perms = 'tcm.diagnosis/trackingNotes');
|
||||
@@ -0,0 +1,16 @@
|
||||
-- 诊单跟踪备注表(按天一条,多次追加更新;只存文字,不含附件)
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zyt_tracking_note` (
|
||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
|
||||
`diagnosis_id` int(11) unsigned NOT NULL COMMENT '诊单ID (tcm_diagnosis.id)',
|
||||
`admin_id` int(11) unsigned NOT NULL DEFAULT 0 COMMENT '记录人ID (system_admin.id)',
|
||||
`note_date` date NOT NULL COMMENT '记录日期',
|
||||
`content` text DEFAULT NULL COMMENT '跟踪备注文字(多次追加以换行分隔,带 [HH:MM] 前缀)',
|
||||
`create_time` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`update_time` int(10) unsigned NOT NULL DEFAULT 0,
|
||||
`delete_time` int(10) unsigned DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_diagnosis_date` (`diagnosis_id`, `note_date`),
|
||||
KEY `idx_admin` (`admin_id`),
|
||||
KEY `idx_diagnosis_date` (`diagnosis_id`, `note_date`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='诊单跟踪备注';
|
||||
Reference in New Issue
Block a user