Files
ERP/requirements/OA-PARITY-AUDIT.md
QiufengandClaude Opus 4.8 5e51dc3f56 SNAPSHOT W7 已部署稳定态 — 凯迪ERP+OA一体化平台 (MET 73.3%)
恢复点(restore point)。别人改崩后可 git reset --hard 回到此提交。

== 此快照内容 ==
- 后端 oa-backend: 734 控制器 / 711 实体 (Spring Boot 3.2.5 + SQLite, 端口8091)
- 前端 modern-ui/app: Vue3+Vite, 约700页 (构建产物已在 oa-backend/src/main/resources/static)
- 数据库 oa-backend/data/oa.db: 含全部演示数据 (强制入库, 6.6MB)
- 交接文档 go.md + go-code-reference/endpoints/entities/database.md
- 多代理建设脚本 .claude/wf-*.js

== 状态 ==
- 对 凯迪科技ERP_20260507.xlsx 合规 MET ~73.3% (PARTIAL 75: 34可建+6种子/bug+35外部硬天花板)
- 安全: 5轮红队+5轮复检, default-deny分级鉴权, 连续零可利用
- W3~W7 累计补完436缺口; W8末轮(40缺口)为半成品(源码树可编译但未集成)
- 运行: cd oa-backend; java -jar build/libs/oa-backend-0.1.0.jar --server.port=8091; admin/123456

== 排除(gitignore, 可再生) ==
node_modules / oa-backend/build / .jdks / *.log / Backup-ERP-* / 弃用的OFBiz核心(只保留modern-ui)
完整文件夹备份见同目录 Backup-ERP-20260615-191517/ (含上述全部, 仅缺 node_modules)

时间戳: 20260615-191517

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 19:19:15 +08:00

65 KiB
Raw Permalink Blame History

OA 还原度与甲方符合度 — 最终验收报告

首席验收官综合三轮对抗审计(22 个 lane 评分 + 223 条对抗校验确认缺口 + 致远口径完整性批判 + 甲方口径完整性批判)产出。本报告口径为「对抗校验后的真相」,刻意克制、不取演示乐观值。先前 OA-PARITY-RESULT.md 报出的「92% / 死控件 0」是点击层乐观口径;本报告补的是数据层与协作语义层的真相,二者不冲突——界面与单链闭环确实做到了,但多人分派、通知触达、状态机审批驱动、深功能引擎大面积空心化。


一、两个总分

维度 终值 说明
致远 OA 整体复刻度 71% 按可对照致远原生模块的 9 个 lane 加权(协同/会议/文化/知识/文档协作/目标/HR/通讯录报表/应用定制 + 32审批流程),再扣 3 分深功能天花板(富文本/在线预览/实时协同/全文检索/消息中心五项标志能力缺失)。复刻了致远的「形」(界面与单链审批闭环),未复刻其「神」(多人协作分派 + 通知触达 + 并行抄送)。
甲方 Request.MD 整体符合度 50% 按甲方 10 统一模块 / 7 逻辑链 / 32 审批流程 / B 类整建制部门加权,再扣 2 分(流程驱动自动触发引擎缺失 + 数据中心未独立成模块)。骨架与主线 100% 落地、32 审批流程全部入库,但绝大多数 B 类业务模块停在「增/查」浅 CRUD,深度仅一层;甲方最强调的「按公司主体条件分流」「全链审批驱动闭环」「文件多格式可视化」三大卖点均未真正达成。

加权前 lane 原始均值:致远 73.6%、甲方 51.8%。深功能天花板扣分后为本报告终值。

⚠️ 上表 71%/50% 是最初对抗审计的基线真相2026-06-11)。其后经 V5/S/T/U/V/W/X 七批真修复,最新终值见文末第十三章 致远复刻度 ≈ 96% · 甲方符合度 ≈ 92%(四口径:点击 99% / 数据 93% / 协作语义 89% / 引擎天花板 87%)。中间演进:71/50 → V5 73/53 → S 80/66 → T 89/75 → U 91/81 → V 93/86 → W批1 94/88 → W批2 95/90 → X 96/92。所有降级处均如实标注,绝不取乐观值。


二、确认缺口清单(223 条对抗校验后,按 high / medium / low 分级)

每条标注:[严重度/口径] 位置 — 摘要(修复成本)。口径=致远表示对照致远原生 OA 的功能差距;口径=甲方表示对照 Request.MD 的需求缺口。修复成本 small/medium/large 为工程量估计。

HIGH(阻断性,影响模块核心定性)

# 口径 位置 缺口 修复
H1 致远 approvals CAP 引擎 / WorkflowService 17 处条件分支在真实表单输入下永远只走第一个 case——分支标签是设计期路由描述/伪表达式(如「所属公司==湖南凯迪…」),引擎只做子串匹配,表单值永不命中;集团主体等整条支路不可达。甲方§5最强调的「按公司主体条件分流」端到端失效。 large
H2 致远 collab/TaskController:39 + store.ts:200 待办箱不按办理人分派——/tasks?type=todo 只按 status 过滤,user 维度不读;任何人发起的在途事项都进我的待办(实测 todo 返回含刘洋/王芳/陈静/我 4 人)。flow_task.assignee 恒被写成操作人。任务分派层是装饰性的。 large
H3 致远 collab/handle.vue:71 + WorkflowService:237 转交/加签无人员选择器、后端不真正改派——actions 直接 handle(action),仅一个意见域;advance 对转交/加签仅 addTrace+置「办理中」,不新建指向他人的 FlowTask、不改 assignee。转交/加签谁也没真正收到。 large
H4 致远 collab/WorkflowService:312 + OaFlowDiagram 知会/协同节点无并行抄送语义,被当审批节点逐个阻塞——21 个知会/协同节点退化为必点的串行审批,并行被 DFS 串行展开。画出了知会标签(形),流转语义(神)未实现。 large
H5 致远 collab/center.vue:48 vs /form-templates 流程中心 12 条 BPM-T 模板与真正可发起的 44 个后端模板完全不同源——流程中心展示页面内置硬编码 seed(塞进键值表),与引擎实际流转的模板零交集。「流程设计器」按钮仅 router.push+toast。 large
H6 致远 meeting/minutes.vue + MeetingMinuteController 会议纪要无决议项/审核/编辑/删除,删改返回误导性 500——实体仅 id/title/content,无 status/decisions;控制器只有 list+createDELETE/PATCH 落到 Spring 静态资源处理器被全局映射成 500。 large
H7 致远 meeting/room.vue + MeetingRoomController 会议室为只读派生视图,无独立预订/取消,后端零防重订——bookings 全由 meetings 派生;点格子只弹只读详情;无 RoomBooking 实体、无 roomId FK 校验、无时段重叠校验(curl 实测同室 01:00-03:00 与 02:00-04:00 双订均成功)。 large
H8 致远 culture 四控制器全体 新闻/公告/讨论/调查/动态均无编辑/删除/置顶变更/上下线——四控制器 grep Put/Delete/Patch 零命中;发布后无法改、无法撤回、无法事后置顶/关闭调查。 medium
H9 致远 knowledge/favorites.vue + reader/article.vue 收藏「打开原文」对文档/知识/模板类型为死链——readerTypeOf 把这些类型映射为 type=doc,但 FETCHERS 只定义 news/notice/discuss/blog/rss,无 doc 取数器→直接跳「内容不存在」页。 medium
H10 甲方 archive/library.vue + 后端 机密档案无 token 即可全量读取——权限控制完全是装饰;后端连版本/状态/留存字段都没有,「可随时调取修正」在数据模型层不成立。 large
H11 甲方 archive/library.vue §四.4 文件可视化是假渲染——仅按 fileType 分形态占位网格,无真实 PDF/OFD/docx/xlsx/pptx/mp4 渲染器,后端无文件流端点。甲方反复强调的卖点为半成品。 large
H12 甲方 chains 七链 / 各回写点 所有链状态迁移完全绕过统一 WorkflowService 审批引擎——「已生效/已付/已用印」由客户端直接置位即触发主数据回写,无真实多级审批;验收凭证非幂等(回退/前进重进会重复生成、虚增产值);发票回写不分进项/销项导致应付被当应收混入资金池。 large
H13 甲方 payment 资金支付中心 资金支付中枢与表单流程引擎完全不相通——任务 B4 的「byinvoice/PaymentController/fundpool」是简化台账旁路,无审批、无子表、无状态流转;后端盲信 client status=已付即回写合同+自动记账(钱权分离漏洞)。 large
H14 甲方 crm 统一CRM 商机创建后完全不可改/不可流转/不可删(后端零 PUT/PATCH/DELETE);§2.1 点名的评估立项/报备查重/竞争对手分析/下浮率统计/市场项目分析全部为零;情报转商机在 UI 层根本不存在;CRM 内甚至不含客户管理页。 large
H15 甲方 dept_modules 13 个 B 类控制器 一律只有 list+get{id}+creategrep 零 Put/Delete/Patch),13 页全复用 MasterDataPage 且无一传 #detail 插槽→所有 @GetMapping(/{id}) 成死代码;create 无校验(借贷皆空、金额 -999 的凭证仍入库);多分录凭证/账簿/结转/MRP排程/BOM联动/在线监测/电子记录本等核心近乎全缺。 large
H16 甲方 全仓 grep 自动触发/流程驱动/记账 流程驱动自动触发引擎缺失——「数据条件生成后自动触发成本风险检查/生产排程/财务记账」(数据中心定调的核心)零实现;项目 advance 不自动联动下游。 large

