编辑 | blame | 历史 | 原始文档

设备保养批量新增计划

功能说明

在设备保养-任务记录页"新增计划"中,支持一次多选多台设备、共用一套保养项目/计划保养日期/录入人,一键为所有选中设备各生成一条保养计划,减少重复录入。

涉及页面

  • 设备保养(任务记录 tab)
  • 新增/编辑设备保养计划弹窗(PlanModal.vue

API

方法 路径 说明
POST /device/maintenance/batchAdd 批量新增设备保养计划

请求参数(body,JSON):

参数 类型 必填 说明
deviceIds Long[] 选中的设备台账 id 列表(至少 1 个)
maintenancePlanTime datetime 计划保养日期(共用)
createUser Integer 录入人(共用)
maintenanceItem String 保养项目(共用)

响应: { "code": 200, "msg": "操作成功" }

前端修改点

1. 新增批量 API(src/api/equipmentManagement/upkeep.js

export const batchAddUpkeep = (data) => {
  return request({
    url: "/device/maintenance/batchAdd",
    method: "post",
    data,
  });
};

2. 新增计划弹窗设备下拉改为多选(Form/PlanModal.vue

<el-select
  v-model="form.deviceIds"
  multiple
  @change="setDeviceModel"
  placeholder="请选择设备"
  filterable
  default-first-option
  :reserve-keyword="false"
>
  • formdeviceLedgerId 字段替换为数组 deviceIds: []
  • setDeviceModel 改为按选中设备集合展示规格型号(逗号连接)
  • 编辑模式回显:form.deviceIds = [data.deviceLedgerId]

3. 提交逻辑三分支

const common = {
  maintenancePlanTime: form.maintenancePlanTime,
  createUser: form.createUser,
  maintenanceItem: form.maintenanceItem,
};
if (id.value) {
  // 编辑计划(单设备)
  await editUpkeep({ id, deviceLedgerId: form.deviceIds[0], ...common, status });
} else if (form.deviceIds.length > 1) {
  // 批量新增
  await batchAddUpkeep({ deviceIds: form.deviceIds, ...common });
} else {
  // 单设备新增
  await addUpkeep({ deviceLedgerId: form.deviceIds[0], ...common });
}

后端修改点

  • DeviceMaintenance 新增 deviceIds(非表字段,@TableField(exist = false)
  • DeviceMaintenanceController 新增 POST /device/maintenance/batchAdd
  • DeviceMaintenanceServiceImpl.batchSaveDeviceRepair:遍历设备 id,按设备台账填充名称/规格型号,批量 saveBatch

注意事项

  • 批量生成的记录状态默认 待保养(0)
  • 多台设备规格型号不同时,弹窗内规格型号以逗号连接展示(仅展示,提交后按各设备台账重新填充)
  • 单设备新增、行内"编辑"计划逻辑保持不变