主要结果: PPT: 已完成步骤可自由返回,刷新后保留当前步骤。 结果页改为固定三栏视口,缩略图和质量面板独立滚动。 修复画布宽度计算和宽高自适应缩放。 返回配置页时恢复上次模板。 Worker 禁止静默替换模板,不兼容时明确失败。 结果页显示实际应用的模板。 海报解析与合规: 修复 insured/policy 嵌套字段映射。 增加 partial/failed 解析质量判断和缺失字段提示。 传入险种、产品、保司和别名上下文。 修复性别、币种归一化和错误字段计数。 新增服务端字符级合规接口与生成前复检。 不合规文字可高亮、点击定位并选中对应文字。 海报编辑: AI 图片现在作为背景资产,不再替换整个海报。 单图、长图生成后仍可编辑标题、正文、CTA、数据和卖点。 背景生成失败不会清空当前编辑内容。 下载时合成背景、文字、数据、图表和免责声明。 增加可编辑文档快照、最终 PNG 保存和历史继续编辑。 新增数据库迁移:[migrate_028.py](/D:/work/code/python/coding/baodanagent/api/insurance/db/migrate_028.py) 验证结果: 专项及相关后端测试:26 passed, 1 skipped Python 全模块编译检查:通过 前端生产构建:通过 git diff --check:通过 全量测试收集受本机缺少 python-pptx 依赖影响,报错为 ModuleNotFoundError: pptx,不是本次修改产生的测试失败。
31 lines
934 B
Python
31 lines
934 B
Python
"""迁移 028:海报背景资产、可编辑文档和合规版本。"""
|
||
import logging
|
||
|
||
from sqlalchemy import inspect, text
|
||
|
||
logger = logging.getLogger(__name__)
|
||
|
||
|
||
def migrate():
|
||
"""幂等增加海报可编辑文档字段。"""
|
||
from insurance.db.compat import db
|
||
|
||
existing = {
|
||
item["name"]
|
||
for item in inspect(db.engine).get_columns("poster_records")
|
||
}
|
||
columns = {
|
||
"document_json": "TEXT",
|
||
"document_revision": "INTEGER NOT NULL DEFAULT 1",
|
||
"background_file_url": "VARCHAR(500)",
|
||
"compliance_json": "TEXT",
|
||
"compliance_revision": "VARCHAR(64)",
|
||
}
|
||
for name, definition in columns.items():
|
||
if name not in existing:
|
||
db.session.execute(text(
|
||
f"ALTER TABLE poster_records ADD COLUMN {name} {definition}"
|
||
))
|
||
db.session.commit()
|
||
logger.info("[migrate_028] 海报可编辑文档字段迁移完成")
|