Skip to content

order 链路分析

源文件:docs/front end/dm/lemes-web/src/views/devicemate/repair/order/order.vue

前端 API:docs/front end/dm/lemes-web/src/views/devicemate/api/repair/order/index.js

后端落点:lemes-cloud/lemes-business-devicemate/lemes-service-dm-device/lemes-service-dm-device-server/src/main/java/com/lenovo/lemes/service/dm/device/controller/RepairWorkOrdersController.java / lemes-cloud/lemes-business-devicemate/lemes-service-dm-device/lemes-service-dm-device-server/src/main/java/com/lenovo/lemes/service/dm/device/service/impl/RepairWorkOrdersServiceImpl.java

主表:repair_work_orders

Vue 组件总览

组件层级路径角色是否主链路是否直接CRUD独立MD跳转一句话作用
indexindex主页面当前页查看承接 order 页面主入口、列表查询和业务操作入口。

辅助组件说明

  • boxSearch:负责查询条件区,支持搜索和清空事件触发。
  • iTable:负责通用列表渲染、分页、多选、排序和操作列承载。
  • dialogs:负责通用弹窗容器、确认和关闭交互。

技术图

order 页面数据流图

  • Flow 布局:standardorder 页面摘要图

  • Summary 布局:standard

1. 页面概览

  • 当前节点对应文件 docs/front end/dm/lemes-web/src/views/devicemate/repair/order/order.vue
  • 当前节点识别到 0 个重点组件、5 个辅助组件。
  • 当前节点识别到 1 条业务页面跳转链路、6 个真实接口。
  • 页面激活时会先加载字典数据,再自动触发首屏分页查询。
  • 搜索动作会把 filterList 同步到 searchFilter,并把页码重置为第 1 页。
  • 重置动作会清空查询条件,再走一次分页查询。
  • 表格排序会把前端排序字段写入 field / order,再触发服务端排序查询。
  • 导出动作会把当前筛选条件、排序字段以及勾选 ids 一起传给导出接口。

2. 上游入口

  • detail 通过 方法 closeCurrentPage 跳转到当前页,路由为 /default/devicemate/repair/order/order

3. 业务页面跳转链路

  • 方法 goDetail -> /default/devicemate/repair/order/detail -> detail,参数 workOrderNo / type

4. 前端真实调用链

  • <boxSearch> @research -> research -> pageAjax
  • <boxSearch> @reempty -> reempty -> pageAjax
  • <iTable> @size-change / <iTable> @current-change -> currentChange -> pageAjax
  • <el-button> @click -> closeOrderHander -> orderStatusUpdateAjax / statisticsWorkOrderAjax / pageAjax
  • <el-button> @click -> exportAction -> exportExcelAjax
  • activated 生命周期 -> activated -> statisticsWorkOrderAjax / pageAjax

5. 接口总览

methodpath功能所属节点前端触发后端入口
POST/dm-device/repairWorkOrders/page分页查询主页面<boxSearch> @research -> research -> currentChange -> getPage -> pageAjaxpage
POST/dm-device/repairWorkOrders/exportExcelExcel 导出主页面<el-button> @click -> exportAction -> exportExcelAjaxexportExcel
POST/dm-device/repairWorkOrders/orderStatusUpdate业务请求主页面<el-button> @click -> closeOrderHander -> orderStatusUpdateAjaxorderStatusUpdate
POST/dm-device/repairWorkOrders/save业务请求主页面-save
POST/dm-device/repairWorkOrders/statisticsWorkOrder业务请求主页面<el-button> @click -> closeOrderHander -> getStatisticsWorkOrderAjax -> statisticsWorkOrderAjaxstatisticsWorkOrder
POST/dm-device/repairWorkOrders/upload/errorImg业务请求主页面-errorImg

6. 接口详细说明

6.1 POST /dm-device/repairWorkOrders/page

接口信息

  • 请求地址:/dm-device/repairWorkOrders/page
  • 请求方式:POST
  • 功能简述:分页查询
  • 所属页面:主页面
  • 前端触发链路:
  • <boxSearch> @research -> research -> currentChange -> getPage -> pageAjax
  • <boxSearch> @reempty -> reempty -> currentChange -> getPage -> pageAjax
  • <iTable> @size-change / <iTable> @current-change -> currentChange -> getPage -> pageAjax
  • <el-button> @click -> closeOrderHander -> currentChange -> getPage -> pageAjax
  • activated 生命周期 -> activated -> currentChange -> getPage -> pageAjax
  • 后端入口:page
  • Service 方法:pages

