Przeglądaj źródła

照明设备对接

learshaw 6 miesięcy temu
rodzic
commit
95e3f15162

+ 155 - 97
ems/ems-cloud/ems-dev-adapter/src/main/java/com/ruoyi/ems/handle/SquareLightCtlHandler.java

@@ -27,6 +27,7 @@ import com.ruoyi.ems.model.CallResponse;
 import com.ruoyi.ems.model.QueryDevice;
 import com.ruoyi.ems.model.slightctl.BaselineInfo;
 import com.ruoyi.ems.model.slightctl.CcElecInfo;
+import com.ruoyi.ems.model.slightctl.DevSub;
 import com.ruoyi.ems.model.slightctl.DeviceInfo;
 import com.ruoyi.ems.model.slightctl.SlcDevice;
 import com.ruoyi.ems.model.slightctl.SlcDeviceLamp;
@@ -166,7 +167,21 @@ public class SquareLightCtlHandler extends BaseMeterDevHandler {
                         throw new UnsupportedOperationException("不支持的abilityKey");
                 }
             }
-            else if (DevObjType.DEVC.getCode() == abilityParam.getObjType()) {
+            else if (DevObjType.DEVC.getCode() == abilityParam.getObjType() && StringUtils.equals(LAMP_POST_MODE_CODE,
+                abilityParam.getModelCode())) {
+                switch (abilityParam.getAbilityKey()) {
+                    case "lightControlAll":
+                        lampPostLightControl(abilityParam.getObjCode(), abilityParam.getAbilityParam());
+                        break;
+                    //                    case "lightControlBrightness":
+                    //                        lampPostLightControlBrightness(abilityParam.getObjCode(), abilityParam.getAbilityParam());
+                    //                        break;
+                    default:
+                        throw new UnsupportedOperationException("不支持的abilityKey");
+                }
+            }
+            else if (DevObjType.DEVC.getCode() == abilityParam.getObjType() && StringUtils.equals(DEV_MODE_CODE,
+                abilityParam.getModelCode())) {
                 switch (abilityParam.getAbilityKey()) {
                     case "lightControl":
                         lightControl(abilityParam.getObjCode(), abilityParam.getAbilityParam());
@@ -222,28 +237,51 @@ public class SquareLightCtlHandler extends BaseMeterDevHandler {
 
     public void lightControlAll(String paramValue) {
         QueryDevice queryDevice = new QueryDevice();
-        queryDevice.setDeviceModel(DEV_MODE_CODE);
+        queryDevice.setDeviceModel(LAMP_POST_MODE_CODE);
         queryDevice.setSubsystemCode(SUBSYSTEM_CODE);
         queryDevice.setDeviceStatus(1);
         List<EmsDevice> devices = deviceService.selectList(queryDevice);
 
         if (CollectionUtils.isNotEmpty(devices)) {
-            JsonEntity.ObjBuilder json = JsonEntity.objBuilder();
-
             for (EmsDevice device : devices) {
-                EmsObjAttrValue value = objAttrValueService.selectObjAttrValue(DEV_MODE_CODE, device.getDeviceCode(),
-                    "deviceId");
-                json.addKeyArray("deviceIds", value.getAttrValue());
+                lampPostLightControl(device.getDeviceCode(), paramValue);
             }
+        }
+    }
+
+    public void lampPostLightControl(String lampPostId, String paramValue) {
+        EmsObjAttrValue lampPostSubDev = objAttrValueService.selectObjAttrValue(LAMP_POST_MODE_CODE, lampPostId,
+            "subDev");
+
+        if (null != lampPostSubDev) {
+            JSONArray lights = JSONArray.parseArray(lampPostSubDev.getAttrValue());
+
+            JsonEntity.ObjBuilder json = JsonEntity.objBuilder();
+
+            lights.forEach(item -> {
+                JSONObject jsonObject = (JSONObject) item;
+                json.addKeyArray("deviceIds", jsonObject.getString("deviceCode"));
+            });
+
+            JSONObject jsonObject = (JSONObject) lights.get(0);
 
             EmsObjAttrValue projectIdAttr = objAttrValueService.selectObjAttrValue(DEV_MODE_CODE,
-                devices.get(0).getDeviceCode(), "projectId");
+                jsonObject.getString("deviceCode"), "projectId");
 
             JsonEntity.ObjBuilder lampListObj = JsonEntity.objBuilder().putKv("lampNo", "1")
                 .putKv("lampOnOff", paramValue).putKv("brightness", 0);
             json.addKeyArray("lampList", lampListObj.build().getJsonObj());
 
-            lightControl(projectIdAttr.getAttrValue(), json.build().getJsonObj());
+            SquareLightCtlTemplate template = new SquareLightCtlTemplate(config.getUrl());
+
+            // 下发执行命令
+            lightControl(template, projectIdAttr.getAttrValue(), json.build().getJsonObj());
+
+            // 刷新属性
+            lights.forEach(item -> {
+                JSONObject object = (JSONObject) item;
+                mergeLightDevAttr(template, projectIdAttr.getAttrValue(), object.getString("deviceCode"), null);
+            });
         }
     }
 
@@ -271,14 +309,19 @@ public class SquareLightCtlHandler extends BaseMeterDevHandler {
             json.addKeyArray("lampList", lampListObj.build().getJsonObj());
         }
 
-        lightControl(projectIdAttr.getAttrValue(), json.build().getJsonObj());
+        SquareLightCtlTemplate template = new SquareLightCtlTemplate(config.getUrl());
+
+        // 下发执行命令
+        lightControl(template, projectIdAttr.getAttrValue(), json.build().getJsonObj());
+
+        // 刷新属性
+        mergeLightDevAttr(template, projectIdAttr.getAttrValue(), deviceIdAttr.getAttrValue(), null);
     }
 
     /**
      * 灯组开关控制
      */
-    public void lightControl(String projectId, JSONObject req) {
-        SquareLightCtlTemplate template = new SquareLightCtlTemplate(config.getUrl());
+    public void lightControl(SquareLightCtlTemplate template, String projectId, JSONObject req) {
         CallData<Void> callData = template.lightControl(projectId, req);
         saveCallLog(SUBSYSTEM_CODE, SYS_MODE_CODE, "lightControl", callData.getCallStatus(), callData.getCallPayload(),
             callData.getResPayload());
@@ -308,14 +351,19 @@ public class SquareLightCtlHandler extends BaseMeterDevHandler {
             json.addKeyArray("lampList", lampListObj.build().getJsonObj());
         }
 
-        lightControlBrightness(projectIdAttr.getAttrValue(), json.build().getJsonObj());
+        SquareLightCtlTemplate template = new SquareLightCtlTemplate(config.getUrl());
+
+        // 下发控制命令
+        lightControlBrightness(template, projectIdAttr.getAttrValue(), json.build().getJsonObj());
+
+        // 刷新属性
+        mergeLightDevAttr(template, projectIdAttr.getAttrValue(), deviceIdAttr.getAttrValue(), null);
     }
 
     /**
      * 灯组亮度控制
      */
-    public void lightControlBrightness(String projectId, JSONObject req) {
-        SquareLightCtlTemplate template = new SquareLightCtlTemplate(config.getUrl());
+    public void lightControlBrightness(SquareLightCtlTemplate template, String projectId, JSONObject req) {
         CallData<Void> callData = template.controlBrightness(projectId, req);
         saveCallLog(SUBSYSTEM_CODE, SYS_MODE_CODE, "lightControlBrightness", callData.getCallStatus(),
             callData.getCallPayload(), callData.getResPayload());
@@ -337,7 +385,7 @@ public class SquareLightCtlHandler extends BaseMeterDevHandler {
                     .filter(dev -> StringUtils.equals(dev.getDeviceModelId(), "1945454135655632897"))
                     .collect(Collectors.toList());
                 syncLightDeviceList(lightDevs);
-                mergeLightDevAttrValue(project.getProjectId(), lightDevs);
+                mergeLightDevAttrs(project.getProjectId(), lightDevs);
 
                 // 集中器设备同步
                 List<SlcDevice> centDevs = callData.getList().stream()
@@ -472,11 +520,20 @@ public class SquareLightCtlHandler extends BaseMeterDevHandler {
     }
 
     private EmsObjAttrValue buildLampPostLights(String deviceCode, List<String> lampList) {
+        JSONArray jsonArray = new JSONArray();
+
+        for (String lamp : lampList) {
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("deviceCode", lamp);
+            jsonObject.put("modelCode", DEV_MODE_CODE);
+            jsonArray.add(jsonObject);
+        }
+
         EmsObjAttrValue attrValue = new EmsObjAttrValue();
         attrValue.setObjCode(deviceCode);
         attrValue.setModelCode(LAMP_POST_MODE_CODE);
         attrValue.setAttrKey("subDev");
-        attrValue.setAttrValue(JSON.toJSONString(lampList));
+        attrValue.setAttrValue(jsonArray.toString());
         return attrValue;
     }
 
@@ -506,103 +563,104 @@ public class SquareLightCtlHandler extends BaseMeterDevHandler {
         return device;
     }
 
-    private void mergeLightDevAttrValue(String projectId, List<SlcDevice> slcDevices) {
+    private void mergeLightDevAttrs(String projectId, List<SlcDevice> slcDevices) {
         SquareLightCtlTemplate template = new SquareLightCtlTemplate(config.getUrl());
 
         for (SlcDevice slcDevice : slcDevices) {
-            CallData<DeviceInfo> callData = template.getDeviceInfo(projectId, slcDevice.getDeviceId());
-            DeviceInfo deviceInfo = callData.getData();
+            mergeLightDevAttr(template, projectId, slcDevice.getDeviceId(), slcDevice);
+        }
+    }
 
-            List<EmsObjAttrValue> oaValues = objAttrValueService.selectByObjCode(DEV_MODE_CODE,
-                slcDevice.getDeviceId());
+    private void mergeLightDevAttr(SquareLightCtlTemplate template, String projectId, String deviceId,
+        SlcDevice slcDevice) {
+        CallData<DeviceInfo> callData = template.getDeviceInfo(projectId, deviceId);
+        DeviceInfo deviceInfo = callData.getData();
 
-            if (CollectionUtils.isNotEmpty(oaValues)) {
-                Map<String, EmsObjAttrValue> vMap = oaValues.stream()
-                    .collect(Collectors.toMap(EmsObjAttrValue::getAttrKey, Function.identity()));
+        List<EmsObjAttrValue> oaValues = objAttrValueService.selectByObjCode(DEV_MODE_CODE, deviceId);
 
-                checkAndUpdate(vMap, slcDevice.getDeviceId(), "abnormal", String.valueOf(slcDevice.getAbnormal()));
-                checkAndUpdate(vMap, slcDevice.getDeviceId(), "csq", slcDevice.getCsq());
+        if (CollectionUtils.isNotEmpty(oaValues)) {
+            Map<String, EmsObjAttrValue> vMap = oaValues.stream()
+                .collect(Collectors.toMap(EmsObjAttrValue::getAttrKey, Function.identity()));
 
-                if (null != deviceInfo.getBaselineInfo()) {
-                    BaselineInfo baselineInfo = deviceInfo.getBaselineInfo();
-                    checkAndUpdate(vMap, slcDevice.getDeviceId(), "firmwareVer", baselineInfo.getFirmwareVer());
-                    checkAndUpdate(vMap, slcDevice.getDeviceId(), "softwareVer", baselineInfo.getSoftwareVer());
-                }
+            if (null != deviceInfo.getBaselineInfo()) {
+                BaselineInfo baselineInfo = deviceInfo.getBaselineInfo();
+                checkAndUpdate(vMap, deviceId, "firmwareVer", baselineInfo.getFirmwareVer());
+                checkAndUpdate(vMap, deviceId, "softwareVer", baselineInfo.getSoftwareVer());
+            }
 
-                if (null != deviceInfo.getStatusInfo()) {
-                    StatusInfo sInfo = deviceInfo.getStatusInfo();
-                    checkAndUpdate(vMap, slcDevice.getDeviceId(), "current", String.valueOf(sInfo.getCurrent()));
-                    checkAndUpdate(vMap, slcDevice.getDeviceId(), "power", String.valueOf(sInfo.getPower()));
-                    checkAndUpdate(vMap, slcDevice.getDeviceId(), "factor", String.valueOf(sInfo.getFactor()));
-                    checkAndUpdate(vMap, slcDevice.getDeviceId(), "voltage", String.valueOf(sInfo.getVoltage()));
-                    checkAndUpdate(vMap, slcDevice.getDeviceId(), "energy", String.valueOf(sInfo.getEnergy()));
-                    checkAndUpdate(vMap, slcDevice.getDeviceId(), "temperature",
-                        String.valueOf(sInfo.getTemperature()));
-                }
+            if (null != deviceInfo.getStatusInfo()) {
+                StatusInfo sInfo = deviceInfo.getStatusInfo();
+                checkAndUpdate(vMap, deviceId, "csq", String.valueOf(sInfo.getCsq()));
+                checkAndUpdate(vMap, deviceId, "current", String.valueOf(sInfo.getCurrent()));
+                checkAndUpdate(vMap, deviceId, "power", String.valueOf(sInfo.getPower()));
+                checkAndUpdate(vMap, deviceId, "factor", String.valueOf(sInfo.getFactor()));
+                checkAndUpdate(vMap, deviceId, "voltage", String.valueOf(sInfo.getVoltage()));
+                checkAndUpdate(vMap, deviceId, "energy", String.valueOf(sInfo.getEnergy()));
+                checkAndUpdate(vMap, deviceId, "temperature", String.valueOf(sInfo.getTemperature()));
+            }
 
-                if (CollectionUtils.isNotEmpty(deviceInfo.getLampList())) {
-                    List<SlcDeviceLamp> lampList = deviceInfo.getLampList();
-                    SlcDeviceLamp lamp = lampList.get(0);
-                    checkAndUpdate(vMap, slcDevice.getDeviceId(), "cct", String.valueOf(lamp.getCct()));
-                    checkAndUpdate(vMap, slcDevice.getDeviceId(), "lampOnOff", String.valueOf(lamp.getLampOnOff()));
-                }
+            if (CollectionUtils.isNotEmpty(deviceInfo.getLampList())) {
+                List<SlcDeviceLamp> lampList = deviceInfo.getLampList();
+                SlcDeviceLamp lamp = lampList.get(0);
+                checkAndUpdate(vMap, deviceId, "cct", String.valueOf(lamp.getCct()));
+                checkAndUpdate(vMap, deviceId, "lampOnOff", String.valueOf(lamp.getLampOnOff()));
             }
-            else {
-                oaValues = new ArrayList<>();
-                oaValues.add(new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "projectId", projectId));
+        }
+        else {
+            oaValues = new ArrayList<>();
+
+            oaValues.add(new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "projectId", projectId));
+            oaValues.add(new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "deviceId", deviceId));
+
+            if (null != slcDevice) {
+                oaValues.add(new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "imageUrl", slcDevice.getImageUrl()));
                 oaValues.add(
-                    new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "deviceId", slcDevice.getDeviceId()));
+                    new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "abnormal", String.valueOf(slcDevice.getAbnormal())));
+                oaValues.add(new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "csq", slcDevice.getCsq()));
+                oaValues.add(new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "lampList",
+                    JSON.toJSONString(slcDevice.getLampList())));
+            }
+
+            if (null != deviceInfo.getDeviceInfo()) {
+                DevSub subInfo = deviceInfo.getDeviceInfo();
+                oaValues.add(new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "deviceUid", subInfo.getDeviceUid()));
                 oaValues.add(
-                    new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "deviceUid", slcDevice.getDeviceUid()));
-                oaValues.add(new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "deviceModelId",
-                    slcDevice.getDeviceModelId()));
-                oaValues.add(new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "minCct",
-                    String.valueOf(slcDevice.getMinCct())));
-                oaValues.add(new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "maxCct",
-                    String.valueOf(slcDevice.getMaxCct())));
+                    new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "minCct", String.valueOf(subInfo.getMinCct())));
                 oaValues.add(
-                    new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "imageUrl", slcDevice.getImageUrl()));
-                oaValues.add(new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "abnormal",
-                    String.valueOf(slcDevice.getAbnormal())));
-                oaValues.add(new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "csq", slcDevice.getCsq()));
-
-                if (null != deviceInfo.getBaselineInfo()) {
-                    BaselineInfo bInfo = deviceInfo.getBaselineInfo();
-                    oaValues.add(new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "firmwareVer",
-                        bInfo.getFirmwareVer()));
-                    oaValues.add(new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "softwareVer",
-                        bInfo.getSoftwareVer()));
-                }
+                    new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "maxCct", String.valueOf(subInfo.getMaxCct())));
+            }
 
