# 入库管理系统使用说明 ## 一、功能概述 基于若依FastAPI+Vue框架,实现了完整的样品入库管理功能,包括: ### 1. 入库单管理 - 入库单创建、修改、删除、查询 - 自动生成入库单号(格式:2025内检001) - 记录委托单位、委托人、收样信息等 - 支持多种来样目的(标准化测试、开发验证、故障验证、实验) - 状态管理(正常、已完成、已取消) ### 2. 样品管理 - 样品的增删改查 - 关联入库单(一对多关系) - 记录样品型号、SN号、硬件版本等信息 - 测试项目管理(计划测试项、实际测试项) - 出库信息管理(交样日期、交样人、接样人等) - 状态跟踪(待测试、测试中、已完成、已退回) ## 二、已创建的文件清单 ### 后端文件(FastAPI) #### 1. 数据库 ``` ruoyi-fastapi-backend/sql/warehouse_management.sql ``` - 包含3张表:入库单表、样品表、入库单序号表 - 包含示例数据 - 包含完整的菜单权限SQL #### 2. 实体层(Entity/DO) ``` ruoyi-fastapi-backend/module_admin/entity/do/warehouse_receipt_do.py ruoyi-fastapi-backend/module_admin/entity/do/warehouse_sample_do.py ``` #### 3. 视图对象层(VO) ``` ruoyi-fastapi-backend/module_admin/entity/vo/warehouse_receipt_vo.py ruoyi-fastapi-backend/module_admin/entity/vo/warehouse_sample_vo.py ``` #### 4. 数据访问层(DAO) ``` ruoyi-fastapi-backend/module_admin/dao/warehouse_receipt_dao.py ruoyi-fastapi-backend/module_admin/dao/warehouse_sample_dao.py ``` #### 5. 业务逻辑层(Service) ``` ruoyi-fastapi-backend/module_admin/service/warehouse_receipt_service.py ruoyi-fastapi-backend/module_admin/service/warehouse_sample_service.py ``` #### 6. 控制器层(Controller) ``` ruoyi-fastapi-backend/module_admin/controller/warehouse_receipt_controller.py ruoyi-fastapi-backend/module_admin/controller/warehouse_sample_controller.py ``` #### 7. 路由注册 ``` ruoyi-fastapi-backend/server.py (已修改) ``` ### 前端文件(Vue) #### 1. API接口 ``` ruoyi-fastapi-frontend/src/api/warehouse/receipt.js ruoyi-fastapi-frontend/src/api/warehouse/sample.js ``` #### 2. 页面组件 ``` ruoyi-fastapi-frontend/src/views/warehouse/receipt/index.vue ruoyi-fastapi-frontend/src/views/warehouse/sample/index.vue ``` ## 三、部署步骤 ### 步骤1:导入数据库 ```sql -- 在MySQL中执行 mysql -u root -p your_database < ruoyi-fastapi-backend/sql/warehouse_management.sql ``` 或者在数据库管理工具中手动执行SQL文件内容。 ### 步骤2:更新依赖(如需要) ```bash # 后端 cd ruoyi-fastapi-backend pip install bcrypt==4.0.1 # 确保bcrypt版本正确 # 前端(如果之前没有安装) cd ruoyi-fastapi-frontend npm install ``` ### 步骤3:启动后端 ```bash cd ruoyi-fastapi-backend python app.py ``` ### 步骤4:启动前端 ```bash cd ruoyi-fastapi-frontend npm run serve ``` ### 步骤5:访问系统 - 打开浏览器访问:http://localhost:8080 - 使用admin/admin123登录 - 在菜单中找到"入库管理"模块 ## 四、功能使用说明 ### 4.1 创建入库单 1. 点击"入库管理" > "入库单管理" 2. 点击"新增"按钮 3. 系统自动生成入库单号(可点击刷新按钮重新生成) 4. 填写以下信息: - **必填**:入库单号、收样日期 - **选填**:委托单位、委托人、来源地、送样人等 5. 选择收样方式(专人/小运/快递/货拉拉/交本框) 6. 选择来样目的(标准化测试/开发验证/故障验证/实验) 7. 点击"确定"保存 ### 4.2 管理样品 #### 方式一:从入库单进入 1. 在入库单列表中,点击某个入库单的"查看样品"按钮 2. 进入该入库单的样品列表页面 3. 点击"新增"添加样品 #### 方式二:直接进入样品管理 1. 点击"入库管理" > "样品管理" 2. 查看所有样品 3. 可按入库单号、样品型号、SN号等条件搜索 #### 添加样品信息 - 样品型号:如 DSM - 样品SN号:如 240212SG - 硬件版本号:如 DSM_V4.1.2 - 外测状态:PCBA/点板板/建板板 - 计划测试项:描述测试内容 - 测试截止日期:YYYY-MM-DD - 状态:待测试/测试中/已完成/已退回 ### 4.3 出库管理 在样品详情中填写出库信息: - 出库交样日期 - 出库交样方式 - 出库交样人 - 出库接样人 - 出库记录人 - 实际测试项 ### 4.4 数据查询 #### 入库单查询 - 按入库单号 - 按委托单位 - 按委托人 - 按来样目的 - 按状态 #### 样品查询 - 按入库单号 - 按样品型号 - 按样品SN号 - 按外测状态 - 按状态 ## 五、API接口说明 ### 入库单接口 | 接口 | 方法 | 说明 | |------|------|------| | /warehouse/receipt/list | GET | 获取入库单列表(分页) | | /warehouse/receipt/{id} | GET | 获取入库单详情 | | /warehouse/receipt | POST | 新增入库单 | | /warehouse/receipt | PUT | 修改入库单 | | /warehouse/receipt/{ids} | DELETE | 删除入库单 | | /warehouse/receipt/generate/receiptNo | GET | 生成入库单号 | ### 样品接口 | 接口 | 方法 | 说明 | |------|------|------| | /warehouse/sample/list | GET | 获取样品列表(分页) | | /warehouse/sample/{id} | GET | 获取样品详情 | | /warehouse/sample | POST | 新增样品 | | /warehouse/sample | PUT | 修改样品 | | /warehouse/sample/{ids} | DELETE | 删除样品 | ## 六、权限配置 系统已自动创建以下权限: ### 入库单权限 - `warehouse:receipt:list` - 查询入库单 - `warehouse:receipt:query` - 查看入库单详情 - `warehouse:receipt:add` - 新增入库单 - `warehouse:receipt:edit` - 修改入库单 - `warehouse:receipt:remove` - 删除入库单 - `warehouse:receipt:export` - 导出入库单 ### 样品权限 - `warehouse:sample:list` - 查询样品 - `warehouse:sample:query` - 查看样品详情 - `warehouse:sample:add` - 新增样品 - `warehouse:sample:edit` - 修改样品 - `warehouse:sample:remove` - 删除样品 - `warehouse:sample:export` - 导出样品 ## 七、数据库设计 ### 入库单表(warehouse_receipt) | 字段 | 类型 | 说明 | |------|------|------| | receipt_id | bigint | 主键 | | receipt_no | varchar(50) | 入库单号(唯一) | | commission_no | varchar(100) | 样品委托单号 | | client_unit | varchar(200) | 委托单位 | | client_contact | varchar(100) | 委托人 | | receipt_date | date | 收样日期 | | source_location | varchar(200) | 来源地 | | delivery_person | varchar(100) | 送样人 | | receipt_method | varchar(50) | 收样方式 | | receipt_method_detail | varchar(200) | 收样方式详情 | | receiver | varchar(100) | 收样人 | | recorder | varchar(100) | 入库记录人 | | purpose | varchar(50) | 来样目的 | | purpose_detail | varchar(500) | 来样目的详情 | | status | char(1) | 状态(0正常 1已完成 2已取消) | | remark | varchar(500) | 备注 | ### 样品表(warehouse_sample) | 字段 | 类型 | 说明 | |------|------|------| | sample_id | bigint | 主键 | | receipt_id | bigint | 入库单ID(外键) | | receipt_no | varchar(50) | 入库单号 | | sample_model | varchar(100) | 样品型号 | | sample_sn | varchar(100) | 样品SN号 | | hardware_version | varchar(100) | 硬件版本号 | | external_status | varchar(50) | 外测状态 | | test_items | varchar(500) | 计划测试项 | | test_deadline | date | 测试截止日期 | | actual_test_items | varchar(500) | 实际测试项 | | delivery_date | date | 出库交样日期 | | delivery_method | varchar(50) | 出库交样方式 | | delivery_person | varchar(100) | 出库交样人 | | receive_person | varchar(100) | 出库接样人 | | delivery_recorder | varchar(100) | 出库记录人 | | status | char(1) | 状态(0待测试 1测试中 2已完成 3已退回) | | remark | varchar(500) | 备注 | ## 八、注意事项 1. **数据关联**:删除入库单会级联删除其下所有样品,请谨慎操作 2. **权限配置**:需要给相应用户角色分配入库管理权限 3. **入库单号**:格式为"年份+类型+序号",如:2025内检001 4. **bcrypt版本**:后端需要bcrypt==4.0.1版本才能正常工作 5. **数据库**:使用MySQL,字符集为utf8mb4 ## 九、扩展功能建议 如需进一步扩展,可以考虑: - 导出Excel功能 - 批量导入样品 - 样品流转记录 - 测试报告上传 - 统计报表功能 - 消息提醒(测试截止提醒) - 二维码标签打印 --- **开发完成日期**:2025-11-03 **技术栈**:FastAPI + Vue.js + Element UI + MySQL + SQLAlchemy **基于框架**:若依FastAPI版