5.5 KiB
5.5 KiB
02-项目程序开发详细步骤
开发入口
前端页面:
src/views/WarehouseManagement/InventoryCheck/index.vue
SQL 脚本:
sql/仓储管理_库存盘点_库存调拨.sql
第 1 步:梳理现有库存盘点页面
确认页面已有能力:
| 已有能力 | 说明 |
|---|---|
| 库存查询 | 调用 仓储管理_库存盘点_查询 |
| 编辑库存 | 调用 仓储管理_库存盘点_货位数量_编辑数据 |
| 库位下拉 | 调用 仓储管理_库位_查询 |
| 新增物料存货 | 页面已有新增库存相关逻辑 |
确认表格已有字段:
物料编码
物料流水号
物料名称
图号或型号
物料与货位流水号
类型
库存
货位流水号
货位名称
批次编号
第 2 步:增加表格调拨入口
在库存盘点表格操作列增加“调拨”按钮。
实现要求:
- 原操作列宽度调整为可容纳“编辑”和“调拨”。
- 行处于编辑状态时不显示调拨按钮。
- 行不处于编辑状态时显示调拨按钮。
关键逻辑:
<el-button v-if="!scope.row.edit" type="text" size="mini" @click="openTransfer(scope.row)">调拨</el-button>
第 3 步:增加调拨状态和表单对象
在 data() 中增加:
transferDialogVisible: false,
transferLocationAdding: false,
transferSubmitting: false,
transferForm: {
物料与货位流水号: '',
物料流水号: '',
物料名称: '',
图号或型号: '',
类型: '',
原货位流水号: '',
原货位名称: '',
原库存数: 0,
目标货位流水号: '',
目标货位名称: '',
新货位名称: '',
调拨数量: 1,
调拨备注: ''
}
第 4 步:增加库存调拨弹窗
新增 el-dialog,标题为:
库存调拨
弹窗内容:
| 字段 | 控件 | 是否可编辑 |
|---|---|---|
| 物料名称 | 文本 | 否 |
| 图号/型号 | 文本 | 否 |
| 原库位 | 文本 | 否 |
| 原库存数 | 文本 | 否 |
| 目标库位 | el-select |
是 |
| 新库位 | el-input |
是 |
| 调拨数量 | el-input-number |
是 |
| 调拨备注 | el-input |
是 |
第 5 步:打开调拨弹窗
新增方法:
openTransfer(row)
处理内容:
- 校验当前行是否有
物料与货位流水号。 - 校验当前行库存是否大于 0。
- 将当前行物料、库位、库存信息填入
transferForm。 - 清空目标库位、新库位、备注。
- 打开调拨弹窗。
第 6 步:选择目标库位
新增方法:
handleTransferLocationChange(value)
处理内容:
- 根据选择的
货位流水号,从storageLocation中找到货位名称。 - 回填
transferForm.目标货位名称。
第 7 步:一键新建库位
新增方法:
addTransferLocation()
处理流程:
- 校验
transferForm.新货位名称不能为空。 - 调用
仓储管理_库位_验证是否存在。 - 如果库位已存在,提示并按库位名称回填已有库位。
- 如果库位不存在,调用
仓储管理_库位_增加数据。 - 新增成功后调用
getLocateName()刷新库位下拉。 - 调用
selectTransferLocation(locationName)回填目标库位。
第 8 步:提交库存调拨
新增方法:
submitTransfer()
前端校验:
| 校验项 | 提示 |
|---|---|
| 目标库位为空 | 请选择目标库位 |
| 目标库位等于原库位 | 目标库位不能与原库位相同 |
| 调拨数量小于等于 0 | 调拨数量必须大于0 |
| 调拨数量大于原库存 | 调拨数量不能大于原库存数 |
提交参数:
| 序号 | 参数名 |
|---|---|
| 0 | 物料与货位流水号 |
| 1 | 物料流水号 |
| 2 | 原货位流水号 |
| 3 | 目标货位流水号 |
| 4 | 调拨数量 |
| 5 | 原库存数 |
| 6 | 调拨备注 |
| 7 | 操作者 |
| 8 | 类型 |
调用接口:
var Data = this.CreateData('12', '仓储管理_库存盘点_库存调拨', param)
成功后:
- 提示“调拨成功”。
- 关闭调拨弹窗。
- 调用
searchTable()刷新列表。
第 9 步:后端脚本设计
脚本文件:
sql/仓储管理_库存盘点_库存调拨.sql
脚本内容:
- 如果
库存盘点_调拨记录不存在,则创建该表。 - 删除并重建存储过程
dbo.仓储管理_库存盘点_库存调拨。 - 按
@类型判断库存表:@类型 = N'通用件'使用库存管理_半成品与货位对照表。- 其他类型使用
库存管理_物料与货位对照表。
- 使用事务处理扣减、增加、新增目标记录、写入日志。
- 出错时回滚并返回失败信息。
第 10 步:后端事务流程
BEGIN TRAN
锁定原库存记录
校验原库存记录存在
校验目标库位不等于原库位
校验当前库存 >= 调拨数量
扣减原库位库存
查询目标库位同物料库存
如果存在则增加目标库存
如果不存在则新增目标库存记录
写入库存盘点_调拨记录
COMMIT TRAN
失败处理:
ROLLBACK TRAN
返回 result = 0 和 msg
第 11 步:数据库部署
部署目标:
SQL Server: 192.168.1.27
Database: ERPTOOL_JY_20250826Back
部署对象:
库存盘点_调拨记录
仓储管理_库存盘点_库存调拨
第 12 步:验证
验证项:
- SQL 脚本编译通过。
- 数据库对象存在。
- 存储过程参数完整。
- 前端模板解析通过。
- 前端脚本解析通过。
- 页面实际选择库存记录调拨。
- 原库位库存减少。
- 目标库位库存增加或新增。
- 调拨记录写入。