更新装配、精工车间、技术中心、仓储模块,新增工序工价、生产审核、三楼仓库可视化等功能及文档SQL

This commit is contained in:
Developer
2026-07-06 11:21:59 +08:00
parent be0ff91e24
commit 9c1f52078d
43 changed files with 8566 additions and 233 deletions

View File

@@ -0,0 +1,158 @@
# 核心物料搜索栏添加物料编码查询测试报告
备注:修改人:Ld 修改时间:2026-06-29 15:06:32
## 1. 测试背景
本次测试对应罗伟提出的“核心物料搜索栏页面添加物料编码搜索功能”需求。现场库存盘点过程中,存在部分物料在新建时因物料名称、图号重复命名导致盘点人员难以准确确认物料的问题。后续现场计划在物料标签中使用唯一物料编码进行识别,因此系统核心物料搜索栏需要支持按物料编码进行查询和筛选,便于盘点、库存查询、物料库位查询、入库记录、出入库记录等业务快速匹配唯一物料。
测试目标是确认前端核心页面已增加物料编码搜索条件,后端核心查询存储过程已支持物料编码参数,且通过真实数据库数据验证物料编码能够正确筛选目标物料。
备注:修改人:Ld 修改时间:2026-06-29 15:06:32
## 2. 测试环境
| 项目 | 内容 |
| --- | --- |
| 项目路径 | D:\景耀\JY1.0 |
| 前端框架 | Vue 2.5.17、Element UI 2.13.0 |
| 模板编译工具 | vue-template-compiler 2.5.17 |
| 数据库服务器 | 192.168.1.27 |
| 数据库名称 | ERPTOOL_JY_20250826Back |
| 数据库账号 | sa |
| 数据库密码 | 已脱敏,不在测试文档中明文记录 |
| 测试时间 | 2026-06-29 15:03 至 2026-06-29 15:06 |
| 测试人员 | GPT/Codex |
备注:修改人:Ld 修改时间:2026-06-29 15:06:32
## 3. 测试范围
### 3.1 前端页面范围
| 序号 | 页面 | 文件 |
| --- | --- | --- |
| 1 | 技术中心-物料查询 | src/views/TechnologyCenter/MaterialQuery/index.vue |
| 2 | 技术中心-物料维护 | src/views/TechnologyCenter/MaterialMaintain/index.vue |
| 3 | 仓储管理-库存查询 | src/views/WarehouseManagement/InventoryQuery/index.vue |
| 4 | 仓储管理-物料库位 | src/views/WarehouseManagement/MaterialLocation/index.vue |
| 5 | 仓储管理-库存盘点 | src/views/WarehouseManagement/InventoryCheck/index.vue |
| 6 | 仓储管理-入库记录 | src/views/WarehouseManagement/WarehousingRecord/WarehousingRecord.vue |
| 7 | 仓储管理-物料记录 | src/views/WarehouseManagement/MaterialRecord/index.vue |
| 8 | 仓储管理-盘点记录 | src/views/WarehouseManagement/InventoryRecord/index.vue |
| 9 | 仓储管理-入库退货记录 | src/views/WarehouseManagement/ReturnRecord/index.vue |
### 3.2 数据库过程范围
| 序号 | 存储过程 |
| --- | --- |
| 1 | 物料管理_查询数据_分页 |
| 2 | 仓储管理_库存查询_查询 |
| 3 | 报表_仓储管理_通用库存_查询 |
| 4 | 仓储管理_库存盘点_查询 |
| 5 | 仓储管理_物料库位_查询数据 |
| 6 | 仓储管理_入库记录_查询 |
| 7 | 仓储管理_入库记录_导出表格_查询 |
| 8 | 仓储管理_物料记录_查询新 |
| 9 | 仓储管理_物料记录_查询 |
| 10 | 报表_仓储管理_物料记录_查询 |
| 11 | 仓储管理_盘点记录_查询 |
| 12 | 报表_仓储管理_盘点记录_查询 |
| 13 | 仓储管理_入库记录退货_条件查询 |
### 3.3 脚本范围
| 类型 | 文件 |
| --- | --- |
| SQL调整脚本 | sql/核心物料搜索栏_物料编码查询_存储过程调整.sql |
| 设计方案文档 | docs/核心物料搜索栏添加物料编码查询设计方案.md |
备注:修改人:Ld 修改时间:2026-06-29 15:06:32
## 4. 测试方法
1. 使用 vue-template-compiler 对核心页面 Vue 单文件组件模板进行编译检查,确认新增物料编码搜索栏不会导致模板语法错误。
2. 使用静态检索检查核心页面是否存在物料编码搜索栏、物料编码字段绑定、物料编码请求参数和后端参数名。
3. 使用静态检索确认核心页面搜索栏中不再残留容易造成现场误解的“物料编号”展示文案。
4. 连接 SQL Server 测试库,检查核心存储过程是否均已具备 `@物料编码_check``@物料编码` 参数。
5. 使用不存在的物料编码 `__CODEX_NOT_EXISTS__` 执行核心查询过程,验证过程能够正常执行且筛选无匹配数据时不报错。
6. 从物料主文件中选取真实物料编码 `03.101.001.0011`,执行物料主数据、库存查询、物料库位、库存盘点等关键链路查询,验证可按物料编码返回目标物料。
备注:修改人:Ld 修改时间:2026-06-29 15:06:32
## 5. 测试用例与结果
| 用例编号 | 测试项 | 测试步骤 | 期望结果 | 实际结果 | 结论 |
| --- | --- | --- | --- | --- | --- |
| TC-001 | 前端模板编译 | 对 8 个已修改核心页面执行 Vue 模板编译 | 模板编译通过,无语法错误 | 8 个页面均返回 template ok | 通过 |
| TC-002 | 前端物料编码搜索栏覆盖 | 检索 `placeholder="物料编码"``label="物料编码"``物料编码_check``materialCodeValue``MaterialCode``materialCode` | 核心页面存在物料编码输入框、导出条件和请求参数 | 9 个核心页面均检索到预期字段或参数 | 通过 |
| TC-003 | 前端旧文案清理 | 检索核心页面中的 `placeholder="物料编号"``label="物料编号"` | 核心搜索栏不再展示“物料编号”旧文案 | 未检索到旧展示文案 | 通过 |
| TC-004 | 数据库存储过程参数覆盖 | 查询 13 个核心存储过程的参数 | 每个过程均包含 `@物料编码_check``@物料编码` | 13 个过程均返回 CodeParamCount=2 | 通过 |
| TC-005 | 不存在物料编码查询 | 使用 `__CODEX_NOT_EXISTS__` 执行物料记录、盘点记录、报表等过程 | 过程正常执行,无 SQL 错误,允许无数据返回 | 所有执行过程退出码为 0导出类过程返回导出元数据 | 通过 |
| TC-006 | 物料主数据按编码查询 | 使用真实编码 `03.101.001.0011` 执行 `物料管理_查询数据_分页` | 返回该编码对应物料 | 返回物料编码 `03.101.001.0011`,物料名称为 `304不锈钢内外牙螺母转换变径牙套` | 通过 |
| TC-007 | 库存查询按编码查询 | 使用真实编码执行 `仓储管理_库存查询_查询` | 库存查询结果限定目标物料 | 返回物料编码 `03.101.001.0011` 及对应名称、规格信息 | 通过 |
| TC-008 | 物料库位按编码查询 | 使用真实编码执行 `仓储管理_物料库位_查询数据` | 物料库位结果限定目标物料 | 返回物料编码 `03.101.001.0011`、物料流水号 `24371`、物料分类编号 `2581` | 通过 |
| TC-009 | 库存盘点按编码查询 | 使用真实编码执行 `仓储管理_库存盘点_查询` | 盘点列表结果限定目标物料 | 返回物料编码 `03.101.001.0011` 及对应盘点字段 | 通过 |
| TC-010 | 导出过程参数兼容 | 检查导出类存储过程并执行无匹配编码场景 | 导出过程接受物料编码参数且不报错 | `报表_仓储管理_物料记录_查询``报表_仓储管理_盘点记录_查询` 均正常返回导出元数据 | 通过 |
备注:修改人:Ld 修改时间:2026-06-29 15:06:32
## 6. 关键测试输出摘要
### 6.1 前端模板编译结果
```text
src/views/TechnologyCenter/MaterialMaintain/index.vue template ok
src/views/WarehouseManagement/MaterialRecord/index.vue template ok
src/views/WarehouseManagement/InventoryRecord/index.vue template ok
src/views/WarehouseManagement/ReturnRecord/index.vue template ok
src/views/WarehouseManagement/MaterialLocation/index.vue template ok
src/views/WarehouseManagement/InventoryCheck/index.vue template ok
src/views/WarehouseManagement/InventoryQuery/index.vue template ok
src/views/WarehouseManagement/WarehousingRecord/WarehousingRecord.vue template ok
```
### 6.2 数据库存储过程参数检查结果
```text
报表_仓储管理_盘点记录_查询 CodeParamCount=2
报表_仓储管理_通用库存_查询 CodeParamCount=2
报表_仓储管理_物料记录_查询 CodeParamCount=2
仓储管理_库存查询_查询 CodeParamCount=2
仓储管理_库存盘点_查询 CodeParamCount=2
仓储管理_盘点记录_查询 CodeParamCount=2
仓储管理_入库记录_查询 CodeParamCount=2
仓储管理_入库记录_导出表格_查询 CodeParamCount=2
仓储管理_入库记录退货_条件查询 CodeParamCount=2
仓储管理_物料记录_查询 CodeParamCount=2
仓储管理_物料记录_查询新 CodeParamCount=2
仓储管理_物料库位_查询数据 CodeParamCount=2
物料管理_查询数据_分页 CodeParamCount=2
```
### 6.3 真实物料编码验证结果
| 验证编码 | 物料名称 | 规格 | 关键结果 |
| --- | --- | --- | --- |
| 03.101.001.0011 | 304不锈钢内外牙螺母转换变径牙套 | M8×M12×L20 | 物料主数据、库存查询、物料库位、库存盘点均可按编码返回目标物料 |
备注:修改人:Ld 修改时间:2026-06-29 15:06:32
## 7. 风险与限制
1. 本次未执行浏览器登录后的端到端点击测试,原因是当前测试环境未启动已认证的前端业务系统;已通过 Vue 模板编译、静态字段覆盖和数据库真实过程调用验证核心链路。
2. 本次未执行完整 `npm run build`,避免对当前工作区已有构建产物和无关脏文件产生额外影响;如后续上线前需要,可单独执行完整构建验证。
3. SQL 正向测试依赖当前测试库真实数据,若后续物料编码 `03.101.001.0011` 被删除、停用或调整,复测时需要重新选取存在的物料编码。
4. `仓储管理_库存查询_查询` 执行时会输出动态 SQL 文本,该输出为过程现有行为,不属于本次物料编码查询改造错误。
备注:修改人:Ld 修改时间:2026-06-29 15:06:32
## 8. 测试结论
本次测试结论为通过。
核心物料搜索栏已覆盖物料编码查询条件,相关前端页面模板编译通过,核心页面未残留容易混淆的“物料编号”搜索栏展示文案。数据库侧 13 个核心查询及导出存储过程均已包含物料编码筛选参数,使用不存在编码和真实编码分别验证后,过程执行正常,真实物料编码能够正确匹配物料主数据、库存查询、物料库位和库存盘点结果。
该功能满足现场库存盘点通过唯一物料编码快速确认物料的需求,可进入后续人工业务验收和上线前回归验证阶段。
备注:修改人:Ld 修改时间:2026-06-29 15:06:32