-                if (null != deviceInfo.getStatusInfo()) {
-                    StatusInfo sInfo = deviceInfo.getStatusInfo();
-                    oaValues.add(new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "current",
-                        String.valueOf(sInfo.getCurrent())));
-                    oaValues.add(new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "power",
-                        String.valueOf(sInfo.getPower())));
-                    oaValues.add(new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "factor",
-                        String.valueOf(sInfo.getFactor())));
-                    oaValues.add(new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "voltage",
-                        String.valueOf(sInfo.getVoltage())));
-                    oaValues.add(new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "energy",
-                        String.valueOf(sInfo.getEnergy())));
-                    oaValues.add(new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "frequency",
-                        String.valueOf(sInfo.getFrequency())));
-                    oaValues.add(new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "temperature",
-                        String.valueOf(sInfo.getTemperature())));
-                }
+            if (null != deviceInfo.getBaselineInfo()) {
+                BaselineInfo bInfo = deviceInfo.getBaselineInfo();
+                oaValues.add(new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "deviceModelId", bInfo.getDeviceModelId()));
+                oaValues.add(new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "firmwareVer", bInfo.getFirmwareVer()));
+                oaValues.add(new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "softwareVer", bInfo.getSoftwareVer()));
+            }
 
-                if (CollectionUtils.isNotEmpty(deviceInfo.getLampList())) {
-                    List<SlcDeviceLamp> lampList = deviceInfo.getLampList();
-                    SlcDeviceLamp lamp = lampList.get(0);
-                    oaValues.add(new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "cct",
-                        String.valueOf(lamp.getCct())));
-                    oaValues.add(new EmsObjAttrValue(slcDevice.getDeviceId(), DEV_MODE_CODE, "lampOnOff",
-                        String.valueOf(lamp.getLampOnOff())));
-                }
+            if (null != deviceInfo.getStatusInfo()) {
+                StatusInfo sInfo = deviceInfo.getStatusInfo();
+                oaValues.add(
+                    new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "current", String.valueOf(sInfo.getCurrent())));
+                oaValues.add(new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "power", String.valueOf(sInfo.getPower())));
+                oaValues.add(new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "factor", String.valueOf(sInfo.getFactor())));
+                oaValues.add(
+                    new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "voltage", String.valueOf(sInfo.getVoltage())));
+                oaValues.add(new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "energy", String.valueOf(sInfo.getEnergy())));
+                oaValues.add(
+                    new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "frequency", String.valueOf(sInfo.getFrequency())));
+                oaValues.add(new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "temperature",
+                    String.valueOf(sInfo.getTemperature())));
+            }
 
