{ "modules": [ {"key": "mdm", "name": "基础主数据", "color": "#8a94a6", "tag": "MDM", "flow": null, "positioning": "全系统统一口径的主数据权威源", "problem": "物料、单位、仓库在 MES/ERP/CRM 多处重复定义导致数据打架", "features": ["物料与SKU(含批次属性配置12开关)", "物料分类树", "计量单位与换算", "品牌", "仓库主数据(含type字段)", "MES 物料经 MdmItemSyncApi 反向同步"], "objects": ["物料", "SKU", "计量单位", "仓库"], "roles": ["主数据管理员"], "upstream": [], "downstream": ["生产", "进销存", "销售", "采购"], "coreTables": ["mdm_item", "mdm_item_sku", "mdm_item_category", "mdm_unit_measure", "mdm_brand", "mdm_warehouse"]}, {"key": "crm", "name": "销售管理(客户关系)", "color": "#4f9cff", "tag": "CRM", "flow": "sales", "positioning": "销售前端:从线索到回款的客户经营", "problem": "客户资产沉淀、商机转化、合同审批与开票回款管控", "features": ["线索转化客户", "公海池与领取上限", "联系人", "商机自定义阶段", "跟进记录", "报价单(AI OCR)", "合同(BPM审批→生成销售订单)", "开票(BPM)→回款(先开票校验)", "回款计划", "销售目标", "数据权限三级(负责人/只读/读写)"], "objects": ["线索", "客户", "联系人", "商机", "报价单", "合同", "发票", "回款", "销售目标"], "roles": ["销售内勤", "销售经理", "财务(开票回款)"], "upstream": ["主数据(物料)"], "downstream": ["进销存(销售订单)", "售后(客户)", "AI(报价OCR)"], "coreTables": ["crm_clue", "crm_customer", "crm_contact", "crm_business", "crm_sale_quotation", "crm_contract", "crm_invoice", "crm_receivable", "crm_receivable_plan", "crm_permission"]}, {"key": "srm", "name": "供应商管理", "color": "#c9a86a", "tag": "SRM", "flow": "purchase", "positioning": "供应商全生命周期:准入-资质-寻源-绩效", "problem": "供应商合规准入、阳光寻源(招标/比价)与绩效量化", "features": ["供应商档案与分类", "准入申请(BPM 采购/质量/财务会签)", "资质证书有效期", "招标:公开/邀请/竞谈完整版+比价简易版", "投标·报价·开标·评标·定标", "定标自动生成采购订单", "四维绩效(质量/交付/价格/服务)"], "objects": ["供应商", "准入申请", "资质证书", "招标项目", "投标", "定标", "绩效评价"], "roles": ["采购开发", "供应商管理员", "评审专家"], "upstream": ["主数据(物料)"], "downstream": ["进销存(采购订单)"], "coreTables": ["srm_supplier", "srm_supplier_apply", "srm_supplier_certificate", "srm_tender_project", "srm_tender_bid", "srm_bid_award", "srm_supplier_evaluation"]}, {"key": "erp", "name": "进销存与财务", "color": "#5fc79e", "tag": "ERP", "flow": "purchase", "positioning": "商贸与资金单据中枢,向 MES 发起实物收发", "problem": "采购销售单据审批、来票付款控制、订单执行进度回写", "features": ["采购申请(BPM)→订单(自动/手动生成)", "确认收货→MES到货通知", "入库/退货数量状态回写", "采购来票(金额≤订单)", "付款单(必须关联来票·BPM)", "销售订单(BPM·审批通过自动建MPS)", "出库状态回写", "收款单(关联CRM客户)", "结算账户", "AI发票OCR"], "objects": ["采购申请", "采购订单", "采购来票", "付款单", "销售订单", "收款单", "结算账户"], "roles": ["采购员", "销售员", "出纳", "会计"], "upstream": ["CRM(合同)", "SRM(定标)", "主数据"], "downstream": ["生产(MPS)", "仓储(收发)"], "coreTables": ["erp_purchase_request", "erp_purchase_order", "erp_purchase_invoice", "erp_finance_payment", "erp_sale_order", "erp_finance_receipt", "erp_account"]}, {"key": "fin", "name": "财务报销(独立)", "color": "#3ec9a7", "tag": "FIN", "flow": "finance", "positioning": "独立的发票报销单据与归档", "problem": "纸质发票难归集、报销审批无留痕、归档后无法追溯", "features": ["报销单(主表 + 1..n 明细行)", "发票附件多文件上传(附件中心多态关联 storage_attachment)", "单号 Redis 生成 BX+yyyyMMdd+6位流水·每日重置", "明细随主表一次性提交(先删后增全量覆盖)", "BPM 审批(通过20/驳回35/取消退回草稿0)", "已驳回可改发票后重新提交", "归档终态 40 并记录归档时间", "费用类型/报销状态双字典 + Excel 导出", "对外提供 FinanceReimbursementApi(yudao-module-finance-api)供课题管理经费拨付自动建单并提交(1 行明细·费用类型=其他·金额一致)"], "objects": ["报销单", "报销明细"], "roles": ["报销人", "财务", "审批人"], "upstream": ["课题管理(经费拨付 1:1 自动生成报销单·走 yudao-module-finance-api·本地 Bean 调用)"], "downstream": [], "coreTables": ["finance_reimbursement", "finance_reimbursement_item"]}, {"key": "pro", "name": "生产管理", "color": "#e0b34f", "tag": "MES-PRO", "flow": "production", "positioning": "生产执行核心:计划-工单-任务-报工", "problem": "订单到车间执行的逐层拆解与过程可控", "features": ["MPS主生产计划(可由销售订单自动创建·合并下发)", "工单(按工艺路线自动生成工序任务)", "报工(按工序顺序控制·BPM审批)", "倒冲扣线边库/产出入库", "安灯", "工艺路线·工序·工单BOM", "研发设计项目(PD·审批归档)", "AI 四类预测"], "objects": ["MPS", "生产工单", "生产任务", "报工单", "工艺路线", "工单BOM", "设计项目"], "roles": ["计划员", "车间主任", "操作工", "工艺员"], "upstream": ["进销存(销售订单)"], "downstream": ["仓储(领料/入库)", "质量(IPQC)"], "coreTables": ["mes_pro_mps", "mes_pro_work_order", "mes_pro_task", "mes_pro_feedback", "mes_pro_route", "mes_pro_process", "mes_pro_work_order_bom", "mes_pd_project"]}, {"key": "wm", "name": "仓储管理", "color": "#7e6bd6", "tag": "MES-WM", "flow": "warehouse", "positioning": "厂内 WMS:单据驱动的库存账实一致", "problem": "多来源出入库、批次/SN 追溯、库存精确到库位", "features": ["15种出入库单据", "库存台账(物料×仓库×库区×库位×批次×供应商)", "事务流水只读留痕", "调拨成对事务", "盘点(静态/动态·盲盘·盘盈盘亏调整)", "批次/SN/条码/装箱嵌套", "虚拟线边库(允许负库存)", "库存占用(5类)", "四级冻结", "WMS审批配置+BPM", "对外 WmsStockApi/WmsTransactionApi"], "objects": ["到货通知", "采购入库", "领料", "完工入库", "销售出库", "发货通知", "销售退货", "供应商退货", "调拨", "盘点", "库存台账", "批次", "SN"], "roles": ["仓管员", "拣货员", "盘点员"], "upstream": ["采购(收货)", "生产(领退料)", "销售(发货)", "售后(退货)"], "downstream": ["进销存(数量回写)", "财务(成本基础)"], "coreTables": ["mes_wm_warehouse", "mes_wm_material_stock", "mes_wm_transaction", "mes_wm_item_receipt", "mes_wm_product_issue", "mes_wm_product_receipt", "mes_wm_product_sales", "mes_wm_return_sales", "mes_wm_transfer", "mes_wm_stock_taking_task", "mes_wm_batch", "mes_wm_sn", "mes_wm_stock_reserve"]}, {"key": "qc", "name": "质量管理", "color": "#e06c6c", "tag": "MES-QC", "flow": "quality", "positioning": "四道检验闸口 + 不合格品闭环处置", "problem": "来料/过程/出货/退货检验标准化,不合格可追溯处置", "features": ["IQC 来料(到货/外协)", "IPQC 过程(联动报工)", "OQC 出货(联动销售出库)", "RQC 退货(联动退料/售后)", "质检方案·指标·缺陷库", "检测结果:合格/特采/退货/报废", "NCR:评审→处置(退货/报废/返工/让步/降级)→关闭", "AI 判定建议"], "objects": ["IQC", "IPQC", "OQC", "RQC", "质检方案", "NCR", "缺陷记录"], "roles": ["质检员(IQC/IPQC/OQC)", "质量工程师"], "upstream": ["仓储(到货)", "生产(报工)", "销售(出库)", "售后(退货)"], "downstream": ["仓储(合格入库/报废出库)", "生产(NCR返工)"], "coreTables": ["mes_qc_iqc", "mes_qc_ipqc", "mes_qc_oqc", "mes_qc_rqc", "mes_qc_template", "mes_qc_indicator", "mes_qc_defect", "mes_qc_ncr"]}, {"key": "qcreport", "name": "智能质检报告", "color": "#b06ce0", "tag": "QC-REPORT", "flow": "quality", "positioning": "可视化设计报告模板 → 一键出件并冻结历史报告", "problem": "各行业质检报告格式各异,排版硬编码改一次发一次版;且历史报告必须可复现、不随业务数据变化", "features": ["GrapesJS 可视化设计器(质检组件走注册机制,不硬编码进编辑器)", "模板 + 多版本:草稿0/已发布1/已停用2,已发布版本内容不可覆盖", "组件数据绑定与独立判定规则引擎(禁用 eval / ScriptEngine)", "与前端逐字对齐的 Java 渲染引擎,出站 HTML 剥离 on* 事件属性与 javascript:/vbscript:/data: 协议", "出件接口:preview 只渲染不落库不消耗编号 / generate 渲染+落库+冻结 data_snapshot / regenerate 用冻结快照与同一版本重渲", "报告编号 QR+yyyyMMdd+4位流水,按天独立,可显式指定(撞号会报出具体编号)", "缺口清单只在 preview/generate/regenerate 响应里返回,不落库", "PDF(Playwright) 归档与 MES 四种质检单归一化对接待后续轮次"], "objects": ["报告模板", "报告实例"], "roles": ["报告设计员", "质检员(出件)"], "upstream": ["质量(质检单上下文,本轮由调用方传入)"], "downstream": ["附件中心(PDF 归档·后续轮次)", "BI"], "coreTables": ["qc_report_template", "qc_report_template_version", "qc_report_instance", "qc_report_data_source", "qc_report_rule", "qc_report_render_record"]}, {"key": "dv", "name": "设备与工装排班", "color": "#59a8b8", "tag": "MES-DV/TM/CAL", "flow": null, "positioning": "设备资产健康与生产资源保障", "problem": "设备点检保养维修可执行、工装状态可控、班组排班有依据", "features": ["设备台账(停机/生产中/保养中)", "点检·保养方案与记录", "维修工单(草稿→维修→待验收→已确认)", "计量器具检定", "工装夹具(在库/领用/维修/报废)", "班组·班次·排班计划·节假日"], "objects": ["设备", "点检记录", "维修工单", "工装", "排班计划"], "roles": ["设备员", "维修工", "工装管理员", "排班员"], "upstream": [], "downstream": ["生产(AI 风险预测消费设备数据)", "薪酬(排班工时)"], "coreTables": ["mes_dv_machinery", "mes_dv_check_plan", "mes_dv_check_record", "mes_dv_repair", "mes_tm_tool", "mes_cal_plan", "mes_cal_team", "mes_cal_shift"]}, {"key": "aftersales", "name": "售后服务", "color": "#c78bd6", "tag": "AFTER", "flow": "aftersales", "positioning": "客户反馈到退货/维修/退款闭环", "problem": "售后工单流转、退货与质检入库退款的跨系统联动", "features": ["工单六态(草稿→处理中→待入库→待退款→完结→关闭)", "问题判定(一般/维修/退货)", "维修(现场/返厂/远程)", "退货申请→自动建 MES 销售退货单", "质检结论/入库/退款三重回调", "行级数据权限四视图"], "objects": ["售后工单", "维修记录", "退货申请"], "roles": ["客服", "维修工程师", "售后管理员"], "upstream": ["CRM(客户)", "ERP(销售订单)"], "downstream": ["仓储(销售退货)", "质量(RQC)", "财务(退款)"], "coreTables": ["after_sale_ticket", "after_sale_ticket_item", "after_sale_repair", "after_sale_return", "after_sale_permission"]}, {"key": "hrm", "name": "人力资源", "color": "#9db85a", "tag": "HRM", "flow": null, "positioning": "员工入转调离与考勤薪酬", "problem": "人事流程审批化、离职数据不丢(交接)、算薪自动化", "features": ["员工档案(入职自动建系统账号)", "请假/加班/调岗/离职 BPM 审批", "离职交接映射 expandUserIds", "考勤(打卡·规则·排班·补卡审批·月度汇总)", "薪酬(应发-社保公积金-个税-请假扣款·1.5/2/3倍加班费·发放台账)", "培训证书(SQL先行待实现)"], "objects": ["员工", "请假单", "离职申请", "交接映射", "考勤记录", "薪酬核算"], "roles": ["HR", "部门主管", "员工本人"], "upstream": [], "downstream": ["各模块(数据可见性扩展)", "system(账号)"], "coreTables": ["hrm_employee", "hrm_leave_application", "hrm_resignation_application", "hrm_user_handover", "hrm_attendance_record", "hrm_salary_calculation", "hrm_salary_payment"]}, {"key": "ums", "name": "会员管理(独立)", "color": "#d6955c", "tag": "UMS", "flow": "ums", "positioning": "学会/协会型会员全生命周期:入会申请审批 → 自动建档 → 会员列表与通讯录", "problem": "会员入会靠线下表格与人工建档,会员等级口径混乱,会员信息无法按地区/行业检索", "features": ["入会申请单(个人/单位二型·字段分叉)", "申请等级两级口径(个人 ums_personal_grade / 单位 ums_unit_grade)", "申请编号 SQ+yyyyMMdd+6位流水·会员编号 HY+同日流水(Redis 每日重置)", "BPM 两级审批(秘书处初审→理事会审议)·状态 0草稿/15审批中/20已通过/35已驳回", "审批通过自动建会员 + 自动建系统登录账号(AdminUserApi.createUser·用户名与初始密码=联系电话)", "会员等级与类型匹配校验(单位会员不可选『理事长』)", "会员通讯录只读检索(按地区编码/行业)", "证明材料走 system 附件中心(recordType=ums_application / ums_member)"], "objects": ["入会申请单", "会员"], "roles": ["入会申请人", "会员管理员", "秘书处(初审)", "理事会(审议)"], "upstream": [], "downstream": ["system(自动创建登录账号)"], "coreTables": ["ums_application", "ums_member"]}, {"key": "res", "name": "课题管理(独立)", "color": "#e070a8", "tag": "RES", "flow": "research", "positioning": "学会/协会型科研课题全生命周期:指南发布 → 在线申报 → 专家评审 → 立项审批 → 经费拨付(立项通知走系统公告)", "problem": "课题指南靠线下发布、申报书靠纸质或邮件收集、专家评分散落在表格里无法自动汇总排名、立项与拨款无留痕", "features": ["课题指南(重点1/一般2 分类标注)", "指南状态 0草稿/20已发布/30已截止·发布/截止两个动作", "指南编号 GL+yyyyMMdd+6位流水(Redis 每日重置)", "在线申报书(选指南+选会员带出申报人信息+课题组成员+申请经费+申报书正文)", "申报编号 SB+同日流水·类别冗余自指南不信任前端", "申报状态 0草稿/15审批中/20已立项/35已驳回", "提交前校验指南已发布且在申报期内(逐条报具体维度与时间)", "专家评审明细子表(一位专家一行·四项加权 0.3/0.3/0.2/0.2)", "后端自动重算加权合计与排名·回写主单均分与推荐结论", "BPM 三级审批 research_topic_approve(秘书处形式审查→专家评审→学会立项审批)", "审批通过生成立项编号 LX+同日流水 与立项时间(幂等)", "发布立项通知(生成 system_notice 公告·写回 noticeId 防重复)", "经费拨付记录(批次/金额/日期/收款单位/备注/凭证附件)·凭证必填·金额不得超申请经费", "经费拨付 1:1 自动生成并提交财务报销单(FinanceReimbursementApi·1 行明细·费用类型=其他)", "拨付状态 0待拨付/15报销审批中/20已拨付/30已驳回·由 BPM 监听器回写(含驳回原因与时间)", "已驳回可改金额/凭证后重新发起报销·待拨付可删并联动清理财务侧草稿报销单", "附件走 system 附件中心(recordType=research_guideline / research_application / research_fund_record)"], "objects": ["课题指南", "课题申报书", "专家评审明细", "经费拨付记录"], "roles": ["课题申报人(会员)", "课题管理员", "评审专家", "学会秘书处", "学会理事会", "学会财务"], "upstream": ["会员管理(ums_member 取申报人姓名/单位/职称/电话)", "BPM(流程定义 research_topic_approve / finance_reimbursement_approve)"], "downstream": ["system(system_notice 立项通知公告)", "system(附件中心)", "财务(经费拨付生成 finance_reimbursement 报销单·已对接)"], "coreTables": ["research_guideline", "research_application", "research_topic_review", "research_fund_record"]}, {"key": "bpm", "name": "协同审批", "color": "#e6a23c", "tag": "BPM", "flow": null, "positioning": "全系统单据审批中枢(Flowable)", "problem": "多模块单据需要灵活可配的多级审批", "features": ["BPMN+钉钉风格双设计器", "流程定义部署", "审批事件统一回调(BpmProcessInstanceStatusEvent)", "15个业务监听器(同一流程 key 允许多个监听器并行·各自按 key 过滤)", "表单·用户组·抄送·加签"], "objects": ["流程模型", "流程实例", "审批任务"], "roles": ["审批人(按流程配置)", "流程管理员"], "upstream": ["各业务提交审批"], "downstream": ["回调更新各业务单据状态"], "coreTables": ["bpm_process_definition_info", "bpm_process_instance", "bpm_task", "act_*", "flowable_*"]}, {"key": "ai", "name": "AI 智能", "color": "#56c8d8", "tag": "AI", "flow": "ai", "positioning": "单据录入提效与生产决策辅助", "problem": "人工录发票/报价慢、质检与排产依赖经验", "features": ["chat/chatWithImage 双通道", "OCR 预填(发票/报价)", "质检判定建议", "缺料/时长/风险/交付四类预测", "RAG 知识库(Milvus)", "AI不可用时 fallback 人工"], "objects": ["知识库", "AI模型配置", "对话记录"], "roles": ["采购员", "销售", "质检员", "计划员"], "upstream": ["各业务提供上下文数据"], "downstream": ["结构化JSON建议返回业务侧"], "coreTables": ["ai_chat_conversation", "ai_chat_message", "ai_model", "ai_knowledge", "ai_knowledge_document", "ai_knowledge_segment"]} ], "platform": { "name": "系统底座", "capabilities": ["JWT+OAuth2 认证·滑块验证码", "RBAC 角色-菜单-数据范围(全部/部门/本部门及下级/仅本人/自定义)", "字典", "附件中心(storage-blob 文件 + storage-attachment 按 recordType+recordId 多态关联,全模块强制使用)", "编码规则(各业务自实现 Redis 前缀+日期+流水)", "Quartz 定时任务·RocketMQ/Kafka/Redis Stream MQ·WebSocket", "多租户已关闭", "实际 system_role 仅 4 个:超级管理员/普通角色/CRM管理员/租户管理员,业务分工靠数据权限而非多角色"], "unused": ["im 模块(IM/RTC,业务未消费)", "member 模块(C端商城会员,遗留;与 UMS 学会会员无关,勿混用)"] } }