View File

@@ -0,0 +1,399 @@
# 核心物料搜索栏添加物料编码查询设计方案
## 1. 需求背景
本需求由罗伟提出,主要服务于现场库存盘点业务。
当前现场正在进行库存盘点。盘点过程中发现,系统内部分物料在新建物料信息时,由于历史录入习惯、命名规则不统一、同类物料复用名称、图号或型号描述不完整等原因,存在物料名称重复、图号或型号重复、名称与图号组合仍无法准确区分物料的情况。
在盘点现场,仓库人员需要快速确认实物标签对应的系统物料。如果仅依赖物料名称、规格型号、图号等字段进行搜索,当多个物料名称或图号相近甚至重复时,页面会返回多条近似记录,盘点人员需要逐条比对,容易出现以下问题:
1. 盘点确认速度慢,影响现场盘点效率。
2. 同名或同图号物料难以区分,增加误选风险。
3. 实物标签与系统数据匹配不稳定,后续盘点差异复核成本高。
4. 现场人员对物料主数据命名差异不熟悉时,更难快速定位唯一物料。
为解决上述问题,现场计划后续物料标签统一使用唯一的物料编码作为识别依据。同时,系统内最核心的物料搜索栏页面需要增加“物料编码”查询筛选能力,使盘点人员可以直接根据标签上的唯一物料编码定位系统物料,避免因物料名称、图号或型号重复导致的识别困难。
<br />
## 2. 建设目标
本次设计目标是在项目中最核心、最常用于物料查询和盘点确认的页面搜索栏中增加“物料编码”查询功能。
具体目标如下:
1. 在核心物料搜索栏页面增加独立的“物料编码”输入条件。
2. 支持用户输入物料编码后直接查询并筛选唯一或近似匹配物料。
3. 保留原有物料名称、图号或型号、物料类型、库位、仓库等查询条件,保证历史操作习惯不受影响。
4. 支持物料编码与原有查询条件组合筛选。
5. 后端查询过程增加物料编码可选参数,未输入物料编码时保持原查询结果不变。
6. 涉及导出、分页、排序等功能的页面,应保持查询结果与导出结果一致。
7. 为后续物料标签使用唯一物料编码提供系统查询支撑。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
## 3. 设计范围
本次范围以“页面搜索栏”为主,不包含新增物料、选择物料、查看库存等弹窗中的临时查询入口。
优先改造以下最核心页面:
| 模块 | 页面名称 | 文件路径 | 当前查询特点 | 本次调整 |
| ---- | ----- | ----------------------------------------------------------------------- | ------------------------------- | ------------------- |
| 技术中心 | 物料查询 | `src/views/TechnologyCenter/MaterialQuery/index.vue` | 物料主数据查询,已有物料编码、物料名称、图号/型号等条件 | 统一确认物料编码条件传参和后端过滤能力 |
| 技术中心 | 物料维护 | `src/views/TechnologyCenter/MaterialMaintain/index.vue` | 物料主数据维护,已有物料编码、物料名称、图号/型号等条件 | 统一确认物料编码条件传参和后端过滤能力 |
| 仓储管理 | 库存查询 | `src/views/WarehouseManagement/InventoryQuery/index.vue` | 库存主查询,包含物料编号、物料名称、图号型号、类型、库位等条件 | 增强物料编码精确定位能力 |
| 仓储管理 | 物料库位 | `src/views/WarehouseManagement/MaterialLocation/index.vue` | 按物料、图号、库位查询物料所在库位 | 增强按物料编码定位库位能力 |
| 仓储管理 | 库存盘点 | `src/views/WarehouseManagement/InventoryCheck/index.vue` | 盘点现场高频页面,涉及物料、图号、编码等查询条件 | 重点支持标签物料编码查询 |
| 仓储管理 | 入库记录 | `src/views/WarehouseManagement/WarehousingRecord/WarehousingRecord.vue` | 入库记录中可按物料名称、物料编码等条件筛选 | 确认搜索栏编码条件与导出条件一致 |
| 仓储管理 | 退货记录 | `src/views/WarehouseManagement/ReturnRecord/index.vue` | 当前输入框偏综合条件,按物料名称/编号/规格/型号查询 | 明确拆分或补充物料编码查询能力 |
| 仓储管理 | 物料记录 | `src/views/WarehouseManagement/MaterialRecord/index.vue` | 物料出入库记录查询,当前主要按物料名称筛选 | 增加物料编码条件 |
| 仓储管理 | 库存记录 | `src/views/WarehouseManagement/InventoryRecord/index.vue` | 库存历史记录查询,当前主要按物料名称筛选 | 增加物料编码条件 |
| 仓储管理 | 采购件入库 | `src/views/WarehouseManagement/PurchasePartsStorage/index.vue` | 入库相关查询涉及物料名称、图号或型号 | 增加或统一物料编码条件 |
后续可根据现场使用频率扩展至采购、精工车间、销售、装配等更多页面,但第一阶段应优先保证仓储盘点和物料主数据查询链路完整。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
## 4. 现状问题分析
### 4.1 物料名称不是唯一识别字段
物料名称用于业务人员理解物料含义,但并不适合作为唯一识别依据。现场存在同类物料使用相同或近似名称的情况,例如名称相同但规格、批次、厂家、图号或内部编码不同。
仅按物料名称查询时,系统可能返回多条记录,盘点人员需要再人工判断,效率低且容易误选。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
### 4.2 图号或型号也可能重复或不完整
图号或型号通常来源于技术资料、采购资料或历史录入。由于历史数据存在命名不统一、字段填写不完整、图号简称和完整图号混用等情况,图号或型号同样无法稳定保证唯一。
盘点人员如果只扫描或输入图号,仍可能出现多条记录,无法快速确认实物对应的系统物料。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
### 4.3 现场标签需要与系统查询方式统一
现场后续计划使用唯一物料编码作为标签识别字段。如果系统页面没有物料编码搜索能力,即使实物标签已经规范,人员仍需要通过名称或图号间接查找,标签规范化的价值无法充分发挥。
因此,系统查询方式必须与标签识别方式保持一致。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
## 5. 总体方案
本次方案采用“前端增加独立查询条件、后端存储过程增加可选参数、查询和导出同步支持”的方式实施。
### 5.1 前端搜索栏调整
在核心页面搜索栏中增加或确认“物料编码”输入框。
推荐展示方式:
```html
<el-input
v-model="materialCodeValue"
style="width: 160px"
placeholder="物料编码"
size="small"
clearable
@keyup.enter.native="pageCurrent=1;searchTable()"/>
```
如果页面已有“物料编号”输入框,应统一确认其实际传参字段是否对应数据库中的 `物料编码`。如果只是综合搜索字段,应调整为独立字段,避免和物料名称、规格型号混在同一个条件中。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
### 5.2 前端参数拼接规则
`searchTable()` 或对应主查询方法中增加物料编码条件。
推荐参数格式:
```js
this.materialCodeValue ? materialCodeValue_check = 1 : materialCodeValue_check = 0
param[n] = ['物料编码_check', materialCodeValue_check]
param[n + 1] = ['物料编码', this.materialCodeValue]
```
如果后端存储过程使用字段名 `物料编码`,前端统一传 `物料编码_check``物料编码`。如果历史过程使用 `物料码``物料编号``物料流水号` 等字段,需要在后端过程内做兼容或在本页面保持原过程约定,但文档和页面显示统一为“物料编码”。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
### 5.3 后端查询过程调整
涉及页面对应的存储过程需要增加物料编码可选参数。
推荐参数:
```sql
@_check int = 0,
@ nvarchar(100) = null
```
推荐过滤逻辑:
```sql
if @_check = 1
begin
set @sql = @sql + ' and 物料编码 like ''%'' + @物料编码 + ''%'' '
end
```
如果业务上要求扫码后精确定位,可在库存盘点页面优先使用精确匹配:
```sql
and = @
```
考虑到目前系统搜索习惯多为模糊查询,第一阶段建议使用模糊查询;后续如果标签扫码稳定,可在盘点页面增加“精确匹配”策略或自动识别完整编码时使用精确匹配。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
### 5.4 查询与导出一致
凡是页面支持 Excel 导出的,导出参数必须同步增加物料编码条件。
要求:
1. 页面查询传入 `物料编码_check``物料编码`
2. 导出方法传入同样的 `物料编码_check``物料编码`
3. 同一组搜索条件下,页面列表与导出文件数据范围一致。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
## 6. 页面设计细节
### 6.1 物料查询页面
文件:`src/views/TechnologyCenter/MaterialQuery/index.vue`
设计要求:
1. 搜索栏保留物料编码、物料名称、图号/型号、物料类型、修改时间。
2. 查询方法 `searchTable()` 中确认 `物料编码_check``物料编码` 参数可传入后端。
3. 表格中建议保留或增加物料编码列,便于和搜索条件互相验证。
4. 物料编码为空时,查询结果与原逻辑一致。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
### 6.2 物料维护页面
文件:`src/views/TechnologyCenter/MaterialMaintain/index.vue`
设计要求:
1. 与物料查询页面保持搜索条件一致。
2. 维护人员可通过物料编码快速定位需要修改的物料。
3. 如果物料名称或图号重复,编码搜索结果应能明确定位到具体记录。
4. 修改物料基础信息时,不允许随意修改唯一物料编码;如确需修改,应由权限或后端规则控制。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
### 6.3 库存查询页面
文件:`src/views/WarehouseManagement/InventoryQuery/index.vue`
设计要求:
1. 搜索栏保留物料编号、物料名称、图号型号、类型、库位或仓库等条件。
2. 页面显示文案建议统一为“物料编码”,避免“物料编号”和“物料编码”混用造成理解偏差。
3. 查询时支持按物料编码过滤当前库存。
4. 如果用户同时输入物料编码和库位,应返回该编码在指定库位下的库存记录。
5. 导出库存数据时同步带入物料编码条件。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
### 6.4 物料库位页面
文件:`src/views/WarehouseManagement/MaterialLocation/index.vue`
设计要求:
1. 搜索栏保留物料编码、物料名称/规格、图号/型号、库位。
2. 现场可输入标签物料编码,快速确认该物料当前绑定或存放库位。
3. 物料编码与库位组合查询时,应可用于检查实物库位与系统库位是否一致。
4. 若未查到数据,应提示用户确认物料编码是否存在或是否已维护库位。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
### 6.5 库存盘点页面
文件:`src/views/WarehouseManagement/InventoryCheck/index.vue`
设计要求:
1. 作为本次需求的重点页面,搜索栏必须支持物料编码。
2. 现场盘点时,人员可根据物料标签输入或扫码物料编码,快速筛选盘点记录。
3. 如果物料编码唯一匹配一条库存记录,应减少人工在多条同名物料中判断的成本。
4. 如果同一物料编码在多个库位有库存,应按库位分行展示,便于盘点人员逐库位确认。
5. 盘点导入、盘点导出、盘点明细查询如使用同一查询条件,应同步支持物料编码。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
### 6.6 入库记录和退货记录页面
涉及文件:
- `src/views/WarehouseManagement/WarehousingRecord/WarehousingRecord.vue`
- `src/views/WarehouseManagement/ReturnRecord/index.vue`
设计要求:
1. 入库记录应可按物料编码追溯某一物料的入库历史。
2. 退货记录应可按物料编码追溯某一物料的退货历史。
3. 如果当前页面只有“物料名称/编号/规格/型号”综合输入框,建议拆分出独立“物料编码”输入框。
4. 页面查询与导出保持一致。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
## 7. 接口和存储过程影响
本项目业务请求统一通过 `MESCommonBase.ashx`,前端通过 `CreateData(type, name, data, pageSize, pageList)` 构建请求。新增物料编码查询不改变请求端点,不新增前端请求封装方式。
可能涉及的后端过程包括但不限于:
| 页面 | 可能涉及接口或过程 | 调整内容 |
| ---- | ------------------------ | -------- |
| 物料查询 | `物料管理_查询数据_分页` | 增加物料编码过滤 |
| 物料维护 | `物料管理_查询数据_分页` 或对应维护查询过程 | 增加物料编码过滤 |
| 库存查询 | 仓储库存查询相关过程 | 增加物料编码过滤 |
| 物料库位 | 仓储管理物料库位查询相关过程 | 增加物料编码过滤 |
| 库存盘点 | 仓储管理库存盘点查询相关过程 | 增加物料编码过滤 |
| 入库记录 | 仓储管理入库记录查询和导出过程 | 增加物料编码过滤 |
| 退货记录 | 仓储管理退货记录查询过程 | 增加物料编码过滤 |
后端调整原则:
1. 新增参数必须为可选参数,避免影响未改造页面。
2. 原有查询条件保持不变,物料编码作为新增条件叠加。
3. SQL 字段命名优先使用数据库现有字段,常见字段为 `物料编码`
4. 如果查询主表没有物料编码字段,应通过物料流水号关联物料主文件取得编码后过滤。
5. 对大数据页面应确认物料编码字段有索引或可使用已有索引,避免新增条件后查询变慢。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
## 8. 数据规则
### 8.1 物料编码唯一性
物料编码应作为系统内识别物料的唯一业务编码。后续标签打印、库存盘点、入库、出库、库位维护等环节,应优先使用物料编码进行识别和核对。
如果历史数据中存在物料编码为空或重复,应先由主数据维护人员进行清理,并形成异常清单。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
### 8.2 物料名称和图号保留辅助识别
新增物料编码搜索后,物料名称、图号或型号仍然保留,用于人工理解和辅助筛选。系统不应因为新增物料编码而删除或弱化原有查询字段。
推荐使用方式:
1. 盘点现场优先输入或扫码物料编码。
2. 不清楚编码时,可使用物料名称或图号模糊查询。
3. 编码、名称、图号可组合使用,进一步缩小范围。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
## 9. 前端开发步骤
1. 梳理核心页面现有搜索栏,确认是否已有物料编码输入框。
2. 对没有独立物料编码输入框的页面,新增 `el-input`
3.`data()` 中新增或确认变量,例如 `materialCodeValue``MaterialCode`
4.`searchTable()` 中增加编码输入值判断,生成 `物料编码_check`
5.`param` 数组中追加 `物料编码_check``物料编码`
6. 同步调整导出方法中的查询参数。
7. 确认分页重置逻辑:点击查询或回车查询时,`pageCurrent` 应重置为 `1`
8. 检查表格是否显示物料编码列;若不显示,应评估是否需要补充。
9. 按项目要求在变更代码处追加备注:`修改人:Ld 修改时间:当时的时间`
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
## 10. 后端开发步骤
1. 确认各页面 `CreateData` 中的 `name` 对应后端存储过程。
2. 在存储过程参数中增加 `物料编码_check``物料编码`
3. 在查询条件中增加物料编码过滤逻辑。
4. 如果过程使用动态 SQL同步补充 `sp_executesql` 参数定义和参数传值。
5. 如果导出使用独立过程,导出过程同步增加物料编码过滤。
6. 对库存盘点、库存查询等大数据过程执行查询计划检查。
7. 使用实际物料编码测试单条件查询、组合条件查询、空条件查询。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
## 11. 验收标准
### 11.1 功能验收
1. 在核心物料搜索栏页面可以看到“物料编码”查询条件。
2. 输入完整物料编码后,可以查询到对应物料或库存记录。
3. 输入不存在的物料编码时,页面返回空结果,不报错。
4. 物料编码与物料名称组合查询时,结果同时满足两个条件。
5. 物料编码与图号或型号组合查询时,结果同时满足两个条件。
6. 清空物料编码后,查询结果恢复为原有条件下的结果。
7. 页面分页、排序、刷新后查询逻辑正常。
8. 导出文件与页面查询结果范围一致。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
### 11.2 现场验收
1. 使用现场物料标签上的唯一物料编码进行查询。
2. 同名物料、同图号物料场景下,能通过物料编码准确区分。
3. 盘点人员可以根据物料编码快速定位物料及库位。
4. 现场不再需要仅依赖物料名称或图号人工判断同名物料。
5. 盘点差异复核时,可以通过物料编码追溯库存记录、入库记录或退货记录。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
## 12. 测试用例
| 用例编号 | 测试场景 | 操作步骤 | 预期结果 |
| ------ | --------- | ---------------- | ---------------- |
| TC-001 | 按完整物料编码查询 | 输入完整物料编码,点击查询 | 返回对应物料记录 |
| TC-002 | 按部分物料编码查询 | 输入物料编码前几位,点击查询 | 返回编码包含输入内容的记录 |
| TC-003 | 编码不存在 | 输入不存在的编码,点击查询 | 返回空列表,页面不报错 |
| TC-004 | 编码加名称组合查询 | 输入物料编码和物料名称,点击查询 | 结果同时满足编码和名称条件 |
| TC-005 | 编码加图号组合查询 | 输入物料编码和图号,点击查询 | 结果同时满足编码和图号条件 |
| TC-006 | 清空编码查询 | 清空物料编码,仅保留原条件查询 | 结果与原逻辑一致 |
| TC-007 | 盘点页面标签验证 | 使用现场标签编码查询库存盘点页面 | 能快速定位对应物料或对应库位库存 |
| TC-008 | 导出一致性 | 输入物料编码查询后导出 | 导出数据与页面筛选范围一致 |
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
## 13. 风险与控制
| 风险 | 影响 | 控制措施 |
| ---------------------- | ------------- | ------------------------- |
| 历史物料编码为空 | 无法通过编码定位部分旧物料 | 输出异常清单,先补齐主数据 |
| 历史物料编码重复 | 查询结果仍可能多条 | 主数据维护阶段校验唯一性 |
| 前端显示“物料编号”、后端字段为“物料编码” | 用户理解和开发传参不一致 | 页面文案统一为“物料编码”,后端字段按实际字段兼容 |
| 大表增加模糊查询后变慢 | 查询性能下降 | 对物料编码字段建立索引,必要时完整编码使用精确匹配 |
| 查询和导出条件不一致 | 用户导出数据与页面不一致 | 导出方法同步加入物料编码参数 |
| 弹窗查询未同步改造 | 部分业务入口仍无法按编码查 | 第一阶段聚焦页面搜索栏,第二阶段再扩展弹窗 |
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
## 14. 推进计划
| 阶段 | 工作内容 | 产出 |
| ---- | --------------------------- | -------------- |
| 第一阶段 | 确认核心页面和对应存储过程 | 页面与接口清单 |
| 第二阶段 | 改造库存盘点、库存查询、物料库位、物料查询、物料维护 | 核心页面支持物料编码查询 |
| 第三阶段 | 改造入库记录、退货记录、物料记录、库存记录、采购件入库 | 相关追溯页面支持物料编码查询 |
| 第四阶段 | 调整导出、分页、排序、后端过程性能 | 查询与导出一致 |
| 第五阶段 | 使用现场标签数据验收 | 验收记录和问题清单 |
备注:修改人:Ld 修改时间:2026-06-29 13:26:44
## 15. 结论
本次“核心物料搜索栏添加物料编码查询功能”是库存盘点现场提出的实际业务需求。需求核心不是简单增加一个输入框,而是将现场实物标签识别方式与系统查询方式统一起来。
通过在核心物料搜索栏页面增加物料编码查询能力,系统可以减少因物料名称、图号或型号重复导致的盘点确认困难,帮助现场人员以唯一物料编码快速定位物料、库存和库位记录,提高盘点效率和数据准确性。
第一阶段建议优先完成仓储盘点和物料主数据相关页面,确保现场库存盘点可用;第二阶段再逐步扩展到采购、生产、装配、销售等模块中更多物料相关查询入口。
备注:修改人:Ld 修改时间:2026-06-29 13:26:44

