## 问题 - 后台任务在提取B1参数时引用未定义函数(calculate_popularity_score、calculate_patent_score),导致计算中止,步骤未入库。 ## 修复方案 1) 移除未定义函数引用,在 `_extract_calculation_params_b1` 内实现本地计算: - 普及地域分:mapping {全球覆盖:10,全国覆盖:7,区域覆盖:4},默认7 - 专利分:按剩余年限近似 {>10年:10,5-10年:7,<5年:3};用已有 `calculate_total_years(data_list)` 近似转换 - 保留创新投入比与搜索指数、行业均值等现有逻辑 - 增加logger输出:popularity_score、innovation_ratio、patent_score 2) 确保步骤写入链路: - 计算入口:先创建估值记录取 `valuation_id`;将 `valuation_id` 传入统一计算器;计算后用 `ValuationAssessmentUpdate` 更新记录 - 模型B汇总:对经济B1、文化B2、风险B3的计算改为 `await` 并传 `valuation_id` - 市场C与风险B3保持原有按 `valuation_id` 写入 3) 日志增强: - 在步骤创建与更新时写入日志(calcstep.create/update/list) - 在估值初始化与更新时写入日志(valuation.init_created/updated) ## 验证 - 重启服务、运行脚本;查看服务日志:应出现calcstep.create/update/list与valuation.updated;Admin脚本打印“后台估值计算步骤”。 ——确认后我将按以上方案进行代码调整并回填日志。