[基于项目总控入口.md §2026-10-10 后端正式开发准入令 v1 + 已签发授权 + first-change MRC-SVC-CFG-002 / next-first-change MRC-SVC-CFG-001 / 后续 first-change MRC-CORE-BASE-001 V2 模式验证]
L1 联调 first-change(MRC-SVC-CFG-002 业务字典与文案中心)+ next-first-change(MRC-SVC-CFG-001 系统参数中心)+ 后续 first-change(MRC-CORE-BASE-001 领域地基与编号规则)已验证 V2 模式业务代码生成模式可复用。本变更选定 MRC-SVC-LOG-001 流转日志与时间轴 作为后续 first-change,理由:
transition() 同事务内部调用 + REJECT-001 / PAY-001 / MSG-001 异步消费方 + PC 端工作台右栏 + 小程序详情/进度页接口映射.md §流转日志 + MRC-SVC-LOG-001 04-接口与数据清单.md §1(writeStatusLog 10070003 / getStatusLog 10070010+11 / findLogRowByNaturalKey 10070012 / getActorName 10070013;healthCheck 10070999)BSOrderStatusLog / BSLogActorCache 不存在 — 按典型业务模型 + V2 Global 索引模式补全(VisibleToPatient / ActorDr / ActorName / ActionCode 18+5 枚举 / 自然键复合唯一索引)项目负责人书面授权_正式接口接入_v1.md §3 19 个模块清单第 15 项("MRC-SVC-LOG-001 流转日志与时间轴")+ §4 签字(高井刚 / 2026-10-9)+ OPENSPEC_STRICT_整改清单.md strict 模板已结(2026-10-09)V2 模式改造说明(2026-10-10):
MRC.Service.* + User.BS* IRIS 持久化 + SqlProc + 多参数签名 + %Status 返回src.<SubModule>.* 命名空间 + (%RegisteredObject, %XML.Adaptor) [ Not ProcedureBlock ] + jsonObj 接口(params.%Get(0) / session.%Get(0)) + %Library.DynamicObject 返回(包含 errorCode / errorMessage / result)+ Global 索引(^BSOrderStatusLogI / ^BSLogActorCacheI)+ 公共类 ##class(src.util.operatetable).Insert/.Update/.Delete##class(src.Interface.Message).GetErrorMessage(<code>) 获取writeStatusLog 仅追加,禁更新 / 禁物理删除(由 Service 层 Guard 兜底)src.SvcLog.BSOrderStatusLog(3 个方法:WriteStatusLog — 仅追加 / GetStatusLog — PC 全量+小程序过滤 / FindLogRowByNaturalKey — 自然键回查)src.SvcLog.BSLogActorCache(1 个方法:GetActorName — Actor 名称缓存,避免重复查询 User.HBUser)src.SvcLog.MRCSvcLogService(4 个委托方法:WriteStatusLog / GetStatusLog / FindLogRowByNaturalKey / GetActorName)src.SvcLog.MRCSvcLogREST(4 个 WebMethod + XData UrlMap:POST /api/v2/mrc/svc-log/status-log/write + POST /api/v2/mrc/svc-log/status-log/list + GET /api/v2/mrc/svc-log/status-log/find-by-natural-key + GET /api/v2/mrc/svc-log/actor/:dr/name)Tests.MRCSvcLogServiceTest(4 个方法:TestWriteStatusLog / TestGetStatusLog / TestFindLogRowByNaturalKey / TestGetActorName)MRC-PC-AUTH-001 登录会话(已 Demo 验收,L1 只读无需强制鉴权)User.HBUser(§14-C2 复用,查询 actorDr → actorName);通过 BSLogActorCache 缓存%OnValidateObject() 校验 + 复合唯一索引 NaturalKeyUnique)MRC-SVC-CFG-002-listbizdict-readonly-release-v1(first-change V2 模式参照)MRC-SVC-CFG-001-listconfiggroups-readonly-release-v1(next-first-change V2 模式参照)MRC-CORE-BASE-001-corelock-idempotency-readonly-release-v1(后续 first-change V2 模式参照)