Appearance
设备部件管理
**本文引用的文件** - [PartMainApi.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-device/lemes-service-dm-device-common/src/main/java/com/lenovo/lemes/service/dm/device/api/PartMainApi.java) - [DeviceTypeApi.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-device/lemes-service-dm-device-common/src/main/java/com/lenovo/lemes/service/dm/device/api/DeviceTypeApi.java) - [accessories.vue](file://app/devicemate-app/modules/equipment/accessories.vue) - [spareParts.vue(设备页)](file://app/devicemate-app/modules/equipment/spareParts.vue) - [spareParts.vue(维修任务)](file://app/devicemate-app/modules/repair/components/spareParts.vue) - [execute.vue(维修任务)](file://app/devicemate-app/modules/repair/execute.vue) - [spareParts.vue(保养任务)](file://app/devicemate-app/modules/maintain/components/spareParts.vue) - [execute.vue(保养任务)](file://app/devicemate-app/modules/maintain/execute.vue) - [apply.vue(维修申请)](file://app/devicemate-app/modules/repair/apply.vue) - [applyPart.vue(维修申请选择部件)](file://app/devicemate-app/modules/repair/applyPart.vue) - [applyPart.vue(保养申请选择部件)](file://app/devicemate-app/modules/maintain/applyPart.vue) - [repair.js(Vuex模块)](file://app/devicemate-app/store/modules/repair.js) - [StoreOutDetailVo.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/model/store/StoreOutDetailVo.java) - [AGENTS.md](file://lemes-cloud/lemes-business-devicemate/AGENTS.md)目录
简介
本技术文档围绕“设备部件管理”主题,系统化梳理设备部件主数据管理、设备与部件的关联关系管理、以及前后端交互的API与界面实现。重点覆盖以下方面:
- 设备部件主数据:部件的创建、关联、查询、维护等核心能力
- 数据模型设计:部件编码、名称、规格型号、供应商、单价、计量单位等字段
- 关联关系管理:部件装配、拆卸、更换等操作机制
- 完整API接口文档:RESTful设计、参数说明与响应格式
- 实际代码示例路径:部件CRUD、设备部件关联、批量操作处理
- 导入导出:Excel模板与数据校验建议
- 最佳实践与性能优化
项目结构
设备部件管理涉及三层:
- 前端应用(小程序/UniApp):负责用户交互、表单输入、调用后端API
- 网关与业务域服务:设备域提供部件主数据与设备类型查询接口
- 作业域(可选):库存出库明细模型用于支撑部件生命周期与成本核算
图表来源
章节来源
核心组件
- 前端组件
- 设备页部件列表:展示设备关联的备件与耗材
- 维修/保养任务部件面板:支持更换、替换、变更数量等操作
- 维修/保养申请页面:选择部件并提交申请
- 后端接口
- 部件主数据查询:不分页列表、按代号/编号查询
- 设备类型查询:根据关联物料查询设备种类
- 作业域模型
- 库存出库明细模型:支撑部件生命周期、成本与库存跟踪
章节来源
- spareParts.vue(设备页):1-131
- spareParts.vue(维修任务):27-55
- execute.vue(维修任务):96-163
- spareParts.vue(保养任务):27-59
- execute.vue(保养任务):108-175
- PartMainApi.java:28-42
- DeviceTypeApi.java:19-21
- StoreOutDetailVo.java:11-86
架构总览
设备部件管理采用前后端分离架构:
- 前端通过HTTP请求调用后端提供的REST接口
- 设备域服务提供部件主数据与设备类型查询
- 作业域服务提供库存出库明细模型,辅助部件生命周期与成本统计
图表来源
详细组件分析
设备部件主数据接口
- 接口职责
- 不分页查询部件主数据
- 根据部件代号/编号查询部件详情
- 请求与响应
- 列表查询:POST /dm-device/device/part-main/list
- 详情查询(代号):GET /dm-device/device/part-main/detail/one?partNo=xxx
- 详情查询(编号):GET /dm-device/device/part-main/detail/one/code?partCode=xxx
- 参数与返回
- 请求体:PartMainQueryVo(查询条件)
- 返回体:ResultData<List<PartMainVo>>
- 详情接口返回:ResultData<PartMainVo>
图表来源
章节来源
设备类型查询接口
- 接口职责
- 根据关联物料查询设备种类
- 请求与响应
- GET /dm-device/device/device-type/getDeviceTypeByPartNo?partNo=xxx
- 返回:ResultData<DeviceTypeVo>
图表来源
章节来源
设备页部件列表
- 功能点
- 展示设备关联的备件与耗材
- 支持切换“备件/耗材”两个数据源
- 关键接口
- POST /dm-device/device/consumable/list(传入deviceNo与dataType)
图表来源
章节来源
设备部件关联与操作(维修/保养)
- 功能点
- 更换(change):针对已安装部件进行替换
- 替换(replace):从库存中取出部件进行装配
- 变更数量:更新部件使用数量或出库数量
- 关键接口
- 更换/替换保存:POST /dm-device/device/parts/detail/save
- 更新使用数量:POST /dm-device/device/parts/detail/update
- 删除部件:POST /dm-device/device/parts/delete
- 前端交互
- 通过弹窗输入数量,校验库存/出库上限
- 成功后刷新页面数据
图表来源
章节来源
设备部件关联查询(设备页)
- 功能点
- 展示设备的父设备、子设备与关联部件信息
- 关键接口
- 设备关联设备列表:POST /dm-device/device/eq/list
- 设备部件列表:POST /dm-device/device/parts/list
图表来源
章节来源
维修/保养申请(部件选择与提交)
- 功能点
- 选择部件并填写使用数量、产线、仓库等信息
- 提交申请,后端生成工单并流转
- 关键接口
- 申请提交:POST /dm-device/repairWorkOrders/applyFor
- 页面初始化:GET /dm-device/device/main/detail/
图表来源
章节来源
数据模型设计
- 部件主数据(PartMainVo)
- 字段要点:部件编码、部件名称、规格型号、计量单位、供应商、单价等
- 用途:作为设备部件的主数据基础
- 设备类型(DeviceTypeVo)
- 字段要点:设备种类、设备代码、设备名称等
- 用途:根据关联物料确定设备类型
- 库存出库明细(StoreOutDetailVo)
- 字段要点:出库单号、部件编号/编码、序列号、产品线、库区/储位、数量、单价、寿命、成本核算等
- 用途:支撑部件生命周期、成本与库存跟踪
图表来源
章节来源
关联关系管理流程
- 装配:从库存取出部件并装配到设备(替换接口)
- 拆卸:删除设备上的部件(删除接口)
- 更换:对已安装部件进行替换(变更数量/替换保存接口)
- 批量操作:通过申请页面批量提交多个部件的使用需求
图表来源
章节来源
API接口清单与说明
- 部件主数据
- POST /dm-device/device/part-main/list
- 请求体:PartMainQueryVo
- 响应:ResultData<List<PartMainVo>>
- GET /dm-device/device/part-main/detail/one?partNo=xxx
- 响应:ResultData<PartMainVo>
- GET /dm-device/device/part-main/detail/one/code?partCode=xxx
- 响应:ResultData<PartMainVo>
- POST /dm-device/device/part-main/list
- 设备类型
- GET /dm-device/device/device-type/getDeviceTypeByPartNo?partNo=xxx
- 响应:ResultData<DeviceTypeVo>
- GET /dm-device/device/device-type/getDeviceTypeByPartNo?partNo=xxx
- 设备部件关联
- POST /dm-device/device/consumable/list
- 请求体:
- 响应:部件列表
- POST /dm-device/device/eq/list
- 请求体:
- 响应:父子设备列表
- POST /dm-device/device/parts/list
- 请求体:
- 响应:部件列表
- POST /dm-device/device/consumable/list
- 维修/保养部件操作
- POST /dm-device/device/parts/detail/save
- 请求体:[{deviceNo, partNo, partNumber, usefulLife, serialNumber, ...}]
- 响应:保存结果
- POST /dm-device/device/parts/detail/update
- 请求体:[{deviceNo, partNo, updateNumber, ...}]
- 响应:更新结果
- POST /dm-device/device/parts/delete
- 请求体:[{deviceNo, partNo, partNumber, ...}]
- 响应:删除结果
- POST /dm-device/device/parts/detail/save
- 申请提交
- POST /dm-device/repairWorkOrders/applyFor
- 请求体:[{partNo, partType, productLineNo, storeNo, useCount, workOrderNo}, ...]
- 响应:提交结果
- POST /dm-device/repairWorkOrders/applyFor
章节来源
- PartMainApi.java:28-42
- DeviceTypeApi.java:19-21
- spareParts.vue(设备页):58-69
- accessories.vue:88-111
- execute.vue(维修任务):114-163
- execute.vue(保养任务):126-175
- apply.vue(维修申请):115-133
Excel导入导出与模板设计
- 导入建议
- 模板字段:部件编码、部件名称、规格型号、计量单位、单价、供应商等
- 校验规则:必填项校验、唯一性校验(如部件编码)、数值范围校验(单价、数量)、枚举值校验(计量单位)
- 批量写入:后端提供批量导入接口,逐条校验并回滚失败记录
- 导出建议
- 模板字段:设备编号、部件编码、部件名称、规格型号、序列号、装配数量、单价、出库数量、库存数量、装配时间等
- 过滤与排序:支持按设备、部件、时间维度筛选
(本节为通用实践建议,不直接分析具体文件)
实际代码示例路径
- 设备页部件列表
- 设备部件关联查询
- 维修/保养部件操作
- 维修/保养申请
- 部件主数据查询
- 设备类型查询
- 作业域模型(库存出库明细)
章节来源
- spareParts.vue(设备页):1-131
- accessories.vue:1-198
- execute.vue(维修任务):96-163
- execute.vue(保养任务):108-175
- apply.vue(维修申请):75-175
- applyPart.vue(维修申请选择部件):32-59
- applyPart.vue(保养申请选择部件):32-59
- PartMainApi.java:1-44
- DeviceTypeApi.java:1-22
- StoreOutDetailVo.java:1-86
依赖分析
- 前端模块间依赖
- 维修/保养任务页依赖部件面板组件,面板组件依赖Vuex中的部件列表状态
- 设备页依赖设备部件列表与设备关联设备列表接口
- 后端服务依赖
- 设备域服务依赖数据库存储部件主数据与设备类型
- 作业域服务提供库存出库明细模型,支撑部件生命周期与成本统计
图表来源
- repair.js(Vuex模块):32-43
- spareParts.vue(维修任务):27-55
- spareParts.vue(保养任务):27-59
- spareParts.vue(设备页):58-69
- accessories.vue:88-111
章节来源
- repair.js(Vuex模块):1-49
- spareParts.vue(维修任务):1-55
- spareParts.vue(保养任务):1-59
- spareParts.vue(设备页):1-131
- accessories.vue:1-198
性能考虑
- 前端
- 列表懒加载与分页:避免一次性渲染大量部件数据
- 缓存策略:对常用部件主数据进行本地缓存,减少重复请求
- 表单校验前置:在提交前完成数量与数值校验,降低无效请求
- 后端
- 接口幂等:替换/变更/删除操作需保证幂等性,避免重复装配
- 批量写入:提供批量导入接口,提升大批量数据处理效率
- 数据索引:为部件编码、设备编号、序列号建立索引,提升查询性能
(本节提供通用指导,不直接分析具体文件)
故障排查指南
- 常见问题
- 数量超限:替换数量超过库存或出库数量时提示错误
- 非整数数量:使用小数或空值时提示错误
- 重复提交:同一部件多次提交导致重复装配
- 建议排查步骤
- 检查前端校验逻辑与提示信息
- 查看后端接口返回码与日志
- 核对数据库中部件装配记录与库存数量
- 相关实现参考
- 数量校验与提示:替换数量与出库数量校验
- 申请数量校验:非空与整数校验
- Vuex状态管理:部件列表状态清理
章节来源
结论
设备部件管理通过清晰的前后端分工与标准化接口,实现了部件主数据管理、设备部件关联与操作、以及申请流程的完整闭环。结合作业域的库存出库明细模型,可进一步完善部件生命周期与成本管理。建议在后续迭代中强化导入导出能力与批量操作体验,并持续优化查询与装配性能。
附录
- 开发与运行指引
- 聚合构建与单模块构建命令
- 业务域边界与测试注意事项
章节来源