-- 复诊到期提醒企微推送定时任务(P2,方案 §5.2),模板 04_add_revisit_due_crontab.sql。 -- 依赖:先执行 02/03(快照与流水表);服务器 crontab 每分钟 php think crontab;首次 last_time 为空时调度器只记下次时间不执行。 -- status=1 直接启用,但命令内部先读 project.revisit_reach.wecom_enabled:默认 false 时每次只输出「未启用」即返回(空跑,不调企微、不写流水); -- 产品确认开启后把配置改为 true 即生效,不需要再改本表。 -- 命令内部整体 try/catch 并 return 0,避免 Crontab::start 将任务置 ERROR;params 不超过 64 字符。 -- 幂等:按 command + params 判重,可重复执行。 INSERT INTO `zyt_dev_crontab` (`name`,`type`,`system`,`remark`,`command`,`params`,`status`,`expression`,`create_time`,`update_time`) SELECT '复诊到期企微-每日汇总', 1, 0, '每位有到期未挂号/过号行的医助一条企微汇总(wecom_enabled=false 时空跑)', 'tcm:revisit-due-notify', '--mode=daily', 1, '0 9 * * *', UNIX_TIMESTAMP(), UNIX_TIMESTAMP() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `zyt_dev_crontab` WHERE `command`='tcm:revisit-due-notify' AND `params`='--mode=daily' AND `delete_time` IS NULL); INSERT INTO `zyt_dev_crontab` (`name`,`type`,`system`,`remark`,`command`,`params`,`status`,`expression`,`create_time`,`update_time`) SELECT '复诊到期企微-升级推送', 1, 0, 'escalation_level>=3 的行推本人(每行每日≤wecom_daily_cap),snooze_count>=5 每日抄送主管一次(wecom_enabled=false 时空跑)', 'tcm:revisit-due-notify', '--mode=tick', 1, '*/30 * * * *', UNIX_TIMESTAMP(), UNIX_TIMESTAMP() FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM `zyt_dev_crontab` WHERE `command`='tcm:revisit-due-notify' AND `params`='--mode=tick' AND `delete_time` IS NULL);