MEDIUM(功能性割裂或深度不足)

# 口径 位置 缺口 修复
M1 致远 collab/monitor.vue:33 督办/催办不持久化(urgedIds 本地 Set,刷新即丢,后端无 urge 端点);超期为 i%6===0 伪随机标记,非按真实截止时间。 medium
M2 致远 collab/CollabListPage.vue:92 删除/归档/批处理/转发全前端本地态(reactive Set),刷新复原;转发只弹 toast 不产生对方待办。 medium
M3 致远 collab/WorkflowService:188 办理推进后零提醒派发——advance 全程无 notification/站内信/inbox 写入;协作闭环缺通知这一环。 medium
M4 致远 meeting/create.vue + Meeting.java 全模块缺附件上传(违反 OA-SPEC§2.2 明列项),实体无 attachment 字段,纪要也无附件。 medium
M5 致远 meeting/quick.vue POST 会议创建无防重订/无 roomId FK/无时段校验(roomId=88888 成功落库、endTime<startTime 成功落库)。 medium
M6 致远 culture/survey.vue + SurveyController.vote 调查投票无完整性防护——已结束问卷可投、可无限重复投(后端无 status 判断、不记投票人、不去重),votedIds 仅内存。数据可信度问题。 medium
M7 致远 culture/survey.vue 调查仍是单题单选,非多题问卷+题型+分题统计;surveyQuestions/surveyStats(四题型)零引用,无独立作答页。 large
M8 致远 culture/news.vue + AnnouncementController 发布无分类选择,子分类一旦使用即数据黑洞(category 自由串、列表写死按「新闻/公告」查,党建工作类两个列表都不可见)。 medium
M9 致远 `culture/news notice discuss.vue` + reader
M10 致远 culture/share.vue + FeedController 享空间侧栏(热门话题/活跃同事)硬编码假数据,后端无接口(GET /feeds/topics 返回 500);评论只计数不存正文(comment 是无参方法、Feed 无 commentsJson);点赞/转发刷新即丢。 medium
M11 致远 culture/share.vue:88 发动态作者/部门硬编码「张伟/工程部」,非当前登录用户;回帖同样硬编码。 small
M12 致远 knowledge 文档中心 RSS资讯/知识地图关联/文档库台账元数据仍前端 mock;文档无版本表/无原件存储/无删改移;文件夹只读不可增删改;libmgr 新建的文档库在文档中心根本不出现。 large
M13 致远 knowledge/doccenter.vue:331 文档版本是前端按 version 字段「7 天递推编造」的假历史(注释自承「后端暂无版本接口,本地派生」),无真实快照/对比/回滚。 medium
M14 致远 doccollab 列表 + 版本/评论 列表展示全表而非「我参与的」;版本 editor 与评论 author 全部脱离真实登录态(displayName/users/depts 三个真实 API 都存在却被硬编码 mock 绕开);后端零校验(乱状态/虚构参与人照收)。 medium
M15 致远 OaFormRenderer.vue 人员/部门选择器是写死 MOCK_PEOPLE/MOCK_DEPTS10人9部门),不接 HR 组织树,无「部门树+搜索+多选」标准选人组件。 medium
M16 致远 api/search.ts 全文检索是浅表 LIKE 且范围窄(仅 7 类实体字段),不覆盖协同正文/文档正文/新闻公告/会议纪要;无分词/高亮/相关度/分面。 medium
M17 致远 OaAppShell.vue:138 消息中心只有写死 :value="8" 假徽标——点击无下拉、无 /message 路由、后端无 MessageController;首页「我的消息」挂件静态。 medium
M18 致远 流程引擎运行态 缺字段级校验/联动/公式/默认值表达式;缺会签或签百分比/退回重走/超时跳转/加签减签运行态/委托代理/网关条件运行时求值;缺表单与流程的字段级权限矩阵。 large
M19 致远 hr 信息项 + staff 信息项设置整套(必填/档案显示/排序/22项)纯自存自取,staff 零消费;员工档案硬编码 7 字段不可扩展;统计有现成 ErpDonutChart 仍用 CSS 条。 medium
M20 甲方 masterdata 8 控制器 8 张主数据档案表仅「增/查」,零 PUT/零 DELETE(脏数据无法清理);社会信用代码可重复录入、发票价税合计不自动算、日期全裸文本框;统一主档去重/外键引用/供应商准入子表/资质台账基本缺失。 large
M21 甲方 contract 变更回写 变更回写零 referential-integrity/状态机守卫——给不存在的合同(99999)发终止能落 orphan、已结算合同能被直接终止、负数金额变更存为「已生效」却静默不回写;详情「关联发票」误按 projectId 取数;列表全 client 端 substring 搜索。 medium
M22 甲方 payment §353 「按公司主体+金额阈值动态选择审批链」即便在表单流程侧也未实现——各主体彼此独立静态模板,branches=[],无金额菱形分流,需人工选模板。 large
M23 甲方 sealcenter 三页 用章中心零引用 5 个已建好的印签表单模板,用自己极简 SealUse 模型直接入台账绕过合规闸门;前端无审批入口、用印单号 null、§5.1.5 表单字段缺失、审批意见不落库。 medium
M24 甲方 ehs 闭环 安全隐患与质量体系(CAPA/内审/管理评审)双双无状态流转闭环(PUT/DELETE/export 全 500);三体系认证未接告警引擎;EHS 看板既不消费 /alerts 也不按 dueDate 判逾期。 medium
M25 甲方 budget 深度 深度只到「列表+搜索+新建」;§2.2 成控部 7 项核心(标准成本体系/BOM会签/中标清单导入比对/单价超支/历史价参考链)全缺;后端状态机覆盖用户输入、上级无 FK、项目自由文本。 large
M26 甲方 bidding_intel 投标立项/阶段管理与「人工筛选转商机」完全缺失;爬取全程模拟、转情报数字不入库;convert/approve/PUT/DELETE 端点不存在;投标台账连只读详情都没有。 medium
M27 甲方 rd 研发 全模块 create-onlyPUT/DELETE 均 500),无状态流转/审批;6/8 页无详情;实体间无外键校验;auto-collect 后端可用却无页面入口(死功能)。 medium
M28 甲方 §2.3 申报政策库 政策研究解读/政策库/匹配推送(申报全流程上游环节)零命中。 medium
M29 甲方 §2.9 资质台账 企业/人员/其他资质分类台账与到期预警无独立落地。 medium
M30 甲方 §2.11 数据中心 数据中心职能被拆散到 intel/crawl + appdev/ops + archive,无统一数据中心模块入口,与「档案+数据管理合并由数据中心主导」不完全吻合。 medium
M31 甲方 appdev CAP 自建表单无任何删除路径,探针垃圾模板(audit_probe/r2_probe)永久滞留;「应用管理/监测/运维」运行态三件套是零专属后端的前端 mockDELETE/PUT=500、publishedAt 恒 null。 medium
M32 甲方 contacts_report 报表无设计入口;analysis 时间筛选是伪切片只作用柱状图(KPI/环形/明细全忽略时间范围,自相矛盾);占比图类型定义后从未产出。 medium

LOW(外观/边角/夸大文案)

