云
2026-09-29 a0d62d13f1d537e84e13d8ee4d8b37b27439fa00
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
{
  "project": {
    "name": "MOM 工厂数字化平台(mom-pro2)",
    "type": "混合系统",
    "mainSystem": "MOM 制造运营管理系统",
    "subSystems": [
      "MES(生产·仓储·质量·设备)",
      "ERP(进销存·财务)",
      "FIN(发票报销,独立模块)",
      "UMS(学会会员,独立模块)",
      "RES(科研课题,独立模块)",
      "CRM(客户关系)",
      "SRM(供应商关系)",
      "HRM(人力资源)",
      "BPM(Flowable 协同审批)",
      "AI(通义千问 + Milvus RAG)",
      "BI(SQL 配置式大屏)"
    ],
    "description": "基于 yudao(ruoyi-vue-pro)二次开发的制造业一体化数字工厂平台,覆盖『销售接单 → 采购/生产 → 质检 → 仓储 → 发货 → 回款 → 售后』全链路,内置审批流、主数据、附件、AI 辅助与 BI 驾驶舱。",
    "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_* 业务表),多租户已关闭",
    "frontend": "mom-pro2-before(Vue3 管理后台,同仓库存放,只读参考)"
  },
  "stats": {
    "businessModules": 16,
    "coreObjects": 56,
    "documentFlows": 9,
    "approvalListeners": 15,
    "aiCapabilities": 8,
    "wmBillTypes": 15
  },
  "businessAnswers": [
    [
      "项目解决什么问题",
      "离散制造工厂的产供销人财物一体化管理:从客户订单到生产交付、库存资金全链路数字化闭环"
    ],
    [
      "核心业务",
      "销售订单履约(合同→订单→生产→质检→入库→发货→回款)与采购供应(申请→订单→到货→IQC→入库→付款)"
    ],
    [
      "业务主线",
      "CRM 合同 → ERP 销售订单 → MES MPS/工单 → 报工/IPQC → 完工入库 → 发货通知 → 销售出库(OQC) → 开票 → 回款"
    ],
    [
      "销售如何影响生产",
      "销售订单审批通过后,需生产明细自动创建 MES 主生产计划(MPS),MPS 下发驱动工单与任务"
    ],
    [
      "采购如何影响库存",
      "采购订单『确认收货』生成 MES 到货通知 → IQC 合格/特采 → 采购入库单完成 → 库存台账 IN 事务+N"
    ],
    [
      "生产如何产生库存",
      "报工审批通过后自动生成产品产出单入库(质检工序先待检、IPQC 后拆行入库);倒冲工序按 BOM 扣线边库"
    ],
    [
      "质量在哪里介入",
      "四道闸口:IQC(到货/外协入库)、IPQC(报工质检工序)、OQC(销售出库前)、RQC(退料/退货),不合格走 NCR 处置"
    ],
    [
      "售后如何闭环",
      "工单判定退货 → 退货申请审核 → 自动建 MES 销售退货单 → RQC 质检/入库回调 → 退款回调 → 工单完结关闭"
    ],
    [
      "AI 在哪里参与",
      "发票/报价 OCR 预填、质检结果建议、缺料/时长/风险/交付四类预测;均为『业务组装 Prompt→模型→JSON→人工确认』模式"
    ],
    [
      "模块间数据关系",
      "MDM 主数据统一下发;CRM↔ERP 合同生单;ERP↔MES 单据互建与数量回写;BPM 事件回调解锁状态;HRM 交接扩展数据可见性"
    ]
  ],
  "aiCapabilities": [
    {
      "name": "采购发票 OCR",
      "flow": "上传 blobId → 图片走 chatWithImage 视觉模型 / PDF·文本走 chat → 解析发票号·抬头·供应商·价税合计·税率 → 预填采购来票表单",
      "callsApis": [
        "SystemStorageBlobService"
      ]
    },
    {
      "name": "报价单 OCR",
      "flow": "PDF/Word/Excel/图片 → POI/PDFBox/视觉模型 → 报价头+产品明细 JSON → 预填报价单",
      "callsApis": [
        "SystemStorageBlobService"
      ]
    },
    {
      "name": "质检结果智能判定",
      "flow": "质检单+指标结果+缺陷记录 组装 Prompt → chat → 建议{合格/特采/退货/报废+理由}",
      "callsApis": [
        "MdmItemApi",
        "SrmSupplierApi",
        "CrmCustomerApi"
      ]
    },
    {
      "name": "物料短缺预测",
      "flow": "工单 BOM 需求 vs 库存(在库-冻结-占用) vs 已投料 → chat → 风险等级+缺口清单",
      "callsApis": [
        "MdmItemApi"
      ]
    },
    {
      "name": "生产时长预测",
      "flow": "工序标准工时+设备小时产量+传送倍率 → chat → 预测总时长+工序分解",
      "callsApis": [
        "MdmItemApi"
      ]
    },
    {
      "name": "生产风险预测",
      "flow": "IPQC 缺陷率+设备保养点检+物料可用率<20%+关键工序 → chat → 综合风险+因素",
      "callsApis": [
        "MdmItemApi"
      ]
    },
    {
      "name": "交付预测",
      "flow": "进度+剩余天数+任务完成状态+客户交期 → chat → 能否按时+置信度+延误因素",
      "callsApis": [
        "MdmItemApi",
        "CrmCustomerApi"
      ]
    },
    {
      "name": "RAG 知识库",
      "flow": "文档 → POI/Tika 提文本 → 切片(800token) → 向量化入 Milvus → 检索接口(topK3,阈值0.7)【当前无业务模块消费,预留能力】",
      "callsApis": []
    }
  ],
  "pendingConfirm": [
    "仓库类型/合格仓改造:需求称仓库应有 type 字段(原料/成品/半成品/线边/合格仓),但 MesWmWarehouseDO 当前无 type 字段,仅硬编码虚拟线边库,改造似未完成【待确认】",
    "HrmUserHandoverApi.expandUserIds 接口已实现,但 CRM/ERP/MES 查询『我的数据』处均未实际调用,交接可见性功能未真正生效【与项目规则文档存在落差】",
    "回款(crm_receivable)未接 BPM,创建即审批中(10)靠手动更新;合同/开票均已接【待确认是否有意简化】",
    "MES 任务暂停 pauseTask 仅允许草稿状态停工,疑似校验逻辑反转 bug",
    "付款单 BPM 驳回回退到 PROCESS(10) 而非 REJECT(35),与其他单据不一致",
    "财务勾稽断裂:updatePurchasePrice/updateSalePrice 方法体为空,入库/出库金额不会自动回写收付款",
    "生产入库单(ProductReceipt) 与报工产出(ProductProduce) 并存,存在重复入库风险需业务确认",
    "AI 模型工厂仅实现通义千问,DeepSeek/OpenAI/Ollama 枚举预留未实现",
    "售后退货单 AUDITING(10) 状态无写入代码,疑似预留未启用",
    "BI 图表 querySql 以字符串拼接参数执行(仅单引号转义),存在 SQL 注入风险面",
    "MesWmSnDO 新增的 uuid 字段生成/消费逻辑未在核心 Service 中确认",
    "转正申请(hrm_regularize_application)、培训证书等仅有 SQL 与菜单初始化,Java 侧 Service/Controller 未实现",
    "NCR 处置结果(返工/退货)未回写触发源单据,仅台账记录",
    "MPS 状态枚举独立编号(0/1/2/3),与通用单据常量(0/1/4/5)不一致",
    "财务报销:BPM 分类 finance_reimbursement_approve 下尚无已发布的流程定义(act_re_procdef 为空)——该流程现已是「课题经费拨付自动建单并提交」的硬前置,本方案已手写 2 节点 BPMN(docs/sql/finance_reimbursement_approve.bpmn:财务审核 → 财务主管审批)待部署;部署后还需把「自定义表单路径」配为 /finance/reimbursement/detail/approve/index.vue(form_type=20),否则前端「提交审批」被禁用、审批中心看不到报销单内容【需 BPM 设计器侧配置】",
    "财务报销:菜单仅授予 super_admin(超管由代码直返全部菜单),普通角色未配 system_role_menu,非超管登录看不到「报销单」菜单【待确认是否补授权】",
    "会员管理:会员管理菜单(1075490~1075503)仅 super_admin 可见,普通角色未配 system_role_menu,非超管登录看不到会员管理目录【待确认是否补授权】",
    "会员管理:审批通过自动建系统账号用「联系电话」同时作用户名与初始密码,若联系电话为空会用字面量 unknown 兜底,存在弱口令与重名风险【待确认是否改造】",
    "会员管理:自动建档不搬运 contactUser/unitIntro/expireDate(ums_application 无对应字段),单位会员的「联系人/单位简介/有效期」只能在会员列表手工补录【待确认是否需要申请单增字段】",
    "会员管理:单位会员的等级字典 ums_unit_grade 仅到「会长单位」(4),但校验逻辑额外硬编码禁止单位选「理事长」(grade=5)——该值本不在单位字典内,属防御性冗余校验【待确认是否精简】",
    "课题管理:专家评分权重(选题0.3/方案0.3/团队0.2/成果0.2)与「加权均分≥60 且 多数结论为推荐立项」的通过阈值是占位规则,需学会最终确认;已集中为常量便于调整【待确认,改动只需改常量】",
    "课题管理:经费拨付已对接财务报销(1:1 生成 finance_reimbursement 并自动提交审批),但台账与报销单是软关联(无外键,仅靠 reimbursement_id),财务侧直接删除报销单会留下台账的悬空 reimbursement_id;已用 FUND_REIMBURSEMENT_NOT_EXISTS 精确提示兜底,不做数据库级约束【已接受的风险】",
    "课题管理:新建的财务报销审批流程 finance_reimbursement_approve 为 2 节点(财务审核 → 财务主管审批),节点默认审批人策略为「角色 = 超级管理员(1)、依次审批」;上线前需在 BPM 设计器中按学会/财务实际审批人调整,否则该角色下多用户会变成逐人会签【环境配置项,非代码缺陷】",
    "课题管理:经费拨付台账的「已拨付(20)」等价于报销单「已通过(20)」,不含出纳实际付款动作;若日后需要独立的「已付款」状态,需另增状态与审批节点【二期可扩展】",
    "课题管理:申报单与 ums_member 是软关联(无外键),会员被删除后申报单会留下悬空 memberId;成员列表需容错展示「会员已删除」【待确认是否加外键或删除保护】",
    "课题管理:BPM 流程 research_topic_approve 三节点默认审批人为「角色=超级管理员(1) + 依次审批」,该 dev 库超级管理员角色下有 4 个用户(admin/张娟/马芳/马贞),每个节点需 4 人会签才推进;全新安装库该角色仅 admin 一人、流程可开箱即用。dev 库需减少超级管理员用户或改在 BPM 设计器中为每节点指定审批人【环境配置项,非代码缺陷】",
    "课题管理:立项通知复用 system_notice 系统公告,不新增 system_notify_template、不发站内信;如需短信/站内信定向通知需另行配置【待确认通知渠道】"
  ],
  "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)可改后可重新发起;新造 2 节点 BPMN docs/sql/finance_reimbursement_approve.bpmn(财务审核 → 财务主管审批,category id=216 已存在但流程定义待部署)"
}