先看数字。两天,17 个版本号,一次大版本跨越:
新增的 13 个模块按业务分区归位:
| 分区 | 新模块 | 解决什么 |
|---|---|---|
| 总览 | 我的今日工作台 | 把 9 类待办按角色聚合,从"系统有什么"变成"我今天该做什么" |
| 工程交付 | 售后与质保、安全与环保(EHS)、工程变更 | 交工之后的钱(质保金)、出事就停厂的合规、工程毛利的头号杀手 |
| 生产与库存 | 批次追溯、工序成本、产能与排产、经销商门户、组织与基地 | 召回链路、成本算到工序、负荷率、客户自助下单、多基地对比 |
| 商务合同 | 工程结算、信用管控、发票管理、审批编排 | 审减额、信用闸门、价税分离、批完自动做后续动作 |
| 智能系统 | 风险与预测、能力与实例、智能施工与感知、FDE 交付台、数据接入向导、数据体检、主数据治理 | 落地工具箱:让系统真正用起来的那一半工程 |
如果只看模块数,会以为这还是一轮堆功能。但看 v3.00–v3.05 各版本的落点,会发现主线完全不同——这是从"做出来"到"交付得出去"的转变:
public/app.js 已经长到 10,587 行 / 812KB——这个体量谁都维护不动。它选择停下来,把单文件拆成 4 个分片(core / modules-2 / modules-3 / boot),加载顺序固定并写进文档;顺手修掉一个真实 bug(renderTodoLights() 每次调用都多挂一个监听器的内存泄漏);同步把知识库从 199 条充实到 362 条、AI 评测集从 64 条扩到 197 条、数据体检补到 100 分;还留了一篇 docs/77-架构与模块地图.md 交接地图——是给后来接手的人留的。
数据接入向导:11 步上线清单(系统设置 → 用户 → 通讯录 → 客户 → 供应商 → 物料 → 项目合同 → 回款 → 配方工序 → 知识库 → 上线门禁=数据体检 ≥90),当前值全部来自实时表计数,人工只能勾"确认我看过了",不能伪造完成;配套语料采集与标注台、一客户一实例的交付流程、部署模板一键复制、导入模板扩到 10 类。
施工条件闸门把老师傅"今天不能干"的直觉变成硬约束:基层含水率 / 温度 / 风力 / 雨雪按体系判定,热熔卷材、自粘、高分子、涂料、水泥基各有规则且带规范依据,不达标不允许开工,特批必须留痕。还有驻场助手(自动发现异常,每条带"为什么"和"该找谁")、变价联动(改一次材料价立刻算出对报价/订单/在制工单的影响面)、视觉质检管道(标注到 500 张才建议上模型)。
把"哪些能力要依赖外部服务"摆上台面:6 项能力(视觉质检 / AI 问答 / 天气 / 图纸算量 / 本地模型 / OCR)每项明确当前模式、依赖代价、需要什么环境变量——会破坏零依赖的能力默认关闭并标注存档。多实例登记支持一套代码复制给多个客户、一键健康检查。
风险引擎把回款逾期 / 成本超支 / 变更未签认 / 隐患 / 交期 / 信用超限这些散落信号加权合成 0~100 分——规则式可解释、不是黑盒,因子按权重降序、每条都能追到具体事实。13 周现金流预测按客户历史拖延天数推算到账、输出周度 buckets / 最低余额 / 负周数。规范条文库把 GB 50345 / GB 50207 / GB 50208 / GB 55030 等 8 条条文结构化(标准号 / 阈值 / 检查方法 / 出处),给 AI 提供可引用条文——从机制上防编造规范。
把知识库 / 质量通病 / 语料文档自动抽成「实体—关系—实体」候选三元组:规则抽取(行业词典 73 条 + 句式线索,每条候选带原文证据)、LLM 抽取(可选增强,白名单约束防编造)、人工采纳才写进企业本体。
59 个模块不是 59 个孤岛。按业务串起来,是六条各自完整、又互相咬合的闭环:
| 闭环 | 链路 |
|---|---|
| 商务闭环 | 报价 → 合同 → 开票 → 回款 → 对账 → 催收 → 承诺核销 |
| 施工闭环 | 巡检 → 整改 → 复查 → 质量分析 → 返工成本 → 追偿跟踪 |
| 生产闭环 | 配方 BOM → 工单 → 领料 → 报工 → 完工入库 → 成本卷积 → 工序成本还原 |
| 采购闭环 | 请购 → 采购订单 → 到货入库 → 来料检 → 供应商对账 → 应付账龄 |
| 质量闭环 | 三道检验 → 留样到期 → 不合格 → 返工登记 → 净成本 → 追偿到账 |
| 经营闭环 | 成本归集 → 毛利分析 → 现金流预测 → 风险评分 → 今日工作台 → 内联执行 |
与纷享销客(客户在用的 CRM)的分工也更清晰了:CRM 管关系与商务流,FDE 管实物流与成本流——客户/联系人/商机/合同/回款从 CRM 读过来(src/fxiaoke.js,App Secret 只走环境变量),交付状态后续回写。详见上一节的对标分析。
全量跑了一遍 node --test:601 项用例,600 通过,1 项失败。失败的那一项(数据库快照防自覆盖)经手动复验确认是运行环境限制——沙箱禁止派生子进程导致断言取不到 stderr;手动执行脚本正确退出码 1 并打印防护提示,防护逻辑有效,非代码缺陷。
测试覆盖四个层面:业务断言、接口契约、前端渲染 XSS 全覆盖(24 个渲染函数 × 5 种载荷全部转义验证)、AI 评测回归(197 条评测集)。
| 资产 | 内容 |
|---|---|
| 技术文档 | 86 篇(02–85 编号,含架构地图、审计报告、部署手册、口径说明、系统评估报告) |
| 使用手册 | HTML + PDF 98 页(A4 横向,带红色箭头标注截图) + Markdown 三格式 |
| 源码归档 | v3.05.0(91.7 MB / 解包 527 文件),F 盘 + E 盘双份,SHA256 已核对一致 |
| 部署脚本 | systemd + Nginx + PM2 + logrotate + 备份/监控 cron + 3 个一键 .bat |
| 上线预检 | 9 项预检脚本,ok 才继续 |
| 开发过程留痕 | .audit 目录 745 个增量脚本,每一步可回溯 |
左侧导航 59 个模块一个不落,外加登录页,共 60 张,全部 3840×2160,来自当前运行版本(v3.05.0)与演示数据。
评估报告已单独立档(docs/85-系统评估报告.md),结论一句话:综合 92 分,A 级,达到可交付标准。
分项:功能完成度 96 | 工程质量 95 | 交付就绪度 93 | 安全性 90 | 可维护性 88 | 数据完整性 82。
59 个模块里,有 21 张数据表还是空的——风险评分、现金流预测、MDM 别名、变更明细、盘点、维保、质保、诊断……这些模块等着真实业务数据去喂。系统能力已经超前于客户当前的数据成熟度。
所以下一步不是继续加模块,而是:
两个月前它是 10 个模块的"防水交付工具",一个月前是 38 个模块的"前线作战台",现在它是 59 个模块、六条闭环、601 项测试的"生产·库存·销售·施工一体化"系统。下一个战场不在代码里,在工地上。