# 口径 位置 缺口 修复
L1 致远 collab 全模块 时间戳直接渲染原始 ISO 串(带毫秒和 Z 的 UTC),未转本地时区/未格式化。 small
L2 致远 collab/portal.vue:39 门户「本月发起/本月办结」实为全量统计,标签与口径不符。 small
L3 致远 collab/mock.ts 残留 mock.ts 假数据被 center.vue 引用、buildItems/buildTrace 为死代码(跨 12 模块引用,清理需跨 lane 协调)。 small
L4 致远 meeting/mockData.ts 富模型 mockData.ts(329 行,含决议项/冲突检测/纪要状态/缺席)为死代码未被引用。 medium
L5 致远 meeting/minutes POST 纪要无 FK 完整性校验(meetingId=99999 / null 成功落库),配合无 delete 端点→永久污染。 small
L6 致远 meeting/mine.vue 会议→纪要交叉跳转不带 meetingId,后端支持 ?meetingId 过滤却从不调用,跨页上下文丢失。 small
L7 致远 meeting/quick.vue 入会通知/会议号/日程同步均纯文案未实现;mode(视频/电话)仅影响文案 desc 不落库。 medium
L8 致远 culture/discuss.vue:154 发起讨论的分类下拉与库内真实分类两套(只「综合讨论」一项重合)。 small
L9 致远 culture 四控制器 全模块列表零分页,一次性返回全表。 medium
L10 致远 culture/notice.vue 公告发布范围只写不读——无可见性过滤、无已读/未读率统计。 medium
L11 甲方 §2.2 工法全链 工法挖掘/研究/省级国家级申报/工法费用预算无落地(grep「工法」零命中)。 medium
L12 甲方 内控部·法务 「诉讼信息监控」无落地(grep「诉讼/法务风险」零命中)。 medium
L13 甲方 §2.10 文化案例库 「项目文化案例库/优秀人物事迹/项目知识沉淀」未单独成页。 small
L14 甲方 masterdata 预警 统一预警链路存在但只认手填 status 不认 expireDate,过期证件留默认「有效」即漏报。 small
L15 甲方 移动端 仅单页聚合工作台,缺移动审批办理/移动消息/移动通讯录/扫码/推送(甲方口径仅要求「统一移动工作台」,按甲方口径可接受)。 medium

完整 223 条逐条证据见 OA-PARITY-GAPS.md;本表为验收级归并(同根因合并、按定性影响排序),未逐字复制 223 行。


三、优先级 Punch-List(先修 high 且 small/medium 的)

排序原则:性价比优先——一处改动撬动多模块、修复成本低于影响范围者排前。带 ★ 为「一处组件全站复用」的高杠杆项。

第一批(高杠杆 / 中低成本,1-2 周可见质变)

  1. ★ 富文本编辑器(M9)——一处组件,全站复用(协同正文/新闻/公告/讨论/协作正文),直接拉高三大模块内容质感。杠杆最高。
  2. ★ 待办箱按办理人分派 + assignee 写真实节点角色H2)——修 TaskController 的 user 维度 + WorkflowService advance 的 assignee 赋值,让「我的待办」真正只显示派到我的任务。这是多人协作的地基。
  3. ★ 真实登录态贯通M11/M14/H10)——displayName/users/depts 三个真实 API 已存在,把硬编码「张伟/工程部」「机密档案无 token 全读」的绕开点接回真实身份上下文。修复成本 small,消除多处身份空心化。
  4. 会议室/纪要/会议 FK + 状态机守卫H6/H7/M5/L5)——补 RoomBooking 实体 + 时段重叠校验 + roomId FK;纪要补 update/delete/status,干净返回 405 而非误导性 500。
  5. culture 四控制器补 Put/Delete + 分类受控字典(H8/M8)——发布后可改/可撤回/可置顶;category 改受控枚举消除「子分类数据黑洞」。
  6. knowledge 收藏「打开原文」doc 取数器H9)——FETCHERS 补 doc 分支,消除死链跳「内容不存在」。修复成本 medium,直接救活收藏夹核心动作。
  7. chains 验收凭证幂等 + 发票进项/销项区分(H12 部分)——给验收凭证生成加幂等键、发票回写按类型分流应收/应付,堵住虚增产值与资金池串账两个数据级漏洞。

第二批(high 但成本 large,需排期)

  1. 条件分支真实表达式求值引擎(H1)——把伪表达式/子串匹配换成对表单值的真实条件求值,让「按公司主体分流」端到端可达。甲方§5 第一卖点。
  2. 转交/加签人员选择器 + 真正改派(H3)——动作条弹组织树选人,advance 新建指向他人的 FlowTask 并改 assignee。
  3. 知会/协同并行抄送语义H4)——walkChain 区分审批/抄送节点,抄送不阻塞主链、并行真并发。
  4. 文件多格式在线预览H11)——pdf.js + mammoth + xlsx 前端渲染,或后端 kkfileview;补文件流端点。甲方§四.4 卖点。
  5. 资金支付中枢并入表单流程引擎(H13/M22)——废旁路台账,付款走表单+多级审批+金额阈值菱形分流;去掉「client status=已付即回写」的钱权分离漏洞。
  6. B 类部门模块补 PUT/DELETE/详情 + create 校验(H15)——13 个控制器统一补改删、传 #detail 插槽激活死代码、create 加非空/金额合法性校验。
  7. 流程驱动自动触发引擎(H16)——项目状态迁移联动下游成本检查/排程/记账,落实数据中心定调。
  8. CRM/招投标/研发补状态流转H14/M26/M27)——商机/投标/研发实体补 PUT/PATCH/DELETE + 状态机,从「录入只读」升级为可流转。

第三批(low / 收尾,批量清理)

  1. 时间戳本地化格式化(L1,全 collab 一处过滤器)。
  2. 清理 mock.ts 死数据 + center.vue 假人名下拉(L3,跨 12 模块协调)。
  3. 列表分页(L9culture/dept 全表返回)。
  4. 督办/催办持久化 + 真实超期计算(M1)。
  5. 移动端审批办理/消息/通讯录补全(L15,仅严格致远口径需要)。

四、严格口径天花板项(深功能,单列说明)

以下五项是致远 A6/A8 的标志性深功能,当前为「外壳/占位/降级」。它们不是 bug,是整块能力缺失,工程量大、且是复刻度从 71% 迈向 85%+ 的真正天花板。建议作为独立大任务排期,不混入 punch-list 常规修复。

  1. 实时协同编辑(天花板·最大工程量)——doccollab 所谓「在线协作文档」退化为单 textarea:无 WebSocket、无 yjs/CRDT、无光标/在线状态/并发合并(grep websocket/yjs/socket 全 src 零命中,「实时」全是 label 误命中)。多人同编会互相覆盖。这是「文档协作」模块的核心卖点,当前名存实亡。 可降级方案:锁编辑 + 留痕。

  2. 富文本编辑器(天花板·性价比最高)——全站正文均为纯 textarea,无 wangEditor/tiptap/quill。影响协同/知识/文化三大模块的内容质量。建议第一批先修(见 punch-list #1),但其「全站富文本存储/回显/图文附件内嵌」的完整形态属天花板级。

  3. 文件在线预览引擎(天花板)——doccenter/archive/library 预览抽屉只有占位 div + 文字提示,下载只导元数据 txt 快照,无 pdf.js/mammoth/OnlyOffice/iframe、后端无文件流端点。致远是点开即 OnlyOffice/kkfileview 真渲染 Office/PDF/OFD/音视频 11 种格式。

  4. 统一消息中心(天花板)——顶栏铃铛是写死 :value="8" 假徽标,无下拉、无消息列表页、无 /message 路由、后端无 MessageController。致远是统一消息中心(待办/@我/系统/业务通知,已读未读/分类/跳源)。配合「办理推进零通知派发」(M3),整个主动触达层为零

  5. 可自定义门户 + 全文检索引擎(天花板)——门户是固定卡片网格,无挂件拖拽/增删/多门户 Tab/布局保存,顶栏九宫格是空按钮;全文检索是浅表 LIKE,不覆盖正文、无分词/高亮/相关度/分面。致远是拖拽式自定义门户 + 跨全站含文档正文全文检索 + 高亮分面。

此外,流程引擎运行态深规则(M18:会签或签百分比/退回重走/超时跳转/加签减签运行态/委托代理/网关条件运行时求值/字段级权限矩阵)虽主线能跑,但 OA 审批的「深规则」未覆盖,亦属天花板范畴。表单设计器/流程设计器本身(真 HTML5 拖拽 + schema 实时预览)是确认的亮点,非占位。


五、一句话结论

当前平台是一个界面与单链审批闭环高保真、32 审批流程全部入库、主干七链可演示的「演示级一体化骨架」——复刻了致远的形(71%)、满足了甲方的骨架(50%),但多人协作分派、通知触达、审批驱动的状态机回写、以及富文本/在线预览/实时协同/全文检索/消息中心五项深功能天花板系统性空心化,距「可运维、审批驱动、全链闭环」的生产级 ERP+OA 一体化平台尚有实质工程量,且这部分工作量集中在数据层与协作语义层,而非界面层。


六、V5 本轮已修复(2026-06-11 验收后修复批次,均已端到端验证)

本批聚焦「数据层 CRUD + 完整性守卫」这一性价比最高的层面,把大量 medium/部分 high 缺口从「发布即不可改 / 删改报 500 / 录入只读」升级为真实可改删可流转。引擎级深功能(H1/H2/H3/H4/H13/H16)与五项天花板未触碰,仍按独立大任务排期。

缺口 修复内容 验证
H8 致远 新闻/公告/讨论补 PUT+DELETE;前端补「编辑/删除」按钮(二次确认) 端到端 create→PUT(200)→DELETE(200)→GET(404)UI 按钮渲染
M6/M7 致远 调查补 PUT(开启/结束)+DELETEvote 加 status 守卫 + voter 去重;前端结束/删除按钮、已结束禁投 结束后投票→400「问卷已结束」
H6 致远 会议纪要补 PATCH+DELETE + status/decisions 字段;前端删除+状态编辑,删改不再报误导性 500 DELETE /minutes 由 500→404
H7/M5 致远 会议创建加 endTime>startTime + roomId FK + 同室时段重叠守卫 后端校验生效
H9 致远 收藏「打开原文」死链修复——统一 fav 阅读页按收藏 id 渲染收藏记录 浏览器实测正常渲染,不再「内容不存在」
H14 甲方 CRM 商机补 PATCH+DELETE + 阶段流转;前端编辑/删除/改 stage DELETE /opportunities→200
M20 甲方 主数据(供应商/客户/公司/银行/发票/印章)补 PUT+DELETE;供应商社会信用代码查重;发票价税合计自动算 DELETE /suppliers 由 500→404
M21 甲方 合同变更加 referential-integrity:关联合同不存在/负数金额/已结算合同终止 一律 400 守卫在代码
M11 致远 享空间发动态作者由硬编码「张伟/工程部」改为取当前登录态 fetchSession+部门树解析 已接线
M31 甲方 清理审计遗留探针脏数据(21 条探针待办 + 3 个探针模板),待办箱由 34→13 条全真实 浏览器实测 13 条全合法

修复口径影响(克制估计):致远复刻度 71% → 约 73-74%;甲方符合度 50% → 约 53-54%。提升有限,因为天花板与引擎级 highH1/H2/H3/H4/H13/H16)未动,那才是分数的真正瓶颈。本批价值在于:把「演示级骨架」的数据层从大面积只读/500 升级为真实可运维 CRUD,为后续引擎级改造扫清了地基层障碍。


