编辑 | blame | 历史 | 原始文档

采购订单管理系统

项目概述

采购订单管理系统用于管理企业的采购流程,包括采购订单、送货通知、收货等功能。系统主要实现了ERP系统与SRM系统之间的采购数据比对功能,帮助企业及时发现并处理两个系统之间的数据差异。

技术架构

  • Spring Boot框架
  • MyBatis Plus ORM框架
  • Oracle数据库
  • 前后端分离架构

主要功能模块

  1. 采购订单管理
  2. 送货通知管理
  3. 收货管理
  4. 退货管理
  5. 供应商管理
  6. ERP与SRM系统数据比对

核心数据实体

  • 采购订单明细(PurchaseOrderDetail): 存储SRM系统采购订单数据
  • ERP采购订单数据(MesRohInData): 存储ERP系统采购订单数据
  • 采购订单比对结果(PurchaseOrderCompare): 存储两系统数据比对结果

核心功能实现

数据同步与比对流程

  1. 从SRM系统API获取采购订单明细数据
  2. 根据单号和项次查询ERP系统中对应的采购订单数据
  3. 计算两个系统中的待收数量差异
  4. 将比对结果保存到数据库

使用注意事项

  • API调用频率不低于2小时
  • 请求时间范围不大于24小时
  • 数据类型转换需注意:ERP系统(Long)与SRM系统(Integer)

数据库表结构

项目中包含以下主要数据表:

  1. PURCHASE_ORDER_DETAIL - 存储SRM系统采购订单明细数据
  2. MES_ROH_IN_DATA - 存储ERP系统采购订单数据
  3. PURCHASE_ORDER_COMPARE - 存储ERP与SRM系统数据比对结果

表结构说明

采购订单明细表(PURCHASE_ORDER_DETAIL)的Oracle表结构

CREATE TABLE PURCHASE_ORDER_DETAIL
(
    ID                       NUMBER(19) PRIMARY KEY,
    PRODUCT_CODE             VARCHAR2(50),
    PRODUCT_NAME             VARCHAR2(100),
    PRODUCT_SCALE            VARCHAR2(200),
    INNER_VENDOR_CODE        VARCHAR2(50),
    INNER_VENDOR_NAME        VARCHAR2(100),
    PROFIT_CENTER_CODE       VARCHAR2(50),
    PROFIT_CENTER_NAME       VARCHAR2(100),
    PURCHASE_TYPE            NUMBER(2),
    PO_ERP_NO                VARCHAR2(50),
    LINE_NO                  VARCHAR2(50),
    PO_LINE_NO_SHOW          VARCHAR2(50),
    ERP_PURCHASE_DATE        NUMBER(19),
    ORDER_STATUS             VARCHAR2(2),
    PO_LINE_STATUS           NUMBER(2),
    PURCHASE_UNIT_CODE       VARCHAR2(20),
    PURCHASE_UNIT_NAME       VARCHAR2(20),
    TOTAL_ANSWER_QTY         NUMBER(10),
    TOTAL_DELIVERY_QTY       NUMBER(10),
    TOTAL_RECEIVE_QTY        NUMBER(10),
    TOTAL_RETURN_QTY         NUMBER(10),
    PO_WAIT_DELIVERY_QTY     NUMBER(10),
    SYS_WAIT_DELIVERY_QTY    NUMBER(10),
    RETURN_WAIT_DELIVERY_QTY NUMBER(10),
    EXPECTED_DATE            NUMBER(19),
    NOTICE_QTY               NUMBER(10),
    NOTICE_UN_DELIVERY_QTY   NUMBER(10),
    TOTAL_REPORT_FINISH_QTY  NUMBER(10),
    ISSUED_SETS              NUMBER(10),
    RECEIVE_STATUS           NUMBER(2),
    VALID_FLAG               NUMBER(1),
    EXTEND_N01               VARCHAR2(200),
    EXTEND_N02               VARCHAR2(200),
    EXTEND_N03               VARCHAR2(200),
    EXTEND_N04               VARCHAR2(200),
    EXTEND_N05               VARCHAR2(200),
    EXTEND_N06               VARCHAR2(200),
    EXTEND_N07               VARCHAR2(200),
    EXTEND_N08               VARCHAR2(200),
    EXTEND_N09               VARCHAR2(200),
    EXTEND_N10               VARCHAR2(200),
    EXTEND_N11               VARCHAR2(200),
    EXTEND_N12               VARCHAR2(200)
);

采购订单比对表(PURCHASE_ORDER_COMPARE)的Oracle表结构

CREATE TABLE PURCHASE_ORDER_COMPARE
(
    ID                   NUMBER(19) PRIMARY KEY,
    BILL_NO              VARCHAR2(50),
    ORDER_LINE_ID        VARCHAR2(50),
    LINE_NO              VARCHAR2(50),
    ERP_PURCHASE_QTY     NUMBER(10),
    ERP_RECEIVED_QTY     NUMBER(10),
    ERP_WAIT_RECEIVE_QTY NUMBER(10),
    SRM_PURCHASE_QTY     NUMBER(10),
    SRM_RECEIVED_QTY     NUMBER(10),
    SRM_WAIT_RECEIVE_QTY NUMBER(10),
    DIFF_FLAG            NUMBER(1),
    DIFF_QTY             NUMBER(10),
    PRODUCT_CODE         VARCHAR2(50),
    PRODUCT_NAME         VARCHAR2(100),
    CREATE_TIME          DATE,
    UPDATE_TIME          DATE
);

序列

用于主键ID生成的序列:

CREATE SEQUENCE SEQ_PURCHASE_ORDER_DETAIL
    START WITH 1
    INCREMENT BY 1
    NOCACHE
    NOCYCLE;

CREATE SEQUENCE SEQ_PURCHASE_ORDER_COMPARE
    START WITH 1
    INCREMENT BY 1
    NOCACHE
    NOCYCLE;

项目维护

如需修改或添加字段,请在相应的实体类文件中进行修改,并保持与数据库表结构同步。

数据库维护

如需修改数据库表结构,请按照以下步骤:

  1. 修改实体类文件中的字段定义
  2. 修改对应的SQL文件中的表结构定义
  3. 执行SQL语句更新数据库表结构