1d6beaa3765b498ab1bae523d3d43f8ead0166ef
日报此前把明细压到极简(修改只列变更字段≥3 的记录、新增只给模块计数), "199 条新增只看到 3 个模块名",查不到某条具体记录改了什么。 但也不能全塞进正文:实测某日 354 条修改展开近 3000 行,客户端渲染卡顿, 部分企业邮件网关会把超长自动邮件判为垃圾或截断 —— 发件方照样收到 250, 表面看一切正常,这比"信息少"更难排查。 故拆成两路:正文保持摘要(render),附件给全量明细(render_excel), 六个工作表不设 DETAIL_MIN_FIELDS 之类的阈值。 - email_service: send_email/send_email_async 支持 attachments。数据是内存 字节、不落盘;中文文件名走 RFC 2231;.xlsx 用官方 MIME 类型,写错会让 Outlook 当成未知二进制、附件无法直接打开。 - audit_export_service: 新增。审计日志 → 可读值/Excel 的共用层。 「同一条「实际审批人ID: 7」一边翻了人名一边没翻」这类漂移,比不翻译更 难发现,故取值/翻译/排版逻辑集中在此,由日报与审计页导出共用。 - daily_report_service: 私有副本改为消费上述共用层(纯重构)。 附件大小与重构前逐字节一致(490.5K / 193.9K / 10.3K),行为未变。 附件生成失败时降级为纯文本正文继续发送,但记 error 级日志 —— 降级后邮件 看起来完全正常,不留显眼日志的话附件静默丢失可以持续几个月没人发现。
Description
No description provided
Languages
Python
70.2%
CSS
14.9%
Vue
7.6%
HTML
4.2%
TypeScript
3.1%