first commit

This commit is contained in:
Your Name
2026-09-08 11:40:15 +08:00
commit a5353f7eb5
9568 changed files with 1646214 additions and 0 deletions
@@ -0,0 +1,6 @@
-- 自动释放诊单医助(已发货/已签收)时,在指派日志中快照关联业务订单创建人与创建时间
-- 首次执行即可;若列已存在重复执行会报错,可忽略或手动注释掉本文件
ALTER TABLE `zyt_tcm_diagnosis_assign_log`
ADD COLUMN `related_po_creator_id` int unsigned NOT NULL DEFAULT 0 COMMENT '快照:触发本次释放的业务订单 creator_id' AFTER `ip`,
ADD COLUMN `related_po_create_time` int unsigned NOT NULL DEFAULT 0 COMMENT '快照:触发本次释放的业务订单 create_timeunix);与 from_assistant_id 一致时为医助创建订单时间' AFTER `related_po_creator_id`;
@@ -0,0 +1,17 @@
# 2026-05-07
# (perms=tcm.diagnosis/lists)
# tcm.diagnosis/dailyRecord ////
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', '日常记录', '', 59,
'tcm.diagnosis/dailyRecord', '', '',
'', '', 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/dailyRecord');
@@ -0,0 +1,22 @@
# tab2026-05-07
# (perms=tcm.diagnosis/lists)
# tcm.diagnosis/patientOrders tab
#
#
# - tab
# - tab /tcm.prescriptionOrder/lists
# tcm.prescriptionOrder/lists tab /
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/patientOrders', '', '',
'', '', 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/patientOrders');
@@ -0,0 +1,6 @@
-- 非二中心医助因业务订单已发货/已签收被自动释放后打标,履约核对等任务不再重复处理同一诊单(人工重新指派医助后可再次参与)
ALTER TABLE `zyt_tcm_diagnosis`
ADD COLUMN `shipped_non_er_assistant_cleared_at` int(10) unsigned NOT NULL DEFAULT 0
COMMENT '非二中心医助·发货/签收自动释放诊单医助的时间戳;>0 且 assistant_id=0 时跳过重复核对'
AFTER `assistant_id`;
@@ -0,0 +1,3 @@
-- 添加处方用量袋数字段(浓缩水丸等开方场景,1-5袋)
ALTER TABLE `zyt_tcm_prescription`
ADD COLUMN `dosage_bag_count` TINYINT UNSIGNED NOT NULL DEFAULT 1 COMMENT '用量袋数(1-5袋)' AFTER `dosage_unit`;
@@ -0,0 +1,20 @@
-- 注册「同步诊单 IM 聊天记录归档」定时任务,每 30 分钟跑一次
-- 命令本体:server/app/common/command/SyncImChatArchive.php,已在 server/config/console.php 注册为 sync_im_chat_archive
-- 参数:--since-days=7 仅处理最近 7 天有更新的诊单,--limit=200 单轮最多处理 200 个诊单
-- expression 字段为 5 段标准 cron(分 时 日 月 周),与 likeadmin la_dev_crontab 保持一致
INSERT INTO `zyt_dev_crontab` (
`name`, `type`, `system`, `remark`, `command`, `params`,
`status`, `expression`, `create_time`, `update_time`
) VALUES (
'同步诊单IM聊天记录',
1,
0,
'从腾讯云 IM 拉取近 7 天有更新诊单的漫游消息归档到 tcm_im_chat_message',
'sync_im_chat_archive',
'--since-days=7 --limit=200',
1,
'*/30 * * * *',
UNIX_TIMESTAMP(),
UNIX_TIMESTAMP()
);
@@ -0,0 +1,28 @@
-- 诊单腾讯云 IM 单聊消息归档(定时从 admin_getroammsg 同步,突破云端约 7 天漫游限制)
-- 已在生产部分环境创建(参见 server/database/migrations/create_tcm_im_chat_message.sql
-- 此处使用 IF NOT EXISTS 安全重入,确保新环境部署时一并建表
CREATE TABLE IF NOT EXISTS `zyt_tcm_im_chat_message` (
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`diagnosis_id` int unsigned NOT NULL DEFAULT 0 COMMENT '诊单ID',
`patient_id` int unsigned NOT NULL DEFAULT 0 COMMENT '患者ID(冗余,便于按患者维度排查/统计)',
`msg_id` varchar(160) NOT NULL DEFAULT '' COMMENT '业务唯一键:MsgSeq_MsgRandom_From_Account',
`from_account` varchar(64) NOT NULL DEFAULT '' COMMENT '发送方 IM UserID',
`to_account` varchar(64) NOT NULL DEFAULT '' COMMENT '接收方 IM UserID',
`msg_time` int unsigned NOT NULL DEFAULT 0 COMMENT '消息时间 Unix 时间戳',
`is_from_doctor` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '是否医生/医助侧发送',
`msg_type` varchar(32) NOT NULL DEFAULT '' COMMENT 'text/image/file/sound/video/custom/...',
`text` mediumtext COMMENT '文本或自定义消息 Data',
`image_url` varchar(1024) NOT NULL DEFAULT '' COMMENT '图片 URL',
`file_url` varchar(1024) NOT NULL DEFAULT '' COMMENT '文件/语音/视频 URL',
`file_name` varchar(512) NOT NULL DEFAULT '' COMMENT '文件名',
`raw_elem_type` varchar(64) NOT NULL DEFAULT '' COMMENT 'TIM 元素类型',
`from_staff_name` varchar(64) NOT NULL DEFAULT '' COMMENT '医生侧姓名快照',
`doctor_peer_account` varchar(64) NOT NULL DEFAULT '' COMMENT '拉取会话时使用的医生侧账号 doctor_*',
`create_time` int unsigned NOT NULL DEFAULT 0 COMMENT '入库时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_msg_id` (`msg_id`),
KEY `idx_diagnosis_time` (`diagnosis_id`,`msg_time`),
KEY `idx_patient_time` (`patient_id`,`msg_time`),
KEY `idx_msg_time` (`msg_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='诊单IM聊天记录归档';
@@ -0,0 +1,15 @@
-- 业绩看板「预约诊单」挂号明细接口(fans/yeji · pid=293
-- 幂等:按 perms 判重
INSERT INTO `zyt_system_menu`
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
SELECT
293, 'A', '业绩-预约挂号明细', '', 12,
'stats.yejiStats/appointmentLines', '', '', '', '',
1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
FROM DUAL
WHERE EXISTS (SELECT 1 FROM `zyt_system_menu` p WHERE p.id = 293)
AND NOT EXISTS (
SELECT 1 FROM `zyt_system_menu` m
WHERE m.perms = 'stats.yejiStats/appointmentLines'
);