入参

  • 后端接口实际接收对象:RepairWorkOrdersQueryVo
  • 参数位置:body
json
{
  "pageSize": 10,
  "pageNum": 1,
  "field": "",
  "order": "",
  "workOrderNo": "",
  "deviceCode": "",
  "lineNo": "",
  "urgencyDegree": "",
  "orderStatus": "",
  "createTimeStart": "",
  "createTimeEnd": "",
  "signInTimeStart": "",
  "signInTimeEnd": "",
  "repairTimeStart": "",
  "repairTimeEnd": "",
  "productLineSet": ""
}

已在源码中确认的有效字段包括:

  • field;类型:String;来源:前端当前页面实际发送/可发送
  • order;类型:String;来源:前端当前页面实际发送/可发送
  • factoryNo;类型:String;来源:后端对象支持,当前页面未发送
  • Ids;类型:Set&lt;Long&gt;;说明:id集合;来源:后端对象支持,当前页面未发送
  • workOrderNo;类型:String;说明:工单单号;校验:长度不超过 50;来源:前端当前页面实际发送/可发送
  • deviceCode;类型:String;说明:设备识别码;校验:长度不超过 50;来源:前端当前页面实际发送/可发送
  • deviceNo;类型:String;说明:设备代号;校验:长度不超过 50;来源:后端对象支持,当前页面未发送
  • lineNo;类型:String;说明:线体代号;校验:长度不超过 50;来源:前端当前页面实际发送/可发送
  • urgencyDegree;类型:Integer;说明:紧急程度;校验:必填;来源:前端当前页面实际发送/可发送
  • orderStatus;类型:Integer;说明:工单状态;校验:必填;来源:前端当前页面实际发送/可发送
  • signInTimeStart;类型:Date;说明:签到时间-开始;来源:前端当前页面实际发送/可发送
  • signInTimeEnd;类型:Date;说明:签到时间-结束;来源:前端当前页面实际发送/可发送
  • repairTimeStart;类型:Date;说明:维修时间-开始;来源:前端当前页面实际发送/可发送
  • repairTimeEnd;类型:Date;说明:维修时间-结束;来源:前端当前页面实际发送/可发送
  • deptList;类型:List&lt;String&gt;;说明:部门代号;来源:后端对象支持,当前页面未发送
  • excutorNo;类型:String;来源:后端对象支持,当前页面未发送
  • queryData;类型:String;说明:app维修工单搜索检索条件;来源:后端对象支持,当前页面未发送
  • statusSet;类型:Set;来源:后端对象支持,当前页面未发送
  • productLineSet;类型:Set&lt;String&gt;;说明:产品线集合;来源:前端当前页面实际发送/可发送
  • lineVoList;类型:Set&lt;String&gt;;说明:线体集合;来源:后端对象支持,当前页面未发送
  • isStat;类型:Integer;说明:是否统计类接口 1、是 其他、否;来源:后端对象支持,当前页面未发送
  • deviceTypeNames;类型:List&lt;String&gt;;说明:设备种类集合;来源:后端对象支持,当前页面未发送
  • deviceClassifys;类型:List&lt;Integer&gt;;来源:后端对象支持,当前页面未发送
  • deviceTypeNos;类型:List&lt;String&gt;;来源:后端对象支持,当前页面未发送
  • deviceTypeVoList;类型:List&lt;DeviceTypeVo&gt;;来源:后端对象支持,当前页面未发送
  • deviceNos;类型:List&lt;String&gt;;来源:后端对象支持,当前页面未发送
  • secondsDiff;类型:int;来源:后端对象支持,当前页面未发送
  • issueCode;类型:String;来源:后端对象支持,当前页面未发送
  • issueName;类型:String;来源:后端对象支持,当前页面未发送
  • issueClassify;类型:Long;来源:后端对象支持,当前页面未发送
  • deviceClassify;类型:Integer;来源:后端对象支持,当前页面未发送
  • deviceTypeName;类型:String;来源:后端对象支持,当前页面未发送
  • deviceTypeNo;类型:String;来源:后端对象支持,当前页面未发送