View File

@@ -0,0 +1,155 @@
# 物料编号搜索功能设计说明
## 01-功能内容
本次功能是在项目中涉及物料搜索的页面和弹窗中,新增“物料编号/物料编码”独立搜索条件。
目标效果:
1. 用户可以直接输入物料编号定位物料。
2. 原有物料名称、图号/型号、库位、类型等搜索条件保持不变。
3. 新增编号搜索与原有条件可以组合查询。
4. 后端存储过程新增可选参数,未传物料编号时不影响原查询结果。
5. 导出场景同步支持物料编号条件,避免页面查询和导出数据不一致。
覆盖范围:
| 模块 | 页面/组件 | 查询入口 |
| --- | --- | --- |
| 仓储管理 | 库存盘点 | 主列表查询、导出 |
| 仓储管理 | 库存查询 | 主列表查询、导出 |
| 仓储管理 | 入库记录 | 主列表查询、导出 |
| 仓储管理 | 物料库位 | 主列表查询 |
| 仓储管理 | 领料/耗材 | 耗材物料选择查询 |
| 技术中心 | 物料查询 | 主列表查询 |
| 技术中心 | 物料维护 | 主列表查询 |
| 技术中心 | 图纸确认 | 物料选择弹窗 |
| 技术中心 | 图纸确认分配 | 物料选择弹窗 |
| 销售管理 | 订单管理 | 物料选择弹窗 |
| 销售管理 | 订单审核 | 物料选择弹窗 |
| 销售管理 | 订单查询 | 物料选择弹窗 |
| 装配管理 | 接收装配任务 | 物料选择弹窗 |
| 装配管理 | 接收滑台装配任务 | 物料选择弹窗 |
## 02-程序开发步骤
### 前端改造
1. 定位所有已有物料搜索入口,重点筛选包含 `物料名称_check``物料名称规格型号``仓储管理_通用库存_查询``物料管理_查询数据_分页` 的组件。
2. 在搜索栏或物料选择弹窗中新增输入框:
- `placeholder="物料编号"``placeholder="物料编码"`
- 使用 Vue 2 Options API 的 `data()` 字段维护输入值。
3. 在查询方法中新增判断变量:
- `物料编码_check = 1/0`
- `物料编码 = 输入值`
4. 将新增参数追加到原有 `param` 数组中。
5. 导出方法同步追加相同参数,保证查询和导出一致。
6. 保持原有 `CreateData``ExecDatabase` 调用方式,不新增请求封装。
### 后端改造
1. 对相关 SQL Server 存储过程增加可选参数:
- `@物料编码_check bit = null`
- `@物料编码 nvarchar(50) = null`
2. 在动态 SQL WHERE 条件中追加:
-`@物料编码_check = 1` 时,按物料编码模糊查询。
3.`sp_executesql` 同步补充参数声明和值传递。
4. 保持兼容性:未传编号条件时,原查询逻辑不变。
## 03-推进台账
| 轮次 | 做了什么 | 改了哪些文件/对象 | 验证了什么 | 下一步 |
| --- | --- | --- | --- | --- |
| 1 | 全局扫描物料搜索入口 | `src/views/**` | 找到物料名称搜索、物料选择弹窗、库存类查询入口 | 确定改造范围 |
| 2 | 仓储核心页面新增编号搜索 | 库存盘点、库存查询、入库记录 | 前端参数可生成 `物料编码_check/物料编码` | 补后端过程 |
| 3 | 共用物料选择弹窗新增编号搜索 | 销售、装配、技术确认相关页面 | 统一覆盖 `仓储管理_通用库存_查询` | 补共用查询过程 |
| 4 | 剩余物料主数据类入口新增编号搜索 | 物料查询、物料维护、物料库位、耗材领料 | 页面输入框与参数完整 | 补对应过程 |
| 5 | 执行 SQL Server 存储过程改造 | 9 个存储过程 | 直接调用过程验证编号条件不报错 | 前端解析验证 |
| 6 | 前端结构验证 | 14 个 `.vue` 文件 | `vue-template-compiler` 模板解析通过 | 形成文档 |
## 04-任务矩阵
| 任务编号 | 任务内容 | 状态 | 验收标准 |
| --- | --- | --- | --- |
| M-001 | 库存盘点增加物料编号搜索 | 已完成 | 页面可输入物料编号查询,导出同条件 |
| M-002 | 库存查询增加物料编号搜索 | 已完成 | 主查询和导出均带编号条件 |
| M-003 | 入库记录增加物料编号搜索 | 已完成 | 主查询和导出均带编号条件 |
| M-004 | 物料库位增加物料编号搜索 | 已完成 | 可按物料编号定位库位记录 |
| M-005 | 耗材领料增加物料编号搜索 | 已完成 | 耗材列表可按编号查询 |
| M-006 | 物料查询增加物料编码搜索 | 已完成 | 物料主文件查询可按编码过滤 |
| M-007 | 物料维护增加物料编码搜索 | 已完成 | 维护列表可按编码过滤 |
| M-008 | 共用库存物料选择弹窗增加编号搜索 | 已完成 | 销售、装配、技术确认弹窗可按编号查 |
| M-009 | 后端查询过程增加编号参数 | 已完成 | 存储过程直接传编号参数执行成功 |
| M-010 | 前端模板结构验证 | 已完成 | 改动 `.vue` 模板解析全部通过 |
## 05-验收证据
### 前端解析验证
验证命令:
```powershell
node -e "使用 vue-template-compiler 解析改动的 .vue 文件"
```
验证范围:
- `src/views/WarehouseManagement/InventoryCheck/index.vue`
- `src/views/WarehouseManagement/InventoryQuery/index.vue`
- `src/views/WarehouseManagement/WarehousingRecord/WarehousingRecord.vue`
- `src/views/WarehouseManagement/MaterialLocation/index.vue`
- `src/views/WarehouseManagement/MaterialRequisition/index.vue`
- `src/views/TechnologyCenter/MaterialQuery/index.vue`
- `src/views/TechnologyCenter/MaterialMaintain/index.vue`
- `src/views/AssemblyManagement/ReceiveAssemblyTask/index.vue`
- `src/views/AssemblyManagement/ReceiveAssemblyTaskSliding/index.vue`
- `src/views/SalesManagement/OrderExamine/index.vue`
- `src/views/SalesManagement/OrderManagement/index.vue`
- `src/views/SalesManagement/OrderInquiry/index.vue`
- `src/views/TechnologyCenter/DrawingConfirmation/index.vue`
- `src/views/TechnologyCenter/DrawingConfirmationDistribution/index.vue`
结果:全部 `ok`
### SQL 执行验证
验证数据库:
- SQL Server`192.168.1.27`
- 数据库:`ERPTOOL_JY_20250826Back`
验证方式:直接调用相关存储过程并传入 `@物料编码_check=1,@物料编码=N'0'`
验证通过的过程:
- `物料管理_查询数据_分页`
- `仓储管理_物料库位_查询数据`
- `仓储管理_耗材出库_查询`
- `仓储管理_库存盘点_查询`
- `仓储管理_库存查询_查询`
- `仓储管理_通用库存_查询`
- `报表_仓储管理_通用库存_查询`
- `仓储管理_入库记录_查询`
- `仓储管理_入库记录_导出表格_查询`
结果:`all sql execution ok`
## 06-决策记录
| 决策点 | 选择 | 原因 |
| --- | --- | --- |
| 搜索字段命名 | 前端显示“物料编号/物料编码”,后端参数使用 `物料编码` | 数据库字段主要为 `物料编码`,页面展示常称为物料编号 |
| 是否复用物料名称输入框 | 不复用,新增独立输入框 | 用户明确要求“添加物料编号搜索功能”,独立条件更清晰 |
| 后端参数是否必传 | 可选参数 | 保持旧页面、旧查询兼容 |
| 查询方式 | 模糊查询 | 与项目内物料名称、图号搜索习惯一致 |
| 共用弹窗处理 | 统一改 `仓储管理_通用库存_查询` 调用方 | 多个页面共用同一库存物料选择过程,统一补能避免重复逻辑 |
| 导出是否同步 | 同步 | 防止页面筛选结果和导出结果不一致 |
| 是否完整构建 | 未执行完整 build | 当前工作区已有 `dist.7z` 等既有脏文件,避免构建重写产物 |
## 07-后续注意事项
1. 新增物料搜索页面时,如表格展示 `物料编码`,搜索栏应同步提供物料编号输入框。
2. 新增后端查询过程时,建议统一支持:
- `@物料编码_check`
- `@物料编码`
3. 如果后续改为统一物料选择组件,可将物料编号、物料名称、图号/型号三个搜索项抽成共用弹窗,减少重复页面维护。