-                objAttrValueService.insertBatch(oaValues);
+            if (CollectionUtils.isNotEmpty(deviceInfo.getLampList())) {
+                List<SlcDeviceLamp> lampList = deviceInfo.getLampList();
+                SlcDeviceLamp lamp = lampList.get(0);
+                oaValues.add(new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "cct", String.valueOf(lamp.getCct())));
+                oaValues.add(
+                    new EmsObjAttrValue(deviceId, DEV_MODE_CODE, "lampOnOff", String.valueOf(lamp.getLampOnOff())));
             }
+
+            objAttrValueService.insertBatch(oaValues);
         }
     }
 

+ 36 - 0
ems/ems-cloud/ems-dev-adapter/src/main/java/com/ruoyi/ems/model/slightctl/DevSub.java

@@ -0,0 +1,36 @@
+/*
+ * 文 件 名:  DevInfo
+ * 版    权:  华设设计集团股份有限公司
+ * 描    述:  <描述>
+ * 修 改 人:  lvwenbin
+ * 修改时间:  2025/10/10
+ * 跟踪单号:  <跟踪单号>
+ * 修改单号:  <修改单号>
+ * 修改内容:  <修改内容>
+ */
+package com.ruoyi.ems.model.slightctl;
+
+import lombok.Data;
+
+/**
+ * <一句话功能简述>
+ * <功能详细描述>
+ *
+ * @author lvwenbin
+ * @version [版本号, 2025/10/10]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+@Data
+public class DevSub {
+    private String lastReportTime;
+    private String deviceModelName;
+    private Integer maxCct;
+    private Integer minCct;
+    private String deviceUid;
+    private String deviceName;
+    private String deviceId;
+    private String subnetName;
+    private Integer deviceModelCctType;
+    private Integer status;
+}

+ 2 - 1
ems/ems-cloud/ems-dev-adapter/src/main/java/com/ruoyi/ems/model/slightctl/DeviceInfo.java

@@ -25,7 +25,8 @@ import java.util.List;
  */
 @Data
 public class DeviceInfo {
-    public StatusInfo statusInfo;
+    private StatusInfo statusInfo;
     private BaselineInfo baselineInfo;
+    private DevSub deviceInfo;
     private List<SlcDeviceLamp> lampList;
 }