出参

  • 外层响应:ResultData,前端实际消费的是 data 中的 rows / total。
  • 业务数据体:rows + total
json
{
  "rows": [
    {
      "id": 1,
      "partNo": "...",
      "partCode": "...",
      "partName": "...",
      "bigCategory": "...",
      "smallCategory": "...",
      "sonCategory": "...",
      "spec": "...",
      "uom": "...",
      "controlType": "...",
      "currency": "...",
      "price": "...",
      "preferredSupplier": "...",
      "supplierNo": "...",
      "isPeriod": "...",
      "isLife": "...",
      "maxLife": "...",
      "maxLifeUom": "...",
      "useModel": "...",
      "preciousType": "...",
      "validFlag": "...",
      "description": "...",
      "packageNumber": "...",
      "serialRule": "..."
    }
  ],
  "total": 0
}
  • id

  • partNo

  • partCode

  • partName

  • bigCategory

  • smallCategory

  • sonCategory

  • spec

  • uom

  • controlType

  • currency

  • price

  • preferredSupplier

  • supplierNo

  • isPeriod

  • isLife

  • maxLife

  • maxLifeUom

  • useModel

  • preciousType

  • validFlag

  • description

  • packageNumber

  • serialRule

  • baseUrl

  • BaseController.getDataTable(IPage<?>) 会固定组装 rowstotal

  • 前端 ajax.js 会继续把 ResultData.data 解包后返回给页面。

后端逻辑链路

  1. 校验
  • Controller 入口为 page(@RequestBody RepairWorkOrdersQueryVo vo),由 @Validated 和请求对象注解触发基础参数校验。
  • 已确认的长度校验字段:workOrderNodeviceCodedeviceNolineNourgencyDegreeorderStatus
  1. 预处理
  • 当前链路未识别出额外步骤。
  1. 核心业务
  • 调用文件服务批量查询附件,再拼接前端展示用 baseUrl
  1. 状态变更
  • 当前链路无数据库写操作。
  1. 数据影响
  • 库存、金额、业务状态都不会发生持久化变更;若有价格处理,仅作用于返回值或导出值。
  1. 收尾
  • 当前链路未识别出额外步骤。

数据链路

接口调用类型库名.表名mapper.pagesql作用(简写)
POST /dm-device/repairWorkOrders/page查询?.repair_work_ordersMyBatis-Plus ServiceImpl.page按筛选条件分页查询物料主数据
POST /dm-device/repairWorkOrders/page远程读取?.附件数据fileClient.listFile批量查询附件并补充图片地址

数据流走向

  • 数据来源:
  • 前端页面通过 <boxSearch> @research -> research -> currentChange -> getPage -> pageAjax 触发请求
  • 数据处理路径:
  • Controller:page
  • Service:pages
  • 调用文件服务批量查询附件,再拼接前端展示用 baseUrl
  • 数据落点:
  • ?.repair_work_orders
  • ?.附件数据

备注

  • 当前 /page 主链没有走自定义 Mapper XML,而是走 MyBatis-Plus 通用分页查询。
  • 前端请求路径含服务前缀 /dm-device,合理推断该前缀来自网关或服务路由。

6.2 POST /dm-device/repairWorkOrders/exportExcel

接口信息

  • 请求地址:/dm-device/repairWorkOrders/exportExcel
  • 请求方式:POST
  • 功能简述:Excel 导出
  • 所属页面:主页面
  • 前端触发链路:
  • <el-button> @click -> exportAction -> exportExcelAjax
  • 后端入口:exportExcel
  • Service 方法:exportExcel

入参

  • 后端接口实际接收对象:RepairWorkOrdersQueryVo
  • 参数位置:body
json
{
  "ids": [],
  "field": "",
  "order": "",
  "workOrderNo": "",
  "deviceCode": "",
  "lineNo": "",
  "urgencyDegree": "",
  "orderStatus": "",
  "reportTime": "",
  "signInTime": "",
  "repairTime": "",
  "productLineSet": ""
}