七、S 批修复(2026-06-12,重扫 4 代理对账 + 3 代理修复 + 浏览器真点回归)

本轮先用 4 个只读核查代理逐条复核全部 high/medium/low 的「当前真实状态」(FIXED/OPEN/PARTIAL),再用 3 个修复代理 + 主程手改并发修复,最后 Chrome 插件驱动真实浏览器把关键链路逐一 E2E 点验。

7.1 本批确认「已是 FIXED」(之前批次修过,本轮复核确认)

  • 会议 endTime>startTime / roomId FK / 同室时段重叠守卫(H7/M5);讨论分类两套已统一(L8);报表 analysis 时间筛选对 KPI/环形/柱状/明细全生效(M32);新闻/公告/讨论/调查/纪要 增删(H8/H6/M6/M7);CRM/主数据 增删(H14/M20 后端);收藏打开原文(H9);路由 100% 覆盖无缺页;42 表单模板 id/name 无冲突、edges 无孤立节点。

7.2 本批新修(均已构建通过;★ 为浏览器 E2E 实测确认)

缺口 修复 验证
★ H15+M20 数据层 keystone 共享组件 MasterDataPage 加「编辑/删除」(详情抽屉);后端 20 个 B 类台账(凭证/科目/工单/库存/样品/仪器/设计/监理/审计/IT资产/排污/水质/证件 + EHS质量/安全 + 研发4)补 PUT/DELETE26 个主数据/台账页接线改删 浏览器删供应商 DupTest B,列表 9→8 真落库(已删 toast,刷新不复活)
★ H3 转交/加签真改派 后端 advance 带 targetUser→关旧任务+建指向他人新任务+assigneeOverrideTaskController 待办按 override 精确归属;前端办理动作弹「搜索选人」对话框 浏览器转交「费用报销」给刘洋,发起人全部待办 2→1(离箱改派)
★ M26 情报转商机 后端 POST /intel/{id}/convert-opportunity(建 CRM 商机+回写 opportunityId+状态,幂等);前端详情「转为商机」按钮 浏览器把「怀化市鹤城区」跟进中→已转商机,生成关联商机
M22 金额阈值条件求值 WorkflowService 新增 evaluateNumericCondition:解析「金额 ≥ 1万元」做真实数值比较(万×10000),文本分流(按公司主体)保留子串回退 8 组样例单测通过;编译通过
M1 督办持久化 后端 POST /tasks/{id}/urgeurgeCount+lastUrgedAt 落库);超期由 i%6 伪随机改为 submittedAt+3天<now 构建通过
M2 列表批操作落库 实例 DELETE/archive 端点;删除真落库、转发改为产生对方待办 构建通过
★ L1 时间戳格式化 utils/datetime.ts 统一 YYYY-MM-DD HH:mm 本地时区,collab 各页替换裸 ISO 浏览器待办/轨迹时间已格式化
L2/L3 门户口径/清 mock 门户「本月」真按月过滤;center.vue 人员/部门改取真实通讯录 构建通过
M4 会议附件 Meeting.attachmentJson + create.vue 附件区 构建+重启建列通过
M10 享空间评论存正文 Feed.commentsJson + POST /feeds/{id}/comment 存正文 + 热门话题/活跃同事改后端聚合端点 构建通过
L9 culture 四控制器分页 list 加 pageNo/pageSize(默认 200 向后兼容) 构建通过
L10 公告范围读侧 部分(publishRange 过滤端点) 构建通过
M19 HR 信息项被消费 staff.vue 读 hr-fields 配置控制列可见/必填 构建通过
M24/M27 EHS/研发流转 质量/安全/研发 补 PUT/DELETE(状态可改可删) 构建+接线通过
L14/M29 证件到期自动预警 AlertScheduler 每小时真扫 PersonnelCert.expireDate30天内/已过期 自动改判状态(幂等) 构建通过

7.3 本批仍未修(诚实清单——genuine 工程天花板,非几小时可成 100%)

这些从本平台立项起就被标注为「整块能力缺失/深功能天花板」,不在「直接修复」范围,需作为独立大任务排期:

  1. 实时协同编辑doccollab 多人同编 yjs/CRDT/WebSocket)——天花板,最大工程量,当前为单 textarea。
  2. 文件多格式在线真渲染H11pdf.js/mammoth/OnlyOffice/kkfileview + 后端文件流)——当前为占位预览。
  3. 全文检索真引擎(分词/高亮/相关度/分面/覆盖正文)——当前浅表 LIKE。
  4. 流程引擎运行态深规则(M18:会签或签百分比/退回选历史节点/超时跳转/委托代理/网关条件运行时全表达式求值/字段级权限矩阵)——主线能跑,深规则未覆盖。
  5. H4 知会/协同并行抄送语义——仍按串行审批逐个阻塞,未实现「抄送不阻塞主链+真并行」。
  6. H16 状态迁移自动联动下游——证件到期自动预警已做(部分),但「项目状态迁移→自动触发成本检查/排程/记账」的事件驱动引擎未建。
  7. 甲方深功能:标准成本体系/BOM 会签/中标清单导入比对(M25)、申报政策库匹配推送(M28)、统一数据中心独立模块(M30)、工法全链/诉讼监控/文化案例库(L11-13)——均未单独落地。

7.4 S 批后诚实再评级(四口径)

口径 含义 本轮前 本轮后 说明
点击层(界面可用) 菜单/页面/控件可点可加载、无死链 ~92% ~95% 26 页补改删后「录入只读」基本消除;剩余占位仅深功能预览/设计器本地草稿
数据层(CRUD+完整性) 增改删可运维、守卫、不串账 ~70% ~88% B 类台账 + 主数据全面可改删;FK/幂等/去重守卫到位;转商机/督办/批操作落库
协作语义层(分派+流转+触达) 待办分派、转交改派、通知、条件分流 ~45% ~68% 转交真改派、按办理人分派、金额数值分流、消息中心已实;H4 并行抄送、公司主体文本分流深度仍欠
引擎/天花板层 实时协同/全文检索/真预览/流程深规则 ~25% ~28% 基本未动(本就不在「直接修复」范围);这是 100% 的真正天花板

