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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
| {
| "flows": [
| {
| "id": "sales",
| "name": "销售流程",
| "mermaid": "mermaid/02-sales-flow.mmd",
| "color": "#4f9cff",
| "summary": "线索转化客户 → 商机推进 → 报价(可AI识别) → 合同 BPM 审批 → 生成 ERP 销售订单并审批 → 需生产行自动建 MPS → 发货通知 → 销售出库提交(需检验行转待检测) → 独立录入 OQC 后按物料+盘号+数量关联回写 → 拣货发运 → 开票(BPM) → 回款(先开票校验)。",
| "steps": [
| {
| "stage": "获客",
| "action": "线索转化客户、建联系人、立项商机",
| "roles": [
| "销售内勤"
| ]
| },
| {
| "stage": "报价",
| "action": "商机赢单后建报价单(AI OCR 预填),转合同",
| "roles": [
| "销售内勤"
| ]
| },
| {
| "stage": "签约",
| "action": "合同来源:手工新建 / 报价单转入 / Excel 导入(一合同多产品明细行);提交 BPM 审批(可选流程定义),通过=20",
| "roles": [
| "销售",
| "审批人"
| ]
| },
| {
| "stage": "接单",
| "action": "合同一键生成销售订单(XSDD),销售订单再走 BPM;审批通过自动为 needProduction 明细创建 MPS",
| "roles": [
| "销售",
| "计划员"
| ]
| },
| {
| "stage": "交付",
| "action": "发货通知审核(占用)→ 销售出库提交:有 oqcCheckFlag 行转待检测,提交时不再自动建 OQC;质检员独立录入并完成 OQC 后,在检验单详情按物料+盘号+数量一致选择待检出库行关联,全部待检行合格后出库单转待拣货 → 发运 → 出库回写部分/全部出库",
| "roles": [
| "仓管",
| "质检"
| ]
| },
| {
| "stage": "回款",
| "action": "开票 BPM(累计≤合同额) → 回款强制先开票(累计≤合同剩余与开票剩余)",
| "roles": [
| "财务",
| "销售"
| ]
| }
| ]
| },
| {
| "id": "purchase",
| "name": "采购流程",
| "mermaid": "mermaid/03-purchase-flow.mmd",
| "color": "#5fc79e",
| "summary": "供应商档案(多联系人/多银行·含银行行号) → 询价比价(产品×供应商横向报价,按产品选中标) → 确认后按中标供应商拆采购订单草稿并走现有 BPM → 确认收货生成 MES 到货通知 → IQC(合格/特采入库·退货/报废) → 采购入库回写订单与申请 → 来票(AI OCR) → 付款单 BPM → 供应商往来对账;投标保证金台账独立记录中标与退回。",
| "steps": [
| {
| "stage": "寻源",
| "action": "供应商档案维护多个联系人与多个银行账户(含银行行号);新增询价单时一并录入产品×参与供应商报价并选定每个产品的中标供应商,列表直接确认后按中标供应商生成采购订单草稿;投标保证金台账记录是否中标与退回状态/金额/日期",
| "roles": [
| "采购员",
| "供应商管理员"
| ]
| },
| {
| "stage": "申请",
| "action": "采购申请(CGSQ)提交 BPM,驳回可重置回草稿;通过且有供应商自动生成订单",
| "roles": [
| "采购员",
| "审批人"
| ]
| },
| {
| "stage": "下单",
| "action": "采购订单(CGDD)自动提交 BPM(15→20)",
| "roles": [
| "采购员"
| ]
| },
| {
| "stage": "收货",
| "action": "确认收货生成到货通知(0→待质检2/待入库3→4);需检物料自动创建 IQC",
| "roles": [
| "仓管",
| "IQC 质检员"
| ]
| },
| {
| "stage": "入库",
| "action": "IQC 合格/特采→采购入库(待上架→待执行→完成)库存+,回写订单 inCount/inStatus 与申请明细",
| "roles": [
| "仓管"
| ]
| },
| {
| "stage": "退货",
| "action": "IQC 不合格退货→供应商退货出库(选料锁定到订单行);报废走 NCR",
| "roles": [
| "仓管"
| ]
| },
| {
| "stage": "付款",
| "action": "采购来票(FPD, AI OCR, ≤订单总价) → 付款单(FKD 关联来票+附件, ≤来票金额) BPM 审批",
| "roles": [
| "财务",
| "审批人"
| ]
| },
| {
| "stage": "对账",
| "action": "供应商往来按供应商汇总:左侧采购订单流水含已开票/未开票金额,右侧来票流水含开票金额/已付/剩余应付并附付款流水,顶部汇总累计采购/开票/付款/未付余额",
| "roles": [
| "财务",
| "采购员"
| ]
| }
| ]
| },
| {
| "id": "production",
| "name": "生产流程",
| "mermaid": "mermaid/04-production-flow.mmd",
| "color": "#e0b34f",
| "summary": "销售订单驱动 MPS → 下发工单 → 按工艺路线拆工序任务 → 领料/线边备料 → 报工(工序顺序硬校验+BPM) → 倒冲消耗/产出入库/IPQC → 末道工序回写进度 → 自动完工 → ProductionFinishedEvent 回写销售订单。",
| "steps": [
| {
| "stage": "计划",
| "action": "MPS 创建(手工或销售订单自动)→下发或合并下发为工单",
| "roles": [
| "计划员"
| ]
| },
| {
| "stage": "派工",
| "action": "工单确认按工艺路线逐工序生成任务,可指派/暂停/取消",
| "roles": [
| "车间主任"
| ]
| },
| {
| "stage": "备料",
| "action": "生产领料单出库或线边虚拟库备料",
| "roles": [
| "仓管"
| ]
| },
| {
| "stage": "报工",
| "action": "提交报工:上一道工序未报满直接拦截;启用 BPM 走审批",
| "roles": [
| "操作工"
| ]
| },
| {
| "stage": "联动",
| "action": "审批通过按工序标记: 倒冲→自动物料消耗扣线边库(允许负库存);质检→报工转待检验并生成 PENDING 产出行,等待质检员独立录入 IPQC;关键非检→直接产出入库",
| "roles": [
| "系统自动"
| ]
| },
| {
| "stage": "检验",
| "action": "已完成 IPQC 在详情页按物料+盘号+数量一致选择待检产出行关联:回写报工完成并拆分合格/不合格产出入库;未关联的已完成检验单不回写",
| "roles": [
| "IPQC 质检员"
| ]
| },
| {
| "stage": "完工",
| "action": "仅末道工序回写工单已生产数量,达标自动完成;MPS 累计判断完成并发事件给销售订单",
| "roles": [
| "系统自动"
| ]
| }
| ]
| },
| {
| "id": "quality",
| "name": "质量流程",
| "mermaid": "mermaid/05-quality-flow.mmd",
| "color": "#e06c6c",
| "summary": "四道检验闸口(IQC/IPQC/OQC/RQC,二态 0→4) + 完成时按合格/不合格数量自动判定(1 校验通过/2 校验不通过) + NCR 评审处置关闭;IPQC 完成后按物料+盘号+数量关联报工待检行,OQC 完成后按同样规则关联销售出库待检行;AI 提供判定建议;NCR 当前仅台账不触发返工单;检验单可由智能质检报告平台一键出件(generate-from-qc:数据从 MES 取,五道校验后渲染落库)。",
| "steps": [
| {
| "stage": "来料",
| "action": "到货通知/外协入库→IQC,结论回写推进待入库或触发退货",
| "roles": [
| "IQC 质检员"
| ]
| },
| {
| "stage": "过程",
| "action": "报工质检工序产出行待检→质检员独立录入 IPQC;完成后按物料+盘号+数量一致关联报工待检行,合格拆行入库、不合格生成 NCR",
| "roles": [
| "IPQC 质检员"
| ]
| },
| {
| "stage": "出货",
| "action": "销售出库提交后行转待检测→质检员独立录入 OQC;完成后按物料+盘号+数量一致关联出库待检行,全部合格后出库单进入待拣货",
| "roles": [
| "OQC 质检员"
| ]
| },
| {
| "stage": "退货",
| "action": "退料/销售退货/售后退货→RQC,结论回调单据与售后",
| "roles": [
| "RQC 质检员"
| ]
| },
| {
| "stage": "导入",
| "action": "IQC/IPQC/OQC 三列表各支持 Excel 批量导入(按钮在「新增」与「导出」之间,纯新增不做更新覆盖):一行一张单,编号留空自动生成,质检方案留空按物料+检验类型自动匹配,检测人员留空取当前登录用户;物料/供应商/客户/工单/工位按编码或名称精确匹配(IPQC 物料由工单推导,模板不填),合格+不合格=检测/接收数量、IPQC 工废+料废+其他废品≤不合格、OQC 客户须在本人数据权限内;逐行导入部分成功,失败行进 failureList 带行号与可执行动作,成功单一律待检验0;同一批数据不可重复导入:文件内重复行与库内已存在同业务键单据(IQC 物料+供应商+供应商批次+来料日期、IPQC 生产工单+检验类型+工位+检测日期、OQC 物料+客户+批次号+出货日期)均拒该行,提示含维度、双方实际值与「先删除该单据再重试」动作",
| "roles": [
| "质检员",
| "IQC 质检员",
| "IPQC 质检员",
| "OQC 质检员"
| ]
| },
| {
| "stage": "不合格",
| "action": "NCR: 待评审→评审→处置(退货/报废/返工/让步接收/降级)→关闭",
| "roles": [
| "质量工程师"
| ]
| },
| {
| "stage": "出件",
| "action": "两条出件入口:①通用 generate/preview(调用方自带上下文) 渲染 HTML 并冻结数据快照,编号 QR+日期+4位流水按天独立,preview 只渲染不落库不消耗编号,regenerate 用冻结快照重渲且数据与编号不变并作废已归档 PDF,导出 PDF 由后端调 Chromium 打印实例已存的 HTML 后归档附件中心;②generate-from-qc 由质检单直接出件(数据经 MesQcReportApi 从 MES 取,前端不拼上下文),出件前五道校验按业务优先级只报第一处:类型非法/单据不存在/未完成检验/未填判定/模板类型不符/无可用检验项,报告头另带单据原判定 qcResult+qcResultText 与引擎判定并存,响应回 undecidableCount 待判定项数与 warnings(分组标题跳过/指标已删/未录实测值/样品超3),同一张单据可反复出多份",
| "roles": [
| "质检员"
| ]
| },
| {
| "stage": "建模板",
| "action": "AI 导入:上传既有检验报告文件(扫描件/照片、电子版 PDF、Word/Excel) → 识别成模板草稿(不落库) → 人工在设计器确认调整后保存为版本;.doc/.xls 旧格式不支持",
| "roles": [
| "质检员",
| "质量工程师"
| ]
| }
| ]
| },
| {
| "id": "warehouse",
| "name": "仓储流程",
| "mermaid": "mermaid/06-warehouse-flow.mmd",
| "color": "#7e6bd6",
| "summary": "15 类单据驱动库存台账(六元组、四量)变动,全部经事务流水留痕;支持调拨在途、盘点调整、批次/SN 追溯、库存占用与四级冻结、线边虚拟库负库存;对外 WmsStockApi 供 ERP 收发。",
| "steps": [
| {
| "stage": "入库",
| "action": "采购入库/生产入库/产出入库/退货入库/外协入库/杂项入库 → IN 事务,批次混放校验、四级冻结校验",
| "roles": [
| "仓管"
| ]
| },
| {
| "stage": "出库",
| "action": "销售出库/领料/消耗/外协发料/供应商退货/杂项出库 → OUT 事务,checkFlag 控制可否负库存",
| "roles": [
| "仓管",
| "系统自动"
| ]
| },
| {
| "stage": "移库",
| "action": "内部/外部调拨成对 MOVE 事务,在途数量跟踪",
| "roles": [
| "仓管"
| ]
| },
| {
| "stage": "盘点",
| "action": "方案→任务→明细行→结果,盘盈 ADJUST_IN、盘亏 ADJUST_OUT,可冻结与盲盘",
| "roles": [
| "盘点员"
| ]
| },
| {
| "stage": "追溯",
| "action": "批次/SN(uuid)/条码(18类)/装箱嵌套支撑正反向追溯",
| "roles": [
| "质量",
| "售后"
| ]
| }
| ]
| },
| {
| "id": "aftersales",
| "name": "售后流程",
| "mermaid": "mermaid/07-after-sales-flow.mmd",
| "color": "#c78bd6",
| "summary": "工单(六态+问题判定) → 客户诉求/处理结果附件与流转记录留痕 → 维修三类型或由仓储物流发起销售退货(退货单创建即回写工单流转记录) → RQC 质检/入库/退款三回调逐级推进 → 工单完结关闭。",
| "steps": [
| {
| "stage": "受理",
| "action": "人工录入工单(关联客户/订单/合同),填写客户诉求反馈描述并上传附件,创建时指定的处理人直接进入处理中",
| "roles": [
| "客服"
| ]
| },
| {
| "stage": "判定",
| "action": "问题判定: 一般/维修/退货,严重度 0-3",
| "roles": [
| "售后工程师"
| ]
| },
| {
| "stage": "处理",
| "action": "填写处理结果并上传处理结果附件;创建、更新、判定、完结、归档、取消、回访均写入流转记录",
| "roles": [
| "售后工程师"
| ]
| },
| {
| "stage": "维修",
| "action": "现场/返厂/远程维修,费用与结果记录,完成联动工单完结",
| "roles": [
| "维修工程师"
| ]
| },
| {
| "stage": "退货",
| "action": "售后不再发起退货申请,由仓储物流发起销售退货单(RQC)→质检/入库回调→退款回调→关闭;创建退货单时按销售订单匹配最近一张未关闭/未取消工单,写入「仓储退货」流转记录,草稿或处理中工单推进为待退货",
| "roles": [
| "仓储",
| "质检",
| "财务"
| ]
| }
| ]
| },
| {
| "id": "finance",
| "name": "会计核算流程",
| "mermaid": "mermaid/12-finance-flow.mmd",
| "color": "#3ec9a7",
| "summary": "会计核算:凭证/分录/借贷平衡 -> 过账 -> 总账/明细账/报表;固定资产折旧、无形资产摊销。销售采购财务闭环:ERP 销售订单 + MES 已完成出库单 -> CRM 开票申请(绑定订单+出库单)-> 审批通过 -> 录入发票并填写合同款/预付款/到货款/验收款/质保金收款节点 -> CRM 回款按核销明细分摊到订单/出库/开票 -> 客户应收对账、已发货未开票、未核销应收账龄、下月回款计划;来票必须同时绑定采购订单与 MES 采购入库单;凭证可关联来源单据(开票/回款/来票/付款)。",
| "steps": [
| {
| "stage": "建账",
| "action": "维护会计科目 tree(subjectCode 唯一,可建下级),首次可导入约 68 条一级科目种子",
| "roles": [
| "会计"
| ]
| },
| {
| "stage": "记账",
| "action": "录入凭证(字号留空自动生成)+分录,分录逐行选科目并填借/贷;校验至少一行、借贷都不得同时大于0、合计相等且大于0",
| "roles": [
| "会计"
| ]
| },
| {
| "stage": "过账",
| "action": "未过账0 → post 过账 → 已过账10(不可再修改);未过账0 或 已过账10 均可 cancel 作废 → 已作废20",
| "roles": [
| "会计",
| "财务主管"
| ]
| },
| {
| "stage": "查账",
| "action": "总账按期间逐月汇总、明细账逐条分录并结转余额,两者只统计已过账10的凭证,并支持导出",
| "roles": [
| "会计",
| "财务主管"
| ]
| },
| {
| "stage": "资产",
| "action": "固定资产(1在用/2闲置/3维修中/4已报废)与无形资产(1在用/2已失效/3已摊销完)计提:传 ids 按选中计提,ids 为空对全部未报废/未失效资产计提一个月",
| "roles": [
| "资产会计"
| ]
| },
| {
| "stage": "报表",
| "action": "看板汇总资产与凭证时点数 + 经 ErpFinanceStatisticsApi 取 ERP 已审核收货付款与购销金额,输出月度收支趋势",
| "roles": [
| "财务主管",
| "管理层"
| ]
| },
| {
| "stage": "来票",
| "action": "选择采购订单 -> 选择该订单下已完成 MES 采购入库单 -> 保存来票(item_receipt_id/item_receipt_code)",
| "roles": [
| "采购",
| "财务"
| ]
| },
| {
| "stage": "开票申请",
| "action": "选择合同、销售订单、该订单下已完成出库单,填写开票金额后提交 BPM 审批",
| "roles": [
| "销售",
| "财务"
| ]
| },
| {
| "stage": "录入发票",
| "action": "审批通过后录入发票号码、日期、附件,并按销售订单填写合同款/预付款/到货款/验收款/质保金及各自时间节点",
| "roles": [
| "财务"
| ]
| },
| {
| "stage": "回款核销",
| "action": "回款单通过 items 把金额核销到销售订单/销售出库/开票,明细合计必须等于回款金额;审核通过回写回款计划实际金额与状态",
| "roles": [
| "财务"
| ]
| },
| {
| "stage": "对账报表",
| "action": "按客户汇总订单、出库、开票、回款,输出未核销应收、已发货未开票、账龄、下月回款计划与月度趋势",
| "roles": [
| "财务",
| "销售"
| ]
| },
| {
| "stage": "入账",
| "action": "记账凭证填写 sourceType/sourceId/sourceNo 关联开票、回款、来票、付款等来源单据",
| "roles": [
| "财务"
| ]
| }
| ]
| },
| {
| "id": "ai",
| "name": "AI 业务流程",
| "mermaid": "mermaid/11-ai-business-flow.mmd",
| "color": "#56c8d8",
| "summary": "统一模式:业务侧收集上下文(必要时调 MDM/SRM/CRM API 取名称)→组装 Prompt→chat/chatWithImage→解析 JSON→前端预填或建议;无 Function Calling;RAG 知识库已建成但暂无业务消费。智能体物料导入为规则+Java 预检链路,经人工确认后幂等提交。",
| "steps": [
| {
| "stage": "录入提效",
| "action": "发票 OCR(图片多模态/PDF文本)、报价单 OCR → 结构化预填",
| "roles": [
| "采购员",
| "销售"
| ]
| },
| {
| "stage": "主数据导入",
| "action": "上传物料 CSV/XLSX → Python 解析候选 → Java 只读预检分类/单位/重复编码 → 人工修订确认 → 幂等提交 → 逐行回执;只新建、不更新、不同步 MES",
| "roles": [
| "物料管理员"
| ]
| },
| {
| "stage": "辅助判定",
| "action": "质检单+指标+缺陷 → 建议合格/特采/退货/报废+理由",
| "roles": [
| "质检员"
| ]
| },
| {
| "stage": "决策预测",
| "action": "缺料/生产时长/生产风险/交付四类预测供计划排产参考",
| "roles": [
| "计划员"
| ]
| },
| {
| "stage": "模板识别",
| "action": "上传既有检验报告文件(扫描件/照片、电子版 PDF、Word/Excel) → 分通道抽取(有文本层走文本、扫描版逐页转图) → 大模型按前端上传的组件清单产出扁平组件草稿 → 人工在设计器确认后保存为模板版本",
| "roles": [
| "质检员",
| "质量工程师"
| ]
| },
| {
| "stage": "知识检索",
| "action": "文档→切片→Milvus 向量→检索接口(预留)",
| "roles": [
| "—"
| ]
| }
| ]
| }
| ]
| }
|
|