已在源码中确认的有效字段包括:

  • field;类型:String;来源:前端导出动作实际可发送
  • order;类型:String;来源:前端导出动作实际可发送
  • factoryNo;类型:String;来源:后端对象支持,当前导出动作未发送
  • Ids;类型:Set&lt;Long&gt;;说明:id集合;来源:后端对象支持,当前导出动作未发送
  • workOrderNo;类型:String;说明:工单单号;校验:长度不超过 50;来源:前端导出动作实际可发送
  • deviceCode;类型:String;说明:设备识别码;校验:长度不超过 50;来源:前端导出动作实际可发送
  • deviceNo;类型:String;说明:设备代号;校验:长度不超过 50;来源:后端对象支持,当前导出动作未发送
  • lineNo;类型:String;说明:线体代号;校验:长度不超过 50;来源:前端导出动作实际可发送
  • urgencyDegree;类型:Integer;说明:紧急程度;校验:必填;来源:前端导出动作实际可发送
  • orderStatus;类型:Integer;说明:工单状态;校验:必填;来源:前端导出动作实际可发送
  • signInTimeStart;类型:Date;说明:签到时间-开始;来源:后端对象支持,当前导出动作未发送
  • signInTimeEnd;类型:Date;说明:签到时间-结束;来源:后端对象支持,当前导出动作未发送
  • repairTimeStart;类型:Date;说明:维修时间-开始;来源:后端对象支持,当前导出动作未发送
  • repairTimeEnd;类型:Date;说明:维修时间-结束;来源:后端对象支持,当前导出动作未发送
  • deptList;类型:List&lt;String&gt;;说明:部门代号;来源:后端对象支持,当前导出动作未发送
  • excutorNo;类型:String;来源:后端对象支持,当前导出动作未发送
  • queryData;类型:String;说明:app维修工单搜索检索条件;来源:后端对象支持,当前导出动作未发送
  • statusSet;类型:Set;来源:后端对象支持,当前导出动作未发送
  • productLineSet;类型:Set&lt;String&gt;;说明:产品线集合;来源:前端导出动作实际可发送
  • lineVoList;类型:Set&lt;String&gt;;说明:线体集合;来源:后端对象支持,当前导出动作未发送
  • isStat;类型:Integer;说明:是否统计类接口 1、是 其他、否;来源:后端对象支持,当前导出动作未发送
  • deviceTypeNames;类型:List&lt;String&gt;;说明:设备种类集合;来源:后端对象支持,当前导出动作未发送
  • deviceClassifys;类型:List&lt;Integer&gt;;来源:后端对象支持,当前导出动作未发送
  • deviceTypeNos;类型:List&lt;String&gt;;来源:后端对象支持,当前导出动作未发送
  • deviceTypeVoList;类型:List&lt;DeviceTypeVo&gt;;来源:后端对象支持,当前导出动作未发送
  • deviceNos;类型:List&lt;String&gt;;来源:后端对象支持,当前导出动作未发送
  • secondsDiff;类型:int;来源:后端对象支持,当前导出动作未发送
  • issueCode;类型:String;来源:后端对象支持,当前导出动作未发送
  • issueName;类型:String;来源:后端对象支持,当前导出动作未发送
  • issueClassify;类型:Long;来源:后端对象支持,当前导出动作未发送
  • deviceClassify;类型:Integer;来源:后端对象支持,当前导出动作未发送
  • deviceTypeName;类型:String;来源:后端对象支持,当前导出动作未发送
  • deviceTypeNo;类型:String;来源:后端对象支持,当前导出动作未发送

出参

  • 外层响应:文件下载流

  • 业务数据体:Excel 二进制响应

  • 前端通过下载服务直接处理文件响应,不经过普通 JSON 列表渲染。

后端逻辑链路

  1. 校验
  • Controller 入口为 exportExcel(@RequestBody RepairWorkOrdersQueryVo vo, HttpServletResponse response),由 @Validated 和请求对象注解触发基础参数校验。
  1. 预处理
  • 当前链路未识别出额外步骤。
  1. 核心业务
  • 把查询结果转成 Excel 视图对象后导出文件。
  1. 状态变更
  • 当前链路无数据库写操作。
  1. 数据影响
  • 库存、金额、业务状态都不会发生持久化变更;若有价格处理,仅作用于返回值或导出值。
  1. 收尾
  • 当前链路未识别出额外步骤。

数据链路

