Files
workspace/code/fms/.workbuddy-ai/memory/MEMORY.md
T
2026-09-24 17:25:48 +08:00

3.7 KiB
Raw Blame History

FMS 项目长期约定(主文件)

明细已拆分到 memory/topics/,需要时再读,避免主文件被截断: topics/workflow.md(工作流设置器 + dagre 布局)、topics/frontend-ui.md(主题/UI 库/i18n/导出)、 topics/env-and-baseline.md(本机环境坑 + 测试基线)。每日日志见同目录 YYYY-MM-DD.md。

目录 / 库 / 端口

  • 后端 fms-api(Spring Boot 4.1 + JDK21,JDBC+Druid 无 ORM);前端 fms-vue(Vue3.5 + Vite8 + Pinia,纯 JS,pnpm)。 fms-vue-old1/old2 仅历史参考,不要改。
  • 根目录文档:FMS新系统核心表结构设计.md(权威表结构)、FMS业务表设计.md、开发规范.md(AI 规范)、 Fms旧系统表结构.md(旧库,只有表无视图)、FMS删除规则引擎设计.md;建库脚本在 sql/。
  • SQL Server 118.89.70.199:1433:旧库 G3HY2025,新库 FMS(生产库,写前先确认)。 机构→库映射 fms-api/config/dbconfigs/{ORG_ID}.properties(gitignore):G3HD→FMS、G3HY2025→旧库; 没有 FMS.properties。
  • 后端 8088(context-path /api),前端 dev 5082(/api→127.0.0.1:8088)。直连接口需先 /auth/login。

元数据表真实列名(已连库核对,别猜)

  • s_module:PK b_id(无 b_module_code;b_route 属 s_menu);树用 b_parent_id/b_depth/b_path; 另有 b_module_type(module/data/virtual)、b_view_table、b_save_table、b_key_field、b_order_sql、 b_query_sql、b_config_json、b_canuse、b_xh、b_bz、b_name、b_i18n。查询来源 b_query_sql > b_view_table。
  • s_field:PK (b_module_id, b_field),无 b_id;b_type 实测 input/number/checkbox/datetime/date。
  • s_module_schema:PK (b_module_id, b_schema_type∈view|edit|query),内容在 b_schema_json。
  • s_menu:b_id/b_parent_id/b_depth/b_path/b_menu_type(directory|page)/b_route/b_icon; s_menu_module 绑菜单与模块。
  • 权限靠 b_id:permissionStore.moduleCodes 即 s_module.b_id,页面 MODULE_CODE 必须等于它; 还需在 s_menu_module 绑菜单,否则非超管看不到授权入口。列表模块编码统一 v_+表名(v_b_othercompany)。
  • schema JSON:view{columns:[{field,width}|{type:group,title,children}]}、 edit{children:[{field,span,required,readonly,defaultValue}|group]}、query{groups:[{conditions}],quick}。
  • 路由守卫只看 meta.moduleId/meta.adminOnly;views/module/** 是 adminOnly(仅 g3soft),不进 s_menu。

树结构规范(模块/菜单/部门/分类通用)

b_parent_id 权威,b_depth(根=0)/b_path(/cn/east/) 是派生字段,移动节点同事务更新全部后代; 不一致以 b_parent_id 为准。工具 src/utils/tree.js(buildSortedTree/computeTreeMove/collectDescendantIds/ applyTreePosition/filterTreeByText/findTreeNode),展示 components/fms-tree/FmsTree.vue(自管虚拟根)。

后端通用接口(业务数据只走这几个)

  • POST /auth/login:字段小写 orgid/userid/password;orgid=G3HD。
  • /data/loaddata:view_name/search_condition/可选 order_by/search_columns(真 JSON 数组)。
  • /data/page:order_by 必填;分页参数名 page_no/page_size。
  • /data/saveobjt:body 是数组,每项 {table, key_field, deletes, updates, inserts},key_field 必填 (复合主键逗号分隔),顺序 delete→update→insert。
  • 模块元数据不由接口下发,前端读本地 schema JSON,改元数据无需重启后端。
  • DbUtils 是 SQL 唯一出口:标识符加 [],validateReadOnlySql() 只允许查询。