# 采购订单管理系统 ## 项目概述 采购订单管理系统用于管理企业的采购流程,包括采购订单、送货通知、收货等功能。系统主要实现了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表结构 ```sql 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表结构 ```sql 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生成的序列: ```sql 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语句更新数据库表结构