接口调用类型库名.表名mapper.pagesql作用(简写)
POST /dm-device/repairWorkOrders/exportExcel查询?.repair_work_ordersMyBatis-Plus ServiceImpl.list按筛选条件导出物料主数据

数据流走向

  • 数据来源:
  • 前端页面通过 <el-button> @click -> exportAction -> exportExcelAjax 触发请求
  • 数据处理路径:
  • Controller:exportExcel
  • Service:exportExcel
  • 把查询结果转成 Excel 视图对象后导出文件。
  • 数据落点:
  • ?.repair_work_orders

备注

  • 前端请求路径含服务前缀 /dm-device,合理推断该前缀来自网关或服务路由。

6.3 POST /dm-device/repairWorkOrders/orderStatusUpdate

接口信息

  • 请求地址:/dm-device/repairWorkOrders/orderStatusUpdate
  • 请求方式:POST
  • 功能简述:业务请求
  • 所属页面:主页面
  • 前端触发链路:
  • <el-button> @click -> closeOrderHander -> orderStatusUpdateAjax
  • 后端入口:orderStatusUpdate
  • Service 方法:orderStatusUpdate

入参

  • 参数位置:unknown

  • 当前链路未展开到更细的字段级定义。

出参

  • 外层响应:ResultData

  • 业务数据体:框架统一成功响应

  • 当前链路重点在业务动作与后端处理,公共包裹字段未继续展开。

后端逻辑链路

  1. 校验
  • Controller 入口为 orderStatusUpdate(@Valid @RequestBody WorkOrdersUpdate orderUpdate),由 @Validated 和请求对象注解触发基础参数校验。
  1. 预处理
  • Service 内先构造 LambdaQueryWrapper 作为条件容器。
  1. 核心业务
  • 当前链路未识别出额外步骤。
  1. 状态变更
  • 当前链路未识别出额外步骤。
  1. 数据影响
  • 当前链路未识别出额外步骤。
  1. 收尾
  • 当前链路未识别出额外步骤。

数据链路

  • 当前链路未识别到明确数据库表操作。

数据流走向

  • 数据来源:
  • 前端页面通过 <el-button> @click -> closeOrderHander -> orderStatusUpdateAjax 触发请求
  • 数据处理路径:
  • Controller:orderStatusUpdate
  • Service:orderStatusUpdate
  • 数据落点:
  • 当前链路未识别到明确数据落点。

备注

  • 前端请求路径含服务前缀 /dm-device,合理推断该前缀来自网关或服务路由。

6.4 POST /dm-device/repairWorkOrders/save

接口信息

  • 请求地址:/dm-device/repairWorkOrders/save
  • 请求方式:POST
  • 功能简述:业务请求
  • 所属页面:主页面
  • 后端入口:save
  • Service 方法:saveRepairWorkOrders

入参

  • 参数位置:unknown

  • 当前链路未展开到更细的字段级定义。

出参

  • 外层响应:ResultData

  • 业务数据体:框架统一成功响应

  • 当前链路重点在业务动作与后端处理,公共包裹字段未继续展开。

后端逻辑链路

  1. 校验
  • Controller 入口为 save(@Valid @RequestBody RepairWorkOrdersVo workOrdersVo),由 @Validated 和请求对象注解触发基础参数校验。
  1. 预处理
  • Service 内先构造 LambdaQueryWrapper 作为条件容器。
  1. 核心业务
  • 当前链路未识别出额外步骤。
  1. 状态变更
  • 当前链路未识别出额外步骤。
  1. 数据影响
  • 当前链路未识别出额外步骤。
  1. 收尾
  • 当前链路未识别出额外步骤。

数据链路

接口调用类型库名.表名mapper.pagesql作用(简写)
POST /dm-device/repairWorkOrders/save远程写入?.附件数据fileClient.updateFile回写附件 targetId,绑定业务对象

数据流走向

  • 数据来源:
  • 前端页面通过 当前页面动作 触发请求
  • 数据处理路径:
  • Controller:save
  • Service:saveRepairWorkOrders
  • 数据落点:
  • ?.附件数据

备注

  • 前端请求路径含服务前缀 /dm-device,合理推断该前缀来自网关或服务路由。

6.5 POST /dm-device/repairWorkOrders/statisticsWorkOrder

