300 lines
8.5 KiB
Markdown
300 lines
8.5 KiB
Markdown
|
|
# 入库管理系统使用说明
|
|||
|
|
|
|||
|
|
## 一、功能概述
|
|||
|
|
|
|||
|
|
基于若依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版
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|