加权终值(克制口径)

  • 致远 OA 整体复刻度:~73% → 约 80%(界面+数据+协作语义大幅补齐;五项深功能天花板仍系统性空心,封顶在此)。
  • 甲方 Request.MD 整体符合度:~54% → 约 66%(B 类整建制部门从浅 CRUD 升级为可运维、转商机/EHS/研发可流转、证件自动预警;但流程驱动自动触发、文件真预览、标准成本/BOM 深度、政策库等甲方深卖点仍欠)。

7.5 一句话结论(S 批后)

界面与数据层已达「可运维、可改删、守卫齐全」的准生产水准(点击 95% / 数据 88%),协作语义层补到「真分派+真改派+数值分流」(68%);但「实时协同编辑 / 全文检索真引擎 / 文件多格式真渲染 / 流程引擎深规则 / 全链状态机自动触发」五大深功能是确认的工程天花板,不是几小时能修成 100% 的——它们才是从当前 80%/66% 迈向 95%+ 的真正瓶颈,建议作为独立里程碑排期。本轮把「能修的全修了」,没修的都如实列在 7.3。


八、T 批:攻深功能天花板(2026-06-12,4 引擎代理并发 + 浏览器 E2E 实测)

用户授权「全部同时直接干」。装好真实依赖(yjs / pdfjs-dist / mammoth / xlsx / Spring WebSocket starter),4 个引擎代理按不重叠文件域并发实现,主程整合+浏览器逐项真点验。均为真实现(务实降级处如实标注)。

8.1 四大深功能落地 + 验证

天花板项 实现 验证(★=浏览器 E2E 实测真过)
全文检索真引擎 SQLite FTS5 + trigram(CJK)分词,索引 11 类实体正文/标题(事项/公告/讨论/调查/纪要/合同/供应商/客户/公司/文档/协作文档),snippet()高亮 + bm25()排序 + 类型分面;<3字 LIKE 回退。启动重建索引(76 条)。 搜「凯迪」→ 10 条跨实体结果 + 分面(合同5/公司5),正文摘要命中
文件多格式在线真渲染 后端 StoredFile(BLOB)+ POST /files真上传 + GET /files/{id}/stream取流;前端 FilePreview 用 pdfjs-dist(PDF逐页canvas) / mammoth(docx→html) / SheetJS(xlsx→表) / img / video 真渲染;接档案库+文档中心真上传。修复 SQLite @Lob byte[] 读取 500 bug(改 plain byte[])。 上传 CSV→取流 200 返回真内容;FilePreview 三格式构建产物已出
实时协同编辑 真 yjs CRDT over Spring WebSocket 二进制中继 + 更新日志持久化(新加入者补发收敛);编辑器 + 在线人数 + 连接态 + 断线重连。 双标签同文档:标签1输入→标签2实时出现(真跨客户端 CRDT 同步)
流程引擎深规则 + H4 + H16 退回选历史节点(真)、委托代理(真:受托人共享待办)、会签/或签投票(真:按 label 解析阈值)、超时识别+通知(务实:不自动跳)、知会/协同并行抄送非阻塞(真)、状态迁移自动触发下游+留痕(务实:合同生效为真回写,余者留痕)。 退回 E2E「已退回」离箱;转交改派 E2E(S 批已验);会签/委托/历史picker 构建+实现就绪

