更新
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
-- 自动分配日志菜单(挂在「数据统计」目录下,紧邻复诊接诊率)
|
||||
-- 页面路径: /stats/auto_assign_log
|
||||
-- 前端组件: /stats/auto_assign_log/index
|
||||
-- 查询权限: stats.autoAssignLog/lists
|
||||
-- 数据来源: zyt_tcm_diagnosis_auto_assign_log(定时命令 tcm:auto-assign-pending 写入)
|
||||
|
||||
SET @stats_root_id = (SELECT id FROM zyt_system_menu WHERE name = '数据统计' AND type = 'M' LIMIT 1);
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT
|
||||
@stats_root_id, 'C', '自动分配日志', '', 12,
|
||||
'stats.autoAssignLog/lists', '/stats/auto_assign_log', '/stats/auto_assign_log/index',
|
||||
'', '', 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE @stats_root_id IS NOT NULL
|
||||
AND NOT EXISTS (SELECT 1 FROM zyt_system_menu WHERE perms = 'stats.autoAssignLog/lists');
|
||||
@@ -0,0 +1,21 @@
|
||||
-- 注册「待分配诊单自动指派」定时任务,每天 09:00 执行一次
|
||||
-- 命令本体:server/app/command/AutoAssignPendingDiagnosis.php,已在 server/config/console.php 注册为 tcm:auto-assign-pending
|
||||
-- 规则:按上个自然月二诊复诊接诊率分档轮询分配(>70% 每人3条/日,60%~70% 每人2条/日,50%~60% 每人1条/日,<50% 不分)
|
||||
-- 依赖:先执行同目录 add_tcm_diagnosis_auto_assign_log.sql 建日志表
|
||||
-- expression 字段为 5 段标准 cron(分 时 日 月 周),依赖系统层每分钟执行 php think crontab
|
||||
|
||||
INSERT INTO `zyt_dev_crontab` (
|
||||
`name`, `type`, `system`, `remark`, `command`, `params`,
|
||||
`status`, `expression`, `create_time`, `update_time`
|
||||
) VALUES (
|
||||
'待分配诊单自动指派',
|
||||
1,
|
||||
0,
|
||||
'每天按上月二诊复诊接诊率分档轮询分配待指派诊单,分配与未分配原因写入 zyt_tcm_diagnosis_auto_assign_log',
|
||||
'tcm:auto-assign-pending',
|
||||
'',
|
||||
1,
|
||||
'0 9 * * *',
|
||||
UNIX_TIMESTAMP(),
|
||||
UNIX_TIMESTAMP()
|
||||
);
|
||||
@@ -0,0 +1,29 @@
|
||||
-- 待分配诊单「自动指派」执行日志表
|
||||
-- 由定时命令 tcm:auto-assign-pending 写入:每条待指派诊单一行,记录分配结果与原因(为什么分配 / 为什么不分配)
|
||||
-- 分档依据:上个自然月「二诊复诊接诊率」(RevisitRateLogic 口径,visit2_rate)
|
||||
-- >70% 日上限 3 条
|
||||
-- 60%-70% 日上限 2 条
|
||||
-- 50%-60% 日上限 1 条
|
||||
-- <50% 或无数据 不参与分配
|
||||
CREATE TABLE IF NOT EXISTS `zyt_tcm_diagnosis_auto_assign_log` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`batch_no` varchar(32) NOT NULL DEFAULT '' COMMENT '本次执行批次号(同一次命令执行相同)',
|
||||
`run_date` varchar(10) NOT NULL DEFAULT '' COMMENT '执行日期 Y-m-d(当日额度按此汇总)',
|
||||
`stat_month` varchar(7) NOT NULL DEFAULT '' COMMENT '接诊率统计月份 Y-m(上个自然月)',
|
||||
`diagnosis_id` int unsigned NOT NULL DEFAULT 0 COMMENT '诊单ID',
|
||||
`patient_name` varchar(64) NOT NULL DEFAULT '' COMMENT '患者姓名(快照)',
|
||||
`patient_phone` varchar(32) NOT NULL DEFAULT '' COMMENT '患者手机号(快照)',
|
||||
`action` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '结果:1=已分配 0=未分配',
|
||||
`assistant_id` int unsigned NOT NULL DEFAULT 0 COMMENT '分得的医助管理员ID(未分配为0)',
|
||||
`assistant_name` varchar(64) NOT NULL DEFAULT '' COMMENT '分得的医助姓名(快照)',
|
||||
`tier` varchar(16) NOT NULL DEFAULT '' COMMENT '接诊率档位:gt70 / 60_70 / 50_60(未分配为空)',
|
||||
`visit2_rate` decimal(8,2) NULL DEFAULT NULL COMMENT '该医助上月二诊复诊接诊率(%),未分配为NULL',
|
||||
`round_no` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '第几轮分得(1起;未分配为0)',
|
||||
`reason` varchar(500) NOT NULL DEFAULT '' COMMENT '分配 / 不分配原因说明',
|
||||
`create_time` int unsigned NOT NULL DEFAULT 0 COMMENT '记录时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_run_date` (`run_date`),
|
||||
KEY `idx_diagnosis_id` (`diagnosis_id`),
|
||||
KEY `idx_assistant_run` (`assistant_id`, `run_date`),
|
||||
KEY `idx_batch_no` (`batch_no`)
|
||||
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '待分配诊单自动指派日志';
|
||||
Reference in New Issue
Block a user