接口信息

  • 请求地址:/dm-device/repairWorkOrders/statisticsWorkOrder
  • 请求方式:POST
  • 功能简述:业务请求
  • 所属页面:主页面
  • 前端触发链路:
  • <el-button> @click -> closeOrderHander -> getStatisticsWorkOrderAjax -> statisticsWorkOrderAjax
  • activated 生命周期 -> activated -> getStatisticsWorkOrderAjax -> statisticsWorkOrderAjax
  • 后端入口:statisticsWorkOrder
  • Service 方法:statisticsWorkOrder

入参

  • 参数位置:unknown

  • 当前链路未展开到更细的字段级定义。

出参

  • 外层响应:ResultData

  • 业务数据体:框架统一成功响应

  • 当前链路重点在业务动作与后端处理,公共包裹字段未继续展开。

后端逻辑链路

  1. 校验
  • Controller 入口为 statisticsWorkOrder(@RequestBody RepairWorkOrdersQueryVo vo),由 @Validated 和请求对象注解触发基础参数校验。
  1. 预处理
  • 当前链路未识别出额外步骤。
  1. 核心业务
  • 当前链路未识别出额外步骤。
  1. 状态变更
  • 当前链路未识别出额外步骤。
  1. 数据影响
  • 当前链路未识别出额外步骤。
  1. 收尾
  • 当前链路未识别出额外步骤。

数据链路

  • 当前链路未识别到明确数据库表操作。

数据流走向

  • 数据来源:
  • 前端页面通过 <el-button> @click -> closeOrderHander -> getStatisticsWorkOrderAjax -> statisticsWorkOrderAjax 触发请求
  • 数据处理路径:
  • Controller:statisticsWorkOrder
  • Service:statisticsWorkOrder
  • 数据落点:
  • 当前链路未识别到明确数据落点。

备注

  • 前端请求路径含服务前缀 /dm-device,合理推断该前缀来自网关或服务路由。

6.6 POST /dm-device/repairWorkOrders/upload/errorImg

接口信息

  • 请求地址:/dm-device/repairWorkOrders/upload/errorImg
  • 请求方式:POST
  • 功能简述:业务请求
  • 所属页面:主页面
  • 后端入口:errorImg
  • Service 方法:errorImg

入参

  • 参数位置:unknown

  • 当前链路未展开到更细的字段级定义。

出参

  • 外层响应:ResultData

  • 业务数据体:框架统一成功响应

  • 当前链路重点在业务动作与后端处理,公共包裹字段未继续展开。

后端逻辑链路

  1. 校验
  • 当前链路未识别出额外步骤。
  1. 预处理
  • 当前链路未识别出额外步骤。
  1. 核心业务
  • 文件上传接口会把文件直接转发给文件服务并返回附件元数据。
  1. 状态变更
  • 当前链路未识别出额外步骤。
  1. 数据影响
  • 当前链路未识别出额外步骤。
  1. 收尾
  • 当前链路未识别出额外步骤。

数据链路

接口调用类型库名.表名mapper.pagesql作用(简写)
POST /dm-device/repairWorkOrders/upload/errorImg远程写入?.附件数据fileClient.uploadFile上传附件到文件服务

数据流走向

  • 数据来源:
  • 前端页面通过 当前页面动作 触发请求
  • 数据处理路径:
  • Controller:errorImg
  • Service:errorImg
  • 文件上传接口会把文件直接转发给文件服务并返回附件元数据。
  • 数据落点:
  • ?.附件数据

备注

  • 前端请求路径含服务前缀 /dm-device,合理推断该前缀来自网关或服务路由。

重点组件说明

组件:index

  • 角色:主页面
  • 层级路径:index
  • 是否直接CRUD:否
  • 一句话作用:承接 order 页面主入口、列表查询和业务操作入口。
  • 业务动作:新增提交

7. 子组件列表

  • detail:路由路径 /default/devicemate/repair/order/detail

8. 修改入口

  • 改当前节点逻辑:先看上游入口,再看组件总览和业务页面跳转链路,最后核对接口与后端落点。
  • 改跳页逻辑:不仅要改当前页的方法和参数,还要同步检查目标页文档是否受影响。
  • 当前自动分析未识别出额外高风险点,但仍建议顺着子组件列表逐级核对。