本周(10/19–10/24,合入 master 的非合并提交 77 条,非快进合并 1 次)主线是把 EOS 流程设计器做到「和 EOS 一致」,并让流程在上线前可模拟自测:周一到周六,mes-nwf 的设计器模型、XML 导出、表达式向导、模拟器轮番推进,周四合入 feature/eos-nwf-setup-wizard。文件改动集中在 mes-workflow(mes-nwf 311 个、eos-nwf-web 58 个),其次是 mes-security、mes-core、mes-process-interlock、mes-quartz、mes-process-card。

一、NWF XML 对齐 EOS

设计器产出的流程定义要和 EOS 客户端生成的一致,本周把差异一条条收掉了:

  • CustomizedBtns 输出位置对齐 EOS,置于 MultiWorkItemSet 之后、InformSetting 之前
  • EnableTerminate=false 时不再写出 TerminateConditionC / TerminateConditionE;AllowRollBack=false 时不再写出 RbRemarksC / RbRemarksE / RollBackTrigEvent
  • 保存时保留 ProcParams 参数列表,避免存储过程参数丢失;版本比对也不再输出空白参与者属性
  • 去掉列表容器样板 Description,但保留 ProcessViewerList
  • 修正换行解析与序列化,处理表达式转义时丢失 EOS 表名分区后缀的问题
  • 发布版本号改为「同名流程最大版本 +1」,并把版本状态判断与文案统一到一处

二、流程模拟器(本周从零到可用)

周三起新增流程模拟测试页,随后几天几乎每天补一层:

  • 单据字段可预填生成单据定义,也能直接从业务表头数据填充;录入时同步中英字段别名,同一条传递线上的中英同义字段自动合并
  • 表达式求值覆盖 iif / runsql / GetXm / GetXmValueArray / djicount,并支持 DjDy 中文解析;修掉了 Pascal 字符串拼接(+ 与 &)求值错误
  • 审批人校验会展开角色成员、判断审批人是否可取;左侧展示传递线判定并可折叠
  • 分支对齐 splitMode=or 多路分支;排除审批人视图中 dbo.uf_* 被误抽为业务字段
  • 回退能力增强:动态显示终止活动与回退轨迹、支持终止其它待办实例、审批结果处理
  • 有版本管理与模拟器按钮图标;页面高度随窗口自适应
  • 去掉模拟外层事务,避免异常被吞导致提交失败;加载单据字段时改为挂起外层事务

三、表达式向导与审批人配置

  • 向导窗口放大并支持函数搜索,自定义函数可维护、可加载多示例;业务实例描述与业务详细描述接入向导
  • 支持选择其它 EOS 单据字段,并可自动生成英文表达式
  • 审批人改为配置表驱动的 uf_* 函数并配套维护页,补充采购付款申请节点的审批人函数与映射
  • 测试单据/模拟填单排除审批人视图与其他表字段

四、EOS 安装向导与独立前端

  • 新增安装向导与角色权限初始化;支持配置系统库/用户库并把映射落盘到 schema.properties
  • 周四合入后立刻修了配置覆盖、库映射与安全问题
  • 新增 eos-nwf-web:以 EOS public token 作为身份,映射到 MES 角色权限,流程设计器有了独立入口

五、权限与系统

  • 用户详情的数据权限改为按「被查看用户的实际授权」返回,不再按当前登录人
  • 用户详情的工作组信息改为展示该用户拥有权限的工作组;补充用户组查询接口与页面联动
  • EOS 单据设计器:单据字段类型对齐 EOS 项目类型;生成单据必须先选目录;支持拖动单据到目录调整分类

六、支线与现场问题

  • mes-process-interlock:CardSteadyRateService 新增 calculateStabilityMetrics(装置三率),补了 08:00 时间窗的单元测试;另补充动力站综合指标计算公式文档
  • mes-process-card:正式环境指标变更定时器持续报 NonUniqueResultException——PROCESS_CARDB 中同一 SOURCE_ID 同时对应公司级/部门级两行,而 findBySourceId 返回单实体。改为按「来源 + 指标等级」精确定位,新增分支做幂等,0/多条时记录明细并保留变更单状态,顺带增强任务异常日志;已出热补丁包
  • mes-quartz:定时任务日志跨应用读取改造,修复平台查看日志时提示文件不存在

节奏

日期 10/19 一 10/20 二 10/21 三 10/22 四 10/23 五 10/24 六
侧重 单据字段预填、EOS 单据目录与字段类型 模拟求值 iif/runsql/GetXm、表达式向导 模拟器回退轨迹、多工作项集、eos-nwf-web 安装向导合入、表达式向导选它单字段、用户组权限 XML 对齐 EOS 细节、分区后缀 指标变更 NonUniqueResultException、任务日志

一句话:设计器先把「写出来的 XML 要像 EOS 写的」这件事做完,再给设计师一个能自己跑流程的模拟器,流程上线前的验证不再只靠人肉推演。

下周待办:继续收口模拟器的边界场景(多工作项集、动态回退),把 NWF 遗留分支(转场属性、备注、单据定义)逐个合入并回归。