+ 1 - 1
ems/ems-cloud/ems-dev-adapter/src/main/resources/application-local.yml

@@ -45,7 +45,7 @@ spring:
 
 mqtt:
   server:
-    host: tcp://192.168.20.210:1883
+    host: tcp://broker.emqx.io:1883
     client_id: ems-dev-adapter1
   executor:
     msgHandle:

+ 0 - 1
ems/ems-cloud/ems-server/src/main/java/com/ruoyi/ems/controller/EmsObjAttrController.java

@@ -1,6 +1,5 @@
 package com.ruoyi.ems.controller;
 
-import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.huashe.common.domain.AjaxResult;
 import com.huashe.common.domain.JsonEntity;

+ 0 - 18
ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/AbilityCallServiceImpl.java

@@ -72,8 +72,6 @@ public class AbilityCallServiceImpl implements IAbilityCallService {
 
             EmsObjModel objModel = objModelService.selectByModelCode(payload.getModelCode());
             Assert.notNull(objModel, -1, "设备模型(" + payload.getModelCode() + ")不存在");
-
-            checkDev(payload.getObjCode(), objModel.getObjType());
             payload.setObjType(objModel.getObjType());
 
             Assert.notNull(objModel.getAbilityHandler(), -1, "设备模型处理Handler未配置");
@@ -101,22 +99,6 @@ public class AbilityCallServiceImpl implements IAbilityCallService {
         return ret;
     }
 
-    private void checkDev(String objCode, Integer objType) {
-        // 设备验证
-        if (DevObjType.DEVC.getCode() == objType) {
-            EmsDevice device = deviceService.selectByCode(objCode);
-            Assert.notNull(device, -1, "设备不存在");
-            Assert.isTrue(null != device.getDeviceStatus() && device.getDeviceStatus() == 1, -1, "设备不在线");
-
-            // 设备模型匹配
-            Assert.notNull(device.getDeviceModel(), -1, "设备未关联模型能力");
-        }
-        else if (DevObjType.SYSTEM.getCode() == objType) {
-            EmsSubsystem subsystem = subsystemService.selectEmsSubsystemByCode(objCode);
-            Assert.notNull(subsystem, -1, "子系统不存在");
-        }
-    }
-
     private String execPost(String url, String jsonBody) {
         log.info("execPost [request] url:{} \njsonBody:\n{}", url, jsonBody);
 

+ 1 - 1
ems/sql/ems_init_data.sql

@@ -298,7 +298,6 @@ INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_na
 INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_Z010_DEV_SQUARE_LIGHT', 'Measure', 'frequency', '频率', 'Hz', 'Value');
 INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_Z010_DEV_SQUARE_LIGHT', 'Measure', 'temperature', '设备温度', NULL, 'Value');
 
-
 INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_Z010_DEV_SQUARE_CONCENTRATOR', 'Base', 'deviceId', '设备ID', NULL, 'String');
 INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_Z010_DEV_SQUARE_CONCENTRATOR', 'Base', 'deviceUid', '设备sn号', NULL, 'String');
 INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_Z010_DEV_SQUARE_CONCENTRATOR', 'Base', 'deviceModelId', '设备型号id', NULL, 'String');
@@ -401,6 +400,7 @@ INSERT INTO `adm_ems_obj_ability` (`model_code`, `ability_key`, `ability_name`,
 INSERT INTO `adm_ems_obj_ability` (`model_code`, `ability_key`, `ability_name`, `ability_desc`, `param_definition`, `hidden_flag`) VALUES ('M_Z010_SYS_SQUARE_LIGHT', 'GetProjectSubsetList', '同步项目分组列表', '同步项目分组列表', null, 1);
 INSERT INTO `adm_ems_obj_ability` (`model_code`, `ability_key`, `ability_name`, `ability_desc`, `param_definition`, `hidden_flag`) VALUES ('M_Z010_SYS_SQUARE_LIGHT', 'GetDeviceList', '同步设备列表', '同步设备列表', null, 1);
 INSERT INTO `adm_ems_obj_ability` (`model_code`, `ability_key`, `ability_name`, `ability_desc`, `param_definition`, `hidden_flag`) VALUES ('M_Z010_SYS_SQUARE_LIGHT', 'lightControlAll', '全量开关', '全量开关', '{"type":"Options", "list":[{"key":"全部开灯", "value":"1"},{"key":"全部关灯", "value":"0"}]}', 1);
+INSERT INTO `adm_ems_obj_ability` (`model_code`, `ability_key`, `ability_name`, `ability_desc`, `param_definition`, `hidden_flag`) VALUES ('M_Z010_DEV_SQUARE_LAMP_POST', 'lightControlAll', '全量开关', '全量开关', '{"type":"Options", "list":[{"key":"全部开灯", "value":"1"},{"key":"全部关灯", "value":"0"}]}', 1);
 INSERT INTO `adm_ems_obj_ability` (`model_code`, `ability_key`, `ability_name`, `ability_desc`, `param_definition`, `hidden_flag`) VALUES ('M_Z010_DEV_SQUARE_LIGHT', 'lightControl', '照明开关', '照明开关', '{"type":"Options", "list":[{"key":"开灯", "value":"1"},{"key":"关灯", "value":"0"}]}', 1);
 INSERT INTO `adm_ems_obj_ability` (`model_code`, `ability_key`, `ability_name`, `ability_desc`, `param_definition`, `hidden_flag`) VALUES ('M_Z010_DEV_SQUARE_LIGHT', 'lightControlBrightness', '亮度设置', '亮度设置', '{"type":"Slider", "min":0, "max":100}', 1);