Commit Graph
6 Commits
Author SHA1 Message Date
chenxing bfa2dfc713 fix(diagram): 流程图汉字方框——CJK 字体探测链(物理字体canDisplay验证→SansSerif回退→font-path配置兜底) + 副标起笔与label重叠
build / build-push (push) Successful in 2m18s
2026-09-17 08:22:13 +08:00
chenxing 6afc7d7b92 feat(oapi): 办件进度/流程图token出图/托管撤回 + CAS直嵌示意图(两会话产物合入)
build / build-push (push) Successful in 1m29s
2026-09-17 01:03:57 +08:00
chenxing b8441065d0 feat: 引擎多出口路由/退回/移交/或签补齐 + 定义 layout 坐标
build / build-push (push) Successful in 5m11s
- 多出口:FlwTask 增 edge_name 列(sql/20260916),FlwTaskRepository.claimAndFinish
  同步落列;FlowTaskService.handle 出度>1 时 edgeName 必填;FlowEngine.continueAdvance
  按 edge name 选路(单出口原路径逐字节兼容,未命中不推进);FlowAdvanceService/
  FlowNodeAdvanceListener 透传;BranchScope 从 FlowEngine 提取
- DefValidator:多出口出口命名必填且同节点唯一;跨分支连线发布期明确拒绝
- 退回 POST /task/{id}/returnBack:默认退主管线最近已批节点,精确失效当前节点待办,
  split 幂等 upsert 使退回重走并行段不撞 flw_branch uk
- 移交 POST /task/{id}/transfer:TRANSFERRED(5)+新建待办,AssigneeResolver.requireUserName
- 或签 ANY 补齐:首个同意失效同节点兄弟待办
- 已办口径/撤回守卫:status in (1,2,4,5);新事件 flow.returned/flow.transferred
- FlowDiagramService:EdgeVo.name/NodeVo.state/DiagramVo.layout,办件图状态计算
- 新 IT:多出口×3、ANY 或签、退回重走并行段、退回/移交/撤回

mvn test 84/84 绿
2026-09-16 22:23:02 +08:00
chenxing 55e3a3f800 feat: 一键拉取教师组作为科室(办理人映射批量导入)+ 回调签名/编辑器存量
build / build-push (push) Successful in 46s
- FlowMapAdminService:previewGroupDepts/importGroups(学校子树 type=7 容器→子组为科室,
  deptKey=UserBase 组 id,成员=组内用户;已存在启用中映射跳过;语义与 svc-hall buildDeptTree 对齐)
- FlowAdminController:GET /map/groupPreview + POST /map/importGroups
- flow-center.map.dept-group-type(默认 7)
- 含 2026-09-13/14 存量:CallbackAppSigner 回调签名、流程编辑器 sql、示意图(F1-F4)
2026-09-16 01:20:59 +08:00
chenxing f116786846 feat(base): GetUserMod 改为消费 UserBase 下发的模块树,移除硬编码菜单
build / build-push (push) Successful in 1m59s
与其他子应用(Notice / svc-hall / 事项库)统一:GetUserMod 不再返回本应用硬编码 MENUS,
改经平台 SDK YschBaseOpenApi.getUserModule(userId, schId) 取当前用户在本应用
(yh.open.app-key=100019)下的已授权模块树,层级由平台契约 BoaModule.children 承载,
本侧仅做前端 layout 契约的字段改名映射(toFrontendTree),不再本地组树。
设计概览 §9.4「菜单为本地路由约定、不进 app_module」的口径自此作废。

两处刻意的差异与取舍:

1) modId 取 custom_id 而非主键 id:front router/routes.ts 的 meta.modId 约定是 100~105,
   等于 app_module.custom_id,旧硬编码菜单发的也是这些值;若照抄其他子应用「modId=主键id」,
   前端 modId 兜底匹配会永久失配(仅剩 path 匹配可用)。故 custom_id 可解析为数字时取之,
   否则回退主键 id。
2) 不保留本地 MENUS 兜底:静默回退会把「UserBase 未配 app_module / 未授权」伪装成正常。
   配置缺失应表现为空菜单并被立刻发现。发布顺序必须先是 flow-center接入UserBase菜单.sql
   (含 app_module 写入与角色/组授权),再发本应用。

新增 FlowBaseControllerTest 4 例:层级原样保留与字段改名、children 恒为数组(含上游未展开
的 null 归零)、custom_id 非数字回退主键、path 缺失给空串且 null/空入参不抛 NPE。
映射方法放宽为包级可见以免为测试改写 YschBaseOpenApi 全局静态客户端、污染共享 JVM 内其它用例。
2026-09-15 18:44:16 +08:00
chenxing c1103aeb29 feat: 提交流程中心后端代码
build / build-push (push) Successful in 28s
Spring Boot 流程引擎服务:流程定义/实例/任务、审批人解析、
回调分发、oapi 接口及单元测试。
保留远程 .gitea/workflows/build.yml 与 docker/Dockerfile,
新增 .gitignore 排除 target/ 构建产物。
2026-09-15 10:42:56 +08:00