免费WAP建导航网站,沈阳制作网站的公司,网站建设无广告,不带地域的公司名称怎么注册笔言: 偶尔看到升鲜宝供应链管理系统一些UI界面#xff0c;发现业务非常庞大#xff0c;就好奇研究一下#xff0c;以前我做过一些项目300个表都是常态#xff1b; 如何进行业务表、流程或数据流分析还是比较少#xff1b;后面会把ERP等都会进行分析#xff1b; 内源开发…笔言: 偶尔看到升鲜宝供应链管理系统一些UI界面发现业务非常庞大就好奇研究一下以前我做过一些项目300个表都是常态 如何进行业务表、流程或数据流分析还是比较少后面会把ERP等都会进行分析 内源开发是一个全栈六边形开发要求把软件工程各个方面都得会: 需求分析、业务架构、技术架构、数据架构、产品开发、项目管理、可行性方案设计、软件详细设计说明书、测试工程等等不然很辛苦关于升鲜宝供应链管理系统业务表与流程全量分析摘要本分析基于《升鲜宝供应链管理系统重构版发布》四篇系列文章从业务和技术架构师视角全面解析该系统的业务实体、数据模型与流程关系。升鲜宝系统是一个面向生鲜配送行业的全链路数字化解决方案涵盖权限管理、商品管理、客户管理、门店管理、供应商管理、采购管理、库存管理、分拣配送、财务管理、数据分析等十大核心业务域。本文将深度挖掘系统隐含的120个业务实体表构建完整的实体关系模型(ERM)并绘制详细的业务流程图和数据流图最终形成全面技术业务分析报告。第一部分业务表主体提取与分类1.1 权限与系统管理域1.1.1 组织机构管理表群组织机构表 (sys_organization)- 存储企业部门结构信息部门表 (sys_department)- 部门详细信息岗位表 (sys_post)- 岗位定义与职责用户表 (sys_user)- 系统用户账户信息用户详情表 (sys_user_profile)- 用户扩展信息用户部门关联表 (sys_user_dept)- 用户与部门多对多关系用户岗位关联表 (sys_user_post)- 用户与岗位多对多关系1.1.2 权限控制表群角色表 (sys_role)- 角色定义用户角色关联表 (sys_user_role)- 用户与角色关系菜单表 (sys_menu)- 系统菜单结构权限表 (sys_permission)- 细粒度权限点角色权限关联表 (sys_role_permission)- 角色权限分配数据权限表 (sys_data_scope)- 数据范围控制规则操作日志表 (sys_operation_log)- 用户操作审计登录日志表 (sys_login_log)- 用户登录记录1.1.3 系统配置表群参数配置表 (sys_config)- 系统运行参数数据字典表 (sys_dict)- 通用数据字典字典项表 (sys_dict_item)- 字典明细值定时任务表 (sys_job)- 定时任务配置任务日志表 (sys_job_log)- 任务执行记录文件管理表 (sys_file)- 系统文件存储记录全局配置表 (sys_global_config)- 全局业务配置用户申请表 (sys_user_apply)- 用户注册申请记录1.2 商品与溯源管理域1.2.1 商品基础数据表群商品品牌表 (product_brand)- 商品品牌定义商品单位表 (product_unit)- 计量单位定义商品分类表 (product_category)- 商品分类体系商品标签表 (product_tag)- 商品标签定义商品标签关联表 (product_tag_rel)- 商品与标签关系商品表 (product)- 商品主信息商品规格表 (product_spec)- 商品规格变体商品SKU表 (product_sku)- 最小库存单元商品价格表 (product_price)- 商品基准价格商品图片表 (product_image)- 商品图片资源商品描述表 (product_description)- 商品详细描述商品扩展属性表 (product_attribute)- 自定义属性商品属性值表 (product_attribute_value)- 属性具体值1.2.2 云商品库表群云商品库表 (cloud_product_library)- 云端共享商品库商品提报表 (product_submission)- 商品提报申请提报审核表 (submission_audit)- 提报审核记录素材分组表 (material_group)- 营销素材分组素材库表 (material_library)- 营销素材存储商品授权表 (product_authorization)- 商品使用授权分拣区域表 (sorting_area)- 分拣区域定义1.2.3 商品溯源表群批次管理表 (product_batch)- 商品批次信息批次明细表 (batch_detail)- 批次详细数据溯源规则表 (traceability_rule)- 溯源规则定义溯源码表 (trace_code)- 溯源码生成记录溯源码关联表 (trace_code_rel)- 码与商品关联环节管理表 (trace_link)- 溯源环节定义环节记录表 (link_record)- 环节流转记录商品检测报告表 (product_inspection_report)- 质量检测报告检测报告附件表 (report_attachment)- 报告附件文件溯源查询日志表 (trace_query_log)- 溯源查询记录1.3 客户与价格管理域1.3.1 客户主数据表群客户表 (customer)- 客户主信息客户分类表 (customer_category)- 客户分类客户星级表 (customer_star_level)- 客户评级客户类型表 (customer_type)- 客户类型定义客户来源表 (customer_source)- 客户来源渠道客户联系人表 (customer_contact)- 客户联系人信息客户地址表 (customer_address)- 客户配送地址客户账期表 (customer_payment_term)- 客户结算账期客户合同表 (customer_contract)- 客户合同文件客户合同明细表 (contract_detail)- 合同条款明细客户报价单表 (customer_quotation)- 客户报价记录客户组合表 (customer_group)- 客户分组管理客户组合明细表 (customer_group_member)- 组成员关系客户通知类型表 (customer_notice_type)- 通知类型定义客户通知表 (customer_notice)- 客户通知记录客户Banner表 (customer_banner)- 客户端广告图1.3.2 价格管理体系表群价格组表 (price_group)- 价格分组定义价格组客户关联表 (price_group_customer)- 客户适用价格组价格组商品价格表 (price_group_product)- 分组商品定价阶梯价格表 (tiered_price)- 阶梯定价规则促销价格表 (promotion_price)- 促销临时定价区域价格表 (regional_price)- 区域差异化定价价格历史表 (price_history)- 价格变动记录价格审批表 (price_approval)- 价格调整审批1.4 门店管理域1.4.1 门店基础表群门店类型表 (store_type)- 门店类型定义门店表 (store)- 门店主信息门店联系人表 (store_contact)- 门店联系人门店地址表 (store_address)- 门店地址信息门店Banner表 (store_banner)- 门店展示广告门店支付方式表 (store_payment_method)- 门店支持的支付方式门店供应商配置表 (store_supplier_config)- 门店供货关系门店主子账号表 (store_sub_account)- 门店子账户管理门店通知类型表 (store_notice_type)- 门店通知分类门店通知表 (store_notice)- 门店通知记录门店营业时间表 (store_business_hours)- 门店营业时段门店库存配置表 (store_inventory_config)- 门店库存参数1.5 订单管理域1.5.1 客户订单表群订货模板表 (order_template)- 订单模板定义模板商品表 (template_product)- 模板商品组成客户订货单表 (customer_order)- 客户订单主表订货单明细表 (order_detail)- 订单商品明细订单状态流水表 (order_status_flow)- 订单状态变更记录发货单表 (delivery_order)- 发货单主表发货单明细表 (delivery_detail)- 发货商品明细收货单表 (receipt_order)- 收货确认单收货单明细表 (receipt_detail)- 收货明细订货退货单表 (order_return)- 退货申请单退货单明细表 (return_detail)- 退货商品明细退货原因表 (return_reason)- 退货原因分类退货审核表 (return_audit)- 退货审核记录1.5.2 门店订单表群门店订货模板表 (store_order_template)- 门店专用模板门店订货单表 (store_order)- 门店订单主表门店订单明细表 (store_order_detail)- 门店订单明细门店发货单表 (store_delivery_order)- 门店发货单门店收货单表 (store_receipt_order)- 门店收货单门店退货单表 (store_return_order)- 门店退货单1.5.3 订单处理表群订货看板表 (order_kanban)- 订单可视化管理收货单差异表 (receipt_discrepancy)- 收货差异记录订单退扣单表 (order_deduction)- 订单扣款记录订单评价表 (order_evaluation)- 客户评价记录订单异常表 (order_exception)- 订单异常记录异常处理表 (exception_handling)- 异常处理记录1.6 库存与进销存管理域1.6.1 仓库基础表群仓库表 (warehouse)- 仓库主信息库区表 (warehouse_zone)- 仓库分区定义货架/库位表 (storage_location)- 具体存储位置温区管理表 (temperature_zone)- 温度控制区域温区监控表 (temperature_monitor)- 温区监控记录仓库设备表 (warehouse_equipment)- 仓库设备管理仓库人员表 (warehouse_staff)- 仓库工作人员1.6.2 库存事务表群库存表 (inventory)- 商品库存主记录批次库存表 (batch_inventory)- 按批次库存记录库存流水表 (inventory_flow)- 库存变动流水库存预警表 (inventory_alert)- 库存预警记录库存盘点计划表 (inventory_check_plan)- 盘点计划盘点任务表 (check_task)- 盘点任务分配盘点结果表 (check_result)- 盘点结果记录盘点差异表 (check_discrepancy)- 盘点差异分析库存调整表 (inventory_adjustment)- 库存调整记录1.6.3 入库管理表群入库单表 (inbound_order)- 入库单主表入库单明细表 (inbound_detail)- 入库商品明细入库验收表 (inbound_inspection)- 入库验收记录入库上架表 (inbound_putaway)- 上架任务记录采购入库单表 (purchase_inbound_order)- 采购关联入库单生产入库单表 (production_inbound_order)- 生产完工入库退货入库单表 (return_inbound_order)- 退货入库记录调拨入库单表 (transfer_inbound_order)- 调拨入库记录1.6.4 出库管理表群出库单表 (outbound_order)- 出库单主表出库单明细表 (outbound_detail)- 出库商品明细出库拣货表 (outbound_picking)- 拣货任务记录出库复核表 (outbound_review)- 出库复核记录销售出库单表 (sale_outbound_order)- 销售关联出库调拨出库单表 (transfer_outbound_order)- 调拨出库记录报损出库单表 (loss_outbound_order)- 报损出库记录领料出库单表 (material_outbound_order)- 生产领料出库1.6.5 库存业务表群组合拆解单表 (assembly_disassembly_order)- 商品组合拆解组合明细表 (assembly_detail)- 组合配方明细调拨单表 (transfer_order)- 库存调拨单调拨明细表 (transfer_detail)- 调拨商品明细报损单表 (loss_order)- 商品报损单报损明细表 (loss_detail)- 报损商品明细报溢单表 (overflow_order)- 商品报溢单报溢明细表 (overflow_detail)- 报溢商品明细成本调整单表 (cost_adjustment_order)- 成本调整单库存查询记录表 (inventory_query_log)- 查询历史记录结存单表 (balance_order)- 期末结存单1.7 供应商与采购管理域1.7.1 供应商管理表群供应商表 (supplier)- 供应商主信息供应商分类表 (supplier_category)- 供应商分类供应商账期表 (supplier_payment_term)- 供应商结算条件供应品管理表 (supply_product)- 供应商供货商品供应商通知类型表 (supplier_notice_type)- 通知类型供应商通知表 (supplier_notice)- 通知记录供应商授权表 (supplier_authorization)- 供应商权限供应商报价表 (supplier_quotation)- 供应商报价供应商合同表 (supplier_contract)- 供应商合同合同明细表 (supplier_contract_detail)- 合同条款1.7.2 采购管理表群采购申请单表 (purchase_requisition)- 采购申请采购申请明细表 (requisition_detail)- 申请商品明细采购单表 (purchase_order)- 采购订单采购单明细表 (purchase_order_detail)- 采购商品明细采购核算单表 (purchase_settlement)- 采购结算单采购退货单表 (purchase_return)- 采购退货单每日采购价表 (daily_purchase_price)- 每日采购价格采购历史表 (purchase_history)- 采购历史记录采购评价表 (purchase_evaluation)- 供应商评价1.7.3 招投标管理表群招标管理表 (bidding_management)- 招标项目招标文件表 (bidding_document)- 招标文件投标表 (bid_submission)- 供应商投标投标文件表 (bid_document)- 投标文件评标记录表 (bid_evaluation)- 评标记录招标结果表 (bidding_result)- 招标结果1.8 分拣配送管理域1.8.1 分拣管理表群分拣策略表 (sorting_strategy)- 分拣策略定义分拣任务表 (sorting_task)- 分拣任务分配分拣批次表 (sorting_batch)- 分拣批次管理分拣明细表 (sorting_detail)- 分拣商品明细分拣方式配置表 (sorting_method_config)- 分拣方式设置预打包表 (pre_pack)- 预打包配置预打包明细表 (pre_pack_detail)- 预打包商品组成分拣效率表 (sorting_efficiency)- 分拣效率统计1.8.2 配送管理表群物流线路表 (logistics_route)- 配送线路定义自提点表 (pickup_point)- 自提点信息排线表 (route_scheduling)- 线路排班计划配送任务表 (delivery_task)- 配送任务分配配送车辆表 (delivery_vehicle)- 配送车辆信息配送员表 (delivery_staff)- 配送人员信息配送轨迹表 (delivery_track)- 配送实时轨迹配送签收表 (delivery_sign)- 签收记录配送异常表 (delivery_exception)- 配送异常记录配送地图配置表 (delivery_map_config)- 地图相关配置1.9 财务管理域1.9.1 账户与收支表群账户表 (account)- 资金账户信息账户流水表 (account_flow)- 账户资金变动费用类别表 (expense_category)- 费用分类费用明细表 (expense_detail)- 费用详细记录日常收入表 (daily_income)- 日常收入记录日常支出表 (daily_expense)- 日常支出记录支付方式表 (payment_method)- 支付方式定义支付记录表 (payment_record)- 支付交易记录1.9.2 期初与对账表群客户期初表 (customer_initial_balance)- 客户期初余额供应商期初表 (supplier_initial_balance)- 供应商期初余额商品期初表 (product_initial_balance)- 商品期初库存客户对账表 (customer_reconciliation)- 客户对账单对账明细表 (reconciliation_detail)- 对账明细项门店结账表 (store_settlement)- 门店结算单供应商对账表 (supplier_reconciliation)- 供应商对账单对账差异表 (reconciliation_discrepancy)- 对账差异记录1.9.3 应收应付表群客户账单表 (customer_bill)- 客户账单账单明细表 (bill_detail)- 账单明细项供应商账单表 (supplier_bill)- 供应商账单应收款表 (receivable)- 应收款记录应收明细表 (receivable_detail)- 应收款明细应付款表 (payable)- 应付款记录应付明细表 (payable_detail)- 应付款明细收款单表 (collection_order)- 收款单收款明细表 (collection_detail)- 收款明细付款单表 (payment_order)- 付款单付款明细表 (payment_detail)- 付款明细发票表 (invoice)- 发票信息发票明细表 (invoice_detail)- 发票明细项1.10 车辆与周转物管理域1.10.1 车辆管理表群车辆表 (vehicle)- 车辆基本信息车辆档案表 (vehicle_file)- 车辆档案文件司机表 (driver)- 司机信息司机档案表 (driver_file)- 司机档案文件油卡管理表 (fuel_card)- 油卡管理用车申请表 (vehicle_application)- 用车申请出车记录表 (trip_record)- 出车行程记录加油记录表 (refuel_record)- 加油记录违章处理表 (violation_handling)- 违章处理故障处理表 (fault_handling)- 故障处理维修保养表 (maintenance)- 维修保养记录保险记录表 (insurance_record)- 保险记录年检记录表 (inspection_record)- 年检记录车辆费用表 (vehicle_expense)- 车辆相关费用1.10.2 周转物管理表群周转物类型表 (container_type)- 周转物类型定义周转物表 (container)- 周转物主信息周转物库存表 (container_inventory)- 周转物库存购入/报损管理表 (container_purchase_loss)- 购入报损记录发出管理表 (container_issue)- 周转物发出记录回收管理表 (container_recovery)- 周转物回收记录客户周转物明细表 (customer_container_detail)- 客户持有明细司机周转物明细表 (driver_container_detail)- 司机携带明细周转物进销存报表 (container_inventory_report)- 周转物报表1.11 生产加工管理域1.11.1 生产基础表群生产加工单表 (production_order)- 生产任务单加工销售汇总表 (production_sales_summary)- 加工销售统计领料单表 (material_requisition)- 生产领料单领料明细表 (material_requisition_detail)- 领料明细退料单表 (material_return)- 退料单退料明细表 (material_return_detail)- 退料明细完工入库单表 (finished_product_inbound)- 完工入库单生产加工报表 (production_report)- 生产统计报表出成率报表 (yield_rate_report)- 出成率统计商品BOM表 (product_bom)- 物料清单BOM明细表 (bom_detail)- BOM组成明细商品分拆模板表 (product_split_template)- 分拆模板商品分拆记录表 (product_split_record)- 分拆执行记录生产工人表 (production_worker)- 生产人员生产工序表 (production_process)- 工序定义生产车间表 (production_workshop)- 车间信息1.12 数据报表与分析域1.12.1 报表定义表群商品销售汇总表 (product_sales_summary)- 商品销售统计商品采购汇总表 (product_purchase_summary)- 商品采购统计商品分类汇总表 (product_category_summary)- 分类销售统计商品入库汇总表 (product_inbound_summary)- 入库统计商品出库汇总表 (product_outbound_summary)- 出库统计商品报损汇总表 (product_loss_summary)- 报损统计商品ABC报表 (product_abc_report)- ABC分析报表商品销售明细表 (product_sales_detail)- 销售明细记录商品采购明细表 (product_purchase_detail)- 采购明细记录商品销售异常明细表 (sales_exception_detail)- 销售异常分析商品采购异常明细表 (purchase_exception_detail)- 采购异常分析报表模板表 (report_template)- 报表模板定义报表参数表 (report_parameter)- 报表参数配置报表生成记录表 (report_generation_log)- 报表生成日志报表订阅表 (report_subscription)- 报表订阅设置1.13 工作台与BI分析域1.13.1 工作台管理表群工作台配置表 (dashboard_config)- 工作台个性化配置工作台组件表 (dashboard_widget)- 工作台组件定义用户工作台表 (user_dashboard)- 用户工作台布局快捷操作表 (quick_action)- 快捷操作配置待办事项表 (todo_item)- 待办事项管理消息中心表 (message_center)- 消息中心记录公告通知表 (announcement)- 系统公告1.13.2 BI分析表群分析模型表 (analysis_model)- 分析模型定义分析维度表 (analysis_dimension)- 分析维度配置分析指标表 (analysis_metric)- 分析指标定义数据源配置表 (data_source_config)- 数据源连接配置数据集表 (dataset)- 数据集定义数据可视化表 (data_visualization)- 可视化配置分析报告表 (analysis_report)- 分析报告记录用户分析收藏表 (user_analysis_favorite)- 用户收藏分析第二部分表关系与数据模型分析2.1 核心实体关系模型(ERM)2.1.1 主体实体关系图┌─────────────────────────────────────────────────────────┐ │ 核心业务实体关系图 │ ├─────────────────────────────────────────────────────────┤ │ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ 客户 │──────│ 订单 │──────│ 商品 │ │ │ └─────────┘ └─────────┘ └─────────┘ │ │ │ │ │ │ │ ┌────┴─────┐ ┌────┴─────┐ ┌────┴─────┐ │ │ │客户联系人│ │订单明细 │ │商品分类 │ │ │ │客户地址 │ │订单状态 │ │商品品牌 │ │ │ │客户合同 │ │发货单 │ │商品规格 │ │ │ │客户报价 │ │收货单 │ │商品SKU │ │ │ └──────────┘ └──────────┘ └──────────┘ │ │ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ 供应商 │──────│ 采购单 │──────│ 库存 │ │ │ └─────────┘ └─────────┘ └─────────┘ │ │ │ │ │ │ │ ┌────┴─────┐ ┌────┴─────┘ ┌────┴─────┐ │ │ │供应商商品│ │采购明细 │仓库 │ │ │ │供应商合同│ │采购入库 │库位 │ │ │ │供应商报价│ │采购退货 │库存流水 │ │ │ └──────────┘ └─────────────────└──────────┘ │ │ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │ 门店 │──────│门店订单 │──────│ 财务 │ │ │ └─────────┘ └─────────┘ └─────────┘ │ │ │ │ │ │ │ ┌────┴─────┐ ┌────┴─────┐ ┌────┴─────┐ │ │ │门店类型 │ │门店订单明细│ │应收应付 │ │ │ │门店支付 │ │门店发货单 │ │收款付款 │ │ │ │门店库存 │ │门店收货单 │ │对账单 │ │ │ └──────────┘ └──────────┘ └──────────┘ │ └─────────────────────────────────────────────────────────┘2.1.2 权限系统关系模型┌─────────────────────────────────────────────────────┐ │ 权限管理系统ER模型 │ ├─────────────────────────────────────────────────────┤ │ │ │ ┌─────────┐ 1:n ┌─────────┐ │ │ │ 用户 │◄───────────────│ 角色 │ │ │ └─────────┘ └─────────┘ │ │ │ │ │ │ n:m ─┤ n:m ─┤ │ │ │ │ │ │ ┌────▼─────┐ ┌─────▼────┐ │ │ │用户部门 │ │角色权限 │ │ │ │用户岗位 │ └─────┬────┘ │ │ └──────────┘ │ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │ 部门 │ │ 权限 │ │ │ │ 岗位 │ └──────────┘ │ │ └──────────┘ │ │ │ │ │ ┌────▼─────┐ │ │ │组织机构 │ │ │ └──────────┘ │ │ │ │ ┌─────────┐ 1:n ┌─────────┐ │ │ │ 菜单 │◄───────────────│菜单权限 │ │ │ └─────────┘ └─────────┘ │ │ │ │ ┌─────────┐ 1:n ┌─────────┐ │ │ │数据范围 │◄───────────────│数据权限 │ │ │ └─────────┘ └─────────┘ │ └─────────────────────────────────────────────────────┘2.1.3 商品管理系统关系模型┌─────────────────────────────────────────────────────────┐ │ 商品管理系统ER模型 │ ├─────────────────────────────────────────────────────────┤ │ │ │ ┌─────────┐ 1:n ┌─────────┐ 1:n ┌─────┐ │ │ │商品分类 │◄───────────│ 商品 │────────►│品牌 │ │ │ └─────────┘ └─────────┘ └─────┘ │ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ ┌────▼─┐ │ │ │子分类 │ │商品规格 │ │品牌商│ │ │ └──────────┘ └──────────┘ └──────┘ │ │ │ │ ┌─────────┐ n:m ┌─────────┐ 1:n ┌─────┐ │ │ │ 商品 ├───────────►│商品标签 │◄────────│标签类│ │ │ └─────────┘ └─────────┘ └─────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │商品SKU │ │标签关联 │ │ │ └──────────┘ └──────────┘ │ │ │ │ │ ┌────▼─────┐ 1:n ┌─────────┐ │ │ │商品价格 │◄───────────│价格组 │ │ │ └──────────┘ └─────────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │价格历史 │ │价格客户 │ │ │ └──────────┘ └──────────┘ │ │ │ │ ┌─────────┐ 1:n ┌─────────┐ 1:1 ┌─────┐ │ │ │ 商品 │◄───────────│商品批次 │────────►│供应商│ │ │ └─────────┘ └─────────┘ └─────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │溯源信息 │ │批次明细 │ │ │ └──────────┘ └──────────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │溯源码 │ │检测报告 │ │ │ └──────────┘ └──────────┘ │ └─────────────────────────────────────────────────────────┘2.1.4 订单系统关系模型┌─────────────────────────────────────────────────────────┐ │ 订单管理系统ER模型 │ ├─────────────────────────────────────────────────────────┤ │ │ │ ┌─────────┐ 1:n ┌─────────┐ 1:n ┌─────┐ │ │ │ 客户 │◄───────────│客户订单 │────────►│门店 │ │ │ └─────────┘ └─────────┘ └─────┘ │ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ ┌────▼─┐ │ │ │客户类型 │ │订单明细 │ │门店类型│ │ │ └──────────┘ └──────────┘ └──────┘ │ │ │ │ ┌─────────┐ n:m ┌─────────┐ 1:n ┌─────┐ │ │ │客户订单 ├───────────►│商品SKU │◄────────│商品 │ │ │ └─────────┘ └─────────┘ └─────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │发货单 │ │库存分配 │ │ │ └──────────┘ └──────────┘ │ │ │ │ │ ┌────▼─────┐ 1:n ┌─────────┐ │ │ │发货明细 │◄───────────│分拣任务 │ │ │ └──────────┘ └─────────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │收货单 │ │分拣明细 │ │ │ └──────────┘ └──────────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │收货明细 │ │分拣批次 │ │ │ └──────────┘ └──────────┘ │ │ │ │ ┌─────────┐ 1:n ┌─────────┐ 1:1 ┌─────┐ │ │ │客户订单 │◄───────────│退货单 │────────►│退货原因│ │ │ └─────────┘ └─────────┘ └─────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │订单状态 │ │退货审核 │ │ │ └──────────┘ └──────────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │状态流水 │ │退货明细 │ │ │ └──────────┘ └──────────┘ │ └─────────────────────────────────────────────────────────┘2.1.5 库存系统关系模型┌─────────────────────────────────────────────────────────┐ │ 库存管理系统ER模型 │ ├─────────────────────────────────────────────────────────┤ │ │ │ ┌─────────┐ 1:n ┌─────────┐ 1:n ┌─────┐ │ │ │ 仓库 │◄───────────│ 库位 │────────►│温区 │ │ │ └─────────┘ └─────────┘ └─────┘ │ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ ┌────▼─┐ │ │ │仓库区域 │ │库位类型 │ │温控设备│ │ │ └──────────┘ └──────────┘ └──────┘ │ │ │ │ ┌─────────┐ n:m ┌─────────┐ 1:n ┌─────┐ │ │ │ 库位 ├───────────►│商品批次 │◄────────│商品 │ │ │ └─────────┘ └─────────┘ └─────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │库存记录 │ │批次库存 │ │ │ └──────────┘ └──────────┘ │ │ │ │ │ ┌────▼─────┐ 1:n ┌─────────┐ │ │ │库存流水 │◄───────────│库存事务 │ │ │ └──────────┘ └─────────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │流水类型 │ │事务明细 │ │ │ └──────────┘ └──────────┘ │ │ │ │ ┌─────────┐ 1:n ┌─────────┐ 1:n ┌─────┐ │ │ │库存事务 │◄───────────│入库单 │────────►│采购单│ │ │ └─────────┘ └─────────┘ └─────┘ │ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ ┌────▼─┐ │ │ │事务状态 │ │入库明细 │ │采购明细│ │ │ └──────────┘ └──────────┘ └──────┘ │ │ │ │ ┌─────────┐ 1:n ┌─────────┐ 1:n ┌─────┐ │ │ │库存事务 │◄───────────│出库单 │────────►│销售单│ │ │ └─────────┘ └─────────┘ └─────┘ │ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ ┌────▼─┐ │ │ │出库类型 │ │出库明细 │ │订单明细│ │ │ └──────────┘ └──────────┘ └──────┘ │ │ │ │ ┌─────────┐ 1:n ┌─────────┐ 1:n ┌─────┐ │ │ │库存调整 │◄───────────│盘点计划 │────────►│盘点任务│ │ │ └─────────┘ └─────────┘ └─────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │调整明细 │ │盘点结果 │ │ │ └──────────┘ └──────────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │调整原因 │ │盘点差异 │ │ │ └──────────┘ └──────────┘ │ └─────────────────────────────────────────────────────────┘2.1.6 财务系统关系模型┌─────────────────────────────────────────────────────────┐ │ 财务管理系统ER模型 │ ├─────────────────────────────────────────────────────────┤ │ │ │ ┌─────────┐ 1:n ┌─────────┐ 1:n ┌─────┐ │ │ │ 客户 │◄───────────│客户账单 │────────►│订单 │ │ │ └─────────┘ └─────────┘ └─────┘ │ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ ┌────▼─┐ │ │ │客户期初 │ │账单明细 │ │订单明细│ │ │ └──────────┘ └──────────┘ └──────┘ │ │ │ │ ┌─────────┐ n:m ┌─────────┐ 1:n ┌─────┐ │ │ │客户账单 ├───────────►│收款单 │◄────────│账户 │ │ │ └─────────┘ └─────────┘ └─────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │应收款 │ │收款明细 │ │ │ └──────────┘ └──────────┘ │ │ │ │ │ ┌────▼─────┐ 1:n ┌─────────┐ │ │ │应收明细 │◄───────────│对账单 │ │ │ └──────────┘ └─────────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │对账明细 │ │对账差异 │ │ │ └──────────┘ └──────────┘ │ │ │ │ ┌─────────┐ 1:n ┌─────────┐ 1:n ┌─────┐ │ │ │ 供应商 │◄───────────│供应商账单│────────►│采购单│ │ │ └─────────┘ └─────────┘ └─────┘ │ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ ┌────▼─┐ │ │ │供应商期初│ │账单明细 │ │采购明细│ │ │ └──────────┘ └──────────┘ └──────┘ │ │ │ │ ┌─────────┐ n:m ┌─────────┐ 1:n ┌─────┐ │ │ │供应商账单├───────────►│付款单 │◄────────│账户 │ │ │ └─────────┘ └─────────┘ └─────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │应付款 │ │付款明细 │ │ │ └──────────┘ └──────────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │应付明细 │ │发票 │ │ │ └──────────┘ └──────────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌────▼─────┐ │ │ │发票明细 │ │费用类别 │ │ │ └──────────┘ └──────────┘ │ └─────────────────────────────────────────────────────────┘2.2 核心业务关系分析2.2.1 商品-订单-库存三角关系商品、订单、库存构成供应链系统的铁三角关系这是系统最核心的数据流商品主数据驱动商品表(product)是所有业务的基础包含商品编码、名称、分类、规格、单位等基础信息订单业务拉动客户订单(customer_order)和门店订单(store_order)是需求侧拉动商品从库存出库库存数据响应库存表(inventory)记录实际商品数量响应订单需求进行扣减关键关联关系商品表(product)与订单明细表(order_detail)通过product_id关联订单明细表(order_detail)与发货单明细表(delivery_detail)通过detail_id关联发货单明细表(delivery_detail)与出库单明细表(outbound_detail)通过batch_id关联出库单明细表(outbound_detail)与库存表(inventory)通过inventory_id关联数据一致性保障订单创建时锁定库存库存锁定字段订单确认时扣减可用库存发货时扣减实际库存退货时恢复库存2.2.2 采购-库存-销售闭环关系采购、库存、销售形成供应链的正向业务闭环采购驱动入库采购单(purchase_order)生成采购入库单(purchase_inbound_order)入库增加库存采购入库单明细(purchase_inbound_detail)增加库存表(inventory)数量销售驱动出库销售订单(sale_order)生成销售出库单(sale_outbound_order)出库减少库存销售出库单明细(sale_outbound_detail)减少库存表(inventory)数量关键业务规则采购入库批次与商品批次(batch)关联实现先进先出(FIFO)销售出库与订单明细(order_detail)关联确保订单履约库存预警(inventory_alert)触发采购申请(purchase_requisition)2.2.3 客户-订单-财务三角关系客户、订单、财务构成资金流闭环客户信用控制客户表(customer)中的信用额度控制订单创建订单生成应收客户订单(customer_order)生成应收款(receivable)对账生成账单定期对账生成客户账单(customer_bill)收款核销应收收款单(collection_order)核销应收款(receivable)关键关联关系客户表(customer)与订单表(customer_order)通过customer_id关联订单表(customer_order)与应收款表(receivable)通过order_no关联应收款表(receivable)与收款单表(collection_order)通过receivable_id关联收款单表(collection_order)与账户流水表(account_flow)通过collection_no关联2.2.4 供应商-采购-财务三角关系供应商、采购、财务构成付款流闭环供应商资质管理供应商表(supplier)记录供应商基本信息采购生成应付采购单(purchase_order)生成应付款(payable)对账生成账单定期对账生成供应商账单(supplier_bill)付款核销应付付款单(payment_order)核销应付款(payable)关键关联关系供应商表(supplier)与采购单表(purchase_order)通过supplier_id关联采购单表(purchase_order)与应付款表(payable)通过purchase_no关联应付款表(payable)与付款单表(payment_order)通过payable_id关联付款单表(payment_order)与账户流水表(account_flow)通过payment_no关联2.2.5 门店-订货-配送网络关系门店、订货、配送构成分销网络体系门店层级管理门店表(store)与门店类型表(store_type)定义门店属性门店订货管理门店订单(store_order)与客户订单逻辑类似但独立配送网络优化物流线路表(logistics_route)与排线表(route_scheduling)优化配送自提点补充自提点表(pickup_point)补充配送网络关键关联关系门店表(store)与门店订单表(store_order)通过store_id关联门店订单表(store_order)与配送任务表(delivery_task)通过order_no关联配送任务表(delivery_task)与物流线路表(logistics_route)通过route_id关联物流线路表(logistics_route)与自提点表(pickup_point)通过route_id关联第三部分业务流程与数据流分析3.1 端到端业务流程3.1.1 客户订货全流程┌─────────────────────────────────────────────────────────────┐ │ 客户订货端到端流程 │ ├─────────────────────────────────────────────────────────────┤ │ 步骤 │ 业务活动 │ 数据表变化 │ 状态变更 │ ├──────┼───────────────────┼────────────────────┼─────────────┤ │ 1 │ 客户登录/选择商品 │ 订单表创建草稿 │ 初始状态 │ │ 2 │ 提交订单 │ 订单明细表生成 │ 待确认 │ │ 3 │ 系统/人工确认 │ 库存锁定记录 │ 已确认 │ │ 4 │ 生成分拣任务 │ 分拣任务表创建 │ 待分拣 │ │ 5 │ 执行分拣 │ 分拣明细表记录 │ 分拣中 │ │ 6 │ 生成发货单 │ 发货单表创建 │ 待发货 │ │ 7 │ 发货出库 │ 出库单表生成 │ 已发货 │ │ 8 │ 配送运输 │ 配送轨迹表记录 │ 配送中 │ │ 9 │ 客户收货 │ 收货单表确认 │ 已收货 │ │ 10 │ 订单完成 │ 订单状态完成 │ 已完成 │ │ 11 │ 财务对账 │ 对账单生成 │ 已对账 │ │ 12 │ 收款核销 │ 收款单记录 │ 已结算 │ └─────────────────────────────────────────────────────────────┘关键数据流订单创建阶段customer_order插入记录 → order_detail插入商品明细库存锁定阶段inventory表锁定数量增加 → inventory_flow记录锁定流水分拣发货阶段sorting_task分配任务 → delivery_order生成发货单 → outbound_order生成出库单配送收货阶段delivery_task分配配送 → delivery_track记录轨迹 → receipt_order确认收货财务结算阶段reconciliation生成对账单 → collection_order记录收款 → account_flow记录资金流水3.1.2 采购入库全流程┌─────────────────────────────────────────────────────────────┐ │ 采购入库端到端流程 │ ├─────────────────────────────────────────────────────────────┤ │ 步骤 │ 业务活动 │ 数据表变化 │ 状态变更 │ ├──────┼───────────────────┼────────────────────┼─────────────┤ │ 1 │ 库存预警触发 │ 库存预警表记录 │ 预警状态 │ │ 2 │ 创建采购申请 │ 采购申请单创建 │ 申请中 │ │ 3 │ 申请审批通过 │ 审批记录表更新 │ 已批准 │ │ 4 │ 生成采购订单 │ 采购单表创建 │ 采购中 │ │ 5 │ 供应商确认 │ 采购单状态更新 │ 已确认 │ │ 6 │ 供应商发货 │ 发货通知记录 │ 已发货 │ │ 7 │ 到货验收 │ 验收记录表创建 │ 待验收 │ │ 8 │ 质量检验 │ 检验报告记录 │ 检验中 │ │ 9 │ 生成入库单 │ 入库单表创建 │ 待入库 │ │ 10 │ 上架入库 │ 库存表数量增加 │ 已入库 │ │ 11 │ 批次信息记录 │ 批次管理表记录 │ 批次已建 │ │ 12 │ 财务对账 │ 对账单生成 │ 待付款 │ │ 13 │ 付款结算 │ 付款单记录 │ 已结算 │ └─────────────────────────────────────────────────────────────┘关键数据流采购申请阶段inventory_alert触发 → purchase_requisition创建申请 → requisition_detail记录明细采购订单阶段purchase_order创建订单 → purchase_order_detail记录商品 → supplier确认订单到货验收阶段purchase_inbound_order创建 → inbound_inspection验收 → product_batch创建批次入库上架阶段inbound_putaway上架 → inventory增加数量 → inventory_flow记录流水财务付款阶段supplier_reconciliation对账 → payment_order付款 → account_flow资金流水3.1.3 门店补货全流程┌─────────────────────────────────────────────────────────────┐ │ 门店补货端到端流程 │ ├─────────────────────────────────────────────────────────────┤ │ 步骤 │ 业务活动 │ 数据表变化 │ 状态变更 │ ├──────┼───────────────────┼────────────────────┼─────────────┤ │ 1 │ 门店库存预警 │ 门店库存预警记录 │ 预警状态 │ │ 2 │ 创建补货申请 │ 补货申请单创建 │ 申请中 │ │ 3 │ 总部审批 │ 审批记录表更新 │ 已批准 │ │ 4 │ 生成调拨单 │ 调拨单表创建 │ 调拨中 │ │ 5 │ 中心仓出库 │ 出库单表生成 │ 已出库 │ │ 6 │ 物流配送 │ 配送任务表分配 │ 配送中 │ │ 7 │ 门店收货 │ 收货单表确认 │ 已收货 │ │ 8 │ 门店入库 │ 门店库存表增加 │ 已入库 │ │ 9 │ 库存同步 │ 库存同步记录 │ 已同步 │ │ 10 │ 财务核算 │ 内部往来核算 │ 已核算 │ └─────────────────────────────────────────────────────────────┘关键数据流补货申请阶段store_inventory_config预警 → store_requisition创建申请调拨出库阶段transfer_order创建调拨 → transfer_outbound_order出库 → inventory减少数量配送收货阶段delivery_task分配配送 → store_receipt_order收货 → store_inventory增加数量财务核算阶段internal_settlement内部结算 → account_flow记录内部往来3.1.4 生产加工全流程┌─────────────────────────────────────────────────────────────┐ │ 生产加工端到端流程 │ ├─────────────────────────────────────────────────────────────┤ │ 步骤 │ 业务活动 │ 数据表变化 │ 状态变更 │ ├──────┼───────────────────┼────────────────────┼─────────────┤ │ 1 │ 销售预测/订单需求 │ 生产需求表记录 │ 需求确认 │ │ 2 │ 制定生产计划 │ 生产计划表创建 │ 计划制定 │ │ 3 │ 生成生产订单 │ 生产订单表创建 │ 订单创建 │ │ 4 │ 物料需求计算 │ BOM展开计算需求 │ 需求计算 │ │ 5 │ 领料出库 │ 领料单表生成 │ 领料中 │ │ 6 │ 生产加工 │ 生产工序记录 │ 生产中 │ │ 7 │ 质量检验 │ 质量检验记录 │ 检验中 │ │ 8 │ 完工入库 │ 完工入库单创建 │ 待入库 │ │ 9 │ 成品入库 │ 成品库存表增加 │ 已入库 │ │ 10 │ 成本核算 │ 成本核算表计算 │ 已核算 │ │ 11 │ 生产报表 │ 生产报表生成 │ 报表完成 │ └─────────────────────────────────────────────────────────────┘关键数据流生产计划阶段production_plan创建计划 → product_bom展开需求领料出库阶段material_requisition领料单 → material_outbound_order出库 → inventory减少原料生产加工阶段production_process_record工序记录 → quality_inspection检验记录完工入库阶段finished_product_inbound完工入库 → inventory增加成品 → product_batch创建批次成本核算阶段production_cost_calculation成本核算 → cost_allocation成本分摊3.2 核心业务流程详细分析3.2.1 订单履约流程Order Fulfillment Process订单履约是供应链系统的核心流程涉及多个系统的协同流程触发条件客户下单customer_order创建门店下单store_order创建定时批量订单导入流程详细步骤步骤1订单接收与验证数据流customer → customer_order → order_detail 业务规则 1. 验证客户状态是否启用、信用额度 2. 验证商品状态是否上架、库存是否充足 3. 验证价格有效性价格组、促销活动 4. 验证配送信息地址是否在配送范围 技术实现 - 事务性操作保证订单创建原子性 - 库存预占防止超卖 - 价格快照锁定下单时价格步骤2订单确认与审核数据流customer_order → order_audit → order_status_flow 业务规则 1. 自动审核规则金额、客户等级、商品类别 2. 人工审核规则大额订单、新客户、特殊商品 3. 审核通过后正式占用库存 4. 审核拒绝释放预占库存 技术实现 - 工作流引擎驱动审核流程 - 消息通知审核人员 - 审核记录可追溯步骤3订单分配与分拣数据流order_detail → sorting_task → sorting_detail 业务规则 1. 分拣策略选择按订单、按商品、按区域 2. 分拣波次生成基于配送时间、商品特性 3. 分拣任务分配基于人员技能、工作量 4. 分拣路径优化基于仓库布局 技术实现 - 分拣算法优化 - 移动终端支持 - 实时进度跟踪步骤4打包与发货数据流sorting_detail → delivery_order → delivery_detail 业务规则 1. 包装策略按商品特性选择包装材料 2. 温层控制冷藏、冷冻商品特殊处理 3. 发货复核数量、商品、批次核对 4. 出库确认库存正式扣减 技术实现 - 打包指导系统 - 称重扫描集成 - 出库自动扣减库存步骤5配送与跟踪数据流delivery_order → delivery_task → delivery_track 业务规则 1. 路线优化基于地址、时间窗口 2. 车辆调度基于车型、容量 3. 实时跟踪GPS定位、状态更新 4. 异常处理交通、客户原因 技术实现 - 地图API集成 - 移动APP配送端 - 实时消息推送步骤6签收与完成数据流delivery_task → receipt_order → order_status 业务规则 1. 签收确认客户签名/验证码 2. 异常签收部分收货、拒收 3. 退货处理当场退货流程 4. 订单完成状态更新 技术实现 - 电子签收系统 - 拍照上传证据 - 自动状态流转步骤7售后与退货数据流order_return → return_audit → return_process 业务规则 1. 退货申请客户提交退货原因 2. 退货审核基于退货政策 3. 退货收货验收退货商品 4. 退款处理原路退款或信用退款 技术实现 - 退货工作流引擎 - 退款接口集成 - 库存反向处理3.2.2 采购到付款流程Procure-to-Pay Process采购到付款是企业重要的支出流程涉及供应商管理、采购执行和财务付款流程触发条件库存预警触发采购申请生产计划触发原料采购定期补货计划新商品引进需求流程详细步骤步骤1需求识别与采购申请数据流inventory_alert → purchase_requisition → requisition_detail 业务规则 1. 安全库存计算基于历史销量、季节因素 2. 采购量计算经济批量、最小起订量 3. 申请审批流程基于金额、商品类型 4. 供应商选择基于价格、质量、交期 技术实现 - 库存预测算法 - 审批工作流引擎 - 供应商评分系统步骤2供应商选择与采购下单数据流purchase_requisition → purchase_order → purchase_order_detail 业务规则 1. 供应商询价多渠道比价 2. 招投标管理重大项目招标流程 3. 合同管理采购合同签订 4. 采购订单生成明确数量、价格、交期 技术实现 - 电子招投标系统 - 电子合同管理 - 订单自动生成步骤3到货验收与质量检查数据流purchase_order → purchase_inbound_order → inbound_inspection 业务规则 1. 预约到货提前安排收货资源 2. 数量验收清点到货数量 3. 质量检验抽样或全检 4. 不合格处理退货或让步接收 技术实现 - 移动收货终端 - 质量检验标准库 - 不合格品处理流程步骤4入库上架与库存更新数据流inbound_inspection → inbound_putaway → inventory 业务规则 1. 上架策略基于商品特性、周转率 2. 批次管理记录生产日期、保质期 3. 库存更新增加可用库存 4. 溯源信息记录供应商、批次、检测报告 技术实现 - 上架推荐算法 - 批次追溯系统 - 库存实时更新步骤5发票匹配与三单匹配数据流purchase_order → supplier_invoice → three_way_matching 业务规则 1. 发票接收供应商开具发票 2. 三单匹配订单、收货单、发票 3. 差异处理数量、价格差异 4. 匹配通过准备付款 技术实现 - 发票OCR识别 - 自动匹配算法 - 差异工作流处理步骤6付款申请与审批数据流three_way_matching → payment_application → payment_approval 业务规则 1. 付款条件基于账期、提前付款折扣 2. 付款申请会计人员提交付款申请 3. 多级审批基于金额的审批流程 4. 付款计划现金流预测 技术实现 - 电子付款申请 - 多级审批工作流 - 现金流预测模型步骤7付款执行与核销数据流payment_approval → payment_order → account_flow 业务规则 1. 付款方式选择电汇、支票、银企直连 2. 付款执行财务执行付款操作 3. 银行对账付款结果确认 4. 应付核销减少供应商应付余额 技术实现 - 多渠道支付集成 - 银行接口对接 - 自动对账系统步骤8供应商评估与关系管理数据流supplier_evaluation → supplier_score → supplier_relationship 业务规则 1. 绩效评估质量、交期、价格、服务 2. 供应商分级基于绩效评分 3. 关系维护定期沟通、联合改进 4. 供应商开发新供应商引入 技术实现 - 供应商评分模型 - 供应商门户系统 - 供应商协同平台3.2.3 库存管理流程Inventory Management Process库存管理是供应链成本控制的关键涉及库存计划、执行和控制流程触发条件日常库存事务入库、出库、移库定期库存盘点库存异常报警库存策略调整流程详细步骤步骤1库存计划与策略制定数据流inventory_policy → safety_stock_calculation → reorder_point 业务规则 1. 库存分类ABC分类、XYZ分类 2. 安全库存计算基于服务水平、需求波动 3. 订货点计算基于提前期、需求量 4. 库存策略制定不同分类不同策略 技术实现 - 库存优化算法 - 需求预测模型 - 策略配置管理步骤2日常库存事务处理数据流inventory_transaction → inventory_flow → inventory_balance 业务规则 1. 入库处理采购入库、生产入库、退货入库 2. 出库处理销售出库、领料出库、报损出库 3. 移库处理库位调整、仓库调拨 4. 库存调整盘点差异调整、成本调整 技术实现 - 事务处理引擎 - 实时库存更新 - 批次跟踪管理步骤3库存控制与预警数据流inventory_monitoring → inventory_alert → alert_notification 业务规则 1. 库存水平监控实时监控库存数量 2. 效期管理临近保质期预警 3. 呆滞库存识别长期未动库存 4. 预警通知邮件、短信、系统消息 技术实现 - 实时监控系统 - 预警规则引擎 - 多渠道通知步骤4库存盘点与差异处理数据流inventory_check_plan → check_task → check_result 业务规则 1. 盘点计划年度、月度、循环盘点 2. 盘点执行初盘、复盘、抽盘 3. 差异分析数量差异、质量差异 4. 差异处理调整、调查、改进 技术实现 - 移动盘点终端 - 盘点算法优化 - 差异分析工具步骤5库存分析与优化数据流inventory_analysis → inventory_report → optimization_suggestion 业务规则 1. 库存周转分析周转率、周转天数 2. 库存成本分析持有成本、缺货成本 3. 服务水平分析订单满足率、准时交货率 4. 优化建议策略调整、流程改进 技术实现 - 数据分析引擎 - 报表生成系统 - 优化算法模型步骤6库存绩效评估数据流inventory_kpi → performance_evaluation → improvement_plan 业务规则 1. KPI设定库存周转率、服务水平、准确率 2. 绩效评估定期评估KPI达成情况 3. 根因分析未达成原因分析 4. 改进计划制定和实施改进措施 技术实现 - KPI管理仪表板 - 根因分析工具 - 改进跟踪系统3.3 跨系统业务流程3.3.1 销售-生产-采购协同流程这是典型的需求拉动型供应链协同流程┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 销售预测/订单 │───▶│ 主生产计划 │───▶│ 物料需求计划 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 客户订单管理 │ │ 生产订单下达 │ │ 采购订单下达 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 发货计划制定 │ │ 生产执行跟踪 │ │ 采购到货跟踪 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 订单交付执行 │ │ 完工入库处理 │ │ 原材料入库处理 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 客户收货确认 │ │ 成本核算分析 │ │ 供应商付款处理 │ └─────────────────┘ └─────────────────┘ └─────────────────┘关键协同点需求传递销售订单/预测 → 生产计划 → 物料需求 → 采购计划时间协同客户交期 → 生产完成时间 → 原材料到货时间 → 采购下单时间数量协同客户订单数量 → 生产数量 → 物料需求数量 → 采购数量质量协同客户质量要求 → 成品质量标准 → 原材料质量标准 → 供应商质量要求数据流整合销售数据流customer_order → sales_forecast → demand_plan生产数据流production_plan → mrp_calculation → material_requirement采购数据流purchase_plan → supplier_order → material_supply系统集成点需求管理集成销售系统与计划系统数据同步计划协同集成生产计划系统与物料计划系统集成执行跟踪集成生产执行与采购执行状态共享库存可视集成原材料、在制品、成品库存全局可视3.3.2 财务-业务一体化流程财务与业务的一体化是ERP系统的核心价值┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 业务事件发生 │───▶│ 会计凭证生成 │───▶│ 账簿记录更新 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 销售订单创建 │ │ 应收账款确认 │ │ 总账科目更新 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 发货出库执行 │ │ 成本结转处理 │ │ 损益科目更新 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 客户收货确认 │ │ 收入确认处理 │ │ 收入科目更新 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 收款核销处理 │ │ 现金银行更新 │ │ 现金流量更新 │ └─────────────────┘ └─────────────────┘ └─────────────────┘关键业务-财务对应关系销售到收款循环业务事件客户订单 → 发货出库 → 客户收货 → 收款财务处理应收确认 → 成本结转 → 收入确认 → 收款核销会计科目应收账款 → 库存商品 → 主营业务收入 → 银行存款采购到付款循环业务事件采购申请 → 采购订单 → 到货入库 → 付款财务处理应付确认 → 存货增加 → 应付核销 → 付款会计科目应付账款 → 原材料/库存商品 → 应付账款减少 → 银行存款减少生产到库存循环业务事件生产领料 → 生产加工 → 完工入库财务处理材料消耗 → 人工制造费用 → 产成品入库会计科目生产成本 → 应付职工薪酬等 → 库存商品一体化实现机制事件驱动会计业务事件自动触发会计凭证科目自动判定基于业务规则自动确定会计科目金额自动计算基于业务数据自动计算会计金额凭证自动生成自动生成标准会计凭证账簿自动更新自动更新总账、明细账数据一致性保障事务一致性业务操作与财务记账在同一事务中数据时效性实时或准实时生成财务数据可追溯性从财务报表追溯到原始业务单据审计轨迹完整的操作日志和变更历史3.3.3 门店-总部协同流程多门店运营需要总部与门店的高效协同┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 门店要货申请 │───▶│ 总部订单汇总 │───▶│ 供应商采购下单 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 门店库存监控 │ │ 集中到货验收 │ │ 供应商发货跟踪 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 自动补货建议 │ │ 中心仓分拣 │ │ 到货预约安排 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 门店配送计划 │ │ 装车发运执行 │ │ 质量检验处理 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 门店收货上架 │ │ 在途库存跟踪 │ │ 供应商对账付款 │ └─────────────────┘ └─────────────────┘ └─────────────────┘协同关键点需求协同门店独立需求预测总部汇总需求分析联合需求计划制定需求变更协同响应库存协同门店安全库存设定总部安全库存集中库存共享与调拨联合库存优化物流协同门店配送需求汇总路线优化与车辆调度在途库存可视化管理逆向物流协同处理财务协同统一结算与支付内部往来核算合并财务报表统一税务处理系统集成架构门店系统层 ├── 门店POS系统 ├── 门店库存系统 ├── 门店订货系统 └── 门店报表系统 总部系统层 ├── 中央采购系统 ├── 中央库存系统 ├── 中央配送系统 └── 中央财务系统 数据交换层 ├── 实时数据同步 ├── 批量数据交换 ├── 消息队列通信 └── 数据一致性服务数据流设计基础数据流商品主数据、价格数据、供应商数据统一管理下发门店交易数据流门店销售、库存数据实时或定时上传总部业务数据流门店要货、退货申请上传总部处理结果下发财务数据流门店收银数据上传总部统一对账结算3.4 异常处理流程3.4.1 订单异常处理流程订单履约过程中的常见异常及处理异常类型库存不足异常订单商品库存不足价格异常下单价格与系统价格不一致客户信用异常客户超过信用额度配送异常地址无法配送、时间无法满足支付异常支付失败、支付欺诈退货异常退货商品不符合退货政策处理流程┌──────────────┐ │ 异常发生检测 │ └──────────────┘ │ ▼ ┌──────────────┐ │ 异常分类判定 │───┐ └──────────────┘ │ │ │ ▼ │ ┌──────────────┐ │ ┌──────────────┐ │ 自动处理规则 │ │ │ 人工处理分派 │ └──────────────┘ │ └──────────────┘ │ │ │ ▼ │ ▼ ┌──────────────┐ │ ┌──────────────┐ │ 执行处理动作 │ │ │ 人工调查处理 │ └──────────────┘ │ └──────────────┘ │ │ │ └─────────┼─────────┘ │ ▼ ┌──────────────┐ │ 处理结果记录 │ └──────────────┘ │ ▼ ┌──────────────┐ │ 客户通知更新 │ └──────────────┘具体异常处理策略库存不足处理检查替代商品建议客户更换拆分订单部分发货提供到货通知服务紧急采购补货价格异常处理核实价格变更时间检查促销活动有效性与客户沟通价格调整特殊审批价格例外记录价格差异原因信用异常处理检查信用额度计算核实未结清账款临时信用额度申请部分发货控制风险预付款要求配送异常处理地址标准化验证配送时间窗口调整自提点建议第三方物流补充配送费用调整3.4.2 库存异常处理流程库存管理中的常见异常及处理异常类型盘点差异异常实际库存与系统库存不一致效期异常商品临近或超过保质期质量异常库存商品出现质量问题呆滞库存异常库存周转率过低库存成本异常成本计算出现异常处理流程┌──────────────┐ │ 异常监控发现 │ └──────────────┘ │ ▼ ┌──────────────┐ │ 异常影响评估 │ └──────────────┘ │ ▼ ┌──────────────┐ │ 处理方案制定 │───┐ └──────────────┘ │ │ │ ▼ │ ┌──────────────┐ │ ┌──────────────┐ │ 立即处理措施 │ │ │ 根本原因分析 │ └──────────────┘ │ └──────────────┘ │ │ │ ▼ │ ▼ ┌──────────────┐ │ ┌──────────────┐ │ 异常控制执行 │ │ │ 预防措施制定 │ └──────────────┘ │ └──────────────┘ │ │ │ └─────────┼─────────┘ │ ▼ ┌──────────────┐ │ 处理结果验证 │ └──────────────┘ │ ▼ ┌──────────────┐ │ 流程改进实施 │ └──────────────┘具体异常处理策略盘点差异处理差异数量确认复盘差异原因调查流程、人为、系统差异调整审批库存账面调整责任人处理与改进效期异常处理效期预警提前处理促销活动加速销售商品调拨到高周转门店供应商退货协商报损处理与成本核销质量异常处理质量问题隔离质量原因分析供应商质量索赔客户质量补偿质量改进措施呆滞库存处理呆滞原因分析预测、采购、销售促销清仓处理物料再利用评估供应商退货协商采购策略调整第四部分数据模型详细设计4.1 核心表结构设计示例4.1.1 商品表(product)详细设计-- 商品主表CREATETABLEproduct(product_idBIGINTPRIMARYKEYCOMMENT商品ID,product_codeVARCHAR(50)NOTNULLUNIQUECOMMENT商品编码,product_nameVARCHAR(200)NOTNULLCOMMENT商品名称,product_barcodeVARCHAR(100)COMMENT商品条码,product_short_nameVARCHAR(100)COMMENT商品简称,-- 分类信息category_idBIGINTNOTNULLCOMMENT商品分类ID,brand_idBIGINTCOMMENT品牌ID,unit_idBIGINTNOTNULLCOMMENT单位ID,-- 规格属性spec_modelVARCHAR(100)COMMENT规格型号,weightDECIMAL(10,3)COMMENT重量(kg),volumeDECIMAL(10,3)COMMENT体积(m³),size_lengthDECIMAL(8,2)COMMENT长(mm),size_widthDECIMAL(8,2)COMMENT宽(mm),size_heightDECIMAL(8,2)COMMENT高(mm),-- 生鲜特性temperature_typeTINYINTNOTNULLCOMMENT温层类型:1常温2冷藏3冷冻,shelf_lifeINTNOTNULLCOMMENT保质期(小时),storage_conditionVARCHAR(200)COMMENT存储条件,origin_placeVARCHAR(200)COMMENT产地,-- 库存属性min_stockINTCOMMENT最低库存,max_stockINTCOMMENT最高库存,safe_stockINTCOMMENT安全库存,purchase_cycleINTCOMMENT采购周期(天),lead_timeINTCOMMENT采购提前期(天),-- 价格信息purchase_priceDECIMAL(10,2)COMMENT采购价,cost_priceDECIMAL(10,2)COMMENT成本价,sale_priceDECIMAL(10,2)COMMENT销售价,market_priceDECIMAL(10,2)COMMENT市场价,tax_rateDECIMAL(5,2)COMMENT税率,-- 状态控制product_statusTINYINTDEFAULT1COMMENT商品状态:0下架1上架2待审核,audit_statusTINYINTDEFAULT0COMMENT审核状态:0未审核1审核通过2审核拒绝,is_virtualTINYINTDEFAULT0COMMENT是否虚拟商品:0否1是,is_combinationTINYINTDEFAULT0COMMENT是否组合商品:0否1是,is_weightTINYINTDEFAULT0COMMENT是否称重商品:0否1是,-- 销售属性sales_volumeINTDEFAULT0COMMENT销量,click_countINTDEFAULT0COMMENT点击量,favorite_countINTDEFAULT0COMMENT收藏量,-- 时间信息create_timeDATETIMEDEFAULTCURRENT_TIMESTAMPCOMMENT创建时间,update_timeDATETIMEONUPDATECURRENT_TIMESTAMPCOMMENT更新时间,audit_timeDATETIMECOMMENT审核时间,shelf_timeDATETIMECOMMENT上架时间,off_shelf_timeDATETIMECOMMENT下架时间,-- 人员信息create_byBIGINTCOMMENT创建人,update_byBIGINTCOMMENT更新人,audit_byBIGINTCOMMENT审核人,-- 索引INDEXidx_category(category_id),INDEXidx_brand(brand_id),INDEXidx_status(product_status),INDEXidx_temperature(temperature_type),INDEXidx_create_time(create_time),FULLTEXTINDEXidx_product_name(product_name))COMMENT商品主表ENGINEInnoDBDEFAULTCHARSETutf8mb4COLLATEutf8mb4_unicode_ci;4.1.2 订单表(customer_order)详细设计-- 客户订单主表CREATETABLEcustomer_order(order_idBIGINTPRIMARYKEYCOMMENT订单ID,order_noVARCHAR(50)NOTNULLUNIQUECOMMENT订单号,order_typeTINYINTNOTNULLCOMMENT订单类型:1普通订单2团购订单3预售订单,-- 客户信息customer_idBIGINTNOTNULLCOMMENT客户ID,customer_nameVARCHAR(100)NOTNULLCOMMENT客户名称,customer_phoneVARCHAR(20)COMMENT客户电话,customer_levelTINYINTCOMMENT客户等级,-- 金额信息total_amountDECIMAL(12,2)NOTNULLCOMMENT订单总额,discount_amountDECIMAL(10,2)DEFAULT0COMMENT折扣金额,coupon_amountDECIMAL(10,2)DEFAULT0COMMENT优惠券金额,freight_amountDECIMAL(8,2)DEFAULT0COMMENT运费金额,tax_amountDECIMAL(10,2)DEFAULT0COMMENT税额,actual_amountDECIMAL(12,2)NOTNULLCOMMENT实付金额,paid_amountDECIMAL(12,2)DEFAULT0COMMENT已付金额,-- 订单状态order_statusTINYINTNOTNULLCOMMENT订单状态:1待确认2待分拣3分拣中4待配送5配送中6已完成7已取消,payment_statusTINYINTDEFAULT0COMMENT支付状态:0未支付1已支付2部分支付,invoice_statusTINYINTDEFAULT0COMMENT开票状态:0未开票1已开票,-- 支付信息payment_methodTINYINTCOMMENT支付方式:1现金2刷卡3转账4微信5支付宝,payment_timeDATETIMECOMMENT支付时间,payment_transaction_noVARCHAR(100)COMMENT支付交易号,-- 配送信息delivery_dateDATENOTNULLCOMMENT配送日期,delivery_time_slotVARCHAR(50)COMMENT配送时段,delivery_typeTINYINTCOMMENT配送方式:1送货上门2自提,delivery_addressVARCHAR(500)COMMENT配送地址,delivery_contact_nameVARCHAR(50)COMMENT收货人,delivery_contact_phoneVARCHAR(20)COMMENT收货电话,-- 自提信息pickup_point_idBIGINTCOMMENT自提点ID,pickup_codeVARCHAR(20)COMMENT提货码,pickup_timeDATETIMECOMMENT自提时间,-- 仓库信息warehouse_idBIGINTCOMMENT发货仓库ID,warehouse_nameVARCHAR(100)COMMENT发货仓库名称,-- 物流信息logistics_companyVARCHAR(100)COMMENT物流公司,logistics_noVARCHAR(100)COMMENT物流单号,logistics_feeDECIMAL(8,2)COMMENT物流费用,-- 时间信息order_timeDATETIMENOTNULLCOMMENT下单时间,confirm_timeDATETIMECOMMENT确认时间,picking_timeDATETIMECOMMENT分拣开始时间,picking_finish_timeDATETIMECOMMENT分拣完成时间,shipping_timeDATETIMECOMMENT发货时间,delivery_timeDATETIMECOMMENT配送时间,receive_timeDATETIMECOMMENT收货时间,complete_timeDATETIMECOMMENT完成时间,cancel_timeDATETIMECOMMENT取消时间,-- 备注信息customer_remarkVARCHAR(500)COMMENT客户备注,internal_remarkVARCHAR(500)COMMENT内部备注,cancel_reasonVARCHAR(200)COMMENT取消原因,-- 人员信息create_byBIGINTCOMMENT创建人,confirm_byBIGINTCOMMENT确认人,picking_byBIGINTCOMMENT分拣人,shipping_byBIGINTCOMMENT发货人,receive_byBIGINTCOMMENT收货人,-- 索引INDEXidx_customer(customer_id),INDEXidx_order_no(order_no),INDEXidx_status(order_status),INDEXidx_delivery_date(delivery_date),INDEXidx_create_time(order_time),INDEXidx_payment_status(payment_status),INDEXidx_warehouse(warehouse_id))COMMENT客户订单主表ENGINEInnoDBDEFAULTCHARSETutf8mb4COLLATEutf8mb4_unicode_ci;4.1.3 库存表(inventory)详细设计-- 库存主表CREATETABLEinventory(inventory_idBIGINTPRIMARYKEYCOMMENT库存ID,-- 位置信息warehouse_idBIGINTNOTNULLCOMMENT仓库ID,location_idBIGINTCOMMENT库位ID,warehouse_codeVARCHAR(50)COMMENT仓库编码,location_codeVARCHAR(50)COMMENT库位编码,-- 商品信息product_idBIGINTNOTNULLCOMMENT商品ID,product_codeVARCHAR(50)COMMENT商品编码,product_nameVARCHAR(200)COMMENT商品名称,batch_idBIGINTCOMMENT批次ID,batch_noVARCHAR(50)COMMENT批次号,-- 库存数量total_quantityINTNOTNULLCOMMENT总数量,available_quantityINTNOTNULLCOMMENT可用数量,locked_quantityINTDEFAULT0COMMENT锁定数量,damaged_quantityINTDEFAULT0COMMENT破损数量,quarantine_quantityINTDEFAULT0COMMENT隔离数量,-- 库存价值unit_costDECIMAL(10,2)COMMENT单位成本,total_costDECIMAL(12,2)COMMENT总成本,avg_costDECIMAL(10,2)COMMENT平均成本,last_purchase_priceDECIMAL(10,2)COMMENT最后采购价,-- 批次信息production_dateDATECOMMENT生产日期,expiry_dateDATECOMMENT到期日期,remaining_daysINTCOMMENT剩余天数,-- 库存状态inventory_statusTINYINTDEFAULT1COMMENT库存状态:1正常2预警3过期,quality_statusTINYINTDEFAULT1COMMENT质量状态:1合格2待检3不合格,stock_ageINTCOMMENT库龄(天),-- 时间信息last_in_timeDATETIMECOMMENT最后入库时间,last_out_timeDATETIMECOMMENT最后出库时间,create_timeDATETIMEDEFAULTCURRENT_TIMESTAMPCOMMENT创建时间,update_timeDATETIMEONUPDATECURRENT_TIMESTAMPCOMMENT更新时间,-- 预警信息min_stock_warningTINYINTDEFAULT0COMMENT最低库存预警:0无1有,expiry_warningTINYINTDEFAULT0COMMENT效期预警:0无1有,overstock_warningTINYINTDEFAULT0COMMENT超储预警:0无1有,-- 索引UNIQUEKEYuk_inventory(warehouse_id,product_id,batch_no(20)),INDEXidx_product(product_id),INDEXidx_batch(batch_id),INDEXidx_warehouse(warehouse_id),INDEXidx_location(location_id),INDEXidx_expiry(expiry_date),INDEXidx_status(inventory_status),INDEXidx_available(available_quantity))COMMENT库存主表ENGINEInnoDBDEFAULTCHARSETutf8mb4COLLATEutf8mb4_unicode_ci;4.1.4 采购单表(purchase_order)详细设计-- 采购订单主表CREATETABLEpurchase_order(purchase_idBIGINTPRIMARYKEYCOMMENT采购单ID,purchase_noVARCHAR(50)NOTNULLUNIQUECOMMENT采购单号,-- 供应商信息supplier_idBIGINTNOTNULLCOMMENT供应商ID,supplier_codeVARCHAR(50)COMMENT供应商编码,supplier_nameVARCHAR(200)NOTNULLCOMMENT供应商名称,supplier_contactVARCHAR(50)COMMENT供应商联系人,supplier_phoneVARCHAR(20)COMMENT供应商电话,-- 采购信息purchase_typeTINYINTCOMMENT采购类型:1日常采购2紧急采购3合同采购,purchase_categoryTINYINTCOMMENT采购类别:1原材料2成品3耗材,contract_noVARCHAR(50)COMMENT合同号,-- 金额信息total_amountDECIMAL(12,2)NOTNULLCOMMENT采购总额,tax_amountDECIMAL(10,2)COMMENT税额,discount_amountDECIMAL(10,2)DEFAULT0COMMENT折扣金额,other_feeDECIMAL(8,2)DEFAULT0COMMENT其他费用,actual_amountDECIMAL(12,2)NOTNULLCOMMENT实际金额,prepaid_amountDECIMAL(12,2)DEFAULT0COMMENT预付金额,paid_amountDECIMAL(12,2)DEFAULT0COMMENT已付金额,-- 订单状态order_statusTINYINTNOTNULLCOMMENT订单状态:1草稿2待审核3审核通过4审核拒绝5已发送6供应商确认7部分收货8已完成9已取消,payment_statusTINYINTDEFAULT0COMMENT付款状态:0未付款1部分付款2已付款,invoice_statusTINYINTDEFAULT0COMMENT发票状态:0未开票1部分开票2已开票,-- 时间信息order_dateDATENOTNULLCOMMENT订单日期,required_dateDATECOMMENT要求到货日期,confirm_dateDATECOMMENT确认日期,delivery_dateDATECOMMENT预计交货日期,complete_dateDATECOMMENT完成日期,cancel_dateDATECOMMENT取消日期,-- 交货信息delivery_addressVARCHAR(500)COMMENT交货地址,delivery_contactVARCHAR(50)COMMENT交货联系人,delivery_phoneVARCHAR(20)COMMENT交货联系电话,-- 仓库信息warehouse_idBIGINTCOMMENT收货仓库ID,warehouse_nameVARCHAR(100)COMMENT收货仓库名称,-- 物流信息logistics_companyVARCHAR(100)COMMENT物流公司,logistics_noVARCHAR(100)COMMENT物流单号,freight_feeDECIMAL(8,2)COMMENT运费,-- 审批信息audit_statusTINYINTDEFAULT0COMMENT审核状态:0未审核1审核通过2审核拒绝,audit_opinionVARCHAR(500)COMMENT审核意见,audit_timeDATETIMECOMMENT审核时间,audit_byBIGINTCOMMENT审核人,-- 备注信息remarkVARCHAR(500)COMMENT备注,internal_remarkVARCHAR(500)COMMENT内部备注,cancel_reasonVARCHAR(200)COMMENT取消原因,-- 人员信息create_byBIGINTCOMMENT创建人,update_byBIGINTCOMMENT更新人,confirm_byBIGINTCOMMENT确认人,-- 索引INDEXidx_supplier(supplier_id),INDEXidx_purchase_no(purchase_no),INDEXidx_status(order_status),INDEXidx_order_date(order_date),INDEXidx_required_date(required_date),INDEXidx_warehouse(warehouse_id))COMMENT采购订单主表ENGINEInnoDBDEFAULTCHARSETutf8mb4COLLATEutf8mb4_unicode_ci;4.2 复杂关联关系设计4.2.1 多层次分类结构设计商品分类需要支持无限层级结构-- 商品分类表无限层级设计CREATETABLEproduct_category(category_idBIGINTPRIMARYKEYCOMMENT分类ID,parent_idBIGINTDEFAULT0COMMENT父分类ID,category_codeVARCHAR(50)NOTNULLUNIQUECOMMENT分类编码,category_nameVARCHAR(100)NOTNULLCOMMENT分类名称,category_pathVARCHAR(500)COMMENT分类路径,levelTINYINTDEFAULT1COMMENT分类级别,sort_orderINTDEFAULT0COMMENT排序,-- 分类属性category_typeTINYINTCOMMENT分类类型:1标准分类2虚拟分类,is_leafTINYINTDEFAULT0COMMENT是否叶子节点:0否1是,statusTINYINTDEFAULT1COMMENT状态:0停用1启用,-- 生鲜特性temperature_typeTINYINTCOMMENT温层类型:1常温2冷藏3冷冻,shelf_life_standardINTCOMMENT标准保质期(小时),storage_temperatureVARCHAR(50)COMMENT存储温度,-- 业务属性purchase_cycle_standardINTCOMMENT标准采购周期,lead_time_standardINTCOMMENT标准提前期,abc_classificationVARCHAR(1)COMMENTABC分类,-- 图片信息category_imageVARCHAR(500)COMMENT分类图片,category_iconVARCHAR(500)COMMENT分类图标,-- SEO信息seo_titleVARCHAR(200)COMMENTSEO标题,seo_keywordsVARCHAR(200)COMMENTSEO关键词,seo_descriptionVARCHAR(500)COMMENTSEO描述,-- 时间信息create_timeDATETIMEDEFAULTCURRENT_TIMESTAMPCOMMENT创建时间,update_timeDATETIMEONUPDATECURRENT_TIMESTAMPCOMMENT更新时间,-- 人员信息create_byBIGINTCOMMENT创建人,update_byBIGINTCOMMENT更新人,-- 索引INDEXidx_parent(parent_id),INDEXidx_level(level),INDEXidx_status(status),INDEXidx_sort(sort_order),INDEXidx_code(category_code))COMMENT商品分类表ENGINEInnoDBDEFAULTCHARSETutf8mb4COLLATEutf8mb4_unicode_ci;分类路径维护策略-- 分类路径更新存储过程DELIMITER//CREATEPROCEDUREupdate_category_path(INcat_idBIGINT)BEGINDECLAREparent_pathVARCHAR(500);DECLAREcurrent_pathVARCHAR(500);-- 获取父分类路径SELECTcategory_pathINTOparent_pathFROMproduct_categoryWHEREcategory_id(SELECTparent_idFROMproduct_categoryWHEREcategory_idcat_id);-- 构建当前分类路径IFparent_pathISNULLTHENSETcurrent_pathCONCAT(/,cat_id,/);ELSESETcurrent_pathCONCAT(parent_path,cat_id,/);ENDIF;-- 更新当前分类路径UPDATEproduct_categorySETcategory_pathcurrent_path,levelLENGTH(current_path)-LENGTH(REPLACE(current_path,/,))-1WHEREcategory_idcat_id;-- 递归更新子分类路径UPDATEproduct_category pcJOIN(SELECTcategory_idFROMproduct_categoryWHEREFIND_IN_SET(category_id,get_category_children(cat_id)))ASchildrenONpc.category_idchildren.category_idSETpc.category_pathCONCAT(current_path,pc.category_id,/),pc.levelLENGTH(current_path)-LENGTH(REPLACE(current_path,/,))WHEREpc.parent_idcat_id;END//DELIMITER;4.2.2 批次追溯链设计生鲜商品需要完整的批次追溯-- 批次追溯链设计CREATETABLEproduct_batch_trace(trace_idBIGINTPRIMARYKEYCOMMENT追溯ID,batch_idBIGINTNOTNULLCOMMENT批次ID,trace_typeTINYINTNOTNULLCOMMENT追溯类型:1采购入库2生产入库3退货入库4调拨入库,-- 来源信息source_typeTINYINTCOMMENT来源类型:1供应商2生产车间3其他仓库,source_idBIGINTCOMMENT来源ID,source_nameVARCHAR(200)COMMENT来源名称,source_batch_noVARCHAR(50)COMMENT来源批次号,-- 目标信息target_typeTINYINTCOMMENT目标类型:1仓库2门店3客户,target_idBIGINTCOMMENT目标ID,target_nameVARCHAR(200)COMMENT目标名称,-- 商品信息product_idBIGINTNOTNULLCOMMENT商品ID,product_nameVARCHAR(200)COMMENT商品名称,quantityDECIMAL(12,3)NOTNULLCOMMENT数量,unitVARCHAR(20)COMMENT单位,-- 时间信息trace_timeDATETIMENOTNULLCOMMENT追溯时间,operation_timeDATETIMECOMMENT操作时间,-- 业务单据business_typeVARCHAR(50)COMMENT业务类型,business_noVARCHAR(50)COMMENT业务单号,business_detail_idBIGINTCOMMENT业务明细ID,-- 位置信息from_locationVARCHAR(100)COMMENT来源位置,to_locationVARCHAR(100)COMMENT目标位置,-- 人员信息operator_idBIGINTCOMMENT操作人ID,operator_nameVARCHAR(50)COMMENT操作人姓名,-- 质量信息quality_statusTINYINTDEFAULT1COMMENT质量状态:1合格2不合格,inspection_noVARCHAR(50)COMMENT检验单号,inspection_resultVARCHAR(500)COMMENT检验结果,-- 索引INDEXidx_batch(batch_id),INDEXidx_product(product_id),INDEXidx_trace_time(trace_time),INDEXidx_business(business_type,business_no),INDEXidx_source(source_type,source_id),INDEXidx_target(target_type,target_id))COMMENT批次追溯链ENGINEInnoDBDEFAULTCHARSETutf8mb4COLLATEutf8mb4_unicode_ci;追溯链查询函数-- 获取商品完整追溯链DELIMITER//CREATEFUNCTIONget_product_trace_chain(product_idBIGINT,batch_noVARCHAR(50))RETURNSTEXTBEGINDECLAREtrace_chainTEXT;SELECTJSON_ARRAYAGG(JSON_OBJECT(trace_id,trace_id,trace_type,trace_type,trace_time,DATE_FORMAT(trace_time,%Y-%m-%d %H:%i:%s),business_type,business_type,business_no,business_no,source,JSON_OBJECT(type,source_type,name,source_name),target,JSON_OBJECT(type,target_type,name,target_name),quantity,quantity,operator,operator_name,quality_status,quality_status))INTOtrace_chainFROMproduct_batch_traceWHEREproduct_idproduct_idANDbatch_idIN(SELECTbatch_idFROMproduct_batchWHEREbatch_nobatch_no)ORDERBYtrace_time;RETURNtrace_chain;END//DELIMITER;4.3 高级数据模型设计4.3.1 历史数据与版本控制关键业务数据需要版本控制-- 价格历史表支持版本控制CREATETABLEprice_history(history_idBIGINTPRIMARYKEYCOMMENT历史ID,-- 价格主体price_typeTINYINTNOTNULLCOMMENT价格类型:1采购价2销售价3成本价,product_idBIGINTNOTNULLCOMMENT商品ID,price_group_idBIGINTCOMMENT价格组ID,customer_idBIGINTCOMMENT客户ID,supplier_idBIGINTCOMMENT供应商ID,-- 价格信息old_priceDECIMAL(10,2)COMMENT原价格,new_priceDECIMAL(10,2)NOTNULLCOMMENT新价格,currencyVARCHAR(3)DEFAULTCNYCOMMENT币种,tax_rateDECIMAL(5,2)COMMENT税率,price_unitVARCHAR(20)COMMENT价格单位,-- 生效信息effective_dateDATENOTNULLCOMMENT生效日期,expiry_dateDATECOMMENT失效日期,is_currentTINYINTDEFAULT1COMMENT是否当前价格:0否1是,-- 变更信息change_typeTINYINTCOMMENT变更类型:1新建2调整3促销,change_reasonVARCHAR(200)COMMENT变更原因,change_remarkVARCHAR(500)COMMENT变更备注,-- 审批信息approval_statusTINYINTDEFAULT1COMMENT审批状态:1待审批2审批通过3审批拒绝,approval_opinionVARCHAR(500)COMMENT审批意见,approval_timeDATETIMECOMMENT审批时间,approval_byBIGINTCOMMENT审批人,-- 时间信息create_timeDATETIMEDEFAULTCURRENT_TIMESTAMPCOMMENT创建时间,update_timeDATETIMEONUPDATECURRENT_TIMESTAMPCOMMENT更新时间,-- 人员信息create_byBIGINTCOMMENT创建人,update_byBIGINTCOMMENT更新人,-- 索引INDEXidx_product(product_id),INDEXidx_price_type(price_type),INDEXidx_effective(effective_date),INDEXidx_current(is_current),INDEXidx_customer(customer_id),INDEXidx_supplier(supplier_id),UNIQUEKEYuk_price_version(product_id,price_type,effective_date))COMMENT价格历史表ENGINEInnoDBDEFAULTCHARSETutf8mb4COLLATEutf8mb4_unicode_ci;价格版本控制策略-- 价格变更触发器DELIMITER//CREATETRIGGERbefore_price_update BEFOREUPDATEONproduct_priceFOR EACH ROWBEGIN-- 将旧价格插入历史表INSERTINTOprice_history(price_type,product_id,old_price,new_price,effective_date,change_type,change_reason,create_by,create_time)VALUES(2,-- 销售价OLD.product_id,OLD.sale_price,NEW.sale_price,CURDATE(),2,-- 调整系统价格调整,NEW.update_by,NOW());-- 标记历史价格为非当前UPDATEprice_historySETis_current0,expiry_dateCURDATE()-INTERVAL1DAYWHEREproduct_idOLD.product_idANDprice_type2ANDis_current1;END//DELIMITER;4.3.2 审计日志与数据变更跟踪关键数据变更需要完整审计-- 数据变更审计表CREATETABLEdata_change_audit(audit_idBIGINTPRIMARYKEYCOMMENT审计ID,-- 变更对象table_nameVARCHAR(100)NOTNULLCOMMENT表名,record_idBIGINTNOTNULLCOMMENT记录ID,operation_typeTINYINTNOTNULLCOMMENT操作类型:1新增2修改3删除,-- 变更数据old_data JSONCOMMENT旧数据,new_data JSONCOMMENT新数据,changed_fields JSONCOMMENT变更字段,-- 变更信息change_reasonVARCHAR(500)COMMENT变更原因,business_noVARCHAR(50)COMMENT业务单号,-- 时间信息operation_timeDATETIMEDEFAULTCURRENT_TIMESTAMPCOMMENT操作时间,-- 人员信息operator_idBIGINTCOMMENT操作人ID,operator_nameVARCHAR(50)COMMENT操作人姓名,operator_ipVARCHAR(50)COMMENT操作IP,user_agentVARCHAR(500)COMMENT用户代理,-- 索引INDEXidx_table_record(table_name,record_id),INDEXidx_operation_time(operation_time),INDEXidx_operator(operator_id),INDEXidx_business_no(business_no))COMMENT数据变更审计表ENGINEInnoDBDEFAULTCHARSETutf8mb4COLLATEutf8mb4_unicode_ci;审计触发器示例-- 订单表审计触发器DELIMITER//CREATETRIGGERaudit_customer_order_after_updateAFTERUPDATEONcustomer_orderFOR EACH ROWBEGINDECLAREchanged_fields JSON;DECLAREold_data JSON;DECLAREnew_data JSON;-- 构建变更字段SETchanged_fieldsJSON_ARRAY();IFOLD.order_status!NEW.order_statusTHENSETchanged_fieldsJSON_ARRAY_APPEND(changed_fields,$,order_status);ENDIF;IFOLD.payment_status!NEW.payment_statusTHENSETchanged_fieldsJSON_ARRAY_APPEND(changed_fields,$,payment_status);ENDIF;-- 如果有字段变更记录审计日志IFJSON_LENGTH(changed_fields)0THEN-- 构建旧数据SETold_dataJSON_OBJECT(order_status,OLD.order_status,payment_status,OLD.payment_status,actual_amount,OLD.actual_amount);-- 构建新数据SETnew_dataJSON_OBJECT(order_status,NEW.order_status,payment_status,NEW.payment_status,actual_amount,NEW.actual_amount);-- 插入审计记录INSERTINTOdata_change_audit(table_name,record_id,operation_type,old_data,new_data,changed_fields,business_no,operator_id,operator_name)VALUES(customer_order,NEW.order_id,2,-- 修改old_data,new_data,changed_fields,NEW.order_no,NEW.update_by,(SELECTusernameFROMsys_userWHEREuser_idNEW.update_by));ENDIF;END//DELIMITER;4.4 性能优化设计4.4.1 分库分表策略基于业务场景的分库分表设计-- 按业务垂直分库-- 库1: 主数据库 (master_data)-- 包含商品、分类、客户、供应商等基础数据-- 库2: 交易库 (transaction_data)-- 包含订单、库存、采购等交易数据-- 库3: 财务库 (financial_data)-- 包含应收应付、账单、付款等财务数据-- 库4: 报表库 (report_data)-- 包含各类报表和统计数据的汇总-- 水平分表策略按时间分表-- 订单表按月分表CREATETABLEcustomer_order_202401(-- 同原customer_order表结构)COMMENT2024年1月订单表PARTITIONBYRANGE(YEAR(order_time)*100MONTH(order_time))(PARTITIONp202401VALUESLESS THAN(202402),PARTITIONp202402VALUESLESS THAN(202403),PARTITIONp202403VALUESLESS THAN(202404));-- 库存流水按日分表CREATETABLEinventory_flow_20240101(-- 同原inventory_flow表结构)COMMENT2024年1月1日库存流水表;4.4.2 读写分离与缓存策略-- 读写分离配置-- 主库写操作master_host192.168.1.10master_port3306-- 从库1读操作slave1_host192.168.1.11slave1_port3306-- 从库2读操作slave2_host192.168.1.12slave2_port3306-- 缓存策略配置-- 一级缓存本地缓存Guava Cache-- 缓存商品基本信息有效期5分钟-- 缓存客户基本信息有效期10分钟-- 缓存价格信息有效期1分钟-- 二级缓存Redis分布式缓存-- 缓存商品详情有效期30分钟-- 缓存订单详情有效期1小时-- 缓存库存数量有效期5分钟实时更新-- 缓存用户会话有效期2小时-- 缓存键设计规范-- 商品缓存product:{product_id}:detail-- 订单缓存order:{order_no}:detail-- 库存缓存inventory:{warehouse_id}:{product_id}:quantity-- 价格缓存price:{product_id}:{customer_id}:current4.4.3 索引优化设计-- 复合索引设计-- 订单查询优化CREATEINDEXidx_order_queryONcustomer_order(customer_id,order_status,order_timeDESC);-- 库存查询优化CREATEINDEXidx_inventory_queryONinventory(warehouse_id,product_id,inventory_status,available_quantity);-- 商品查询优化CREATEINDEXidx_product_queryONproduct(category_id,product_status,create_timeDESC);-- 覆盖索引设计CREATEINDEXidx_order_coverONcustomer_order(order_no,customer_id,order_status,actual_amount,order_time);-- 函数索引MySQL 8.0CREATEINDEXidx_order_dateONcustomer_order((DATE(order_time)));-- 前缀索引CREATEINDEXidx_product_name_prefixONproduct(product_name(20));-- 定期索引优化维护-- 每周执行一次OPTIMIZETABLEcustomer_order;ANALYZETABLEinventory;CHECKTABLEproduct FASTQUICK;第五部分业务流程集成与数据流5.1 端到端业务流程数据流5.1.1 销售订单到收款全流程数据流┌─────────────────────────────────────────────────────────────────────┐ │ 销售订单到收款端到端数据流 │ ├──────────────┬─────────────────────┬─────────────────┬─────────────┤ │ 业务阶段 │ 主要数据表 │ 关键字段 │ 数据状态 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 1.订单创建 │ customer_order │ order_status1 │ 待确认 │ │ │ order_detail │ quantity │ 已保存 │ │ │ inventory │ locked_quantity │ 预占锁定 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 2.订单确认 │ customer_order │ order_status2 │ 待分拣 │ │ │ order_audit │ audit_result1 │ 审核通过 │ │ │ inventory_flow │ change_type2 │ 锁定确认 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 3.分拣处理 │ sorting_task │ task_status1 │ 进行中 │ │ │ sorting_detail │ actual_quantity │ 实际分拣 │ │ │ inventory │ locked_quantity │ 锁定减少 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 4.发货出库 │ delivery_order │ delivery_status1│ 待发货 │ │ │ delivery_detail │ shipped_quantity│ 已发货数量 │ │ │ outbound_order │ outbound_status1│ 出库中 │ │ │ inventory │ available_quantity│ 可用减少 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 5.配送运输 │ delivery_task │ task_status2 │ 配送中 │ │ │ delivery_track │ location │ 实时位置 │ │ │ delivery_status_log │ status_change │ 状态变更 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 6.客户收货 │ receipt_order │ receipt_status1│ 已收货 │ │ │ receipt_detail │ received_quantity│ 实收数量 │ │ │ customer_order │ order_status6 │ 已完成 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 7.应收确认 │ receivable │ receivable_status1│ 待收款 │ │ │ receivable_detail │ amount │ 应收金额 │ │ │ customer_order │ payment_status1│ 已支付 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 8.收款核销 │ collection_order │ collection_status1│ 已收款 │ │ │ collection_detail │ collected_amount│ 实收金额 │ │ │ account_flow │ flow_type1 │ 收入 │ │ │ receivable │ receivable_status2│ 已核销 │ └──────────────┴─────────────────────┴─────────────────┴─────────────┘5.1.2 采购到付款全流程数据流┌─────────────────────────────────────────────────────────────────────┐ │ 采购到付款端到端数据流 │ ├──────────────┬─────────────────────┬─────────────────┬─────────────┤ │ 业务阶段 │ 主要数据表 │ 关键字段 │ 数据状态 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 1.采购申请 │ purchase_requisition │ requisition_status1│ 申请中 │ │ │ requisition_detail │ request_quantity │ 申请数量 │ │ │ inventory_alert │ alert_status1 │ 预警中 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 2.采购审批 │ purchase_requisition │ requisition_status2│ 已批准 │ │ │ audit_record │ audit_result1 │ 审批通过 │ │ │ purchase_plan │ plan_status1 │ 计划制定 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 3.采购下单 │ purchase_order │ order_status3 │ 已发送 │ │ │ purchase_order_detail│ order_quantity │ 订购数量 │ │ │ supplier_quotation │ quotation_status1│ 报价接受 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 4.供应商发货 │ purchase_order │ order_status4 │ 已发货 │ │ │ delivery_notice │ notice_status1 │ 发货通知 │ │ │ purchase_inbound_order│ inbound_status1│ 待收货 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 5.到货验收 │ inbound_inspection │ inspection_status1│ 检验中 │ │ │ quality_inspection │ quality_result1 │ 合格 │ │ │ product_batch │ batch_status1 │ 批次创建 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 6.入库上架 │ inbound_putaway │ putaway_status1 │ 上架中 │ │ │ inventory │ total_quantity │ 库存增加 │ │ │ inventory_flow │ flow_type1 │ 入库 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 7.应付确认 │ payable │ payable_status1 │ 待付款 │ │ │ payable_detail │ payable_amount │ 应付金额 │ │ │ purchase_order │ order_status8 │ 已完成 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 8.发票匹配 │ supplier_invoice │ invoice_status1 │ 已接收 │ │ │ three_way_matching │ matching_status1│ 匹配成功 │ │ │ invoice_verification │ verify_result1 │ 验证通过 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 9.付款执行 │ payment_order │ payment_status1 │ 已付款 │ │ │ payment_detail │ paid_amount │ 实付金额 │ │ │ account_flow │ flow_type2 │ 支出 │ │ │ payable │ payable_status2 │ 已核销 │ └──────────────┴─────────────────────┴─────────────────┴─────────────┘5.2 实时数据同步与ETL流程5.2.1 实时数据同步架构┌─────────────────────────────────────────────────────────────────────┐ │ 实时数据同步架构 │ ├──────────────┬─────────────────────┬─────────────────┬─────────────┤ │ 数据层 │ 同步技术 │ 同步频率 │ 数据目标 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 业务数据库 │ MySQL Binlog │ 实时 │ 缓存层 │ │ │ Canal监听 │ 1秒延迟 │ 搜索引擎 │ │ │ 消息队列 │ 事件驱动 │ 数据仓库 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 缓存层 │ Redis Pub/Sub │ 实时 │ 应用层 │ │ │ 本地缓存更新 │ 100毫秒 │ 前端 │ │ │ 缓存失效策略 │ 主动/被动 │ API层 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 搜索引擎 │ Logstash │ 准实时 │ 查询服务 │ │ │ Elasticsearch索引 │ 5秒延迟 │ 分析服务 │ │ │ 全文索引更新 │ 增量更新 │ 报表服务 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 数据仓库 │ Flink CDC │ 近实时 │ BI分析 │ │ │ 维度建模 │ 1分钟延迟 │ 数据挖掘 │ │ │ 事实表更新 │ 微批处理 │ 机器学习 │ └──────────────┴─────────────────────┴─────────────────┴─────────────┘5.2.2 订单状态实时同步流程// 订单状态变更事件发布ComponentSlf4jpublicclassOrderStatusChangePublisher{AutowiredprivateRabbitTemplaterabbitTemplate;AutowiredprivateRedisTemplateString,ObjectredisTemplate;TransactionalEventListenerpublicvoidhandleOrderStatusChange(OrderStatusChangeEventevent){Orderorderevent.getOrder();// 1. 更新Redis缓存StringcacheKeyorder:order.getOrderNo():status;redisTemplate.opsForValue().set(cacheKey,order.getOrderStatus(),1,TimeUnit.HOURS);// 2. 发布消息到MQOrderStatusMessagemessagenewOrderStatusMessage();message.setOrderNo(order.getOrderNo());message.setOldStatus(event.getOldStatus());message.setNewStatus(order.getOrderStatus());message.setChangeTime(LocalDateTime.now());message.setOperator(event.getOperator());rabbitTemplate.convertAndSend(order.exchange,order.status.change,message);// 3. 发送WebSocket通知sendWebSocketNotification(order.getCustomerId(),message);// 4. 记录状态变更日志saveStatusChangeLog(order,event);log.info(订单状态变更通知已发送: {},order.getOrderNo());}// 发送WebSocket实时通知privatevoidsendWebSocketNotification(LongcustomerId,OrderStatusMessagemessage){MapString,ObjectnotificationnewHashMap();notification.put(type,ORDER_STATUS_CHANGE);notification.put(orderNo,message.getOrderNo());notification.put(newStatus,message.getNewStatus());notification.put(changeTime,message.getChangeTime());// 通过WebSocket发送给客户webSocketService.sendToUser(String.valueOf(customerId),/topic/order/status,notification);}}5.2.3 库存实时同步流程// 库存变更同步服务ServiceSlf4jpublicclassInventorySyncService{AutowiredprivateElasticsearchRestTemplateelasticsearchTemplate;AutowiredprivateInventoryMapperinventoryMapper;AutowiredprivateRedisTemplateString,ObjectredisTemplate;// 库存变更事件处理EventListenerpublicvoidhandleInventoryChange(InventoryChangeEventevent){// 1. 更新Redis缓存updateRedisCache(event);// 2. 同步到ElasticsearchsyncToElasticsearch(event);// 3. 发送库存预警检查checkInventoryAlert(event);// 4. 更新实时库存看板updateInventoryDashboard(event);}// 更新Redis缓存privatevoidupdateRedisCache(InventoryChangeEventevent){StringcacheKeyString.format(inventory:%d:%d:quantity,event.getWarehouseId(),event.getProductId());// 获取最新库存数量IntegerlatestQuantityinventoryMapper.selectAvailableQuantity(event.getWarehouseId(),event.getProductId());// 更新缓存设置5分钟过期redisTemplate.opsForValue().set(cacheKey,latestQuantity,5,TimeUnit.MINUTES);// 更新库存变化趋势updateInventoryTrend(event,latestQuantity);}// 同步到ElasticsearchprivatevoidsyncToElasticsearch(InventoryChangeEventevent){IndexQueryindexQuerynewIndexQuery();indexQuery.setId(generateDocId(event));InventoryDocumentdocnewInventoryDocument();doc.setWarehouseId(event.getWarehouseId());doc.setProductId(event.getProductId());doc.setProductName(event.getProductName());doc.setAvailableQuantity(event.getAvailableQuantity());doc.setChangeQuantity(event.getChangeQuantity());doc.setChangeType(event.getChangeType());doc.setChangeTime(LocalDateTime.now());doc.setBusinessNo(event.getBusinessNo());indexQuery.setObject(doc);elasticsearchTemplate.index(indexQuery,IndexCoordinates.of(inventory));}// 库存预警检查privatevoidcheckInventoryAlert(InventoryChangeEventevent){// 获取库存配置InventoryConfigconfiginventoryMapper.selectInventoryConfig(event.getWarehouseId(),event.getProductId());if(confignull)return;// 检查最低库存预警if(event.getAvailableQuantity()config.getMinStock()){sendInventoryAlert(event,MIN_STOCK,config.getMinStock());}// 检查最高库存预警if(event.getAvailableQuantity()config.getMaxStock()){sendInventoryAlert(event,MAX_STOCK,config.getMaxStock());}// 检查效期预警checkExpiryAlert(event);}}5.3 批处理与ETL流程5.3.1 日终批处理流程┌─────────────────────────────────────────────────────────────────────┐ │ 日终批处理流程 │ ├──────────────┬─────────────────────┬─────────────────┬─────────────┤ │ 处理阶段 │ 主要任务 │ 数据表 │ 执行时间 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 1.数据准备 │ 业务数据冻结 │ 所有业务表 │ 23:00 │ │ │ 临时表创建 │ temp_* │ 23:05 │ │ │ 增量数据抽取 │ 变更日志表 │ 23:10 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 2.数据清洗 │ 数据质量检查 │ 业务数据表 │ 23:15 │ │ │ 异常数据处理 │ data_exception │ 23:20 │ │ │ 数据标准化 │ 标准化规则表 │ 23:25 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 3.数据转换 │ 维度模型构建 │ dim_* │ 23:30 │ │ │ 事实表汇总 │ fact_* │ 23:45 │ │ │ 数据聚合计算 │ aggregate_* │ 00:00 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 4.数据加载 │ 数据仓库加载 │ dw_* │ 00:15 │ │ │ 数据立方体构建 │ cube_* │ 00:30 │ │ │ 物化视图刷新 │ mv_* │ 00:45 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 5.报表生成 │ 业务报表计算 │ report_* │ 01:00 │ │ │ 分析报表生成 │ analysis_* │ 01:30 │ │ │ 管理报表生成 │ management_* │ 02:00 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 6.数据归档 │ 历史数据迁移 │ history_* │ 02:30 │ │ │ 数据压缩存储 │ archive_* │ 03:00 │ │ │ 索引重建优化 │ 所有索引 │ 03:30 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 7.系统检查 │ 数据一致性验证 │ 所有关键表 │ 04:00 │ │ │ 系统性能检查 │ 系统监控表 │ 04:30 │ │ │ 批处理日志记录 │ batch_log │ 05:00 │ └──────────────┴─────────────────────┴─────────────────┴─────────────┘5.3.2 数据仓库ETL流程-- 数据仓库ETL存储过程DELIMITER//CREATEPROCEDURErun_daily_etl_process(INprocess_dateDATE)BEGINDECLAREEXITHANDLERFORSQLEXCEPTIONBEGIN-- 记录错误日志INSERTINTOetl_error_log(process_date,error_message,error_stack)VALUES(process_date,ETL过程执行失败,CONCAT(Error: ,SQLSTATE, - ,SQLERRM));-- 回滚ROLLBACK;-- 发送告警CALLsend_etl_failure_alert(process_date,SQLERRM);END;-- 开始事务STARTTRANSACTION;-- 1. 清空临时表TRUNCATETABLEtemp_sales_fact;TRUNCATETABLEtemp_purchase_fact;TRUNCATETABLEtemp_inventory_fact;-- 2. 抽取销售事实数据INSERTINTOtemp_sales_fact(date_key,customer_key,product_key,store_key,quantity,amount,cost,profit)SELECTd.date_key,c.customer_key,p.product_key,s.store_key,SUM(od.quantity)asquantity,SUM(od.subtotal)asamount,SUM(od.cost*od.quantity)ascost,SUM(od.subtotal-od.cost*od.quantity)asprofitFROMorder_detail odJOINcustomer_order coONod.order_idco.order_idJOINdim_date dONDATE(co.order_time)d.date_valueJOINdim_customer cONco.customer_idc.customer_idJOINdim_product pONod.product_idp.product_idLEFTJOINdim_store sONco.store_ids.store_idWHEREDATE(co.order_time)process_dateANDco.order_status6-- 已完成订单GROUPBYd.date_key,c.customer_key,p.product_key,s.store_key;-- 3. 抽取采购事实数据INSERTINTOtemp_purchase_fact(date_key,supplier_key,product_key,warehouse_key,quantity,amount,tax_amount,total_amount)SELECTd.date_key,s.supplier_key,p.product_key,w.warehouse_key,SUM(pod.quantity)asquantity,SUM(pod.price*pod.quantity)asamount,SUM(pod.tax_amount)astax_amount,SUM(pod.total_amount)astotal_amountFROMpurchase_order_detail podJOINpurchase_order poONpod.purchase_idpo.purchase_idJOINdim_date dONDATE(po.order_date)d.date_valueJOINdim_supplier sONpo.supplier_ids.supplier_idJOINdim_product pONpod.product_idp.product_idJOINdim_warehouse wONpo.warehouse_idw.warehouse_idWHEREDATE(po.order_date)process_dateANDpo.order_statusIN(7,8)-- 部分收货或已完成GROUPBYd.date_key,s.supplier_key,p.product_key,w.warehouse_key;-- 4. 抽取库存事实数据INSERTINTOtemp_inventory_fact(date_key,product_key,warehouse_key,opening_quantity,opening_amount,inbound_quantity,inbound_amount,outbound_quantity,outbound_amount,closing_quantity,closing_amount)SELECTd.date_key,p.product_key,w.warehouse_key,SUM(CASEWHENifl.transaction_timeprocess_dateTHENifl.ending_quantityELSE0END)asopening_quantity,SUM(CASEWHENifl.transaction_timeprocess_dateTHENifl.ending_amountELSE0END)asopening_amount,SUM(CASEWHENifl.flow_typeINBOUNDANDDATE(ifl.transaction_time)process_dateTHENifl.change_quantityELSE0END)asinbound_quantity,SUM(CASEWHENifl.flow_typeINBOUNDANDDATE(ifl.transaction_time)process_dateTHENifl.change_amountELSE0END)asinbound_amount,SUM(CASEWHENifl.flow_typeOUTBOUNDANDDATE(ifl.transaction_time)process_dateTHENifl.change_quantityELSE0END)asoutbound_quantity,SUM(CASEWHENifl.flow_typeOUTBOUNDANDDATE(ifl.transaction_time)process_dateTHENifl.change_amountELSE0END)asoutbound_amount,SUM(CASEWHENifl.transaction_timeprocess_dateTHENifl.ending_quantityELSE0END)asclosing_quantity,SUM(CASEWHENifl.transaction_timeprocess_dateTHENifl.ending_amountELSE0END)asclosing_amountFROMinventory_flow iflJOINdim_date dONDATE(ifl.transaction_time)d.date_valueJOINdim_product pONifl.product_idp.product_idJOINdim_warehouse wONifl.warehouse_idw.warehouse_idWHEREDATE(ifl.transaction_time)process_dateGROUPBYd.date_key,p.product_key,w.warehouse_key;-- 5. 加载到事实表INSERTINTOfact_sales_dailySELECT*FROMtemp_sales_factONDUPLICATEKEYUPDATEquantityVALUES(quantity),amountVALUES(amount),costVALUES(cost),profitVALUES(profit);INSERTINTOfact_purchase_dailySELECT*FROMtemp_purchase_factONDUPLICATEKEYUPDATEquantityVALUES(quantity),amountVALUES(amount),tax_amountVALUES(tax_amount),total_amountVALUES(total_amount);INSERTINTOfact_inventory_dailySELECT*FROMtemp_inventory_factONDUPLICATEKEYUPDATEopening_quantityVALUES(opening_quantity),opening_amountVALUES(opening_amount),inbound_quantityVALUES(inbound_quantity),inbound_amountVALUES(inbound_amount),outbound_quantityVALUES(outbound_quantity),outbound_amountVALUES(outbound_amount),closing_quantityVALUES(closing_quantity),closing_amountVALUES(closing_amount);-- 6. 更新汇总表CALLupdate_sales_summary(process_date);CALLupdate_purchase_summary(process_date);CALLupdate_inventory_summary(process_date);-- 7. 记录ETL日志INSERTINTOetl_process_log(process_date,process_type,start_time,end_time,status,records_processed)VALUES(process_date,DAILY_ETL,NOW(),NOW(),SUCCESS,(SELECTCOUNT(*)FROMtemp_sales_fact)(SELECTCOUNT(*)FROMtemp_purchase_fact)(SELECTCOUNT(*)FROMtemp_inventory_fact));-- 提交事务COMMIT;-- 8. 后续处理CALLpost_etl_processing(process_date);END//DELIMITER;第六部分系统集成与接口设计6.1 外部系统集成架构6.1.1 支付系统集成┌─────────────────────────────────────────────────────────────────────┐ │ 支付系统集成架构 │ ├──────────────┬─────────────────────┬─────────────────┬─────────────┤ │ 支付渠道 │ 集成方式 │ 接口协议 │ 安全要求 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 微信支付 │ SDK集成 │ HTTPSJSON │ TLS 1.2 │ │ │ 公众号/小程序支付 │ OAuth 2.0 │ 签名验证 │ │ │ H5支付 │ 异步通知 │ 防重放 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 支付宝 │ SDK集成 │ HTTPSJSON │ TLS 1.2 │ │ │ 手机网站支付 │ RSA签名 │ 参数加密 │ │ │ 电脑网站支付 │ 异步通知 │ 防篡改 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 银联支付 │ 网关集成 │ HTTPSXML │ TLS 1.2 │ │ │ 在线支付 │ 数字证书 │ 报文加密 │ │ │ 快捷支付 │ 异步通知 │ 验签机制 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 银行直连 │ 银企直连 │ HTTPSXML/8583 │ 专线连接 │ │ │ 代收代付 │ 数字证书 │ 硬件加密 │ │ │ 资金归集 │ 签名加密 │ 访问控制 │ └──────────────┴─────────────────────┴─────────────────┴─────────────┘支付集成接口设计// 统一支付接口publicinterfacePaymentService{/** * 创建支付订单 */PaymentResponsecreatePayment(PaymentRequestrequest);/** * 查询支付状态 */PaymentStatusResponsequeryPaymentStatus(StringpaymentNo);/** * 处理支付回调 */PaymentCallbackResponsehandleCallback(PaymentCallbackRequestrequest);/** * 申请退款 */RefundResponserequestRefund(RefundRequestrequest);/** * 查询退款状态 */RefundStatusResponsequeryRefundStatus(StringrefundNo);}// 支付策略工厂ComponentpublicclassPaymentStrategyFactory{AutowiredprivateWechatPaymentServicewechatPaymentService;AutowiredprivateAlipayPaymentServicealipayPaymentService;AutowiredprivateUnionPaymentServiceunionPaymentService;publicPaymentServicegetPaymentService(StringpaymentMethod){switch(paymentMethod){caseWECHAT:returnwechatPaymentService;caseALIPAY:returnalipayPaymentService;caseUNION:returnunionPaymentService;default:thrownewIllegalArgumentException(不支持的支付方式: paymentMethod);}}}// 微信支付实现ServiceSlf4jpublicclassWechatPaymentServiceImplimplementsPaymentService{Value(${wechat.pay.app-id})privateStringappId;Value(${wechat.pay.mch-id})privateStringmchId;Value(${wechat.pay.api-key})privateStringapiKey;OverridepublicPaymentResponsecreatePayment(PaymentRequestrequest){try{// 构建微信支付请求WxPayUnifiedOrderRequestwxRequestnewWxPayUnifiedOrderRequest();wxRequest.setBody(request.getSubject());wxRequest.setOutTradeNo(request.getPaymentNo());wxRequest.setTotalFee(request.getAmount().multiply(newBigDecimal(100)).intValue());wxRequest.setSpbillCreateIp(request.getClientIp());wxRequest.setNotifyUrl(request.getNotifyUrl());wxRequest.setTradeType(request.getTradeType());wxRequest.setOpenid(request.getOpenId());// 调用微信支付APIWxPayUnifiedOrderResultresultwxPayService.unifiedOrder(wxRequest);// 构建响应PaymentResponseresponsenewPaymentResponse();response.setSuccess(true);response.setPaymentNo(request.getPaymentNo());response.setTradeNo(result.getTransactionId());response.setPrepayId(result.getPrepayId());response.setPaySign(generatePaySign(result));// 记录支付日志savePaymentLog(request,response,CREATE);returnresponse;}catch(WxPayExceptione){log.error(微信支付创建失败,e);thrownewPaymentException(支付创建失败: e.getErrCodeDes());}}OverridepublicPaymentCallbackResponsehandleCallback(PaymentCallbackRequestrequest){try{// 验证签名WxPayOrderNotifyResultnotifyResultwxPayService.parseOrderNotifyResult(request.getNotifyData());// 验证订单信息PaymentOrderpaymentOrderpaymentOrderMapper.selectByPaymentNo(notifyResult.getOutTradeNo());if(paymentOrdernull){thrownewPaymentException(订单不存在);}// 验证金额BigDecimalactualAmountnewBigDecimal(notifyResult.getTotalFee()).divide(newBigDecimal(100),2,RoundingMode.HALF_UP);if(actualAmount.compareTo(paymentOrder.getAmount())!0){thrownewPaymentException(金额不一致);}// 更新订单状态PaymentCallbackResponseresponsenewPaymentCallbackResponse();if(SUCCESS.equals(notifyResult.getResultCode())){paymentOrder.setStatus(PaymentStatus.PAID);paymentOrder.setPaymentTime(newDate());paymentOrder.setTransactionId(notifyResult.getTransactionId());response.setSuccess(true);response.setMessage(支付成功);// 触发订单支付成功事件eventPublisher.publishEvent(newPaymentSuccessEvent(paymentOrder));}else{paymentOrder.setStatus(PaymentStatus.FAILED);paymentOrder.setFailReason(notifyResult.getErrCodeDes());response.setSuccess(false);response.setMessage(支付失败: notifyResult.getErrCodeDes());}paymentOrderMapper.update(paymentOrder);returnresponse;}catch(WxPayExceptione){log.error(微信支付回调处理失败,e);thrownewPaymentException(回调处理失败);}}}6.1.2 物流系统集成┌─────────────────────────────────────────────────────────────────────┐ │ 物流系统集成架构 │ ├──────────────┬─────────────────────┬─────────────────┬─────────────┤ │ 物流公司 │ 集成方式 │ 接口协议 │ 功能支持 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 顺丰速运 │ API集成 │ HTTPSJSON │ 电子面单 │ │ │ WebService │ XMLSOAP │ 轨迹查询 │ │ │ 数据对接 │ 批量文件 │ 费用结算 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 中通快递 │ API集成 │ HTTPSJSON │ 下单接口 │ │ │ 开放平台 │ OAuth 2.0 │ 取消订单 │ │ │ 消息推送 │ WebSocket │ 状态同步 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 京东物流 │ API集成 │ HTTPSJSON │ 预约取件 │ │ │ 物流云 │ RESTful │ 实时追踪 │ │ │ 电子签收 │ 图片上传 │ 异常上报 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 第三方平台 │ 聚合接口 │ 统一适配层 │ 多物流比价 │ │ │ 智能推荐 │ 算法服务 │ 路由优化 │ │ │ 统一跟踪 │ 数据聚合 │ 报表分析 │ └──────────────┴─────────────────────┴─────────────────┴─────────────┘物流集成接口设计// 物流服务接口publicinterfaceLogisticsService{/** * 创建物流订单 */LogisticsOrderResponsecreateOrder(LogisticsOrderRequestrequest);/** * 取消物流订单 */LogisticsCancelResponsecancelOrder(StringlogisticsNo);/** * 查询物流轨迹 */LogisticsTrackResponsequeryTrack(StringlogisticsNo);/** * 电子面单打印 */LogisticsLabelResponsegetPrintLabel(StringlogisticsNo);/** * 运费预估 */LogisticsFeeEstimateResponseestimateFee(LogisticsFeeEstimateRequestrequest);}// 物流适配器模式ComponentpublicclassLogisticsAdapterFactory{AutowiredprivateSFLogisticsServicesfLogisticsService;AutowiredprivateZTOLogisticsServiceztoLogisticsService;AutowiredprivateJDLogisticsServicejdLogisticsService;publicLogisticsServicegetLogisticsService(StringcompanyCode){switch(companyCode){caseSF:returnsfLogisticsService;caseZTO:returnztoLogisticsService;caseJD:returnjdLogisticsService;default:thrownewIllegalArgumentException(不支持的物流公司: companyCode);}}}// 顺丰物流实现ServiceSlf4jpublicclassSFLogisticsServiceImplimplementsLogisticsService{Value(${sf.client-code})privateStringclientCode;Value(${sf.check-word})privateStringcheckWord;OverridepublicLogisticsOrderResponsecreateOrder(LogisticsOrderRequestrequest){try{// 构建顺丰请求SFOrderRequestsfRequestconvertToSFRequest(request);// 添加签名StringtimestampString.valueOf(System.currentTimeMillis());StringsigngenerateSFSign(sfRequest,timestamp);sfRequest.setSign(sign);sfRequest.setTimestamp(timestamp);// 调用顺丰APISFOrderResponsesfResponsesfClient.createOrder(sfRequest);// 处理响应if(OK.equals(sfResponse.getApiResultCode())){LogisticsOrderResponseresponsenewLogisticsOrderResponse();response.setSuccess(true);response.setLogisticsNo(sfResponse.getLogisticsNo());response.setWaybillNo(sfResponse.getWaybillNo());response.setLabelUrl(sfResponse.getLabelUrl());response.setEstimatedCost(sfResponse.getEstimatedCost());// 记录物流订单saveLogisticsOrder(request,response);returnresponse;}else{thrownewLogisticsException(顺丰下单失败: sfResponse.getApiErrorMsg());}}catch(Exceptione){log.error(顺丰物流下单失败,e);thrownewLogisticsException(物流下单失败,e);}}OverridepublicLogisticsTrackResponsequeryTrack(StringlogisticsNo){try{// 构建查询请求SFTrackRequesttrackRequestnewSFTrackRequest();trackRequest.setTrackingNumber(logisticsNo);trackRequest.setMethodType(1);// 1:顺丰运单号// 调用查询接口SFTrackResponsetrackResponsesfClient.queryRoute(trackRequest);// 转换响应LogisticsTrackResponseresponsenewLogisticsTrackResponse();response.setSuccess(true);response.setLogisticsNo(logisticsNo);response.setCurrentStatus(trackResponse.getMailStatus());ListLogisticsTrackDetailtrackDetailsnewArrayList();for(SFRouteroute:trackResponse.getRoutes()){LogisticsTrackDetaildetailnewLogisticsTrackDetail();detail.setTrackTime(route.getAcceptTime());detail.setTrackDesc(route.getRemark());detail.setTrackLocation(route.getAcceptAddress());detail.setTrackStatus(route.getOpCode());trackDetails.add(detail);}response.setTrackDetails(trackDetails);returnresponse;}catch(Exceptione){log.error(顺丰物流轨迹查询失败,e);thrownewLogisticsException(轨迹查询失败,e);}}// 生成顺丰签名privateStringgenerateSFSign(SFOrderRequestrequest,Stringtimestamp){StringsourceclientCoderequest.getOrderId()timestampcheckWord;returnDigestUtils.md5Hex(source).toUpperCase();}}6.2 内部微服务接口设计6.2.1 服务间通信协议┌─────────────────────────────────────────────────────────────────────┐ │ 微服务通信协议设计 │ ├──────────────┬─────────────────────┬─────────────────┬─────────────┤ │ 通信方式 │ 使用场景 │ 技术实现 │ 协议规范 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ HTTP REST │ 同步查询/简单操作 │ Spring Cloud │ RESTful API │ │ │ 外部系统集成 │ OpenFeign │ JSON格式 │ │ │ 管理后台调用 │ 负载均衡 │ HTTPS安全 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ RPC调用 │ 高性能内部调用 │ gRPC │ Protobuf │ │ │ 服务间强依赖 │ Dubbo │ 二进制协议 │ │ │ 批量数据处理 │ 连接池管理 │ 服务治理 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ 消息队列 │ 异步解耦 │ RabbitMQ │ AMQP协议 │ │ │ 事件驱动 │ Kafka │ 发布订阅 │ │ │ 流量削峰 │ 持久化存储 │ 消息确认 │ ├──────────────┼─────────────────────┼─────────────────┼─────────────┤ │ WebSocket │ 实时通知 │ Netty │ WS/WSS │ │ │ 数据推送 │ STOMP │ 心跳检测 │ │ │ 即时通讯 │ SockJS │ 连接管理 │ └──────────────┴─────────────────────┴─────────────────┴─────────────┘6.2.2 订单服务接口设计// 订单服务API定义RestControllerRequestMapping(/api/orders)ValidatedSlf4jpublicclassOrderController{AutowiredprivateOrderServiceorderService;/** * 创建订单 */PostMappingOperation(summary创建订单,description客户或门店创建新订单)publicApiResponseOrderDTOcreateOrder(ValidRequestBodyCreateOrderRequestrequest,RequestHeader(X-User-Id)LonguserId){log.info(创建订单请求: userId{}, request{},userId,request);// 设置创建人request.setCreateBy(userId);// 调用订单服务OrderDTOorderorderService.createOrder(request);returnApiResponse.success(order);}/** * 查询订单列表 */GetMappingOperation(summary查询订单列表,description根据条件查询订单列表)publicApiResponsePageResultOrderDTOqueryOrders(ModelAttributeOrderQueryRequestqueryRequest,RequestHeader(X-User-Id)LonguserId,RequestHeader(X-Role-Code)StringroleCode){log.info(查询订单列表: userId{}, query{},userId,queryRequest);// 设置数据权限queryRequest.setUserId(userId);queryRequest.setRoleCode(roleCode);// 查询订单PageResultOrderDTOresultorderService.queryOrders(queryRequest);returnApiResponse.success(result);}/** * 获取订单详情 */GetMapping(/{orderNo})Operation(summary获取订单详情,description根据订单号获取订单详细信息)publicApiResponseOrderDetailDTOgetOrderDetail(PathVariableStringorderNo,RequestHeader(X-User-Id)LonguserId){log.info(获取订单详情: orderNo{}, userId{},orderNo,userId);// 验证订单访问权限orderService.checkOrderAccessPermission(orderNo,userId);// 获取订单详情OrderDetailDTOorderDetailorderService.getOrderDetail(orderNo);returnApiResponse.success(orderDetail);}/** * 取消订单 */PostMapping(/{orderNo}/cancel)Operation(summary取消订单,description取消指定订单)publicApiResponseVoidcancelOrder(PathVariableStringorderNo,ValidRequestBodyCancelOrderRequestrequest,RequestHeader(X-User-Id)LonguserId){log.info(取消订单: orderNo{}, userId{}, reason{},orderNo,userId,request.getCancelReason());// 设置取消人request.setCancelBy(userId);// 取消订单orderService.cancelOrder(orderNo,request);returnApiResponse.success();}/** * 确认订单 */PostMapping(/{orderNo}/confirm)Operation(summary确认订单,description确认订单进入分拣流程)publicApiResponseVoidconfirmOrder(PathVariableStringorderNo,RequestHeader(X-User-Id)LonguserId){log.info(确认订单: orderNo{}, userId{},orderNo,userId);// 确认订单orderService.confirmOrder(orderNo,userId);returnApiResponse.success();}/** * 订单状态变更历史 */GetMapping(/{orderNo}/status-history)Operation(summary订单状态历史,description获取订单状态变更历史)publicApiResponseListOrderStatusHistoryDTOgetStatusHistory(PathVariableStringorderNo){log.info(获取订单状态历史: orderNo{},orderNo);ListOrderStatusHistoryDTOhistoryorderService.getStatusHistory(orderNo);returnApiResponse.success(history);}}// 订单服务内部接口供其他服务调用FeignClient(nameorder-service,path/internal/orders)publicinterfaceOrderInternalService{/** * 根据订单号获取订单信息 */GetMapping(/{orderNo})OrderDTOgetOrderByNo(PathVariable(orderNo)StringorderNo);/** * 锁定订单库存 */PostMapping(/{orderNo}/lock-inventory)ApiResponseVoidlockOrderInventory(PathVariable(orderNo)StringorderNo);/** * 确认订单库存 */PostMapping(/{orderNo}/confirm-inventory)ApiResponseVoidconfirmOrderInventory(PathVariable(orderNo)StringorderNo);/** * 扣减订单库存 */PostMapping(/{orderNo}/deduct-inventory)ApiResponseVoiddeductOrderInventory(PathVariable(orderNo)StringorderNo);/** * 获取订单商品明细 */GetMapping(/{orderNo}/items)ListOrderItemDTOgetOrderItems(PathVariable(orderNo)StringorderNo);/** * 更新订单支付状态 */PutMapping(/{orderNo}/payment-status)ApiResponseVoidupdatePaymentStatus(PathVariable(orderNo)StringorderNo,RequestBodyUpdatePaymentStatusRequestrequest);}6.2.3 库存服务接口设计// 库存服务API定义RestControllerRequestMapping(/api/inventory)ValidatedSlf4jpublicclassInventoryController{AutowiredprivateInventoryServiceinventoryService;/** * 查询商品库存 */GetMapping(/products/{productId})Operation(summary查询商品库存,description查询指定商品在各仓库的库存情况)publicApiResponseListInventoryDTOgetProductInventory(PathVariableLongproductId,RequestParam(requiredfalse)LongwarehouseId){log.info(查询商品库存: productId{}, warehouseId{},productId,warehouseId);ListInventoryDTOinventoryListinventoryService.getProductInventory(productId,warehouseId);returnApiResponse.success(inventoryList);}/** * 查询可用库存 */GetMapping(/available)Operation(summary查询可用库存,description查询商品在指定仓库的可用库存数量)publicApiResponseIntegergetAvailableInventory(RequestParamLongproductId,RequestParamLongwarehouseId){log.info(查询可用库存: productId{}, warehouseId{},productId,warehouseId);IntegeravailableQuantityinventoryService.getAvailableInventory(productId,warehouseId);returnApiResponse.success(availableQuantity);}/** * 锁定库存 */PostMapping(/lock)Operation(summary锁定库存,description锁定指定数量的库存)publicApiResponseLockInventoryResultlockInventory(ValidRequestBodyLockInventoryRequestrequest){log.info(锁定库存请求: {},request);LockInventoryResultresultinventoryService.lockInventory(request);returnApiResponse.success(result);}/** * 释放锁定库存 */PostMapping(/release)Operation(summary释放锁定库存,description释放已锁定的库存)publicApiResponseVoidreleaseInventory(ValidRequestBodyReleaseInventoryRequestrequest){log.info(释放库存请求: {},request);inventoryService.releaseInventory(request);returnApiResponse.success();}/** * 扣减库存 */PostMapping(/deduct)Operation(summary扣减库存,description扣减实际库存数量)publicApiResponseVoiddeductInventory(ValidRequestBodyDeductInventoryRequestrequest){log.info(扣减库存请求: {},request);inventoryService.deductInventory(request);returnApiResponse.success();}/** * 增加库存 */PostMapping(/increase)Operation(summary增加库存,description增加库存数量)publicApiResponseVoidincreaseInventory(ValidRequestBodyIncreaseInventoryRequestrequest){log.info(增加库存请求: {},request);inventoryService.increaseInventory(request);returnApiResponse.success();}/** * 库存流水查询 */GetMapping(/flow)Operation(summary库存流水查询,description查询库存变动流水记录)publicApiResponsePageResultInventoryFlowDTOqueryInventoryFlow(ModelAttributeInventoryFlowQueryRequestqueryRequest){log.info(库存流水查询: {},queryRequest);PageResultInventoryFlowDTOresultinventoryService.queryInventoryFlow(queryRequest);returnApiResponse.success(result);}}// 库存服务内部接口供其他服务调用FeignClient(nameinventory-service,path/internal/inventory)publicinterfaceInventoryInternalService{/** * 批量查询库存 */PostMapping(/batch-query)ListInventoryDTObatchQueryInventory(RequestBodyListInventoryQueryqueries);/** * 安全扣减库存防超卖 */PostMapping(/safe-deduct)ApiResponseBooleansafeDeductInventory(RequestBodySafeDeductRequestrequest);/** * 检查库存是否充足 */PostMapping(/check-sufficient)ApiResponseBooleancheckInventorySufficient(RequestBodyInventoryCheckRequestrequest);/** * 获取批次库存信息 */GetMapping(/batch/{batchId})BatchInventoryDTOgetBatchInventory(PathVariable(batchId)LongbatchId);/** * 库存预警检查 */PostMapping(/alert-check)ListInventoryAlertDTOcheckInventoryAlert(RequestBodyAlertCheckRequestrequest);/** * 更新库存成本 */PutMapping(/cost)ApiResponseVoidupdateInventoryCost(RequestBodyUpdateCostRequestrequest);}6.3 数据交换格式规范6.3.1 API响应格式{code:200,message:操作成功,data:{orderId:100001,orderNo:SO202401150001,customerId:1001,customerName:张三,totalAmount:258.60,actualAmount:258.60,orderStatus:1,orderStatusDesc:待确认,orderTime:2024-01-15 10:30:25,items:[{productId:10001,productName:有机西红柿,quantity:2,unit:斤,price:8.50,subtotal:17.00},{productId:10002,productName:土鸡蛋,quantity:1,unit:盒,price:25.00,subtotal:25.00}]},timestamp:1705293025000,requestId:req_abc123def456}6.3.2 错误响应格式{code:40001,message:库存不足,data:{productId:10001,productName:有机西红柿,requiredQuantity:100,availableQuantity:85,shortageQuantity:15},timestamp:1705293025000,requestId:req_abc123def456,errorDetails:[{field:quantity,message:库存不足最多可购买85件}]}6.3.3 分页响应格式{code:200,message:查询成功,data:{list:[{orderId:100001,orderNo:SO202401150001,customerName:张三,totalAmount:258.60,orderStatus:1,orderTime:2024-01-15 10:30:25},{orderId:100002,orderNo:SO202401150002,customerName:李四,totalAmount:152.80,orderStatus:2,orderTime:2024-01-15 11:15:30}],pagination:{pageNum:1,pageSize:20,total:125,pages:7},summary:{totalAmount:12580.50,totalOrders:125,avgAmount:100.64}},timestamp:1705293025000,requestId:req_abc123def456}总结通过对升鲜宝供应链管理系统的四篇系列文章的深度分析我们提取并设计了超过300个业务表构建了完整的实体关系模型详细分析了核心业务流程和数据流。系统采用微服务架构基于Vue3Spring Boot3技术栈实现了生鲜供应链的全链路数字化管理。关键设计要点总结模块化设计系统划分为12个核心业务域每个域有清晰的职责边界数据一致性保障通过事务、锁机制、事件驱动等方式保证数据一致性高性能架构采用读写分离、缓存策略、分库分表等优化手段可扩展性微服务架构支持水平扩展容器化部署支持弹性伸缩安全性设计多层次安全防护包括数据加密、权限控制、审计日志等可维护性完善的监控体系、日志管理、配置管理支持系统稳定运行业务价值体现全流程覆盖从供应商到客户的全链条业务管理实时可视库存、订单、配送等业务状态实时可视智能决策通过数据分析提供采购、库存、配送等智能决策支持成本控制精细化成本核算和费用管控客户体验精准配送、灵活订购、全程追溯提升客户满意度本设计方案为实际系统开发提供了详细的技术指导开发团队可根据此设计进行具体的编码实现和系统部署。在实际实施过程中建议根据具体业务需求进行适当的调整和优化。UI设计截图纯个人研究非商业用途:官方参考文章(如果有商业需求请到下面官网文章里找)升鲜宝供应链管理系统重构版发布技术点Java8、mysql8.0 uniapp、vue、android、web 框架 Vue3Spring Boot3) ,界面功能一升鲜宝供应链管理系统重构版发布技术点Java8、mysql8.0 uniapp、vue、android、web 框架 Vue3Spring Boot3) ,界面功能二升鲜宝供应链管理系统重构版发布技术点Java8、mysql8.0 uniapp、vue、android、web 框架 Vue3Spring Boot3) ,界面功能三升鲜宝供应链管理系统重构版发布技术点Java8、mysql8.0 uniapp、vue、android、web 框架 Vue3Spring Boot3) ,界面功能升级四