gaoluyang
5 天以前 cdaec80a5ffa474f69e5c36f0312be3c0abf2210
docs/project-business/data/objects.json
@@ -1,61 +1,822 @@
{
  "objects": [
    {"name": "物料", "module": "基础主数据", "table": "mdm_item", "doc": "MDM 权威物料/产品/半成品档案,含 SKU、批次属性、价格、安全库存", "upstream": ["MES 物料反向同步"], "downstream": ["报价单", "销售订单", "采购订单", "工单BOM", "库存台账"], "keywords": "物料 产品 原材料 item"},
    {"name": "仓库", "module": "基础主数据", "table": "mdm_warehouse", "doc": "仓库主数据,type: 1原料/2成品/3半成品/4线边;MES 自有 mes_wm_warehouse 承载库区库位", "upstream": [], "downstream": ["库存台账", "出入库单据"], "keywords": "仓库 warehouse 原料仓 成品仓 线边仓"},
    {"name": "客户", "module": "销售管理", "table": "crm_customer", "doc": "客户主档,公海池/锁定/成交状态,负责人数据权限;客户列表按「审核通过」合同实时统计已签订合同份数与金额合计", "upstream": ["线索"], "downstream": ["联系人", "商机", "报价单", "合同", "售后工单", "收款单"], "keywords": "客户 customer 公海"},
    {"name": "线索", "module": "销售管理", "table": "crm_clue", "doc": "原始销售线索,仅一次转化为客户", "upstream": [], "downstream": ["客户"], "keywords": "线索 clue"},
    {"name": "联系人", "module": "销售管理", "table": "crm_contact", "doc": "客户下联系人,与商机多对多", "upstream": ["客户"], "downstream": ["商机"], "keywords": "联系人 contact"},
    {"name": "商机", "module": "销售管理", "table": "crm_business", "doc": "销售机会,DB 配置式阶段推进,结束态: 赢/输/无效", "upstream": ["客户"], "downstream": ["报价单", "合同"], "keywords": "商机 business 赢单 输单 阶段"},
    {"name": "报价单", "module": "销售管理", "table": "crm_sale_quotation", "doc": "QT编号,选 MDM 物料报价,AI OCR 录入,草稿→已转合同", "upstream": ["商机"], "downstream": ["合同"], "keywords": "报价 quotation QT"},
    {"name": "合同", "module": "销售管理", "table": "crm_contract", "doc": "HT编号,BPM 审批(0草稿/10审批中/20通过/30驳回/40取消/50作废),通过后可生成销售订单;支持 Excel 导入(一合同多产品明细行、合并单元格自动拉平,客户与物料按名称/编码校验);产品明细带出物料名称/编码/条码/规格型号/计量单位;删除合同时连带删除产品明细,不留孤儿数据", "upstream": ["报价单"], "downstream": ["销售订单", "回款计划", "开票"], "keywords": "合同 contract 审批 导入"},
    {"name": "发票", "module": "销售管理", "table": "crm_invoice", "doc": "KP编号(可留空自动生成、系统内唯一),BPM 审批,累计开票≤合同额,附件必传;开票申请须绑定 ERP 销售订单与 MES 销售出库单,审批通过后进入录入发票阶段(entry_status 0待录入→10已录入),录入时填写发票号码/日期/附件并设置合同款/预付款/到货款/验收款/质保金收款节点;支持 Excel 导入(仅新增不更新,合同须审核通过且本次金额≤合同剩余可开票额;同一批数据不可重复导入——同合同下发票号码相同、或发票号码留空时开票金额+发票抬头+开票日期相同即判重复,文件内重复行与库内已有单都拒该行并回显维度与实际值)", "upstream": ["合同", "销售订单", "销售出库单"], "downstream": ["回款", "回款计划", "记账凭证"], "keywords": "开票 发票 invoice 导入 去重 开票申请 录入发票 出库单"},
    {"name": "回款", "module": "销售管理", "table": "crm_receivable", "doc": "HK编号,创建即审批中(手动审核),强制先开票,金额双校验;新增/编辑可带核销明细 items(20销售订单/21销售出库/23开票),明细合计必须等于回款金额,审核通过后回写回款计划已回款额/实际回款时间/状态(0未回款10部分回款20已回清)", "upstream": ["合同", "发票", "销售订单", "销售出库单"], "downstream": ["收款单(关联)", "回款核销明细", "回款计划", "记账凭证"], "keywords": "回款 收款计划 receivable 核销"},
    {"name": "回款核销明细", "module": "销售管理", "table": "crm_receivable_item", "doc": "每行把回款金额核销到一张业务单据:biz_type 20销售订单/21销售出库/23开票,biz_no、单据金额、已核销金额由后端按 biz_id 回填;每行核销额不得超过该单据剩余应收;不传 items 且带 invoice_id 时自动生成一条开票核销行", "upstream": ["回款", "销售订单", "销售出库单", "发票"], "downstream": ["客户应收对账", "未核销应收报表"], "keywords": "核销 核销明细 write off item receivable_item"},
    {"name": "销售目标", "module": "销售管理", "table": "crm_sales_target", "doc": "年/季/月×个人/部门/产品维度的合同回款等目标", "upstream": [], "downstream": ["业绩统计"], "keywords": "目标 target 业绩"},
    {"name": "供应商", "module": "供应商管理", "table": "srm_supplier", "doc": "供应商档案:执照/税号;多个联系人(srm_supplier_contact)与多个银行账户(srm_supplier_bank·含银行行号),主表保留默认联系人/默认银行字段,ERP 与 MES 共用", "upstream": ["手工建档/Excel 导入"], "downstream": ["询价比价", "投标保证金", "采购订单", "到货通知", "供应商退货", "供应商往来"], "keywords": "供应商 supplier vendor 联系人 开户行 银行行号"},
    {"name": "询价比价", "module": "供应商管理", "table": "srm_inquiry", "doc": "XJ编号,草稿0→已转订单20→已取消30(10询价中为历史状态);新增/编辑时一并录入产品行×参与供应商报价(srm_inquiry_quote)并选定每个产品的中标供应商,无需单独的报价/比价步骤,确认后按中标供应商拆分生成采购订单草稿并记录 srm_inquiry_order", "upstream": ["供应商", "主数据(物料)"], "downstream": ["采购订单(草稿)"], "keywords": "询价 比价 报价 中标 inquiry quote"},
    {"name": "投标保证金", "module": "供应商管理", "table": "srm_bid_bond", "doc": "BZ编号台账,关联供应商/询价单/采购订单,记录保证金金额、缴纳日期、是否中标、退回状态(0未退1部分2已退3无需退)/退回金额/退回日期", "upstream": ["供应商", "询价比价", "采购订单"], "downstream": ["供应商往来(参考)"], "keywords": "投标保证金 中标 退回 bid bond"},
    {"name": "采购申请", "module": "进销存", "table": "erp_purchase_request", "doc": "CGSQ编号,BPM 审批,通过后有供应商自动生成订单", "upstream": ["生产缺口(人工)"], "downstream": ["采购订单"], "keywords": "采购申请 请购 request"},
    {"name": "采购订单", "module": "进销存", "table": "erp_purchase_order", "doc": "菜单名「采购台账」,CGDD编号,BPM 审批(草稿0→审批中15→已审核20),入库状态:未0部分1全部2;表头含采购类型(生产/办公用品/其他)、合同号(手工输入不自动生成)、项目名称、付款日期(必填,超30天账期标红)、付款方式(电汇/汇票/现金/手机支付);明细产品编号快照 MDM 物料编码;来源可为采购申请、询价比价确认生成的草稿或销售订单/生产工单(来源单号回溯);单价为含税单价,价税合计=单价×数量,税额从含税金额中反算(不再额外加税)", "upstream": ["采购申请", "询价比价(确认中标)"], "downstream": ["到货通知", "采购来票", "供应商退货(约束物料)", "供应商往来"], "keywords": "采购订单 purchase"},
    {"name": "采购来票", "module": "进销存", "table": "erp_purchase_invoice", "doc": "FPD编号,AI OCR 预填,累计≤订单总价,付款单的前置;必须同时绑定采购订单与 MES 采购入库单(item_receipt_id),按订单与入库单两层剩余可来票额度校验;供应商往来右侧展示开票金额/已付/剩余应付", "upstream": ["采购订单", "MES 采购入库单"], "downstream": ["付款单", "供应商往来", "记账凭证"], "keywords": "来票 发票 采购发票 入库单"},
    {"name": "付款单", "module": "财务", "table": "erp_finance_payment", "doc": "FKD编号,必须关联来票+附件,累计≤来票金额,BPM 审批", "upstream": ["采购来票"], "downstream": ["结算账户", "供应商往来"], "keywords": "付款 应付 payment"},
    {"name": "供应商往来", "module": "进销存", "table": "无独立表(聚合视图)", "doc": "按供应商+时间范围聚合采购订单/来票/付款:汇总累计采购额、累计开票额、累计付款额、未付余额;左侧订单行含已开票/未开票金额,右侧来票行含开票金额/已付/剩余应付", "upstream": ["采购订单", "采购来票", "付款单"], "downstream": [], "keywords": "供应商往来 对账 开票金额 应付 statement"},
    {"name": "收款单", "module": "财务", "table": "erp_finance_receipt", "doc": "SKD编号,关联 CRM 客户校验,无 BPM(手动审核)", "upstream": ["销售(弱关联)"], "downstream": ["结算账户"], "keywords": "收款 应收 receipt"},
    {"name": "会计科目", "module": "会计核算", "table": "fin_account_subject", "doc": "科目树,parent_id 自关联;科目类型1资产2负债3权益4成本5损益,余额方向1借2贷,状态0启用1禁用;账表与分录统一按 subject_code 取数", "upstream": ["会计科目种子约68条一级科目"], "downstream": ["记账凭证分录", "总账", "明细账"], "keywords": "会计科目 科目 subject account 资产类 负债类 损益类"},
    {"name": "记账凭证", "module": "会计核算", "table": "fin_voucher", "doc": "凭证字号可留空由后端自动生成;状态 未过账0/已过账10/已作废20;已过账不可改,未过账与已过账均可作废,未过账与已作废可删除;可通过 source_type/source_id/source_no 关联开票/回款/来票/付款等来源单据并支持按来源单号检索;附件按 recordType=fin_voucher 挂系统附件中心", "upstream": ["会计科目", "开票", "回款", "采购来票", "付款单"], "downstream": ["总账", "明细账", "财务报表看板"], "keywords": "记账凭证 凭证 voucher 过账 作废 借贷平衡"},
    {"name": "凭证分录", "module": "会计核算", "table": "fin_voucher_entry", "doc": "凭证下逐行分录:科目编码+借/贷金额+辅助核算(1客户2供应商3部门4员工5项目);一行不可借贷同时大于0,全表借贷合计必须相等且大于0", "upstream": ["记账凭证", "会计科目"], "downstream": ["总账", "明细账"], "keywords": "凭证分录 分录 entry 借方 贷方 辅助核算"},
    {"name": "固定资产", "module": "会计核算", "table": "fin_fixed_asset", "doc": "资产卡片,状态 1在用/2闲置/3维修中/4已报废;月折旧额=(原值×(1-残值率))÷(年限×12),累计折旧与净值由计提累加,不接收前端传值", "upstream": [], "downstream": ["财务报表看板", "总账"], "keywords": "固定资产 折旧 资产卡片 fixed asset 残值率"},
    {"name": "无形资产", "module": "会计核算", "table": "fin_intangible_asset", "doc": "无形资产卡片(证书编号/有效期),状态 1在用/2已失效/3已摊销完;月摊销额=(原值×(1-残值率))÷(摊销年限×12),累计摊销与净值由计提累加", "upstream": [], "downstream": ["财务报表看板", "总账"], "keywords": "无形资产 摊销 软件著作权 专利 intangible 有效期"},
    {"name": "销售订单", "module": "进销存", "table": "erp_sale_order", "doc": "XSDD编号,BPM 审批,需生产行自动建 MPS,出库状态:未0已预留1部分2全部3,生产完成事件回写", "upstream": ["合同"], "downstream": ["MPS", "发货通知", "销售出库", "售后工单"], "keywords": "销售订单 sale"},
    {"name": "主生产计划", "module": "生产", "table": "mes_pro_mps", "doc": "MPS计划,草稿0→已下发1→完成2/取消3,可合并下发", "upstream": ["销售订单"], "downstream": ["生产工单"], "keywords": "MPS 主计划 生产计划"},
    {"name": "生产工单", "module": "生产", "table": "mes_pro_work_order", "doc": "草稿0→已确认1→完成2/取消3,确认时按工艺路线生成任务,最后一道工序报工回写已生产数量", "upstream": ["MPS"], "downstream": ["生产任务", "领料", "完工入库"], "keywords": "工单 生产工单 work order"},
    {"name": "生产任务", "module": "生产", "table": "mes_pro_task", "doc": "工序粒度,预备0→生产中1→部分2→完成4,可暂停9取消5", "upstream": ["生产工单"], "downstream": ["报工"], "keywords": "任务 task 工序"},
    {"name": "报工单", "module": "生产", "table": "mes_pro_feedback", "doc": "草稿0→审批中2→待检3/完成4,按工序顺序校验(上道工序报满才可报),联动倒冲消耗/产出入库/IPQC;质检工序报工审批后转待检验并生成 PENDING 产出行,等已完成 IPQC 按物料+盘号+数量关联后才回写完成", "upstream": ["生产任务"], "downstream": ["产品产出", "物料消耗", "IPQC"], "keywords": "报工 feedback"},
    {"name": "工艺路线", "module": "生产", "table": "mes_pro_route", "doc": "工序顺序+质检/关键/倒冲标记,驱动工单任务与报工规则", "upstream": [], "downstream": ["生产工单"], "keywords": "工艺 路线 route 工序"},
    {"name": "到货通知单", "module": "仓储", "table": "mes_wm_arrival_notice", "doc": "采购订单确认收货生成,草稿0→待质检2→待入库3→完成4;表头带采购合同号(选择采购订单自动带入,换货到货沿用原退货单合同号),可按合同号检索", "upstream": ["采购订单", "供应商退货(换货)"], "downstream": ["IQC", "采购入库"], "keywords": "到货 收货 arrival 合同号"},
    {"name": "采购入库单", "module": "仓储", "table": "mes_wm_item_receipt", "doc": "草稿0→待上架2→待执行3→完成4,完成后库存+并回写 ERP inCount/inStatus", "upstream": ["到货通知"], "downstream": ["库存台账", "采购订单(回写)"], "keywords": "采购入库 收货入库 receipt"},
    {"name": "生产领料单", "module": "仓储", "table": "mes_wm_product_issue", "doc": "草稿0→待拣货2→待执行3→完成4,库存-", "upstream": ["生产工单"], "downstream": ["库存台账"], "keywords": "领料 issue"},
    {"name": "销售出库单", "module": "仓储", "table": "mes_wm_product_sales", "doc": "发货通知审核后生成,提交后有 oqcCheckFlag 行转待检测1(提交时不再自动建 OQC),需质检员独立录入 OQC 并在检验单详情按物料+盘号+数量关联待检行;全部待检行合格后转待拣货2→发运10→待执行3→完成4,回写销售订单出库数与状态", "upstream": ["发货通知", "销售订单"], "downstream": ["库存台账", "OQC"], "keywords": "销售出库 发货 出库单 sales"},
    {"name": "销售退货单", "module": "仓储", "table": "mes_wm_return_sales", "doc": "草稿→待检验(RQC)→待上架→待入库→完成,售后与手工两来源", "upstream": ["售后退货(仓储发起)"], "downstream": ["库存台账", "RQC"], "keywords": "销售退货 退货入库"},
    {"name": "供应商退货单", "module": "仓储", "table": "mes_wm_return_vendor", "doc": "质量部发起退货,草稿0→审批中1(BPM:采购→质量→仓库)→待拣货2→待执行退货3→完成4,可取消5,库存-;上传附件走 storage-attachment;处理方式 1退款(完成后自动生成负数冲红付款单) / 2换货(完成后自动生成待质检到货通知单并创建 IQC,重新入库质检);合同号从采购订单快照", "upstream": ["IQC", "采购订单(合同号)"], "downstream": ["库存台账", "采购订单(returnCount)", "付款单(冲红)", "到货通知(换货)"], "keywords": "供应商退货 退料 退货 vendor"},
    {"name": "调拨单", "module": "仓储", "table": "mes_wm_transfer", "doc": "内部/外部调拨,成对 MOVE_OUT+MOVE_IN 事务,在途数量", "upstream": [], "downstream": ["库存台账"], "keywords": "调拨 移库 transfer"},
    {"name": "盘点任务", "module": "仓储", "table": "mes_wm_stock_taking_task", "doc": "静态/动态盘点,行结果:正常/盘盈(ADJUST_IN)/盘亏(ADJUST_OUT),可冻结库存、盲盘", "upstream": ["库存台账"], "downstream": ["库存台账(调整)"], "keywords": "盘点 盘盈 盘亏 stock taking"},
    {"name": "库存台账", "module": "仓储", "table": "mes_wm_material_stock", "doc": "物料×仓库×库区×库位×批次×供应商六元组,数量/冻结/占用/在途四量", "upstream": ["全部入库单"], "downstream": ["全部出库单", "事务流水"], "keywords": "库存 台账 stock 可用量"},
    {"name": "批次", "module": "仓储", "table": "mes_wm_batch", "doc": "关联物料/工单/供应商/客户/质量状态;SN 码含批次 uuid;条码支持18种业务对象", "upstream": ["入库单据"], "downstream": ["库存台账"], "keywords": "批次 batch SN 条码 追溯"},
    {"name": "IQC来料检验", "module": "质量", "table": "mes_qc_iqc", "doc": "到货通知/外协入库触发,草稿0→完成4,结论回写来源单据;行操作「出报告」仅在已完成时可见;支持 Excel 批量导入(工具栏「批量导入」,纯新增、导入单为草稿、编号可留空自动生成);同一批数据不可重复导入(物料+供应商+供应商批次+来料日期,文件内重复行与库内已有单都拒该行)", "upstream": ["到货通知", "外协入库", "Excel 批量导入"], "downstream": ["采购入库", "供应商退货", "NCR", "报告实例(出报告)"], "keywords": "IQC 来料检验 出报告 批量导入 导入模板"},
    {"name": "IPQC过程检验", "module": "质量", "table": "mes_qc_ipqc", "doc": "报工质检工序产出行待检后独立录入,完成时按合格+不合格=检测数量自动判定 1 通过/2 不通过(需已上传检验附件);已完成且未绑定来源的单据,在详情按物料+盘号+数量一致选择待检产出行关联,回写报工完成与产出入库;未关联不回写。行操作「出报告」仅在已完成时可见;支持 Excel 批量导入(产品物料由生产工单推导,模板不填物料;工废+料废+其他废品不得超过不合格品数量);同一批数据不可重复导入(生产工单+检验类型+工位+检测日期,文件内重复行与库内已有单都拒该行)", "upstream": ["报工", "Excel 批量导入"], "downstream": ["产出入库", "NCR", "报告实例(出报告)"], "keywords": "IPQC 过程检验 巡检 盘号关联 报工关联 出报告 批量导入 导入模板"},
    {"name": "OQC出货检验", "module": "质量", "table": "mes_qc_oqc", "doc": "销售出库提交后待检测行独立录入,完成时按合格+不合格=检测数量自动判定 1 通过/2 不通过(需已上传检验附件);已完成且未绑定来源的单据,在详情按物料+盘号+数量一致选择待检出库行关联,回写出库行质量状态 PASS/FAIL,全部待检行合格后出库单转待拣货;不合格行留待后续处置,不自动取消出库单。行操作「出报告」仅在已完成时可见;支持 Excel 批量导入(客户须在当前登录用户的客户数据权限范围内);同一批数据不可重复导入(物料+客户+批次号+出货日期,文件内重复行与库内已有单都拒该行)", "upstream": ["销售出库单", "Excel 批量导入"], "downstream": ["销售出库单(推进)", "报告实例(出报告)"], "keywords": "OQC 出货检验 出厂检验 盘号关联 出库关联 出报告 批量导入 导入模板"},
    {"name": "RQC退货检验", "module": "质量", "table": "mes_qc_rqc", "doc": "生产退料/销售退货/售后退货触发,结论回调售后;行操作「出报告」仅在已完成时可见。措辞已统一为「退货检验」(原菜单父项与 mes_qc_type 字典写「退料检验」,与后端枚举/表注释/菜单权限子项不一致;RQC 三者都覆盖,故取「退货检验」)", "upstream": ["退料", "退货"], "downstream": ["退货入库", "售后回调", "报告实例(出报告)"], "keywords": "RQC 退货检验 退料检验 出报告"},
    {"name": "NCR不合格品", "module": "质量", "table": "mes_qc_ncr", "doc": "待评审0→已评审6→已处置7→已关闭8,处置:退货/报废/返工/让步接收/降级", "upstream": ["IQC/IPQC/OQC/RQC"], "downstream": ["退货/报废/返工(台账)"], "keywords": "NCR 不合格 处置 特采 报废"},
    {"name": "设备", "module": "设备", "table": "mes_dv_machinery", "doc": "台账状态:停机/生产中/保养中;点检·保养·维修工单;AI 风险预测消费其数据", "upstream": [], "downstream": ["点检", "维修", "生产风险预测"], "keywords": "设备 点检 保养 维修 machinery"},
    {"name": "售后工单", "module": "售后", "table": "after_sale_ticket", "doc": "草稿0→处理中10→待入库30→待退款40→完结50→关闭60/取消99,判定:一般/维修/退货;客户诉求反馈描述+附件、处理结果+附件;创建/更新/判定/完结/归档/取消/回访写入流转记录", "upstream": ["客户反馈(人工录入)"], "downstream": ["维修记录", "仓储销售退货(原退货申请页面已下线)"], "keywords": "售后 工单 ticket 维修 客户诉求 处理结果 流转记录"},
    {"name": "工单流转记录", "module": "售后", "table": "after_sale_ticket_flow", "doc": "售后工单每次动作留痕:动作编码/名称、变更前后状态、内容、操作人、时间", "upstream": ["售后工单"], "downstream": [], "keywords": "售后 流转记录 flow"},
    {"name": "退货申请", "module": "售后", "table": "after_sale_return", "doc": "后台保留,售后页面已下线;草稿0→已审核20(自动建MES退货单)→已质检40→已入库50→已退款60→关闭70;类型:退款退货/换货/仅退款", "upstream": ["售后工单"], "downstream": ["销售退货单", "退款"], "keywords": "售后退货 return"},
    {"name": "员工", "module": "人力", "table": "hrm_employee", "doc": "在职1/试用2/离职3,入职自动建系统账号;离职申请到期自动置为离职3并停用系统账号", "upstream": [], "downstream": ["交接映射", "考勤", "薪酬"], "keywords": "员工 入职 employee 离职"},
    {"name": "离职申请", "module": "人力", "table": "hrm_resignation_application", "doc": "草稿0→审批中10→通过20/驳回30/撤销40;审批通过后可交接0→10→20;到期任务写实际离职日期、把员工状态改为离职3并停用系统账号", "upstream": ["员工"], "downstream": ["员工档案状态", "离职交接"], "keywords": "离职 resignation 审批 交接 自动离职"},
    {"name": "离职交接", "module": "人力", "table": "hrm_user_handover", "doc": "同时记录离职/交接双方员工ID与用户ID;交接完成20 后 expandUserIds 扩展交接人可见数据;审批通过且到预计离职日期后自动把员工状态改为离职3并停用系统账号", "upstream": ["离职申请"], "downstream": ["各模块我的数据查询", "员工档案状态"], "keywords": "交接 离职 handover expandUserIds 自动离职"},
    {"name": "排班计划", "module": "设备", "table": "mes_cal_plan", "doc": "班组×班次×日期排班,供生产与考勤引用", "upstream": [], "downstream": ["生产任务", "考勤"], "keywords": "排班 班组 班次 日历"},
    {"name": "报告模板", "module": "质检报告", "table": "qc_report_template", "doc": "智能质检报告模板,启用0/停用1;画布内容存在 qc_report_template_version(草稿0/已发布1/已停用2,已发布不可覆盖),currentVersion 指向当前已发布版本;源文件经 AI 导入识别成草稿后由人工确认才成为版本;同一模板重复导入按【替换】处理——先删旧附件(连带 blob 行与磁盘文件)再绑新的,不留孤儿文件;删除模板会连带清附件", "upstream": ["人工设计(GrapesJS 设计器)", "AI 导入草稿(qc-report/ai-import/draft)"], "downstream": ["模板版本", "报告实例"], "keywords": "报告模板 质检报告 template 设计器 版本 AI导入 识别 草稿 源文件替换"},
    {"name": "报告实例", "module": "质检报告", "table": "qc_report_instance", "doc": "出件产物,编号 QR+yyyyMMdd+4位流水按天独立且业务唯一,可显式指定覆盖(注意 uk_report_no 不区分软删除,删掉的号不回收);两条出件入口:通用 generate(调用方自带 context)与 generate-from-qc(数据从 MES 质检单取,权限码 qc-report:instance:generate 已入 system_menu id=1075416,五道校验按业务优先级只报第一处:105_000 类型非法 / 105_001 单据不存在 / 105_002 未完成 / 105_003 未判定 / 105_005 模板类型不符 / 105_006 无可用检验项;四张质检单列表的行操作「出报告」仅在 status=已完成时可见,弹窗只列 reportType 一致、模板启用、且 currentVersion 指向的版本已发布的模板(后端 /qc-report/template/selectable 判定——停用版本不清空 currentVersion,前端拿分页结果自己推导会漏),结果就地展示并跳本页列表);冻结 data_snapshot(判定后数据,含后端算好的 PASS/FAIL 与合格率)与 render_html;regenerate 只重渲排版、数据与编号不变;business_id/business_type 存 MES 表名(mes_qc_iqc 等)与单据 ID,可反查、一单可出多份;报告头另带单据原判定 qcResult(数)/qcResultText(中文,合格/特采/不合格退货/不合格报废),与引擎三态判定并存互不覆盖;响应带 undecidableCount=快照中 result 为空串的项数与 warnings(分组标题跳过/指标已删/未录实测值/样品超3),两者都不落库、事后看不到", "upstream": ["报告模板版本", "质检单上下文(通用 generate 由调用方传入)", "MES 质检单 IQC/IPQC/OQC/RQC(generate-from-qc 经 MesQcReportApi 取数)"], "downstream": ["前端实例页 /qc/report-instance(列表·iframe预览·快照页签·导出PDF)", "PDF归档(system_storage_attachment recordType=qc_report_instance)"], "keywords": "报告实例 出件 QR编号 快照 复现 regenerate PDF归档 报告实例页 导出PDF generate-from-qc 质检单出报告 出报告弹窗 qcResult undecidableCount warnings 待判定 反查 业务单据筛选"}
  ]
}
 "objects": [
  {
   "name": "物料",
   "module": "基础主数据",
   "table": "mdm_item",
   "doc": "MDM 权威物料/产品/半成品档案,含 SKU、批次属性、价格、安全库存",
   "upstream": [
    "MES 物料反向同步"
   ],
   "downstream": [
    "报价单",
    "销售订单",
    "采购订单",
    "工单BOM",
    "库存台账"
   ],
   "keywords": "物料 产品 原材料 item"
  },
  {
   "name": "仓库",
   "module": "基础主数据",
   "table": "mdm_warehouse",
   "doc": "仓库主数据,type: 1原料/2成品/3半成品/4线边;MES 自有 mes_wm_warehouse 承载库区库位",
   "upstream": [],
   "downstream": [
    "库存台账",
    "出入库单据"
   ],
   "keywords": "仓库 warehouse 原料仓 成品仓 线边仓"
  },
  {
   "name": "客户",
   "module": "销售管理",
   "table": "crm_customer",
   "doc": "客户主档,公海池/锁定/成交状态,负责人数据权限;客户列表按「审核通过」合同实时统计已签订合同份数与金额合计",
   "upstream": [
    "线索"
   ],
   "downstream": [
    "联系人",
    "商机",
    "报价单",
    "合同",
    "售后工单",
    "收款单"
   ],
   "keywords": "客户 customer 公海"
  },
  {
   "name": "线索",
   "module": "销售管理",
   "table": "crm_clue",
   "doc": "原始销售线索,仅一次转化为客户",
   "upstream": [],
   "downstream": [
    "客户"
   ],
   "keywords": "线索 clue"
  },
  {
   "name": "联系人",
   "module": "销售管理",
   "table": "crm_contact",
   "doc": "客户下联系人,与商机多对多",
   "upstream": [
    "客户"
   ],
   "downstream": [
    "商机"
   ],
   "keywords": "联系人 contact"
  },
  {
   "name": "商机",
   "module": "销售管理",
   "table": "crm_business",
   "doc": "销售机会,DB 配置式阶段推进,结束态: 赢/输/无效",
   "upstream": [
    "客户"
   ],
   "downstream": [
    "报价单",
    "合同"
   ],
   "keywords": "商机 business 赢单 输单 阶段"
  },
  {
   "name": "报价单",
   "module": "销售管理",
   "table": "crm_sale_quotation",
   "doc": "QT编号,选 MDM 物料报价,AI OCR 录入,草稿→已转合同",
   "upstream": [
    "商机"
   ],
   "downstream": [
    "合同"
   ],
   "keywords": "报价 quotation QT"
  },
  {
   "name": "合同",
   "module": "销售管理",
   "table": "crm_contract",
   "doc": "HT编号,BPM 审批(0草稿/10审批中/20通过/30驳回/40取消/50作废),通过后可生成销售订单;支持 Excel 导入(一合同多产品明细行、合并单元格自动拉平,客户与物料按名称/编码校验);产品明细带出物料名称/编码/条码/规格型号/计量单位;删除合同时连带删除产品明细,不留孤儿数据",
   "upstream": [
    "报价单"
   ],
   "downstream": [
    "销售订单",
    "回款计划",
    "开票"
   ],
   "keywords": "合同 contract 审批 导入"
  },
  {
   "name": "发票",
   "module": "销售管理",
   "table": "crm_invoice",
   "doc": "KP编号(可留空自动生成、系统内唯一),BPM 审批,累计开票≤合同额,附件必传;开票申请须绑定 ERP 销售订单与 MES 销售出库单,审批通过后进入录入发票阶段(entry_status 0待录入→10已录入),录入时填写发票号码/日期/附件并设置合同款/预付款/到货款/验收款/质保金收款节点;支持 Excel 导入(仅新增不更新,合同须审核通过且本次金额≤合同剩余可开票额;同一批数据不可重复导入——同合同下发票号码相同、或发票号码留空时开票金额+发票抬头+开票日期相同即判重复,文件内重复行与库内已有单都拒该行并回显维度与实际值)",
   "upstream": [
    "合同",
    "销售订单",
    "销售出库单"
   ],
   "downstream": [
    "回款",
    "回款计划",
    "记账凭证"
   ],
   "keywords": "开票 发票 invoice 导入 去重 开票申请 录入发票 出库单"
  },
  {
   "name": "回款",
   "module": "销售管理",
   "table": "crm_receivable",
   "doc": "HK编号,创建即审批中(手动审核),强制先开票,金额双校验;新增/编辑可带核销明细 items(20销售订单/21销售出库/23开票),明细合计必须等于回款金额,审核通过后回写回款计划已回款额/实际回款时间/状态(0未回款10部分回款20已回清)",
   "upstream": [
    "合同",
    "发票",
    "销售订单",
    "销售出库单"
   ],
   "downstream": [
    "收款单(关联)",
    "回款核销明细",
    "回款计划",
    "记账凭证"
   ],
   "keywords": "回款 收款计划 receivable 核销"
  },
  {
   "name": "回款核销明细",
   "module": "销售管理",
   "table": "crm_receivable_item",
   "doc": "每行把回款金额核销到一张业务单据:biz_type 20销售订单/21销售出库/23开票,biz_no、单据金额、已核销金额由后端按 biz_id 回填;每行核销额不得超过该单据剩余应收;不传 items 且带 invoice_id 时自动生成一条开票核销行",
   "upstream": [
    "回款",
    "销售订单",
    "销售出库单",
    "发票"
   ],
   "downstream": [
    "客户应收对账",
    "未核销应收报表"
   ],
   "keywords": "核销 核销明细 write off item receivable_item"
  },
  {
   "name": "销售目标",
   "module": "销售管理",
   "table": "crm_sales_target",
   "doc": "年/季/月×个人/部门/产品维度的合同回款等目标",
   "upstream": [],
   "downstream": [
    "业绩统计"
   ],
   "keywords": "目标 target 业绩"
  },
  {
   "name": "供应商",
   "module": "供应商管理",
   "table": "srm_supplier",
   "doc": "供应商档案:执照/税号;多个联系人(srm_supplier_contact)与多个银行账户(srm_supplier_bank·含银行行号),主表保留默认联系人/默认银行字段,ERP 与 MES 共用",
   "upstream": [
    "手工建档/Excel 导入"
   ],
   "downstream": [
    "询价比价",
    "投标保证金",
    "采购订单",
    "到货通知",
    "供应商退货",
    "供应商往来"
   ],
   "keywords": "供应商 supplier vendor 联系人 开户行 银行行号"
  },
  {
   "name": "询价比价",
   "module": "供应商管理",
   "table": "srm_inquiry",
   "doc": "XJ编号,草稿0→已转订单20→已取消30(10询价中为历史状态);新增/编辑时一并录入产品行×参与供应商报价(srm_inquiry_quote)并选定每个产品的中标供应商,无需单独的报价/比价步骤,确认后按中标供应商拆分生成采购订单草稿并记录 srm_inquiry_order",
   "upstream": [
    "供应商",
    "主数据(物料)"
   ],
   "downstream": [
    "采购订单(草稿)"
   ],
   "keywords": "询价 比价 报价 中标 inquiry quote"
  },
  {
   "name": "投标保证金",
   "module": "销售管理",
   "table": "crm_bid_bond",
   "doc": "BZ编号台账,按客户(招标方)登记投标保证金:项目名称/招标编号/保证金金额/缴纳日期,可关联该客户已审核的销售订单(销售台账,回填订单号与订单金额);中标结果(0待开标1已中标2未中标),未中标跟踪退回状态(0未退1部分2已退3无需退)/退回金额/退回日期;选销售订单自动置为已中标且不可与未中标并存",
   "upstream": [
    "客户",
    "销售订单(销售台账)"
   ],
   "downstream": [
    "客户往来/应收对账(参考)"
   ],
   "keywords": "投标保证金 中标 未中标 退回 退款 招标 bid bond"
  },
  {
   "name": "采购申请",
   "module": "进销存",
   "table": "erp_purchase_request",
   "doc": "CGSQ编号,BPM 审批,通过后有供应商自动生成订单",
   "upstream": [
    "生产缺口(人工)"
   ],
   "downstream": [
    "采购订单"
   ],
   "keywords": "采购申请 请购 request"
  },
  {
   "name": "采购订单",
   "module": "进销存",
   "table": "erp_purchase_order",
   "doc": "菜单名「采购台账」,CGDD编号,BPM 审批(草稿0→审批中15→已审核20),入库状态:未0部分1全部2;表头含采购类型(生产/办公用品/其他)、合同号(手工输入不自动生成)、项目名称、付款日期(必填,超30天账期标红)、付款方式(电汇/汇票/现金/手机支付);明细产品编号快照 MDM 物料编码;来源可为采购申请、询价比价确认生成的草稿或销售订单/生产工单(来源单号回溯);单价为含税单价,价税合计=单价×数量,税额从含税金额中反算(不再额外加税)",
   "upstream": [
    "采购申请",
    "询价比价(确认中标)"
   ],
   "downstream": [
    "到货通知",
    "采购来票",
    "供应商退货(约束物料)",
    "供应商往来"
   ],
   "keywords": "采购订单 purchase"
  },
  {
   "name": "采购来票",
   "module": "进销存",
   "table": "erp_purchase_invoice",
   "doc": "FPD编号,AI OCR 预填,累计≤订单总价,付款单的前置;必须同时绑定采购订单与 MES 采购入库单(item_receipt_id),按订单与入库单两层剩余可来票额度校验;供应商往来右侧展示开票金额/已付/剩余应付",
   "upstream": [
    "采购订单",
    "MES 采购入库单"
   ],
   "downstream": [
    "付款单",
    "供应商往来",
    "记账凭证"
   ],
   "keywords": "来票 发票 采购发票 入库单"
  },
  {
   "name": "付款单",
   "module": "财务",
   "table": "erp_finance_payment",
   "doc": "FKD编号,必须关联来票+附件,累计≤来票金额,BPM 审批",
   "upstream": [
    "采购来票"
   ],
   "downstream": [
    "结算账户",
    "供应商往来"
   ],
   "keywords": "付款 应付 payment"
  },
  {
   "name": "供应商往来",
   "module": "进销存",
   "table": "无独立表(聚合视图)",
   "doc": "按供应商+时间范围聚合采购订单/来票/付款:汇总累计采购额、累计开票额、累计付款额、未付余额;左侧订单行含已开票/未开票金额,右侧来票行含开票金额/已付/剩余应付",
   "upstream": [
    "采购订单",
    "采购来票",
    "付款单"
   ],
   "downstream": [],
   "keywords": "供应商往来 对账 开票金额 应付 statement"
  },
  {
   "name": "收款单",
   "module": "财务",
   "table": "erp_finance_receipt",
   "doc": "SKD编号,关联 CRM 客户校验,无 BPM(手动审核)",
   "upstream": [
    "销售(弱关联)"
   ],
   "downstream": [
    "结算账户"
   ],
   "keywords": "收款 应收 receipt"
  },
  {
   "name": "会计科目",
   "module": "会计核算",
   "table": "fin_account_subject",
   "doc": "科目树,parent_id 自关联;科目类型1资产2负债3权益4成本5损益,余额方向1借2贷,状态0启用1禁用;账表与分录统一按 subject_code 取数",
   "upstream": [
    "会计科目种子约68条一级科目"
   ],
   "downstream": [
    "记账凭证分录",
    "总账",
    "明细账"
   ],
   "keywords": "会计科目 科目 subject account 资产类 负债类 损益类"
  },
  {
   "name": "记账凭证",
   "module": "会计核算",
   "table": "fin_voucher",
   "doc": "凭证字号可留空由后端自动生成;状态 未过账0/已过账10/已作废20;已过账不可改,未过账与已过账均可作废,未过账与已作废可删除;可通过 source_type/source_id/source_no 关联开票/回款/来票/付款等来源单据并支持按来源单号检索;附件按 recordType=fin_voucher 挂系统附件中心",
   "upstream": [
    "会计科目",
    "开票",
    "回款",
    "采购来票",
    "付款单"
   ],
   "downstream": [
    "总账",
    "明细账",
    "财务报表看板"
   ],
   "keywords": "记账凭证 凭证 voucher 过账 作废 借贷平衡"
  },
  {
   "name": "凭证分录",
   "module": "会计核算",
   "table": "fin_voucher_entry",
   "doc": "凭证下逐行分录:科目编码+借/贷金额+辅助核算(1客户2供应商3部门4员工5项目);一行不可借贷同时大于0,全表借贷合计必须相等且大于0",
   "upstream": [
    "记账凭证",
    "会计科目"
   ],
   "downstream": [
    "总账",
    "明细账"
   ],
   "keywords": "凭证分录 分录 entry 借方 贷方 辅助核算"
  },
  {
   "name": "固定资产",
   "module": "会计核算",
   "table": "fin_fixed_asset",
   "doc": "资产卡片,状态 1在用/2闲置/3维修中/4已报废;月折旧额=(原值×(1-残值率))÷(年限×12),累计折旧与净值由计提累加,不接收前端传值",
   "upstream": [],
   "downstream": [
    "财务报表看板",
    "总账"
   ],
   "keywords": "固定资产 折旧 资产卡片 fixed asset 残值率"
  },
  {
   "name": "无形资产",
   "module": "会计核算",
   "table": "fin_intangible_asset",
   "doc": "无形资产卡片(证书编号/有效期),状态 1在用/2已失效/3已摊销完;月摊销额=(原值×(1-残值率))÷(摊销年限×12),累计摊销与净值由计提累加",
   "upstream": [],
   "downstream": [
    "财务报表看板",
    "总账"
   ],
   "keywords": "无形资产 摊销 软件著作权 专利 intangible 有效期"
  },
  {
   "name": "销售订单",
   "module": "进销存",
   "table": "erp_sale_order",
   "doc": "XSDD编号,BPM 审批,需生产行自动建 MPS,出库状态:未0已预留1部分2全部3,生产完成事件回写",
   "upstream": [
    "合同"
   ],
   "downstream": [
    "MPS",
    "发货通知",
    "销售出库",
    "售后工单"
   ],
   "keywords": "销售订单 sale"
  },
  {
   "name": "主生产计划",
   "module": "生产",
   "table": "mes_pro_mps",
   "doc": "MPS计划,草稿0→已下发1→完成2/取消3,可合并下发",
   "upstream": [
    "销售订单"
   ],
   "downstream": [
    "生产工单"
   ],
   "keywords": "MPS 主计划 生产计划"
  },
  {
   "name": "生产工单",
   "module": "生产",
   "table": "mes_pro_work_order",
   "doc": "草稿0→已确认1→完成2/取消3,确认时按工艺路线生成任务,最后一道工序报工回写已生产数量",
   "upstream": [
    "MPS"
   ],
   "downstream": [
    "生产任务",
    "领料",
    "完工入库"
   ],
   "keywords": "工单 生产工单 work order"
  },
  {
   "name": "生产任务",
   "module": "生产",
   "table": "mes_pro_task",
   "doc": "工序粒度,预备0→生产中1→部分2→完成4,可暂停9取消5",
   "upstream": [
    "生产工单"
   ],
   "downstream": [
    "报工"
   ],
   "keywords": "任务 task 工序"
  },
  {
   "name": "报工单",
   "module": "生产",
   "table": "mes_pro_feedback",
   "doc": "草稿0→审批中2→待检3/完成4,按工序顺序校验(上道工序报满才可报),联动倒冲消耗/产出入库/IPQC;质检工序报工审批后转待检验并生成 PENDING 产出行,等已完成 IPQC 按物料+盘号+数量关联后才回写完成",
   "upstream": [
    "生产任务"
   ],
   "downstream": [
    "产品产出",
    "物料消耗",
    "IPQC"
   ],
   "keywords": "报工 feedback"
  },
  {
   "name": "工艺路线",
   "module": "生产",
   "table": "mes_pro_route",
   "doc": "工序顺序+质检/关键/倒冲标记,驱动工单任务与报工规则",
   "upstream": [],
   "downstream": [
    "生产工单"
   ],
   "keywords": "工艺 路线 route 工序"
  },
  {
   "name": "到货通知单",
   "module": "仓储",
   "table": "mes_wm_arrival_notice",
   "doc": "采购订单确认收货生成,草稿0→待质检2→待入库3→完成4;表头带采购合同号(选择采购订单自动带入,换货到货沿用原退货单合同号),可按合同号检索",
   "upstream": [
    "采购订单",
    "供应商退货(换货)"
   ],
   "downstream": [
    "IQC",
    "采购入库"
   ],
   "keywords": "到货 收货 arrival 合同号"
  },
  {
   "name": "采购入库单",
   "module": "仓储",
   "table": "mes_wm_item_receipt",
   "doc": "草稿0→待上架2→待执行3→完成4,完成后库存+并回写 ERP inCount/inStatus",
   "upstream": [
    "到货通知"
   ],
   "downstream": [
    "库存台账",
    "采购订单(回写)"
   ],
   "keywords": "采购入库 收货入库 receipt"
  },
  {
   "name": "生产领料单",
   "module": "仓储",
   "table": "mes_wm_product_issue",
   "doc": "草稿0→待拣货2→待执行3→完成4,库存-",
   "upstream": [
    "生产工单"
   ],
   "downstream": [
    "库存台账"
   ],
   "keywords": "领料 issue"
  },
  {
   "name": "销售出库单",
   "module": "仓储",
   "table": "mes_wm_product_sales",
   "doc": "发货通知审核后生成,提交后有 oqcCheckFlag 行转待检测1(提交时不再自动建 OQC),需质检员独立录入 OQC 并在检验单详情按物料+盘号+数量关联待检行;全部待检行合格后转待拣货2→发运10→待执行3→完成4,回写销售订单出库数与状态",
   "upstream": [
    "发货通知",
    "销售订单"
   ],
   "downstream": [
    "库存台账",
    "OQC"
   ],
   "keywords": "销售出库 发货 出库单 sales"
  },
  {
   "name": "销售退货单",
   "module": "仓储",
   "table": "mes_wm_return_sales",
   "doc": "草稿→待检验(RQC)→待上架→待入库→完成,售后与手工两来源",
   "upstream": [
    "售后退货(仓储发起)"
   ],
   "downstream": [
    "库存台账",
    "RQC"
   ],
   "keywords": "销售退货 退货入库"
  },
  {
   "name": "供应商退货单",
   "module": "仓储",
   "table": "mes_wm_return_vendor",
   "doc": "质量部发起退货,草稿0→审批中1(BPM:采购→质量→仓库)→待拣货2→待执行退货3→完成4,可取消5,库存-;上传附件走 storage-attachment;处理方式 1退款(完成后自动生成负数冲红付款单) / 2换货(完成后自动生成待质检到货通知单并创建 IQC,重新入库质检);合同号从采购订单快照",
   "upstream": [
    "IQC",
    "采购订单(合同号)"
   ],
   "downstream": [
    "库存台账",
    "采购订单(returnCount)",
    "付款单(冲红)",
    "到货通知(换货)"
   ],
   "keywords": "供应商退货 退料 退货 vendor"
  },
  {
   "name": "调拨单",
   "module": "仓储",
   "table": "mes_wm_transfer",
   "doc": "内部/外部调拨,成对 MOVE_OUT+MOVE_IN 事务,在途数量",
   "upstream": [],
   "downstream": [
    "库存台账"
   ],
   "keywords": "调拨 移库 transfer"
  },
  {
   "name": "盘点任务",
   "module": "仓储",
   "table": "mes_wm_stock_taking_task",
   "doc": "静态/动态盘点,行结果:正常/盘盈(ADJUST_IN)/盘亏(ADJUST_OUT),可冻结库存、盲盘",
   "upstream": [
    "库存台账"
   ],
   "downstream": [
    "库存台账(调整)"
   ],
   "keywords": "盘点 盘盈 盘亏 stock taking"
  },
  {
   "name": "库存台账",
   "module": "仓储",
   "table": "mes_wm_material_stock",
   "doc": "物料×仓库×库区×库位×批次×供应商六元组,数量/冻结/占用/在途四量",
   "upstream": [
    "全部入库单"
   ],
   "downstream": [
    "全部出库单",
    "事务流水"
   ],
   "keywords": "库存 台账 stock 可用量"
  },
  {
   "name": "批次",
   "module": "仓储",
   "table": "mes_wm_batch",
   "doc": "关联物料/工单/供应商/客户/质量状态;SN 码含批次 uuid;条码支持18种业务对象",
   "upstream": [
    "入库单据"
   ],
   "downstream": [
    "库存台账"
   ],
   "keywords": "批次 batch SN 条码 追溯"
  },
  {
   "name": "IQC来料检验",
   "module": "质量",
   "table": "mes_qc_iqc",
   "doc": "到货通知/外协入库触发,草稿0→完成4,结论回写来源单据;行操作「出报告」仅在已完成时可见;支持 Excel 批量导入(工具栏「批量导入」,纯新增、导入单为草稿、编号可留空自动生成);同一批数据不可重复导入(物料+供应商+供应商批次+来料日期,文件内重复行与库内已有单都拒该行)",
   "upstream": [
    "到货通知",
    "外协入库",
    "Excel 批量导入"
   ],
   "downstream": [
    "采购入库",
    "供应商退货",
    "NCR",
    "报告实例(出报告)"
   ],
   "keywords": "IQC 来料检验 出报告 批量导入 导入模板"
  },
  {
   "name": "IPQC过程检验",
   "module": "质量",
   "table": "mes_qc_ipqc",
   "doc": "报工质检工序产出行待检后独立录入,完成时按合格+不合格=检测数量自动判定 1 通过/2 不通过(需已上传检验附件);已完成且未绑定来源的单据,在详情按物料+盘号+数量一致选择待检产出行关联,回写报工完成与产出入库;未关联不回写。行操作「出报告」仅在已完成时可见;支持 Excel 批量导入(产品物料由生产工单推导,模板不填物料;工废+料废+其他废品不得超过不合格品数量);同一批数据不可重复导入(生产工单+检验类型+工位+检测日期,文件内重复行与库内已有单都拒该行)",
   "upstream": [
    "报工",
    "Excel 批量导入"
   ],
   "downstream": [
    "产出入库",
    "NCR",
    "报告实例(出报告)"
   ],
   "keywords": "IPQC 过程检验 巡检 盘号关联 报工关联 出报告 批量导入 导入模板"
  },
  {
   "name": "OQC出货检验",
   "module": "质量",
   "table": "mes_qc_oqc",
   "doc": "销售出库提交后待检测行独立录入,完成时按合格+不合格=检测数量自动判定 1 通过/2 不通过(需已上传检验附件);已完成且未绑定来源的单据,在详情按物料+盘号+数量一致选择待检出库行关联,回写出库行质量状态 PASS/FAIL,全部待检行合格后出库单转待拣货;不合格行留待后续处置,不自动取消出库单。行操作「出报告」仅在已完成时可见;支持 Excel 批量导入(客户须在当前登录用户的客户数据权限范围内);同一批数据不可重复导入(物料+客户+批次号+出货日期,文件内重复行与库内已有单都拒该行)",
   "upstream": [
    "销售出库单",
    "Excel 批量导入"
   ],
   "downstream": [
    "销售出库单(推进)",
    "报告实例(出报告)"
   ],
   "keywords": "OQC 出货检验 出厂检验 盘号关联 出库关联 出报告 批量导入 导入模板"
  },
  {
   "name": "RQC退货检验",
   "module": "质量",
   "table": "mes_qc_rqc",
   "doc": "生产退料/销售退货/售后退货触发,结论回调售后;行操作「出报告」仅在已完成时可见。措辞已统一为「退货检验」(原菜单父项与 mes_qc_type 字典写「退料检验」,与后端枚举/表注释/菜单权限子项不一致;RQC 三者都覆盖,故取「退货检验」)",
   "upstream": [
    "退料",
    "退货"
   ],
   "downstream": [
    "退货入库",
    "售后回调",
    "报告实例(出报告)"
   ],
   "keywords": "RQC 退货检验 退料检验 出报告"
  },
  {
   "name": "NCR不合格品",
   "module": "质量",
   "table": "mes_qc_ncr",
   "doc": "待评审0→已评审6→已处置7→已关闭8,处置:退货/报废/返工/让步接收/降级",
   "upstream": [
    "IQC/IPQC/OQC/RQC"
   ],
   "downstream": [
    "退货/报废/返工(台账)"
   ],
   "keywords": "NCR 不合格 处置 特采 报废"
  },
  {
   "name": "设备",
   "module": "设备",
   "table": "mes_dv_machinery",
   "doc": "台账状态:停机/生产中/保养中;点检·保养·维修工单;AI 风险预测消费其数据",
   "upstream": [],
   "downstream": [
    "点检",
    "维修",
    "生产风险预测"
   ],
   "keywords": "设备 点检 保养 维修 machinery"
  },
  {
   "name": "售后工单",
   "module": "售后",
   "table": "after_sale_ticket",
   "doc": "草稿0→处理中10→待入库30→待退款40→完结50→关闭60/取消99,判定:一般/维修/退货;客户诉求反馈描述+附件、处理结果+附件;创建/更新/判定/完结/归档/取消/回访写入流转记录",
   "upstream": [
    "客户反馈(人工录入)"
   ],
   "downstream": [
    "维修记录",
    "仓储销售退货(原退货申请页面已下线)"
   ],
   "keywords": "售后 工单 ticket 维修 客户诉求 处理结果 流转记录"
  },
  {
   "name": "工单流转记录",
   "module": "售后",
   "table": "after_sale_ticket_flow",
   "doc": "售后工单每次动作留痕:动作编码/名称、变更前后状态、内容、操作人、时间",
   "upstream": [
    "售后工单"
   ],
   "downstream": [],
   "keywords": "售后 流转记录 flow"
  },
  {
   "name": "退货申请",
   "module": "售后",
   "table": "after_sale_return",
   "doc": "后台保留,售后页面已下线;草稿0→已审核20(自动建MES退货单)→已质检40→已入库50→已退款60→关闭70;类型:退款退货/换货/仅退款",
   "upstream": [
    "售后工单"
   ],
   "downstream": [
    "销售退货单",
    "退款"
   ],
   "keywords": "售后退货 return"
  },
  {
   "name": "员工",
   "module": "人力",
   "table": "hrm_employee",
   "doc": "在职1/试用2/离职3,入职自动建系统账号;离职申请到期自动置为离职3并停用系统账号",
   "upstream": [],
   "downstream": [
    "交接映射",
    "考勤",
    "薪酬"
   ],
   "keywords": "员工 入职 employee 离职"
  },
  {
   "name": "离职申请",
   "module": "人力",
   "table": "hrm_resignation_application",
   "doc": "草稿0→审批中10→通过20/驳回30/撤销40;审批通过后可交接0→10→20;到期任务写实际离职日期、把员工状态改为离职3并停用系统账号",
   "upstream": [
    "员工"
   ],
   "downstream": [
    "员工档案状态",
    "离职交接"
   ],
   "keywords": "离职 resignation 审批 交接 自动离职"
  },
  {
   "name": "离职交接",
   "module": "人力",
   "table": "hrm_user_handover",
   "doc": "同时记录离职/交接双方员工ID与用户ID;交接完成20 后 expandUserIds 扩展交接人可见数据;审批通过且到预计离职日期后自动把员工状态改为离职3并停用系统账号",
   "upstream": [
    "离职申请"
   ],
   "downstream": [
    "各模块我的数据查询",
    "员工档案状态"
   ],
   "keywords": "交接 离职 handover expandUserIds 自动离职"
  },
  {
   "name": "排班计划",
   "module": "设备",
   "table": "mes_cal_plan",
   "doc": "班组×班次×日期排班,供生产与考勤引用",
   "upstream": [],
   "downstream": [
    "生产任务",
    "考勤"
   ],
   "keywords": "排班 班组 班次 日历"
  },
  {
   "name": "报告模板",
   "module": "质检报告",
   "table": "qc_report_template",
   "doc": "智能质检报告模板,启用0/停用1;画布内容存在 qc_report_template_version(草稿0/已发布1/已停用2,已发布不可覆盖),currentVersion 指向当前已发布版本;源文件经 AI 导入识别成草稿后由人工确认才成为版本;同一模板重复导入按【替换】处理——先删旧附件(连带 blob 行与磁盘文件)再绑新的,不留孤儿文件;删除模板会连带清附件",
   "upstream": [
    "人工设计(GrapesJS 设计器)",
    "AI 导入草稿(qc-report/ai-import/draft)"
   ],
   "downstream": [
    "模板版本",
    "报告实例"
   ],
   "keywords": "报告模板 质检报告 template 设计器 版本 AI导入 识别 草稿 源文件替换"
  },
  {
   "name": "报告实例",
   "module": "质检报告",
   "table": "qc_report_instance",
   "doc": "出件产物,编号 QR+yyyyMMdd+4位流水按天独立且业务唯一,可显式指定覆盖(注意 uk_report_no 不区分软删除,删掉的号不回收);两条出件入口:通用 generate(调用方自带 context)与 generate-from-qc(数据从 MES 质检单取,权限码 qc-report:instance:generate 已入 system_menu id=1075416,五道校验按业务优先级只报第一处:105_000 类型非法 / 105_001 单据不存在 / 105_002 未完成 / 105_003 未判定 / 105_005 模板类型不符 / 105_006 无可用检验项;四张质检单列表的行操作「出报告」仅在 status=已完成时可见,弹窗只列 reportType 一致、模板启用、且 currentVersion 指向的版本已发布的模板(后端 /qc-report/template/selectable 判定——停用版本不清空 currentVersion,前端拿分页结果自己推导会漏),结果就地展示并跳本页列表);冻结 data_snapshot(判定后数据,含后端算好的 PASS/FAIL 与合格率)与 render_html;regenerate 只重渲排版、数据与编号不变;business_id/business_type 存 MES 表名(mes_qc_iqc 等)与单据 ID,可反查、一单可出多份;报告头另带单据原判定 qcResult(数)/qcResultText(中文,合格/特采/不合格退货/不合格报废),与引擎三态判定并存互不覆盖;响应带 undecidableCount=快照中 result 为空串的项数与 warnings(分组标题跳过/指标已删/未录实测值/样品超3),两者都不落库、事后看不到",
   "upstream": [
    "报告模板版本",
    "质检单上下文(通用 generate 由调用方传入)",
    "MES 质检单 IQC/IPQC/OQC/RQC(generate-from-qc 经 MesQcReportApi 取数)"
   ],
   "downstream": [
    "前端实例页 /qc/report-instance(列表·iframe预览·快照页签·导出PDF)",
    "PDF归档(system_storage_attachment recordType=qc_report_instance)"
   ],
   "keywords": "报告实例 出件 QR编号 快照 复现 regenerate PDF归档 报告实例页 导出PDF generate-from-qc 质检单出报告 出报告弹窗 qcResult undecidableCount warnings 待判定 反查 业务单据筛选"
  }
 ]
}