Files
my-mom-system/prd/db/erp数据库设计-Swagger补充模块.md
panchengyong c28ada5050 commit content
2026-03-06 02:02:59 +08:00

418 lines
19 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ERP数据库设计 - Swagger API补充模块
> 版本: 1.0.0
> 创建日期: 2026-02-06
> 数据来源: 目标ERP系统 Swagger 2.0 API文档实时抓取
> 说明: 本文档记录从Swagger API中发现的、当前数据库设计文档尚未覆盖的模块和表结构
---
## 1. 发现概述
通过实时抓取目标ERP系统的 Swagger API`https://demo.rsun.vip/prod-api/v2/api-docs?group=*`),发现以下模块在当前 `erp数据库设计-数据字典.md``erp数据库设计-DDL.sql` 中**尚未收录**
| 序号 | 模块 | API前缀 | Java包前缀 | 现有文档状态 | 表数量(估) |
|------|------|---------|-----------|-------------|-----------|
| 1 | 生产管理(车间) | /prs | Prs* | **未收录** | ~20 |
| 2 | 研发管理 | /rd | Rd* | **未收录** | ~10 |
| 3 | 委外管理 | /pu | Pu* | **未收录** | ~14 |
| 4 | 财务管理 | /fd | Fd* | **未收录** | ~30+ |
| 5 | 车间设置 | /prs (基础) | Prs* | **未收录** | ~8 |
### 1.1 重要发现ERP实际命名规范
通过Swagger API分析目标ERP系统的实际字段命名与当前数据库设计文档中**基于推测的命名存在差异**
| 概念 | 数据字典中的假设命名 | Swagger API实际命名 | 说明 |
|------|---------------------|-------------------|------|
| 主键ID | order_id, plan_id 等 | **uniqueId** | 统一使用uniqueId作为主键名 |
| 单据编码 | order_code, plan_code 等 | **模块Code** (如 puCode, prsCode, rdCode) | 按模块区分 |
| 物料编码 | item_code | **invCode** | inv = Inventory |
| 物料名称 | item_name | **invName** | inv = Inventory |
| 物料属性 | specification | **invAttribute** | |
| 物料分类ID | item_type_id | **invSortId** | sort = 分类 |
| 物料根分类 | - | **invSortRoot** | 顶级分类 |
| 计量单位编码 | unit_of_measure | **unitCode** | |
| 计量单位名称 | unit_name | **unitName** | 一致 |
| 单据日期 | order_date, plan_date | **invoiceDate** | 统一用invoiceDate |
| 单据状态 | status | **invoiceStatus** | invoice=单据 |
| 单据类型 | order_type | **invoiceType** | |
| 业务状态 | business_status | **workStatus** | |
| 业务类型 | business_type / work_type | **workType** | |
| 业务部门 | dept_name | **workDept** | |
| 业务人员 | operator_name | **workStaff** | |
| 跟单编号 | track_code | **ppNumber** | 全局唯一,关联销售订单 |
| 操作员 | operator_name | **userOper** | |
| 审核员 | approver_name | **userCheck** | |
| 审核日期 | approve_date | **checkDate** | |
| 表单配置 | - | **formConfig** | 动态表单配置标识 |
| 版本号 | version | **version** (int64) | 乐观锁版本号 |
| 供应方式 | supply_type | **invSupplyType** | |
| 已完成数量 | delivered_qty, arrived_qty | **wiQuantity** | wi = Written In |
| 删除标志 | del_flag | **delFlag** | 一致 |
> **关键结论**: ERP系统所有单据模块共享一套统一的基类字段BaseEntity包含: uniqueId, ppNumber, invoiceDate, invoiceStatus, invoiceType, workType, workStatus, workDept, workStaff, userOper, userCheck, checkDate, formConfig, version, delFlag, createBy, createTime, updateBy, updateTime, remark, remarks
---
## 2. 生产管理模块 (prs_*)
### 2.1 模块功能清单来自Swagger tags
| 序号 | 功能 | API前缀 | Java实体 | 说明 |
|------|------|---------|---------|------|
| 1 | 生产订单 | /prs/order | PrsOrderMaster | 生产订单(从计划单下发) |
| 2 | 生产领料单 | /prs/pick | PrsPickMaster | 车间生产领料 |
| 3 | 生产完工单 | /prs/product | PrsProductMaster | 工序报工/生产完工 |
| 4 | 生产入库单 | /prs/checkin | PrsCheckinMaster | 生产入库 |
| 5 | 生产指令单 | /prs/instruct | PrsInstructMaster | 生产指令(批次管理) |
| 6 | 生产报工单 | /prs/yield | PrsYieldMaster | 工序报工 |
| 7 | 工序完工单 | /prs/process | PrsProductProcess | 工序级完工 |
| 8 | 生产线 | /prs/beltline | PrsBeltline | 生产线管理 |
| 9 | 班组 | /prs/team | PrsTeam | 班组管理 |
| 10 | 工人 | /prs/worker | PrsWorker | 工人档案 |
| 11 | 工人工资 | /prs/wages | PrsWorkerWages | 计件工资 |
| 12 | 工种 | /prs/jobs | PrsJobs | 工种定义 |
| 13 | 标准工序段 | /prs/operate | PrsOperateSection | 工序段定义 |
| 14 | 工艺路线 | /prs/route | PrsProcessRoute | 产品工艺路线 |
| 15 | 设备 | /prs/equipment | PrsEquipment | 设备管理 |
| 16 | 包装线 | /prs/pack/line | PrsPackLine | 包装产线 |
| 17 | 包装工序 | /prs/pack/section | PrsPackSection | 包装工序 |
| 18 | 包装指令单 | /prs/pack | PrsPackMaster | 包装指令 |
### 2.2 生产订单 (PrsOrderMaster) 关键字段
> 来源: Swagger API GET /prs/order/list 参数列表
| Swagger字段名 | 数据库推断字段名 | 类型 | 说明 |
|--------------|----------------|------|------|
| uniqueId | unique_id | bigint | 主键ID |
| prsCode | prs_code | varchar | 生产订单编码 |
| invCode | inv_code | varchar | 物料编码 |
| invName | inv_name | varchar | 物料名称 |
| invAttribute | inv_attribute | varchar | 物料属性/规格 |
| invQuantity | inv_quantity | decimal | 物料数量 |
| invSortId | inv_sort_id | varchar | 物料分类ID |
| invSortRoot | inv_sort_root | varchar | 物料根分类ID |
| invSupplyType | inv_supply_type | varchar | 供应方式 |
| unitCode | unit_code | varchar | 计量单位编码 |
| unitName | unit_name | varchar | 计量单位名称 |
| drawingNo | drawing_no | varchar | 图纸号 |
| mpOrderCode | mp_order_code | varchar | 关联计划单编码 |
| woCode | wo_code | varchar | 关联工单编码(上游) |
| woQuantity | wo_quantity | decimal | 工单数量 |
| woDate | wo_date | datetime | 工单日期 |
| woType | wo_type | varchar | 工单类型 |
| woTypeId | wo_type_id | varchar | 工单类型ID |
| woInvoice | wo_invoice | varchar | 上游单据 |
| woInvoiceId | wo_invoice_id | varchar | 上游单据ID |
| woConfig | wo_config | varchar | 工单配置 |
| wiQuantity | wi_quantity | decimal | 已完成数量 |
| wiInstruct | wi_instruct | decimal | 已下达指令数量 |
| process | process | varchar | 工艺路线 |
| processId | process_id | varchar | 工艺路线ID |
| prsProcessCode | prs_process_code | varchar | 生产工序编码 |
| beltline | beltline | varchar | 生产线名称 |
| beltlineId | beltline_id | varchar | 生产线ID |
| warehouse | warehouse | varchar | 入库仓库 |
| duration | duration | bigint | 加工时长 |
| arrangeDate | arrange_date | datetime | 排产日期 |
| needDate | need_date | datetime | 需求日期 |
| ppDate | pp_date | datetime | 计划日期 |
| salesman | salesman | varchar | 销售员 |
| upstreamType | upstream_type | varchar | 上游类型 |
| nonZero | non_zero | varchar | 是否显示未完成 |
| *+BaseEntity公共字段* | | | 见上方公共字段表 |
### 2.3 车间基础设置表
| 表名推断 | 实体名 | 关键字段 | 说明 |
|---------|--------|---------|------|
| prs_beltline | PrsBeltline | uniqueId, code, name, processRoute, status | 生产线 |
| prs_team | PrsTeam | uniqueId, code, name, status | 班组 |
| prs_worker | PrsWorker | uniqueId, code, name, jobs, status | 工人 |
| prs_jobs | PrsJobs | uniqueId, code, name, jobs, ratio | 工种 |
| prs_operate_section | PrsOperateSection | uniqueId, code, name, duration, costRatio, countType, isQuality | 标准工序段 |
| prs_process_route | PrsProcessRoute | uniqueId, code, name, status | 工艺路线 |
| prs_equipment | PrsEquipment | uniqueId, code, name, deptName, status | 设备 |
---
## 3. 研发管理模块 (rd_*)
### 3.1 模块功能清单
| 序号 | 功能 | API前缀 | Java实体 | 说明 |
|------|------|---------|---------|------|
| 1 | 产品BOM(EBOM) | /rd/ebom | RdEbomMaster / RdEbomSalve | 研发物料清单(主从表) |
| 2 | 样品配方 | /rd/sample | RdSampleMaster / RdSampleSalve | 样品配方(主从表) |
| 3 | 孪生物料 | /rd/twin | RdTwinMaster / RdTwinSalve | 可替换/同色物料(主从表) |
| 4 | 放量 | /rd/tret | RdTret | 物料分类放量系数 |
| 5 | 研发设置 | /rd/setting | RdSetting | 参数配置 |
### 3.2 EBOM表头 (RdEbomMaster) 字段定义
> 来源: Swagger definitions.RdEbomMaster
| Swagger字段名 | 数据库推断字段名 | 类型 | 说明 |
|--------------|----------------|------|------|
| uniqueId | unique_id | bigint | 主键 |
| rdCode | rd_code | varchar | BOM单据编码 |
| invCode | inv_code | varchar | 母件物料编码 |
| invName | inv_name | varchar | 母件物料名称 |
| invAttribute | inv_attribute | varchar | 母件物料属性 |
| invSortId | inv_sort_id | bigint | 物料分类ID |
| invSortRoot | inv_sort_root | bigint | 物料根分类ID |
| unitCode | unit_code | varchar | 计量单位编码 |
| unitName | unit_name | varchar | 计量单位名称 |
| baseNumber | base_number | decimal | 母件基数 |
| verNumber | ver_number | varchar | 版本号 |
| verRemark | ver_remark | varchar | 版本说明 |
| drawingNo | drawing_no | varchar | 图纸号 |
| attribute | attribute | varchar | 属性 |
| colour | colour | varchar | 颜色 |
| density | density | float | 密度 |
| cost | cost | varchar | 成本 |
| cust | cust | varchar | 客户 |
| property | property | varchar | 性质 |
| rdRecipeSalveList | - | array | 明细行列表 |
| *+BaseEntity公共字段* | | | |
### 3.3 EBOM明细 (RdEbomSalve) 字段定义
| Swagger字段名 | 数据库推断字段名 | 类型 | 说明 |
|--------------|----------------|------|------|
| uniqueId | unique_id | bigint | 明细行主键 |
| rdCode | rd_code | varchar | 关联BOM编码 |
| invCode | inv_code | varchar | 子件物料编码 |
| invName | inv_name | varchar | 子件物料名称 |
| invAttribute | inv_attribute | varchar | 子件物料属性 |
| invSortId | inv_sort_id | bigint | 子件分类ID |
| invSortRoot | inv_sort_root | bigint | 子件根分类ID |
| invSupplyType | inv_supply_type | varchar | 子件供应方式 |
| invOutType | inv_out_type | varchar | 领料方式 |
| unitCode | unit_code | varchar | 计量单位编码 |
| unitName | unit_name | varchar | 计量单位名称 |
| ratio | ratio | decimal | 用量比例(分子) |
| fill | fill | varchar | 填充/用量方式 |
| drawingNo | drawing_no | varchar | 子件图纸号 |
| formula | formula | varchar | 公式 |
| orderNum | order_num | int | 排序号 |
| parentId | parent_id | bigint | 父节点ID(多阶) |
| ancestors | ancestors | varchar | 祖级列表 |
| children | - | array | 子节点(树形) |
### 3.4 孪生物料表头 (RdTwinMaster)
| Swagger字段名 | 说明 |
|--------------|------|
| uniqueId | 主键 |
| rdCode | 孪生物料单据编码 |
| invCode / invName | 物料编码/名称 |
| title | 标题/说明 |
| dynamicSpec | 动态规格 |
| rdTwinSalveList | 明细行(含 colour, priority 字段) |
### 3.5 放量表 (RdTret)
| Swagger字段名 | 说明 |
|--------------|------|
| uniqueId | 主键 |
| sortId / sortCode / sortName | 物料分类ID/编码/名称 |
| f1, f2, f3, f4, f5 | 5个放量系数(number类型) |
### 3.6 研发设置表 (RdSetting)
| Swagger字段名 | 说明 |
|--------------|------|
| uniqueId | 主键 |
| invCode / invName / invAttribute | 物料信息 |
| invSortId / invSortRoot | 物料分类 |
| enableColor | 启用颜色管理 |
| enableContent | 启用含量管理 |
| jsonContent | JSON配置内容 |
---
## 4. 委外管理模块 (pu_*)
### 4.1 模块功能清单
| 序号 | 功能 | API前缀 | Java实体 | 说明 |
|------|------|---------|---------|------|
| 1 | 委外商 | /pu/supplier | PuSupplier | 委外加工商档案 |
| 2 | 委外订单 | /pu/order | PuOrderMaster | 委外加工订单(主从表) |
| 3 | 委外到货单 | /pu/product | PuProductMaster | 委外到货(主从表) |
| 4 | 委外入库单 | /pu/checkin | PuCheckinMaster | 委外入库(主从表) |
| 5 | 委外发料单 | /pu/pick | PuPickMaster | 向委外商发料(主从表) |
| 6 | 委外退料单 | /pu/unpick | PuUnPickMaster | 委外退料(主从表) |
| 7 | 委外发票 | /pu/fapiao | PuFapiaoMaster | 委外加工费发票(含发票查验) |
### 4.2 委外订单 (PuOrderMaster) 关键特有字段
| Swagger字段名 | 说明 |
|--------------|------|
| puCode | 委外订单编码 |
| supplier / supplierId | 委外商名称/ID |
| contract | 合同号 |
| processingFee | 加工费 |
| shippingFee | 运费 |
| mpOrderCode | 关联计划单编码 |
| salesman | 销售员(跟单) |
| item | 物料项 |
| woCode / woQuantity / woDate / woType | 上游工单信息 |
| drawingNo | 图纸号 |
| duration | 加工周期 |
| arrangeDate | 排期日期 |
| needDate | 需求日期 |
### 4.3 委外发票 (PuFapiaoMaster) 特有字段
| Swagger字段名 | 说明 |
|--------------|------|
| puCode | 发票单据编码 |
| supplier / supplierId | 委外商 |
| vatCode | 发票代码 |
| vatNo | 发票号码 |
| vatDate | 开票日期 |
| vatKind | 发票种类 |
| vatType | 发票类型 |
| vatAmount | 发票金额(不含税) |
| vatTax | 税额 |
| vatTotal | 价税合计 |
| vatRate | 税率 |
| vatStatus | 发票状态 |
| taxNumber | 纳税人识别号 |
| entryType | 入账类型 |
| fdPeriod | 财务期间 |
| filePdf / fileXml / fileOfd | 发票附件 |
| bredNo / bredReason / bredVouch | 红冲信息 |
| wiAmount / wiAmountR / wiTaxR | 已核销金额 |
---
## 5. 与现有数据库设计的差异分析
### 5.1 已有文档中的命名 vs Swagger实际命名
现有 `erp数据库设计-DDL.sql` 中的表采用了**规范化的英文命名**(如 `erp_sl_order`, `order_code`, `item_code`),这些是**我们自行设计的DDL结构**。而目标ERP系统Swagger API揭示的**实际字段命名不同**。
| 现有DDL表名 | 实际API路径 | 实际实体名 | 状态 |
|-----------|-----------|-----------|------|
| erp_sl_order | /sl/order | SlOrderMaster | ✅ API已文档化DDL已设计 |
| erp_sl_deliver | /sl/deliver | SlDeliverMaster | ✅ API已文档化DDL已设计 |
| erp_po_order | /po/order | PoOrderMaster | ✅ API已文档化DDL已设计 |
| erp_po_checkin | /po/checkin | PoCheckinMaster | ✅ API已文档化DDL已设计 |
| erp_mp_plan | /mp/plan | MpPlanMaster | ✅ API已文档化DDL已设计 |
| erp_mp_mbom | /mp/mbom | MpMbomMaster | ✅ API已文档化DDL已设计 |
| (无) | /prs/order | PrsOrderMaster | ❌ **新发现 - 需补充** |
| (无) | /prs/pick | PrsPickMaster | ❌ **新发现 - 需补充** |
| (无) | /prs/checkin | PrsCheckinMaster | ❌ **新发现 - 需补充** |
| (无) | /rd/ebom | RdEbomMaster | ❌ **新发现 - 需补充** |
| (无) | /rd/sample | RdSampleMaster | ❌ **新发现 - 需补充** |
| (无) | /rd/twin | RdTwinMaster | ❌ **新发现 - 需补充** |
| (无) | /pu/order | PuOrderMaster | ❌ **新发现 - 需补充** |
| (无) | /pu/checkin | PuCheckinMaster | ❌ **新发现 - 需补充** |
| (无) | /pu/fapiao | PuFapiaoMaster | ❌ **新发现 - 需补充** |
| (无) | /fd/* | Fd* | ❌ **新发现 - 需补充** |
### 5.2 关于公共基类字段(BaseEntity)
Swagger API揭示所有单据实体都继承自同一个基类包含以下标准化字段。现有DDL中这些字段的命名**大部分一致**,但有几个需要特别注意:
| 基类字段 | 现有DDL命名 | 对齐建议 |
|---------|-----------|---------|
| ppNumber | track_code / order_code | 建议在DDL中增加 pp_number 字段 |
| invoiceDate | order_date / plan_date | 各模块已有对应日期字段,无需修改 |
| invoiceStatus | status | 一致 |
| workType | business_type / work_type | 一致 |
| workStatus | business_status | 建议统一 |
| formConfig | (无) | 建议增加 form_config 字段 |
| version | (无) | 建议增加 version 字段(乐观锁) |
| remarks | (无) | 建议增加 remarks 字段 |
---
## 6. 待补充到DDL的表清单
### 6.1 优先级P0 - 生产管理核心表
| 序号 | 推断表名 | 说明 | 对应API |
|------|---------|------|---------|
| 1 | erp_prs_order | 生产订单表头 | /prs/order |
| 2 | erp_prs_order_line | 生产订单明细 | /prs/order/chain |
| 3 | erp_prs_pick | 生产领料单表头 | /prs/pick |
| 4 | erp_prs_pick_line | 生产领料单明细 | /prs/pick/getDetail |
| 5 | erp_prs_product | 生产完工单表头 | /prs/product |
| 6 | erp_prs_product_line | 生产完工单明细 | /prs/product/chain |
| 7 | erp_prs_checkin | 生产入库单表头 | /prs/checkin |
| 8 | erp_prs_checkin_line | 生产入库单明细 | /prs/checkin/getDetail |
### 6.2 优先级P0 - 研发管理核心表
| 序号 | 推断表名 | 说明 | 对应API |
|------|---------|------|---------|
| 1 | erp_rd_ebom | EBOM表头 | /rd/ebom |
| 2 | erp_rd_ebom_line | EBOM明细 | /rd/ebom/getDetail |
| 3 | erp_rd_sample | 样品配方表头 | /rd/sample |
| 4 | erp_rd_sample_line | 样品配方明细 | /rd/sample/chain |
| 5 | erp_rd_twin | 孪生物料表头 | /rd/twin |
| 6 | erp_rd_twin_line | 孪生物料明细 | /rd/twin/chain |
| 7 | erp_rd_tret | 放量表 | /rd/tret |
| 8 | erp_rd_setting | 研发设置 | /rd/setting |
### 6.3 优先级P1 - 委外管理表
| 序号 | 推断表名 | 说明 | 对应API |
|------|---------|------|---------|
| 1 | erp_pu_supplier | 委外商档案 | /pu/supplier |
| 2 | erp_pu_order | 委外订单表头 | /pu/order |
| 3 | erp_pu_order_line | 委外订单明细 | /pu/order/chain |
| 4 | erp_pu_product | 委外到货单表头 | /pu/product |
| 5 | erp_pu_checkin | 委外入库单表头 | /pu/checkin |
| 6 | erp_pu_pick | 委外发料单表头 | /pu/pick |
| 7 | erp_pu_unpick | 委外退料单表头 | /pu/unpick |
| 8 | erp_pu_fapiao | 委外发票表头 | /pu/fapiao |
### 6.4 优先级P1 - 车间设置基础表
| 序号 | 推断表名 | 说明 | 对应API |
|------|---------|------|---------|
| 1 | erp_prs_beltline | 生产线 | /prs/beltline |
| 2 | erp_prs_team | 班组 | /prs/team |
| 3 | erp_prs_worker | 工人 | /prs/worker |
| 4 | erp_prs_jobs | 工种 | /prs/jobs |
| 5 | erp_prs_operate_section | 标准工序段 | /prs/operate |
| 6 | erp_prs_process_route | 工艺路线 | /prs/route |
| 7 | erp_prs_equipment | 设备 | /prs/equipment |
### 6.5 优先级P2 - 财务管理表
> 财务模块接口数量多,功能复杂(含凭证、科目、应收应付、成本核算等),建议后续单独分析和设计。
---
## 7. API路径与现有文档的完整对照
| 模块 | API前缀 | Swagger API文档地址 | 现有数据字典 | 现有DDL |
|------|---------|-------------------|------------|--------|
| 销售模块 | /sl | group=销售模块 | ✅ Section 6 | ✅ erp_sl_* |
| 采购模块 | /po | group=采购模块 | ✅ Section 7 | ✅ erp_po_* |
| 生产计划 | /mp | group=计划模块 (部分) | ✅ Section 8 | ✅ erp_mp_* |
| 物料模块 | /md | group=物料模块 | ✅ Section 4 | ✅ erp_md_* |
| 仓库模块 | /wm | group=仓库模块 | ✅ Section 5 | ✅ erp_wm_* |
| **生产管理** | **/prs** | **group=生产模块** | **❌ 缺失** | **❌ 缺失** |
| **研发管理** | **/rd** | **group=研发模块** | **❌ 缺失** | **❌ 缺失** |
| **委外管理** | **/pu** | **group=委外模块** | **❌ 缺失** | **❌ 缺失** |
| **财务管理** | **/fd** | **group=财务模块** | **❌ 缺失** | **❌ 缺失** |
| 计划模块 | /pl | group=计划模块 | 部分 | 部分 |
| 系统管理 | /system | group=系统模块 | ❌ | ❌ |
---
## 修订历史
| 版本 | 日期 | 修订内容 | 修订人 |
|------|------|----------|--------|
| 1.0.0 | 2026-02-06 | 初始版本基于Swagger API实时分析整理 | System |