| | |
| | | "FIN(发票报销,独立模块)", |
| | | "UMS(学会会员,独立模块)", |
| | | "RES(科研课题,独立模块)", |
| | | "ARC(档案管理,独立模块)", |
| | | "CRM(客户关系)", |
| | | "SRM(供应商关系)", |
| | | "HRM(人力资源)", |
| | |
| | | "businessPositioning": "让工厂的订单、物料、生产、库存、质量、人员、资金在一个系统内闭环流转,管理层可通过 BI 大屏掌握全局。", |
| | | "coreChain": "CRM 商机/合同 → ERP 销售订单 → MES 主生产计划/工单/报工 → MES 质检与仓储 → 销售出库发货 → 开票回款 → 售后闭环", |
| | | "techBase": "Spring Boot + MyBatis + Flowable + Redis + Quartz/RocketMQ/Kafka + Milvus 向量库 + 通义千问", |
| | | "database": "MySQL 8.4,运行库 mom-jssm 共 427 张表(含 system_*、bpm_*、act_* 底座表与 mes_*/erp_*/crm_*/srm_*/hrm_*/mdm_*/ai_*/finance_*/ums_*/research_* 业务表),多租户已关闭", |
| | | "database": "MySQL 8.4,运行库 mom-jssm 共 430 张表(含 system_*、bpm_*、act_* 底座表与 mes_*/erp_*/crm_*/srm_*/hrm_*/mdm_*/ai_*/finance_*/ums_*/research_*/archive_* 业务表),多租户已关闭", |
| | | "frontend": "mom-pro2-before(Vue3 管理后台,同仓库存放,只读参考)" |
| | | }, |
| | | "stats": { |
| | | "businessModules": 16, |
| | | "coreObjects": 56, |
| | | "documentFlows": 9, |
| | | "approvalListeners": 15, |
| | | "businessModules": 17, |
| | | "coreObjects": 59, |
| | | "documentFlows": 10, |
| | | "approvalListeners": 24, |
| | | "aiCapabilities": 8, |
| | | "wmBillTypes": 15 |
| | | }, |
| | |
| | | "课题管理:经费拨付台账的「已拨付(20)」等价于报销单「已通过(20)」,不含出纳实际付款动作;若日后需要独立的「已付款」状态,需另增状态与审批节点【二期可扩展】", |
| | | "课题管理:申报单与 ums_member 是软关联(无外键),会员被删除后申报单会留下悬空 memberId;成员列表需容错展示「会员已删除」【待确认是否加外键或删除保护】", |
| | | "课题管理:BPM 流程 research_topic_approve 三节点默认审批人为「角色=超级管理员(1) + 依次审批」,该 dev 库超级管理员角色下有 4 个用户(admin/张娟/马芳/马贞),每个节点需 4 人会签才推进;全新安装库该角色仅 admin 一人、流程可开箱即用。dev 库需减少超级管理员用户或改在 BPM 设计器中为每节点指定审批人【环境配置项,非代码缺陷】", |
| | | "课题管理:立项通知复用 system_notice 系统公告,不新增 system_notify_template、不发站内信;如需短信/站内信定向通知需另行配置【待确认通知渠道】" |
| | | "课题管理:立项通知复用 system_notice 系统公告,不新增 system_notify_template、不发站内信;如需短信/站内信定向通知需另行配置【待确认通知渠道】", |
| | | "档案管理:档案借阅 BPM 流程 archive_borrow_approve 为手工导出部署产物(_archive_bpm_export.sql 内 act_*/bpm 表的 UUID 与时间戳只能在部署时生成,无法预写),必须先在 BPM 模型部署再导出再合并进 config_export_all 阶段一;顺序错会导致新库初始化时该流程缺失【部署顺序硬约束,已在文件头与 README 双重标注】", |
| | | "档案管理:菜单 1075600~1075699 与各 archive:* 权限点仅在归档脚本中,普通角色未配 system_role_menu,非超管登录看不到「档案管理」目录【待确认是否补授权,与财务报销/会员管理同类问题】", |
| | | "档案管理:档案与来源单据(课题申报书/会员/报销单)为软关联,来源单据被删除后档案的 source_id/source_no 会成为悬空快照;档案本身不随来源单据删除而删除【待确认是否需要删除保护或外键】", |
| | | "档案管理:需求中的「学会文件、会议纪要、调研报告、学术论文、合同协议」等电子文档由「文书档案」分类承载,系统内无对应来源模块,仅支持手工录入并挂电子附件;合同档案未纳入自动归档(用户明确排除)【已确认的边界】", |
| | | "档案管理:逾期提醒按用户决策仅查询时实时计算(不建 infra_job、不发站内信),借阅列表「逾期」列与 /overdue-page 独立入口呈现;若日后需要到期主动推送,需另加定时任务与通知渠道【用户已确认的简化,二期可扩展】", |
| | | "档案管理:「同一档案仅允许一条未归还借阅单」由应用层 submit 校验 + 审批通过时条件更新(UPDATE ... WHERE status=10)共同保证,MySQL 无法对「部分状态唯一」建约束;校验与更新之间的理论窗口已收敛为可感知的冲突报错(档案已被占用)而非脏数据【已接受的风险】", |
| | | "档案管理:档案统计按分类/密级/载体三组 GROUP BY 聚合(无 N+1),当前量级可接受;档案过万后需改为缓存或物化统计表【本期不做】", |
| | | "档案管理:跨模块改表——research_application / ums_member / finance_reimbursement 各新增可空列 archive_document_id(archive_module_migration.sql 用 information_schema 守卫保证幂等),需与三方模块确认变更窗口【跨模块改表,无破坏性】" |
| | | ], |
| | | "generatedAt": "2026-09-29", |
| | | "analysisBasis": "基于 dev_business 分支 87bf4a99 源码,6 组并行源码走读(MES 生产质量 / MES 仓储 / ERP / CRM+SRM / 售后+HRM / AI+BI+MDM+BPM+底座);2026-09-28 增量补充 yudao-module-finance 独立财务报销模块(报销单 + 明细 + 发票附件 + BPM 审批 + 归档)与 yudao-module-ums 独立会员管理模块(入会申请 + BPM 两级审批 + 审批通过自动建会员与登录账号 + 会员列表/通讯录);2026-09-28 增量:BPM 流程定义 ums_membership_approve(入会审批)已在 mom-jssm 部署并并入 config_export_all 阶段一(分类 ums_membership_approve,秘书处初审 → 理事会审议,两节点审批人均为「角色」策略、角色=超级管理员(1) 兜底,表单类型=自定义表单,查看路径 /ums/application/detail/approve/index.vue);同时修复 mom-jssm 由 CREATE TABLE ... LIKE 克隆导致的 47 个指向 ruoyi-vue-pro 的 act_*/flw_* 跨库外键(重建为指向 mom-jssm 自身,孤儿行预检为 0);2026-09-28 增量:新增 yudao-module-research 独立科研课题模块一期(课题指南发布 + 在线申报 + 专家评审明细 + BPM 三级立项审批 + 立项通知公告 + 经费拨付记录,4 张 research_* 表 / 5 个字典 / bpm_category id=8002 / 流程 research_topic_approve / 菜单 1075510~1075553),并并入 config_export_all_20260928 阶段一;申报人取 ums_member(软关联)、立项通知复用 system_notice 公告、拨款凭证走 system 附件中心 recordType=research_fund_record;2026-09-29 增量:课题经费拨付对接财务报销——新建 yudao-module-finance-api(FinanceReimbursementApi:建单+提交/改单+重提/删除/查询四方法,本地 Spring Bean 调用,无需 Feign),课题侧登记拨款时 1:1 自动生成 finance_reimbursement(系统生成 1 行明细:费用类型=其他 5、发票金额=拨付金额、发票日期=拨付日期、说明=「课题〔名〕第 N 期拨款」)并立即提交 BPM,回写 reimbursement_id/reimbursement_no、台账置「报销审批中(15)」;凭证改为登记时必填并双绑(research_fund_record + finance_reimbursement);新增 ResearchFundStatusListener(第 15 个业务监听器,与 finance 自己的 FinanceReimbursementStatusListener 订阅同一流程 key 并行触发)按审批结果回写台账:通过→已拨付(20)、驳回→已驳回(30)+驳回原因/时间、取消流程→退回待拨付(0)可改后可重新发起(发起人撤回只把实例退回发起节点、流程未结束,不触发回写,台账保持 15);新造 2 节点 BPMN docs/sql/finance_reimbursement_approve.bpmn(财务审核 → 财务主管审批,category id=216 已存在),2026-09-29 已在 mom-jssm 部署为版本 1(form_type=20、自定义表单创建路径 /finance/reimbursement/index、查看路径 /finance/reimbursement/detail/approve/index.vue)并并入 config_export_all_20260929 阶段一,两级审批全通过/驳回/取消三条回写链路均已端到端验证" |
| | | "analysisBasis": "基于 dev_business 分支 87bf4a99 源码,6 组并行源码走读(MES 生产质量 / MES 仓储 / ERP / CRM+SRM / 售后+HRM / AI+BI+MDM+BPM+底座);2026-09-28 增量补充 yudao-module-finance 独立财务报销模块(报销单 + 明细 + 发票附件 + BPM 审批 + 归档)与 yudao-module-ums 独立会员管理模块(入会申请 + BPM 两级审批 + 审批通过自动建会员与登录账号 + 会员列表/通讯录);2026-09-28 增量:BPM 流程定义 ums_membership_approve(入会审批)已在 mom-jssm 部署并并入 config_export_all 阶段一(分类 ums_membership_approve,秘书处初审 → 理事会审议,两节点审批人均为「角色」策略、角色=超级管理员(1) 兜底,表单类型=自定义表单,查看路径 /ums/application/detail/approve/index.vue);同时修复 mom-jssm 由 CREATE TABLE ... LIKE 克隆导致的 47 个指向 ruoyi-vue-pro 的 act_*/flw_* 跨库外键(重建为指向 mom-jssm 自身,孤儿行预检为 0);2026-09-28 增量:新增 yudao-module-research 独立科研课题模块一期(课题指南发布 + 在线申报 + 专家评审明细 + BPM 三级立项审批 + 立项通知公告 + 经费拨付记录,4 张 research_* 表 / 5 个字典 / bpm_category id=8002 / 流程 research_topic_approve / 菜单 1075510~1075553),并并入 config_export_all_20260928 阶段一;申报人取 ums_member(软关联)、立项通知复用 system_notice 公告、拨款凭证走 system 附件中心 recordType=research_fund_record;2026-09-29 增量:课题经费拨付对接财务报销——新建 yudao-module-finance-api(FinanceReimbursementApi:建单+提交/改单+重提/删除/查询四方法,本地 Spring Bean 调用,无需 Feign),课题侧登记拨款时 1:1 自动生成 finance_reimbursement(系统生成 1 行明细:费用类型=其他 5、发票金额=拨付金额、发票日期=拨付日期、说明=「课题〔名〕第 N 期拨款」)并立即提交 BPM,回写 reimbursement_id/reimbursement_no、台账置「报销审批中(15)」;凭证改为登记时必填并双绑(research_fund_record + finance_reimbursement);新增 ResearchFundStatusListener(第 15 个业务监听器,与 finance 自己的 FinanceReimbursementStatusListener 订阅同一流程 key 并行触发)按审批结果回写台账:通过→已拨付(20)、驳回→已驳回(30)+驳回原因/时间、取消流程→退回待拨付(0)可改后可重新发起(发起人撤回只把实例退回发起节点、流程未结束,不触发回写,台账保持 15);新造 2 节点 BPMN docs/sql/finance_reimbursement_approve.bpmn(财务审核 → 财务主管审批,category id=216 已存在),2026-09-29 已在 mom-jssm 部署为版本 1(form_type=20、自定义表单创建路径 /finance/reimbursement/index、查看路径 /finance/reimbursement/detail/approve/index.vue)并并入 config_export_all_20260929 阶段一,两级审批全通过/驳回/取消三条回写链路均已端到端验证;2026-09-29 增量:新增 yudao-module-archive 独立档案管理模块 + yudao-module-archive-api(ArchiveDocumentApi:archiveBySource 按 sourceType+sourceId 幂等归档 / isArchived / getBySource 三方法,本地 Spring Bean 调用,无 Feign),覆盖书架分类(archive_category 树形、code 唯一、defaultSecretLevel 默认密级、6 条初始分类:会员/课题/会议/财务/文书/党建,财务默认密级=保密 3)、档案管理(archive_document:DA+yyyyMMdd+6 位流水编号、密级三档 1 公开 2 内部 3 保密、载体三型 1 电子 2 实体 3 电子+实体、实体位置四字段 shelfNo/layerNo/columnNo/boxNo + storePlace、来源四类 sourceType 1 手工 2 课题 3 会员 4 财务带 sourceNo/sourceId/sourceTitle 冗余快照、状态 10 在库 20 借出中、电子附件走 system 附件中心 recordType=archive_document、archiveBySource 幂等短路 + 三方表 archive_document_id 回写作为已归档硬标记,重复归档由来源侧错误码拦截且 archive 侧 DOCUMENT_DUPLICATE_SOURCE 兜底)、借阅登记与审批(archive_borrow:JY+同级流水编号、借阅人信息/借阅目的/归还期限、状态 0 草稿 15 审批中 20 借出中 30 已归还 35 已驳回,仅 0/35 可改可重提、仅 0 可删、仅 20 可登记归还;submit 前校验同档案不得已有 15/20 在途借阅,先解析流程再建单杜绝孤儿草稿;BPM 流程 archive_borrow_approve 两级:档案管理员审核 → 分管领导审批;监听器 ArchiveBorrowStatusListener 按 businessKey 回写 20+approveTime / 35+驳回原因时间 / 退回 0,审批通过时条件更新档案 SET status=20 WHERE status=10,0 行则报档案已被占用并回滚)、归还登记(条件更新 20→30 + returnTime/归还确认人,再把档案条件更新回 10,形成闭环)、逾期实时计算(overdue=status==20 且 returnDeadline<今天,不建 infra_job 不发站内信,列表「逾期」列 + /archive/borrow/overdue-page 独立入口)、档案统计(4 卡片:总数/在库/借出/逾期 + 分类/密级/载体三组 GROUP BY 聚合,无 N+1);敏感档案用密级字段 + 独立权限点 archive:document:sensitive,/get 越权抛 DOCUMENT_SENSITIVE_NO_PERMISSION、/page 与 /export-excel 强制过滤 secret_level<>3,统一走 applySecretLevelFilter / validateSecretLevelVisible 两私有方法;新增 3 张表 archive_category/archive_document/archive_borrow、6 个字典(82000~82005)、bpm_category id=8003 + 手写 docs/sql/archive_borrow_approve.bpmn(category=archive_borrow_approve、form_type=20、创建路径 /archive/borrow/index、查看路径 /archive/borrow/detail/approve/index.vue)已在 mom-jssm 部署为版本 1、菜单 1075600~1075699;三方归档联动为列表页手动「归档」按钮(非事件驱动,归档不回写来源业务状态):课题 research_application status=20 已立项 → sourceType=2 密级 2 内部 sourceNo=立项编号;会员 ums_member status=1 正常 → sourceType=3;财务 finance_reimbursement status=20 → sourceType=4 密级 3 保密,与既有 20→40 + archiveTime 同事务叠加;三张来源表各新增可空列 archive_document_id(archive_module_migration.sql 用 information_schema 守卫保证幂等)。全库表数 427→430;业务状态监听器实际计数修正为 24 个 *StatusListener(14 个继承 BpmProcessInstanceStatusEventListener)。本模块不反向依赖 ums/finance/research,仅提供 -api 子模块由三方手动调用;依赖方向 research/ums/finance → archive-api,无环。本次同步更新的业务可视化产物:新增 mermaid/15-archive-flow.mmd,增量修订 01-business-mindmap / 08-module-relation / 09-data-flow / 10-business-object,以及 data/modules.json(新增 arc 模块、bpm 监听器计数 15→24)、objects.json(新增档案分类/档案/借阅单 3 对象 + 课题申报书/会员/报销单各补 archive_document_id)、flows.json(新增 archive 流程 9 步)、roles.json(新增档案管理员/借阅人/借阅审批人/归档经办人 4 角色)、business.json" |
| | | } |