Appearance
供应商制造商表结构
**本文引用的文件** - [device.sql](file://docs/ddl/device.sql) - [store.sql](file://docs/ddl/store.sql) - [SupplierDo.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-common/src/main/java/com/lenovo/lemes/service/dm/store/entity/SupplierDo.java) - [ManufacturerDo.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-common/src/main/java/com/lenovo/lemes/service/dm/store/entity/ManufacturerDo.java) - [SupplierExcelVo.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-common/src/main/java/com/lenovo/lemes/service/dm/store/entity/excel/SupplierExcelVo.java) - [ManufacturerExcelVo.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-common/src/main/java/com/lenovo/lemes/service/dm/store/entity/excel/ManufacturerExcelVo.java) - [SupplierImport.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-common/src/main/java/com/lenovo/lemes/service/dm/store/entity/excel/SupplierImport.java) - [ManufacturerImport.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-common/src/main/java/com/lenovo/lemes/service/dm/store/entity/excel/ManufacturerImport.java) - [DeviceMainDo.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-device/lemes-service-dm-device-common/src/main/java/com/lenovo/lemes/service/dm/device/client/entity/inner/DeviceMainDo.java) - [SupplierService.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-server/src/main/java/com/lenovo/lemes/service/dm/store/service/SupplierService.java) - [StoreInOrderDetailDo.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-store/lemes-service-dm-store-common/src/main/java/com/lenovo/lemes/service/dm/store/entity/StoreInOrderDetailDo.java)目录
简介
本文件面向供应商与制造商相关表的数据库架构与业务实现,系统性梳理供应商表(supplier)与制造商表(manufacturer)的表结构设计、字段含义与约束,以及与物料主数据(part_main)的关联关系。同时覆盖以下主题:
- 供应商主数据与物料主数据的关联:通过物料主数据中的“首选供应商”字段实现绑定。
- 供应商导入导出:基于 EasyPoi 的 Excel VO/Import 模型,支持批量导入与导出。
- 供应商生命周期管理:从准入、评估到退出的全链路设计思路与实现要点。
- 数据一致性与可追溯性:逻辑删除、创建/更新用户与时间戳、唯一索引等。
项目结构
围绕供应商与制造商的核心文件分布如下:
- DDL 定义:供应商与制造商表结构位于设备模块与仓储模块的 DDL 文件中,确保跨模块一致。
- 实体模型:供应商与制造商的 Java 实体类映射数据库表,统一继承基础实体基类。
- Excel 导入导出:提供 VO 与 Import 类,用于前端 Excel 操作与后端校验。
- 关联关系:物料主数据(part_main)中包含“首选供应商”字段;设备主数据(device_main)包含“制造商代号”。
图表来源
- device.sql:252-314
- store.sql:252-314
- SupplierDo.java:14-72
- ManufacturerDo.java:14-72
- SupplierExcelVo.java:10-77
- ManufacturerExcelVo.java:10-78
- SupplierImport.java:11-113
- ManufacturerImport.java:11-109
- DeviceMainDo.java:69-72
章节来源
核心组件
- 供应商表(supplier)
- 关键字段:工厂代号、供应商代号、供应商编码、供应商名称、地址、联系人、电话、邮箱、传真、网址、备注、创建/更新用户与时间、逻辑删除、可用标志。
- 唯一性:由数据库序列与表级约束保障主键唯一。
- 可用标志:用于启用/停用供应商。
- 制造商表(manufacturer)
- 关键字段:工厂代号、制造商代号、制造商编码、制造商名称、地址、联系人、电话、邮箱、传真、网址、备注、创建/更新用户与时间、逻辑删除、可用标志。
- 与供应商表结构高度对称,便于统一治理。
- 物料主数据(part_main)
- 关键字段:工厂代号、物料代号、物料编码、物料名称、规格、单位、控制类型、币种、单价、首选供应商、有效期/寿命相关字段、ABC分类、有效标志、描述、创建/更新用户与时间、逻辑删除、包装数量、序列号规则。
- 首选供应商:与供应商表的供应商代号建立弱耦合关联,用于默认供应商选择。
- 设备主数据(device_main)
- 关键字段:设备代号、设备编号、设备名称、设备型号、制造商代号等。
- 制造商代号:与制造商表的制造商代号建立弱耦合关联,用于设备来源标识。
章节来源
- SupplierDo.java:14-72
- ManufacturerDo.java:14-72
- device.sql:384-481
- store.sql:384-481
- DeviceMainDo.java:69-72
架构总览
供应商与制造商作为主数据,服务于物料主数据与设备主数据的业务场景。下图展示三者之间的关联关系与数据流向。
图表来源
详细组件分析
供应商表(supplier)结构与字段说明
- 主键与序列:自增主键,配合数据库序列保证唯一性。
- 工厂维度:通过工厂代号进行多工厂隔离。
- 供应商识别:供应商代号与供应商编码构成业务主键,便于检索与去重。
- 联系方式:地址、联系人、电话、邮箱、传真、网址等,支撑供应链沟通。
- 状态与审计:可用标志、逻辑删除、创建/更新用户与时间戳,满足合规与审计需求。
- 与物料主数据的关联:物料主数据的“首选供应商”字段以供应商代号进行弱关联,便于默认供应商选择。
章节来源
制造商表(manufacturer)结构与字段说明
- 结构与供应商表高度一致,便于统一治理与操作。
- 用途:设备主数据(device_main)通过“制造商代号”与之关联,形成设备来源信息。
- 与物料主数据的关系:无直接字段关联,但可通过设备主数据间接影响物料主数据的来源信息。
章节来源
物料主数据(part_main)与供应商关联
- 首选供应商字段:用于指定该物料的默认供应商代号,便于采购与出入库流程的自动化。
- 有效性与控制:控制类型、币种、单价、有效期/寿命、ABC分类等字段支撑精细化管理。
- 唯一性:工厂+物料代号唯一,避免重复。
章节来源
设备主数据(device_main)与制造商关联
- 制造商代号:与制造商表的制造商代号建立弱关联,用于标识设备来源。
- 其他关键字段:设备名称、型号、序列号、所属产线、部门、责任人等,支撑设备全生命周期管理。
章节来源
Excel 导入导出(供应商与制造商)
- 导出模型(Excel VO):将实体字段映射到 Excel 列,支持字典项(如可用标志)的枚举显示。
- 导入模型(Import):提供字段长度校验、行号与错误信息承载,便于批量导入时的校验与反馈。
- 与供应商/制造商表的映射:导入/导出列名与实体字段一一对应,确保数据一致性。
图表来源
- SupplierExcelVo.java:10-77
- SupplierImport.java:11-113
- ManufacturerExcelVo.java:10-78
- ManufacturerImport.java:11-109
章节来源
- SupplierExcelVo.java:10-77
- SupplierImport.java:11-113
- ManufacturerExcelVo.java:10-78
- ManufacturerImport.java:11-109
供应商主数据与物料主数据的关联关系
- 弱关联:物料主数据的“首选供应商”字段以供应商代号进行关联,不强制外键约束,便于跨系统解耦。
- 默认策略:在采购、出入库等流程中优先选用“首选供应商”,提升自动化程度。
- 维护建议:供应商代号变更需同步更新物料主数据的“首选供应商”字段,避免流程异常。
章节来源
供应商生命周期管理(准入—评估—退出)
- 准入:校验供应商编码唯一性,生成供应商代号,初始化可用标志为启用。
- 评估:通过业务流程对供应商进行评分与评级(建议在业务层实现),结合“首选供应商”字段进行动态调整。
- 退出:停用供应商(可用标志置为停用),并清理或迁移其关联物料的“首选供应商”字段。
图表来源
章节来源
供应商数据维护流程与历史追溯
- 维护流程:新增/编辑/停用/删除供应商,均记录创建/更新用户与时间戳,支持历史追溯。
- 历史追溯:通过创建/更新用户与时间戳字段,结合逻辑删除,实现数据变更的可追踪性。
- 变更记录:建议在业务层增加变更日志表,记录关键字段变更前后值,便于审计与回溯。
章节来源
供应商评估机制(建议实现)
- 评估维度:质量、交付、服务、价格、财务健康度等。
- 评级体系:建议引入等级制(如AAA~D),并与“首选供应商”策略联动。
- 自动化策略:根据评级结果自动调整“首选供应商”优先级或禁用低评级供应商。
(本节为概念性建议,不直接分析具体文件)
依赖分析
- 供应商与制造商表依赖于数据库序列与表级约束,确保主键唯一与业务主键唯一。
- 物料主数据与供应商表之间为弱关联,通过供应商代号进行解耦。
- 设备主数据与制造商表之间为弱关联,通过制造商代号进行解耦。
- Excel 导入导出依赖 EasyPoi 注解与校验框架,确保数据质量。
图表来源
- device.sql:195-197
- store.sql:195-197
- SupplierExcelVo.java:10-77
- SupplierImport.java:11-113
- ManufacturerExcelVo.java:10-78
- ManufacturerImport.java:11-109
章节来源
性能考虑
- 唯一性约束:供应商与制造商的业务主键(代号/编码)应建立唯一索引,避免重复与查询冲突。
- 查询优化:常用过滤字段(工厂代号、供应商/制造商代号、名称、编码)建议建立索引,提升检索效率。
- 批量导入:Excel 导入采用分页与校验分离策略,减少内存占用与失败重试成本。
- 逻辑删除:通过 is_delete 字段实现软删除,避免物理删除带来的数据恢复成本。
(本节提供通用指导,不直接分析具体文件)
故障排查指南
- 供应商编码重复:调用供应商服务的编码存在性检查方法,确认编码唯一后再创建。
- 供应商代号生成:若出现生成异常,检查 Redis 序列服务与常量配置,确保序列号生成正常。
- Excel 导入失败:查看导入模型的错误信息字段,定位具体行号与错误原因(如长度超限、格式不符)。
- 关联字段失效:当供应商或制造商被停用/删除时,需同步清理或更新物料主数据的“首选供应商”字段。
章节来源
结论
本文系统梳理了供应商与制造商表的结构设计与业务实现,明确了与物料主数据及设备主数据的关联关系,并提出了供应商生命周期管理、导入导出、评估机制与历史追溯等方面的实践建议。通过统一的数据模型与流程规范,可有效提升供应链主数据的准确性、一致性与可维护性。
附录
- 供应商与制造商表的 DDL 定义位于设备模块与仓储模块的 DDL 文件中,确保跨模块一致。
- Excel 导入导出模型与实体字段一一对应,便于前端交互与后端校验。
- 物料主数据的“首选供应商”字段与设备主数据的“制造商代号”字段分别承担不同业务角色,需分别维护与校验。
章节来源