import request from '@/utils/request' /** * 设备管理API */ // 设备配置相关API export const deviceConfigApi = { /** * 创建设备配置 */ create(data) { return request({ url: '/api/plcSend/device/config/devices', method: 'post', data }) }, /** * 更新设备配置 */ update(id, data) { return request({ url: `/api/plcSend/device/config/devices/update`, method: 'post', data: { deviceId: id, deviceConfig: data } }) }, /** * 删除设备配置 */ delete(id) { return request({ url: `/api/plcSend/device/config/devices/delete`, method: 'post', data: { deviceId: id } }) }, /** * 获取设备配置详情 */ getById(id) { return request({ url: `/api/plcSend/device/config/devices/detail`, method: 'post', data: { deviceId: id } }) }, /** * 分页查询设备配置列表 */ getList(params) { return request({ url: '/api/plcSend/device/config/devices/list', method: 'post', data: { page: params.pageNum || params.page || 1, size: params.pageSize || params.size || 10, deviceCode: params.deviceCode, deviceType: params.deviceType, deviceStatus: params.status || params.deviceStatus, keyword: params.keyword } }) }, /** * 启用设备 */ enable(id) { return request({ url: '/api/plcSend/device/config/devices/enable', method: 'post', data: { deviceId: id } }) }, /** * 禁用设备 */ disable(id) { return request({ url: '/api/plcSend/device/config/devices/disable', method: 'post', data: { deviceId: id } }) }, /** * 批量启用设备 */ batchEnable(deviceIds) { return request({ url: '/api/plcSend/device/config/devices/batch-enable', method: 'post', data: { deviceIds: deviceIds } }) }, /** * 批量禁用设备 */ batchDisable(deviceIds) { return request({ url: '/api/plcSend/device/config/devices/batch-disable', method: 'post', data: { deviceIds: deviceIds } }) }, /** * 获取设备统计信息 */ getStatistics(params) { return request({ url: '/api/plcSend/device/config/statistics/devices', method: 'post', data: params }) }, /** * 检查设备编码是否存在 */ checkCode(deviceCode, excludeId) { return request({ url: '/api/plcSend/device/config/devices/check-code', method: 'post', data: { deviceCode, excludeId } }) }, /** * 获取设备类型列表 */ getDeviceTypes() { return request({ url: '/api/plcSend/device/config/devices/types', method: 'post' }) }, /** * 获取设备状态列表 */ getDeviceStatuses() { return request({ url: '/api/plcSend/device/config/devices/statuses', method: 'post' }) }, /** * 测试设备PLC连接 * data 可以是 { deviceId } 或 { plcIp, plcPort, timeout } */ testConnection(data) { return request({ url: '/api/plcSend/device/config/devices/test-connection', method: 'post', data }) }, /** * 获取设备配置树结构 */ getDeviceTree(params) { return request({ url: '/api/plcSend/device/config/devices/tree', method: 'post', data: params }) }, /** * 设备健康检查 */ healthCheck(id) { return request({ url: `/api/plcSend/device/config/devices/health-check`, method: 'post', data: { deviceId: id } }) } } // 设备组配置相关API export const deviceGroupApi = { /** * 创建设备组配置 */ create(config) { return request({ url: '/api/plcSend/device/group/create', method: 'post', data: { groupConfig: config } }) }, /** * 更新设备组配置 */ update(id, config) { return request({ url: '/api/plcSend/device/group/update', method: 'post', data: { groupId: id, groupConfig: config } }) }, /** * 删除设备组配置 */ delete(id) { return request({ url: '/api/plcSend/device/group/delete', method: 'post', data: { groupId: id } }) }, /** * 获取设备组配置详情 */ getGroupById(id) { return request({ url: `/api/plcSend/device/group/detail`, method: 'post', data: { groupId: id } }) }, /** * 分页查询设备组配置列表 */ getList(params) { return request({ url: '/api/plcSend/device/group/list', method: 'post', data: { groupConfig: { page: params.page, size: params.size, groupType: params.groupType, groupStatus: params.groupStatus, keyword: params.keyword } } }) }, /** * 启用设备组 */ enable(id) { return request({ url: '/api/plcSend/device/group/enable', method: 'post', data: { groupId: id } }) }, /** * 禁用设备组 */ disable(id) { return request({ url: '/api/plcSend/device/group/disable', method: 'post', data: { groupId: id } }) }, /** * 批量启用设备组 */ batchEnable(groupIds) { return request({ url: '/api/plcSend/device/group/batch-enable', method: 'post', data: { groupIds } }) }, /** * 批量禁用设备组 */ batchDisable(groupIds) { return request({ url: '/api/plcSend/device/group/batch-disable', method: 'post', data: { groupIds } }) }, /** * 获取设备组统计信息 */ getStatistics(params) { return request({ url: '/api/plcSend/device/group/statistics/groups', method: 'post', data: params }) }, /** * 检查设备组编码是否已存在 */ checkCode(params) { return request({ url: '/api/plcSend/device/group/check-code', method: 'post', data: { groupId: params.groupId, groupConfig: { groupCode: params.groupCode } } }) }, /** * 获取设备组类型列表 */ getGroupTypes() { return request({ url: `/api/plcSend/device/group/types`, method: 'post' }) }, /** * 获取设备组状态列表 */ getGroupStatuses() { return request({ url: `/api/plcSend/device/group/statuses`, method: 'post' }) }, /** * 添加设备到设备组 */ addDeviceToGroup(data) { return request({ url: '/api/plcSend/device/group/devices', method: 'post', data }) }, /** * 从设备组移除设备 */ removeDeviceFromGroup(data) { return request({ url: '/api/plcSend/device/group/devices/remove', method: 'post', data }) }, /** * 更新设备在设备组中的角色 */ updateDeviceRole(data) { return request({ url: '/api/plcSend/device/group/devices/role', method: 'post', data }) }, /** * 获取设备组设备列表 */ getGroupDevices(groupId) { return request({ url: `/api/plcSend/device/group/devices/list`, method: 'post', data: { groupId } }) }, /** * 获取设备设备组列表 */ getDeviceGroups(deviceId) { return request({ url: `/api/plcSend/device/group/devices/groups`, method: 'post', data: { deviceId } }) }, /** * 批量添加设备到设备组 */ batchAddDevicesToGroup(data) { return request({ url: '/api/plcSend/device/group/batch-add-devices', method: 'post', data }) }, /** * 批量从设备组移除设备 */ batchRemoveDevicesFromGroup(data) { return request({ url: '/api/plcSend/device/group/devices/batch-remove', method: 'post', data }) }, /** * 设备组健康检查 */ healthCheck(data) { return request({ url: '/api/plcSend/device/group/health-check', method: 'post', data }) }, /** * 获取设备组性能统计 */ getPerformance(data) { return request({ url: '/api/plcSend/device/group/performance', method: 'post', data }) } } // 设备PLC操作API export const devicePlcApi = { /** * 批量触发PLC请求 */ triggerRequests(deviceIds) { return request({ url: '/api/plcSend/device/plc/requests', method: 'post', data: { deviceIds } }) }, /** * 批量模拟PLC汇报 */ triggerReports(deviceIds) { return request({ url: '/api/plcSend/device/plc/reports', method: 'post', data: { deviceIds } }) }, /** * 批量重置PLC状态 */ resetDevices(deviceIds) { return request({ url: '/api/plcSend/device/plc/resets', method: 'post', data: { deviceIds } }) }, /** * 设备组触发PLC请求 */ triggerGroupRequest(groupId) { return request({ url: `/api/plcSend/device/plc/groups/${groupId}/request`, method: 'post' }) }, /** * 设备组模拟PLC汇报 */ triggerGroupReport(groupId) { return request({ url: `/api/plcSend/device/plc/groups/${groupId}/report`, method: 'post' }) }, /** * 查询设备PLC状态 */ getDeviceStatus(deviceId) { return request({ url: `/api/plcSend/device/plc/status/${deviceId}`, method: 'get' }) }, /** * 查询设备组PLC状态 */ getGroupStatus(groupId) { return request({ url: `/api/plcSend/device/plc/groups/${groupId}/status`, method: 'get' }) } } // 设备交互操作API export const deviceInteractionApi = { /** * 执行设备逻辑操作 * @param {Object} data - { deviceId, operation, params } */ executeOperation(data) { return request({ url: '/api/plcSend/device/interaction/execute', method: 'post', data }) }, /** * 玻璃上料写入 */ feedGlass(data) { return request({ url: '/api/plcSend/device/interaction/glass-feed', method: 'post', data }) } } // 设备状态管理API export const deviceStatusApi = { /** * 更新设备在线状态 * @param {Object} data - { deviceId, status } */ updateDeviceOnlineStatus(data) { return request({ url: '/api/plcSend/device/status/update', method: 'post', data }) }, /** * 批量更新设备在线状态 * @param {Object} data - { deviceIds, status } */ batchUpdateDeviceOnlineStatus(data) { return request({ url: '/api/plcSend/device/status/batch-update', method: 'post', data }) }, /** * 获取设备最新状态 * @param {Number} deviceId - 设备配置ID */ getLatestStatus(deviceId) { return request({ url: `/api/plcSend/device/status/latest/${deviceId}`, method: 'get' }) }, /** * 记录设备心跳 * @param {Object} data - { deviceId, status } */ recordHeartbeat(data) { return request({ url: '/api/plcSend/device/status/heartbeat', method: 'post', data }) } } // 统计API export const getDeviceStatistics = (data) => { return request({ url: '/api/plcSend/device/config/statistics/devices', method: 'post', data }) } export const getDeviceGroupStatistics = (params) => { return request({ url: '/api/plcSend/device/group/statistics/groups', method: 'post', data: params }) } export default { deviceConfigApi, deviceGroupApi, devicePlcApi, deviceInteractionApi, deviceStatusApi, getDeviceStatistics, getDeviceGroupStatistics }