8.2 务实降级(如实标注,非"真 100%"

  • 实时协同:textarea 整体替换式绑定(非字符级 diff),并发同区编辑为粗合并、光标恢复尽力而为;升级 y-prosemirror/y-codemirror 可得字符级合并+稳定光标。真 CRDT 收敛无误,仅编辑器精细度务实。
  • 超时跳转:做到"识别滞留>3天+标记+通知当前办理人+预警中心出条目",未做"自动跳过节点"。
  • H16 自动联动:迁移点接线+留痕,真回写仅"合同办结→合同已生效"一条,余者只留触发痕迹。
  • 会签分母:按节点 label 解析候选人数,非真多办理人解析。
  • 全文检索:启动期+手动 reindex,非实时增量;snippet 仅高亮 body 列。

8.3 仍未做(剩余,诚实)

  • 富文本编辑器(punch-list #1,本批未做——协同编辑器仍是 textarea,可后续接 tiptap+yjs 一并解决富文本+协同)。
  • 自定义门户拖拽(挂件拖拽/多门户布局保存)。
  • 甲方深功能:标准成本体系/BOM 会签深度(M25)、申报政策库匹配推送(M28)、统一数据中心独立模块(M30)。

8.4 T 批后诚实再评级(四口径)

口径 S 批后 → T 批后 说明
点击层 ~95% → ~96% 新增真搜索/真预览/协同编辑入口
数据层 ~88% → ~89% 文件流/索引为新数据能力
协作语义层 ~68% → ~78% 退回选节点/委托/会签/并行抄送补齐
引擎/天花板层 ~28% → ~62% 4 大深功能从空心→真实现(全文检索/文件预览/实时协同/流程深规则);剩富文本/门户拖拽/字符级CRDT/全自动触发

加权终值(克制口径):

  • 致远 OA 整体复刻度:~80% → 约 89%(五大标志深功能 4 项已真实现,仅富文本编辑器与门户拖拽未达 → 封顶约 90)。
  • 甲方 Request.MD 整体符合度:~66% → 约 75%(文件多格式真渲染卖点达成、流程深规则、全文检索;标准成本/BOM 深度/政策库/数据中心独立模块仍欠 → 封顶此)。

8.5 一句话结论(T 批后)

当前平台:点击 96% / 数据 89% / 协作语义 78% / 引擎层 62%——致远复刻度约 89%、甲方符合度约 75%。从「演示级骨架」一路推到「准生产级一体化平台」:界面+数据+协作+四大深功能(全文检索/文件真预览/实时协同/流程深规则)均为真实现且浏览器实测可用。剩余封顶项是富文本编辑器、自定义门户拖拽、字符级协同光标、全自动状态触发引擎、甲方标准成本/BOM/政策库深度——这些是从 89/75 迈向 95+ 的最后里程碑,务实降级处已在 8.2 逐条标注,绝不取乐观值。


九、U 批:补齐最后里程碑 + 修复致命构建阻断(2026-06-12,3 体验代理并发 + 主程整合验收)

接 T 批剩余封顶项(富文本/门户拖拽/甲方深功能)。3 代理并发实现后,主程整合构建,浏览器逐项 E2E 真点验。本批同时发现并修复一个致命级构建 bug

9.0 ★ 致命构建阻断(本批最重要发现,已修复)

  • 现象:U 批整合构建虽 vite build 绿、gradlew bootJar 成功、后端启动 200,但整站打开是纯白页(#app 0 子节点,Vue 根本未挂载)。即"构建通过 ≠ 能跑"——若不在浏览器实测,会把"100% 完成"交付成"打开啥都没有"。
  • 根因:vite.config.tsmanualChunks 把 Vue 单独拆到 vendor-vue 块,而 U 批新增的 Vue 耦合库(tiptap/prosemirror/yjs/vuedraggable)落到通用 vendor 块,运行期 vendor 先于 vendor-vue 求值 → 跨块 TDZ:ReferenceError: Cannot access 'W' before initialization(vendor-vue) → 整包初始化失败 → 白屏。
  • 修复:改 manualChunks——vue + 所有 Vue 耦合库合并进同一 vendor 块(块内循环依赖由 Rollup 正确提升),纯叶子重库(pdfjs/xlsx/mammoth)各自隔离。重建后整站正常挂载,控制台 0 报错(清缓冲后重载实测)。
  • 教训:vite build 不捕获运行期 init-order bug;凡构建后必须浏览器真打开验证挂载,不能只看构建日志绿。

9.1 三大体验/深功能落地 + 验证(★=浏览器 E2E 实测真过)

实现 验证
富文本编辑器(tiptap v3) RichTextEditor.vue:StarterKit + Image,工具条 加粗/斜体/下划线/删除线/H1H2/列表/引用/链接/图片/撤销重做;接入 会议纪要/新建协作/文化新闻/文化讨论。 新建协作页输入 CJK 正文 + 点 H1 生效(按钮激活态),右侧预览「正文字数」实时更新 25 字
协同编辑器升级富文本 /doccollab/editor/:id 由 textarea 升级为 tiptap + @tiptap/extension-collaboration over Y.Doc(undoRedo:false 交给 yjs);连接态 + 在线人数。 打开协同编辑器:「已连接」绿标 + 「在线 1 人」+ tiptap 工具条,控制台 0 报错(WS /ws/collab/1 真连)
自定义门户拖拽 OaPortalPage.vue:WIDGET_REGISTRY(待办/日程/消息/模板报表/跟踪) + vuedraggable 拖拽重排 + 增删挂件 + 按用户持久化 portal-layout-{user} 门户首页渲染挂件网格 + 「添加挂件」+ 「拖动卡片标题可重排」提示
甲方·标准成本 /budget/standardcost:料+工+费→标准成本,实际成本,差异=实际−标准;差异超支整行染红/节约染绿/持平不染 + 状态徽标;录入/编辑/删除。 6 条真数据(储能电池模组 超支+¥1,100 红 / 光伏逆变器 节约−¥500 绿 / 智能控制器 持平 ¥0),染色 + 徽标 + ¥ 格式全对
甲方·BOM 会签 /budget/bom:工程量比对(投标量/实际量/增减/超量) + 详情抽屉五签链(研发→工艺→采购→质量→成本) 通过/退回投票,落库。 10 条真 BOM(靖州供水项目);抽屉提交「研发 通过(张伟)」→ 链上「未签→通过(张伟)」+ 后端 signoffs 落库 1 条
甲方·申报政策库 + 匹配推荐 /rd/policylib:政策台账(主管部门/类别/标签/资助金额/截止/状态) + 匹配推荐 Tab:按企业画像标签命中政策,命中数降序 + 剩 X 天到期预警。 6 条真政策;匹配 Tab 6 命中(水处理专项 命中3 / 专精特新 命中2…),命中标签高亮 + 剩 111/34 天倒计时
甲方·统一数据中心 /datacenter 顶级模块:总览(各域记录计数聚合) + 数据治理(重复/缺失扫描) + 数据同步日志。 总览真聚合:133 记录总数 / 66 主数据 / 20 档案 / 47 业务数据 + 按域计数表(company 7/supplier 8/costCenter 10…)

注:标准成本/政策库 本批新建时表为空,已用 API 真造 6+6 条凯迪行业真数据(储能/光伏/水务/环保)使两页可演示,顺带验证 POST 创建端点。BOM 10 条原已 seed。

9.2 务实降级(如实标注)

  • 协同光标:在线人数为文档级在席,非字符级远程光标/选区(y-prosemirror awareness 可补)。CRDT 收敛与富文本同步为真。
  • 甲方深功能为"真数据 + 可用流程",非"全业务规则引擎":标准成本未做多级成本中心上卷、BOM 未做多级展开/版本对比、政策库未做"申报→立项→拨付"全生命周期工作流——均是台账 + 单步动作 + 计算/匹配真,深层自动化规则未做。
  • 数据治理为真扫描(重复/缺失计数),但未做一键纠数。

9.3 设计质量 pass(按设计铁律抽查承载形态/排版/间距)

  • 新页全部复用 ErpPageHeader + 设计令牌 + 共享表格,全站一致;无 emoji,图标仅 @element-plus/icons-vue。
  • 承载形态判断正确:列表台账→整页;BOM 详情+会签→抽屉(轻量查看+侧边动作,正确);政策库/匹配→Tab 分栏;新建协作→整页 + 左右分栏(编辑区 + 实时预览);新建/编辑→弹窗
  • 标准成本差异染色用浅色 tint(非刺眼大红/大绿) + 徽标,信息突出而克制。整体排版/间距协调,达"美观 + 简单易用"。

9.4 U 批后诚实再评级(四口径)

口径 T 批后 → U 批后 说明
点击层 ~96% → ~97% 富文本/门户拖拽/4 个甲方深功能页全部可点可用
数据层 ~89% → ~90% 标准成本/政策/BOM 会签/数据中心聚合为新真数据
协作语义层 ~78% → ~82% 协同编辑器升级真富文本(tiptap+yjs),富文本接入 4 处
引擎/天花板层 ~62% → ~66% 富文本 + 门户拖拽 + 甲方深功能从空心→真数据可用;剩字符级协同光标、全自动触发引擎、甲方全业务规则

加权终值(克制口径):

  • 致远 OA 整体复刻度:约 89% → 约 91%(五大标志深功能全部到位:全文检索/文件真预览/实时协同/流程深规则/富文本编辑器;门户拖拽亦补;封顶项剩字符级协同光标 + 全自动触发引擎)。
  • 甲方 Request.MD 整体符合度:约 75% → 约 81%(标准成本/BOM 会签/政策库匹配/统一数据中心四个甲方深模块从框架→真数据可用;封顶项剩各模块的深层业务规则引擎)。

9.5 一句话结论(U 批后,含致命修复)

先说最关键的:本批发现并修复了一个会让"100% 交付"变成"白屏 0%"的致命构建阻断(跨块 TDZ),修复后整站正常、控制台 0 报错。 在此之上,U 批把 T 批剩余封顶项(富文本编辑器、门户拖拽、甲方标准成本/BOM 会签/政策库/数据中心)全部做成真实现并浏览器逐项实测真过——点击 97% / 数据 90% / 协作语义 82% / 引擎层 66%,致远复刻度约 91%、甲方符合度约 81%。功能可用层已逼近 100%(OA + 甲方所需功能"全部到位且真能跑"),诚实的天花板剩在引擎神似层:字符级协同光标、全自动状态触发引擎、甲方各模块的深层业务规则——这是任何"几小时复刻"都到不了、需长期工程的真天花板,绝不以乐观值充作 100%。


十、V 批:攻最后引擎天花板(2026-06-12,用户「继续推」+ 工作流编排 scout→implement→对抗review + 主程整合实测)

直取 U 批点名的 4 个真天花板。1 个编排工作流并发 4 域(各 scout→implement→独立对抗复核),主程整合构建 + 浏览器/接口逐项 E2E 真验。4 域全部真实现且实测真过。

10.1 四大天花板落地 + 验证(★=浏览器/接口 E2E 实测真过)

天花板项 实现 验证
字符级协同远程光标 y-protocols Awareness over 既有 WS 中继(帧加 1 字节类型前缀:0=文档更新持久化+回放,1=awareness 只广播不落库) + tiptap @tiptap/extension-collaboration-caret;逐用户光标+姓名标签+稳定哈希色 + 在线在席。 双标签同文档:标签A打字→标签B实时出现文字 + 标签A光标处显示带「张伟」姓名标签的远程光标;在线 2 人 + 在席徽标;doc 同步无回归;控制台 0 报错
流程办结全自动触发引擎(H16) WorkflowService.finalize 真调 TriggerRuleEngine.fire();按 templateName+category 命中 6 规则(付款/用印/立项/供应商/合同/验收),写真下游 + AutomationLog 留痕;(实例,规则) 幂等。钱权分离(H13):付款仅生成「待付」单、不放款、不动 paidAmount。 接口 E2E:付款申请办结→自动建「待付」付款单#19(¥50万)+合同 paidAmount 不变(17346→17346,H13真守);项目发起办结→自动建 Project「凯迪智慧水务大数据平台」(立项/进行中);印签模板办结→seal 规则真触发(无待用印记录时如实留痕跳过)。 3 条 automation-log 真落库
统一数据中心·自动联动留痕页 新增 /datacenter/automation 页 + GET /automation-logs;把 H16 自动联动的真实写入(来源事项/联动动作/下游对象#id/规则/说明/时间)可视化——甲方「全链审批驱动闭环」的 UI 留痕。 页面真渲染 2 条联动留痕(项目#5 / 付款单#19),中文对象标签 + 跳转编号 + 格式化时间
BOM 多级展开 + 量价上卷 BomItem 树(parentId)+ GET /bom-items/tree(父=自身+子树之和);前端 el-table 树表(展开/加子项),父行投标量/实际量/金额为含子树上卷合计、加粗、超支红/节约绿。 /budget/bom:PE给水管DN200 为父行,展开 3 子项,父行上卷投标量 11,200 / 金额 ¥537,600 / 超支 +¥41,800(=自身+3子项)
标准成本·成本中心上卷 StandardCost 加 costCenter 维度 + GET /standard-costs/rollup(按成本中心汇总料/工/费/标准/实际/差异+总计);前端页内上卷区 + 超支红/节约绿 + 总计行。 /budget/standardcost:储能事业部[2条]差异+¥1,093 / 光伏[1]−¥500 / 智能控制[3]+¥160 / 总计 +¥753
申报政策全生命周期 PolicyApplication 状态机(申报中→已受理→已立项→已拨付→已结题/已驳回)+ advance/reject 追加时间线;前端政策库加「申报记录」Tab + el-steps 进度条 + 推进时间线抽屉。 /rd/policylib「申报记录」:某申报推进至「已拨付」(¥500万),详情抽屉 el-steps 四步全亮 + 时间线逐条留痕(操作人/意见/时间)

10.2 务实降级(如实标注)

  • 协同光标:真字符级远程光标 + 姓名,但同一用户多标签为同名同色;无光标节流(高频移动可能轻微抖动);awareness 在线计数早期可能短暂偏差。CRDT 收敛与富文本同步为真、无回归。
  • H16 引擎:6 规则覆盖主链,但 合同生效仅命中既有台账时回写、付款为「待付」不放款(H13 设计如此)、用印为「标记既有待用印记录」(无匹配则留痕跳过);非"任意模板任意字段全自动"。
  • BOM 多级:真 2 级树 + 量价上卷,非多级 MRP 展开/版本对比。
  • 成本上卷:真按成本中心单维上卷,非多级成本中心树。
  • 政策生命周期:真线性状态机 + 时间线,非并行/条件分支审批。

10.3 V 批后诚实再评级(四口径)

口径 U 批后 → V 批后 说明
点击层 ~97% → ~98% 4 深功能页 + 自动联动留痕页全部可点可用
数据层 ~90% → ~91% BOM 树/成本上卷/政策申报/自动联动 为新真数据
协作语义层 ~82% → ~86% 文档级在席升级为真字符级远程光标 + 姓名
引擎/天花板层 ~66% → ~75% 全自动触发引擎从「务实留痕」升级为「真办结即联动下游 + H13 守恒 + UI 留痕」——这是分数最大瓶颈的实质突破

加权终值(克制口径):

  • 致远 OA 整体复刻度:约 91% → 约 93%(五大标志深功能全到位 + 字符级协同光标补齐;封顶项仅剩协同光标精细化与全量引擎完备性)。
  • 甲方 Request.MD 整体符合度:约 81% → 约 86%(7 逻辑链「审批驱动自动闭环」真打通:办结自动建付款/项目/合同生效 + UI 留痕;BOM 多级、成本中心上卷、政策全生命周期三大深业务规则落地)。

10.4 一句话结论(V 批后)

点击 98% / 数据 91% / 协作语义 86% / 引擎层 75%——致远复刻度约 93%、甲方符合度约 86%。 本批把 U 批点名的最后天花板逐个变成真实现并实测真过:字符级协同远程光标(双标签真见姓名光标)、流程办结全自动触发引擎(办结即真建下游 + H13 钱权分离守恒 + UI 可视化留痕)、BOM 多级量价上卷、标准成本中心上卷、政策全生命周期状态机。甲方最强调的「全链审批驱动闭环」从"留痕"升级为"真自动联动"。功能可用层已实质等于 100%(OA + 甲方所需全部到位、真能跑、可视),剩余差距是引擎精细化的长期工程(同用户多光标区分、引擎规则全覆盖、多级 MRP/成本树/并行政策审批),已在 10.2 逐条诚实标注,绝不以乐观值充作 100%。


十一、W 批:证据级重扫 + 攻顶批 1(2026-06-12,用户「规划直接进行,把这个作为目标」自主推进)

先用 6 域并发证据级重扫(区分真实现 vs 桩/mock),再按价值×低风险并发攻 6 域。结论先行:平台远比预期"真"——报表/看板/BI 全是真聚合、通知触达真发、119 页无死链、表单引擎发布闭环与条件求值真接线。 重扫只挖出少数真缺口,本批逐个补真。

11.1 重扫确认「已是真实现」(澄清,免误判)

报表中心驾驶舱/BI 跨模块聚合(BusinessBiController 注入 13 repo 真 group-by)、10+ 模块看板(EHS/投标/漏斗/预算/用印…全真 list+客户端聚合)、统一预警中心(@Scheduled 扫 8 类源)、提交/办结/退回/督办/超时真发站内消息、协同光标多标签确定性同色派生、119 菜单页无死链无空路由——这些经源码核对均真,无需重做。

11.2 本批补真 6 域 + 验证(★=浏览器/接口 E2E 实测真过)

缺口 修复 验证
数据真实化(反造假) 删 analysis.vue 时间筛选的臆造系数(×7/365)→ ReportController 加 createdAt 真时间窗;监测中心删硬编码 86.2万次/218ms/0.42% → AppMonitoringController 真聚合 监测中心全真:模板43/实例23(今日新增3)/办结率39%/待办7 + 近7天真日柱状(06-12=3 含本批测试实例)+ 真状态分布环图(待办30%/办理17%/办结39%/退回9%/草稿4%)
流程中心接真模板 center.vue 去本地 KV,真读 /form-templates;FormTemplate 加 enabled + PUT /{id}/enabled toggle;新建事项按 enabled 过滤 真读 43 模板(真分类/节点数/发布时间/启用态);接口实测 加班申请 启用 True→False 落库→再启用,停用后新建事项发起列表过滤掉
成本中心多级责任树 CostCenter 加 parentId;GET /standard-costs/rollup-tree 按责任树自底向上上卷;前端树形展开视图 责任树真上卷:凯迪科技集团(公司) ¥21,099标准/+¥753差异 = 储能[2]+光伏[1]+智能控制[3]事业部之和;另有 工程管理中心→项目→工序 三级真树
@提及真触达 评论/讨论/协作回复解析 @用户名 → MentionService 给真实用户发「提及」站内消息;门户「@我的」改读真 /messages 接口实测:张伟在 feed 评论 @李娜 → 李娜未读 0→1,消息「张伟 在评论中提到了你」(type=提及,sourceType=feed)
CAP 发布闭环 OaFlowDesigner emit save 真传用户编排流程(不再静默丢);OaFormRenderer.validate() 必填真拦截;OaFormWindow.submit 前置校验门;发布写 publishedAt 对抗复核确认三断点真修(emit/validate/submit 门 + publishedAt);自建表单发布后带用户真流程、空必填提交被拦
引擎字符串/主体条件真求值 WorkflowService 加 evaluateStringCondition(== / != / contains / 中文)真求值 + 显式 catch-all 默认 case;并修数值正则识别 ≥ ≤(原仅 ASCII) 子代理用 Gradle 真 classpath 全量 javac 0 错 + 等价仿真:分公司值→分公司链、总公司值→总公司链(原会盲取 cases[0] 误走总公司);主程补 ≥/≤ 归一化

11.3 务实降级(如实标注)

  • 引擎条件:单条件求值,不支持 AND/OR 复合、枚举 in[A,B]、嵌套/数组字段(落默认 case 而非报错)。
  • @提及:仅按 displayName 精确+最长前缀匹配,无拼音/工号/前端 @ 自动补全;名字与 displayName 不一致即静默不发。
  • 监测中心:移除无源 APM 耗时/错误率(本就不该编),呈现真计数/分布;无真时序 APM。
  • CAP:字段配置仍浅(无 min/max/正则/联动显隐),属"做深"非"做通"。

11.4 W 批后诚实再评级(四口径)

口径 V 批后 → W 批后 说明
点击层 ~98% → ~98% 已近顶
数据层 ~91% → ~92% 成本责任树/真监测/真时间窗/模板启停为新真数据,且清除了两处编造数字
协作语义层 ~86% → ~88% @提及从假变真触达 + 消息源统一 + 光标节流
引擎/天花板层 ~75% → ~79% CAP 发布闭环真生效(自定义流程不再被丢+必填真拦)、字符串/主体条件真求值、流程中心接真模板启停影响发起——四项都直抬最低口径

加权终值(克制口径):致远复刻度 约 93% → 约 94%;甲方 Request.MD 符合度 约 86% → 约 88%。仍诚实留作长期工程的最大单项:真并行审批路由(parallels 声明仍被 DFS 串行化,≥4 张真模板的并行审批分支被串行;+5~8 但回归面大,作为隔离批单独攻)。


十二、W 批·攻顶批 2(2026-06-12,隔离批攻最大单项天花板:真并行审批路由)

用户「把这个作为目标」。把第十一章点名的最大单项天花板单独隔离攻:真并行审批路由。先备份引擎文件(可回退),scout→implement→对抗review,主程整合后亲自重回归(单链零回归 + 并行全员通过才进 join),按「干净则上、回归则 revert」铁则决策。结果:干净通过,已上。

12.1 实现(务实但真)

  • 唯一改动 WorkflowService.java(1385→1792 行,纯新增 + activeChain 一处分流)。声明 parallels:[[审批节点...]] 且组内审批成员≥2 的并行块,不再被 DFS 拍平成串行单链择一,而是合成一个「会签同步关卡」(label=会签:成员1、成员2),块内全部并行办理人都「同意」(quorum=去重办理人数)才推进到 join 节点,任一退回按现有退回语义。
  • 复用既有 CountersignVote 会签机器(recordVote/quorum/countersignStatus)——既实现并行同步,又顺带激活了"有代码无场景"的会签路径。FormInstance 零新字段、FlowTask 零新列、零 schema 迁移(进度全落 CountersignVote 表)。
  • 向后兼容硬分流:activeChain 顶部 if(approvalGroups.isEmpty()) walkChain[原方法一字未改] else walkChainParallel。实测 32 甲方 JSON + 11 Java 内置里恰 4 张 JSON(项目印签/成本合同会签/履约进度/年报)进新路径,其余(含全部内置 + CC 并行 + 单审批半并行)isEmpty→走原路径,逐字节等价。

12.2 主程亲自重回归(E2E 实测真过)

测试 结果
单链零回归(费用报销) 部门主管(idx0)→财务审核(idx1)→总经理(idx2)→已办结(idx3),nodeIndex++ 推进/无会签/办结 与改前逐步一致,零回归
并行全员通过才进 join(项目印签) 提交→合成同步节点「会签:资料室戴艳兰、项目监督岗刘吉林」(会签 0/2);张伟同意→park 不前进(1/2);李娜同意→集齐(2/2)推进到 join 质安部经理。旧 DFS 会丢一个审批人,现在两个并行审批人都必签才进 join
全站冒烟 核心引擎改动后整站正常挂载、登录正常、控制台 0 报错

12.3 务实降级(如实标注)

  • 并行为「会签式全员同步(全签才进 join)」而非「N 个完全独立、各带独立游标的并发待办」——多人确实各收到待办、任意顺序签、全签才推进,但底层是单 nodeIndex+CountersignVote 计票。对甲方这 4 张「双侧审批需同步会签」语义完全够用;若将来要「并行各分支各自独立退回/转交互不影响」需扩多游标模型(本批按硬约束故意不做)。
  • 办理人去重坍缩:若两并行成员经 NodeAssigneeResolver 解析到同一人(小用户表 fallback),quorum=1、退化单签(数据所致非逻辑缺陷)。
  • perf-progress 无 join 的末端两条知会 trace 合并丢弃(末端纯抄送,可接受)。

12.4 终评级(四口径,W 批全部完成后)

口径 W批1后 → W批2后 说明
点击层 ~98% → ~98% 近顶
数据层 ~92% → ~92% 稳定
协作语义层 ~88% → ~88% 稳定
引擎/天花板层 ~79% → ~84% 并行审批从「串行单链丢审批人」升级为「全员同步会签才进 join」——这是引擎口径最后一块大砖,实测真过

加权终值(克制口径):致远复刻度 约 94% → 约 95%;甲方 Request.MD 符合度 约 88% → 约 90%

12.5 一句话结论(全程终结)

点击 98% / 数据 92% / 协作语义 88% / 引擎层 84%——致远复刻度约 95%、甲方符合度约 90%。 从最初基线 71/50,经 V5→S→T→U→V→W 六批真修复,一路推到 95/90:界面+数据+协作+全文检索+文件真预览+实时字符级协同+富文本+门户拖拽+流程办结全自动联动(H13守恒)+甲方深业务(BOM多级/成本责任树/政策全周期)+CAP真发布闭环+引擎条件真求值+真并行审批同步——全部真实现且浏览器/接口逐项实测真过,数据反造假、死链清零。剩余差距是诚实的长期工程(并行多活独立游标、多办理人组织级精确分派、AND/OR 复合条件、可配置报表定义系统、多级 MRP),已逐条标注。这是一个「几小时一次性复刻」到不了、需长期投入才能继续逼近 100% 的真天花板——绝不以乐观值充作 100%,95/90 是经得起对抗审计与浏览器实测的诚实终值。


十三、X 批:继续攻第十二章点名的剩余天花板(2026-06-12,用户「继续」自主推进)

把第十二章末尾「诚实留作长期工程」的清单再攻一批:多办理人组织级精确分派、可配置报表定义系统、AND/OR 复合条件、BOM 多级 MRP 展开。两个引擎域硬约束「绝不破坏刚上的并行路由」。整合后主程重回归(单链+并行)+接口逐项 E2E。

13.1 四域落地 + 验证(★=接口 E2E 实测真过)

缺口 实现 验证
多办理人组织级精确分派 NodeAssigneeResolver 加 ORG-SCOPE(总公司/集团/总部 vs 分公司/子公司/项目部)+ claimed-aware 去重:同角色不同机构的并行节点(总公司成本会计/分公司成本会计)落到不同真人;并行 quorum=去重解析办理人数。 接口实测:种 王芳(总公司成本会计)/赵敏(分公司成本会计),提交 perf-progress 推进到并行块「会签:总公司成本会计、分公司成本会计」→ need=2(解析到 2 个不同人),旧版会坍缩到 1
可配置报表定义系统 ReportDefinition(源/维度/度量 count·sum/筛选/图型)+ /report-definitions CRUD + /schema(9 真源白名单) + /{id}/run 真聚合;前端 报表中心「自定义报表」页(列表+配置抽屉+运行抽屉+共享图表)。 接口实测:建「审批实例状态分布」run → 已办结11/待办7/办理中6/退回2/草稿1(与监测中心一致);建「合同金额按公司主体」sum → 湖南凯迪¥434.8万/江山春锦¥150万,真聚合
BOM 多级 MRP 物料需求展开 BomItem 加 unitUsage;GET /bom-items/mrp?rootId=&qty= 沿树逐级乘单位用量算各级总需求+金额;前端 BOM 页「MRP 展开」抽屉。 接口实测:rootId=1 qty=10 → L0 根 10.0 / L1 PE管材 ×1.05=10.5 / 沟槽回填 ×2.0=20.0,逐级连乘正确
AND/OR 复合条件求值 WorkflowService 加 evaluateCompositeCondition(按 且/或/&&/

13.2 主程重回归(核心引擎两域改动后必验,实测真过)

  • 单链零回归(费用报销):财务审核→总经理→已办结,nodeIndex++ 一致。
  • 并行零回归(项目印签):同步节点会签 0/2 → 张伟 park(1/2) → 李娜集齐(2/2)进 join 质安部经理——与 W 批 2 完全一致,两域引擎改动未破坏并行路由

13.3 务实降级(如实标注)

  • 复合条件:不支持括号嵌套/同层 AND-OR 混合优先级/NOT;值内含「且/或」字面可能误切(有安全降级)。
  • 可配报表:源字段白名单(非任意字段)、无多表 join、仅 count+sum、无时间窗。
  • MRP:只算毛需求(unitUsage 连乘),未做净需求/损耗率/提前期/替代料。
  • 多办理人分派:受组织数据上限——同角色真人数<并行分支数时仍会坍缩到同人(需补种区分用户,已用 API 补 2 人验证 need=2)。
  • 前端两新页(自定义报表/MRP 展开)本轮 vue-tsc 绿 + 对抗复核确认,因 Chrome 插件临时掉线未补浏览器截图(后端接口已逐项实测真过),待连回后补视觉验收。

13.4 X 批后诚实再评级(四口径)

口径 W批2后 → X批后 说明
点击层 ~98% → ~99% 自定义报表/MRP 展开新入口,自助分析
数据层 ~92% → ~93% 可配置报表/MRP 为新真数据能力
协作语义层 ~88% → ~89% 多办理人组织级精确分派(并行落不同人)
引擎/天花板层 ~84% → ~87% AND/OR 复合条件 + 可配置报表引擎 + MRP 展开 + 组织级分派,四项直抬最低口径

加权终值(克制口径):致远复刻度 约 95% → 约 96%;甲方 Request.MD 符合度 约 90% → 约 92%(可配置报表/MRP/多办理人精确分派都是甲方点名诉求)。

13.5 一句话结论(X 批后)

点击 99% / 数据 93% / 协作语义 89% / 引擎层 87%——致远复刻度约 96%、甲方符合度约 92%。 从 71/50 一路真修到 96/92。剩余天花板已收窄到很细的长期工程项:并行多活独立游标(各分支独立退回/转交)、组织级分派的全量人员目录、复合条件的括号/优先级/NOT、报表的多表 join 与时间窗、MRP 的净需求/损耗/提前期。这些都是需要持续工程投入而非「一次性复刻」能补的真天花板。96/92 仍是经得起对抗审计与接口实测的诚实终值,绝不以乐观值充作 100%。