From ea1d179c41fa721e5605aa02e882ce61b94409bb Mon Sep 17 00:00:00 2001 From: George Date: Sun, 29 Mar 2026 11:23:42 +0800 Subject: [PATCH] =?UTF-8?q?20260329:=E6=95=B0=E6=8D=AE=E6=8E=A8=E9=80=81?= =?UTF-8?q?=EF=BC=9Abug=E4=BF=AE=E5=A4=8D=EF=BC=8C=E4=B9=8B=E5=89=8D?= =?UTF-8?q?=E7=94=A8productId=E6=9F=A5=E8=AF=A2=EF=BC=8CB=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E6=9F=A5=E8=AF=A2=E5=88=B0A=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E7=89=A9=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../deviceConfig/ThingsModelController.java | 14 ++++++++++++++ .../iot/service/IThingsModelService.java | 4 ++-- yack-web/src/api/iot/model.js | 9 +++++++++ yack-web/src/views/iot/push/index.vue | 19 ++++++++++++++----- 4 files changed, 39 insertions(+), 7 deletions(-) diff --git a/fastbee-open-api/src/main/java/com/fastbee/controller/deviceConfig/ThingsModelController.java b/fastbee-open-api/src/main/java/com/fastbee/controller/deviceConfig/ThingsModelController.java index 565a5850..e9085df5 100644 --- a/fastbee-open-api/src/main/java/com/fastbee/controller/deviceConfig/ThingsModelController.java +++ b/fastbee-open-api/src/main/java/com/fastbee/controller/deviceConfig/ThingsModelController.java @@ -12,6 +12,7 @@ import com.fastbee.iot.cache.ITSLCache; import com.fastbee.iot.domain.ThingsModel; import com.fastbee.iot.model.ImportThingsModelInput; import com.fastbee.iot.model.ThingsModelPerm; +import com.fastbee.iot.model.dto.ThingsModelDTO; import com.fastbee.iot.model.modbus.ModbusAndThingsVO; import com.fastbee.iot.service.IThingsModelService; import io.swagger.annotations.Api; @@ -52,6 +53,19 @@ public class ThingsModelController extends BaseController { return getDataTable(list); } + /** + * 查询物模型列表 + */ + @PreAuthorize("@ss.hasPermi('iot:model:list')") + @GetMapping("/listByProductIdAndSerialNumber") + @ApiOperation("产品物模型分页列表(根据产品ID和设备编号查询)") + public TableDataInfo listByProductIdAndSerialNumber(@RequestParam("productId") Long productId, + @RequestParam("serialNumber") String serialNumber) { + + List list = thingsModelService.getCacheAndHandleArrayByProductId(productId, serialNumber); + return getDataTable(list); + } + /** * 查询物模型对应设备分享权限 */ diff --git a/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/IThingsModelService.java b/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/IThingsModelService.java index 5880acd1..8a20e4cb 100644 --- a/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/IThingsModelService.java +++ b/fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/IThingsModelService.java @@ -106,7 +106,7 @@ public interface IThingsModelService { * 导入采集点数据 * * @param lists 数据列表 - * @param tempSlaveId 从机编码 + * @param productId 产品ID * @return 结果 */ public String importData(List lists, Long productId); @@ -198,7 +198,7 @@ public interface IThingsModelService { /** * 根据设备编号获取读写物模型 * - * @param serialNumber + * @param deviceId 设备id * @return */ List selectThingsModelBySerialNumber(Long deviceId); diff --git a/yack-web/src/api/iot/model.js b/yack-web/src/api/iot/model.js index 86f55229..017f7e9d 100644 --- a/yack-web/src/api/iot/model.js +++ b/yack-web/src/api/iot/model.js @@ -9,6 +9,15 @@ export function listModel(query) { }); } +// 查询物模型列表 (根据产品ID和设备编号) +export function listByProductIdAndSerialNumber(query) { + return request({ + url: '/iot/model/listByProductIdAndSerialNumber', + method: 'get', + params: query, + }); +} + // 查询物模型详细 export function getModel(modelId) { return request({ diff --git a/yack-web/src/views/iot/push/index.vue b/yack-web/src/views/iot/push/index.vue index 98c8b05d..bbd1ded0 100644 --- a/yack-web/src/views/iot/push/index.vue +++ b/yack-web/src/views/iot/push/index.vue @@ -212,7 +212,7 @@ import { changePushConfigStatus, delPushConfig, manualPush } from '@/api/iot/pushConfig'; import { listDeviceShort } from '@/api/iot/device'; -import { listModel } from '@/api/iot/model'; +import { listByProductIdAndSerialNumber } from '@/api/iot/model'; import { listTemplate } from '@/api/notify/template'; import { listUser } from '@/api/system/user'; @@ -316,8 +316,11 @@ export default { this.form.serialNumber = device.serialNumber; this.form.items = []; this.thingsModelOptions = []; - listModel({ productId: device.productId, type: 1, pageNum: 1, pageSize: 500 }).then(res => { - this.thingsModelOptions = res.rows || []; + listByProductIdAndSerialNumber({ + productId: device.productId, + serialNumber: device.serialNumber + }).then(res => { + this.thingsModelOptions = (res.rows || []).filter(m => m.type === 1); }); }, @@ -382,8 +385,14 @@ export default { } : null; this.loadDeviceOptions(mergeDev); if (data.productId) { - listModel({ productId: data.productId, type: 1, pageNum: 1, pageSize: 500 }).then(r => { - this.thingsModelOptions = r.rows || []; + listByProductIdAndSerialNumber({ + productId: data.productId, + serialNumber: data.serialNumber || '', + type: 1, + pageNum: 1, + pageSize: 500 + }).then(r => { + this.thingsModelOptions = (r.rows || []).filter(m => m.type === 1); }); } this.dialogTitle = '编辑推送配置';