MES 2026 年第 43 周工作小结
本周(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 遗留分支(转场属性、备注、单据定义)逐个合入并回归。






