Files
JY1.0/docs/库存调拨/02-项目程序开发详细步骤.md

5.5 KiB

02-项目程序开发详细步骤

开发入口

前端页面:

src/views/WarehouseManagement/InventoryCheck/index.vue

SQL 脚本:

sql/仓储管理_库存盘点_库存调拨.sql

第 1 步:梳理现有库存盘点页面

确认页面已有能力:

已有能力 说明
库存查询 调用 仓储管理_库存盘点_查询
编辑库存 调用 仓储管理_库存盘点_货位数量_编辑数据
库位下拉 调用 仓储管理_库位_查询
新增物料存货 页面已有新增库存相关逻辑

确认表格已有字段:

物料编码
物料流水号
物料名称
图号或型号
物料与货位流水号
类型
库存
货位流水号
货位名称
批次编号

第 2 步:增加表格调拨入口

在库存盘点表格操作列增加“调拨”按钮。

实现要求:

  1. 原操作列宽度调整为可容纳“编辑”和“调拨”。
  2. 行处于编辑状态时不显示调拨按钮。
  3. 行不处于编辑状态时显示调拨按钮。

关键逻辑:

<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)

处理内容:

  1. 校验当前行是否有 物料与货位流水号
  2. 校验当前行库存是否大于 0。
  3. 将当前行物料、库位、库存信息填入 transferForm
  4. 清空目标库位、新库位、备注。
  5. 打开调拨弹窗。

第 6 步:选择目标库位

新增方法:

handleTransferLocationChange(value)

处理内容:

  1. 根据选择的 货位流水号,从 storageLocation 中找到货位名称。
  2. 回填 transferForm.目标货位名称

第 7 步:一键新建库位

新增方法:

addTransferLocation()

处理流程:

  1. 校验 transferForm.新货位名称 不能为空。
  2. 调用 仓储管理_库位_验证是否存在
  3. 如果库位已存在,提示并按库位名称回填已有库位。
  4. 如果库位不存在,调用 仓储管理_库位_增加数据
  5. 新增成功后调用 getLocateName() 刷新库位下拉。
  6. 调用 selectTransferLocation(locationName) 回填目标库位。

第 8 步:提交库存调拨

新增方法:

submitTransfer()

前端校验:

校验项 提示
目标库位为空 请选择目标库位
目标库位等于原库位 目标库位不能与原库位相同
调拨数量小于等于 0 调拨数量必须大于0
调拨数量大于原库存 调拨数量不能大于原库存数

提交参数:

序号 参数名
0 物料与货位流水号
1 物料流水号
2 原货位流水号
3 目标货位流水号
4 调拨数量
5 原库存数
6 调拨备注
7 操作者
8 类型

调用接口:

var Data = this.CreateData('12', '仓储管理_库存盘点_库存调拨', param)

成功后:

  1. 提示“调拨成功”。
  2. 关闭调拨弹窗。
  3. 调用 searchTable() 刷新列表。

第 9 步:后端脚本设计

脚本文件:

sql/仓储管理_库存盘点_库存调拨.sql

脚本内容:

  1. 如果 库存盘点_调拨记录 不存在,则创建该表。
  2. 删除并重建存储过程 dbo.仓储管理_库存盘点_库存调拨
  3. @类型 判断库存表:
    • @类型 = N'通用件' 使用 库存管理_半成品与货位对照表
    • 其他类型使用 库存管理_物料与货位对照表
  4. 使用事务处理扣减、增加、新增目标记录、写入日志。
  5. 出错时回滚并返回失败信息。

第 10 步:后端事务流程

BEGIN TRAN
  锁定原库存记录
  校验原库存记录存在
  校验目标库位不等于原库位
  校验当前库存 >= 调拨数量
  扣减原库位库存
  查询目标库位同物料库存
  如果存在则增加目标库存
  如果不存在则新增目标库存记录
  写入库存盘点_调拨记录
COMMIT TRAN

失败处理:

ROLLBACK TRAN
返回 result = 0 和 msg

第 11 步:数据库部署

部署目标:

SQL Server: 192.168.1.27
Database: ERPTOOL_JY_20250826Back

部署对象:

库存盘点_调拨记录
仓储管理_库存盘点_库存调拨

第 12 步:验证

验证项:

  1. SQL 脚本编译通过。
  2. 数据库对象存在。
  3. 存储过程参数完整。
  4. 前端模板解析通过。
  5. 前端脚本解析通过。
  6. 页面实际选择库存记录调拨。
  7. 原库位库存减少。
  8. 目标库位库存增加或新增。
  9. 调拨记录写入。