learshaw 5 месяцев назад
Родитель
Сommit
7d28ab6533

+ 3 - 0
ems/ems-cloud/ems-dev-adapter/src/main/java/com/ruoyi/ems/config/AcrelConfig.java

@@ -34,4 +34,7 @@ public class AcrelConfig {
 
 
     @Value("${adapter.acrel.auth.password}")
     @Value("${adapter.acrel.auth.password}")
     private String authPassword;
     private String authPassword;
+
+    @Value("${adapter.acrel.subids}")
+    private String subIds;
 }
 }

+ 78 - 0
ems/ems-cloud/ems-dev-adapter/src/main/java/com/ruoyi/ems/controller/AcrelElecMonitorController.java

@@ -0,0 +1,78 @@
+/*
+ * 文 件 名:  AcrelElecMonitorController
+ * 版    权:  华设设计集团股份有限公司
+ * 描    述:  <描述>
+ * 修 改 人:  lvwenbin
+ * 修改时间:  2025/10/17
+ * 跟踪单号:  <跟踪单号>
+ * 修改单号:  <修改单号>
+ * 修改内容:  <修改内容>
+ */
+package com.ruoyi.ems.controller;
+
+import com.ruoyi.ems.handle.AcrelElecMonitorHandler;
+import com.ruoyi.ems.handle.SquareLightCtlHandler;
+import com.ruoyi.ems.model.AbilityPayload;
+import com.ruoyi.ems.model.CallResponse;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * 安科瑞电力监控控制类
+ * <功能详细描述>
+ *
+ * @author lvwenbin
+ * @version [版本号, 2025/10/17]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+@RestController
+@CrossOrigin(allowedHeaders = "*", allowCredentials = "false")
+@RequestMapping("/elec-monitor-acrel")
+@Api(value = "AcrelElecMonitorController", description = "电力监控Api")
+public class AcrelElecMonitorController {
+    /**
+     * 日志
+     */
+    private static final Logger log = LoggerFactory.getLogger(AcrelElecMonitorController.class);
+
+    @Qualifier("acrelElecMonitorHandler")
+    @Resource
+    private AcrelElecMonitorHandler acrelElecMonitorHandler;
+
+    /**
+     * 常泰室内能耗能力调用
+     *
+     * @return 数据列表
+     */
+    @RequestMapping(value = "/ct/abilityCall", method = RequestMethod.POST)
+    @ApiOperation(value = "/ct/abilityCall", notes = "电力监控能力调用")
+    @ApiResponses({ @ApiResponse(code = 200, message = "success"),
+        @ApiResponse(code = 400, message = "{code:****,message:'fail'}")
+    })
+    public CallResponse<Void> ctElecMonitoCall(@RequestBody AbilityPayload abilityPayload) {
+        CallResponse<Void> res = null;
+
+        try {
+            res = acrelElecMonitorHandler.call(abilityPayload);
+        }
+        catch (Exception e) {
+            log.error("ctElecMonitoCall fail!", e);
+            res = new CallResponse<>(501, "内部错误:" + e.getMessage());
+        }
+
+        return res;
+    }
+}

+ 1 - 1
ems/ems-cloud/ems-dev-adapter/src/main/java/com/ruoyi/ems/controller/SquareLightCtlController.java

@@ -58,7 +58,7 @@ public class SquareLightCtlController {
      * @return 数据列表
      * @return 数据列表
      */
      */
     @RequestMapping(value = "/ct/abilityCall", method = RequestMethod.POST)
     @RequestMapping(value = "/ct/abilityCall", method = RequestMethod.POST)
-    @ApiOperation(value = "/ct/abilityCall", notes = "常泰室内能耗能力调用")
+    @ApiOperation(value = "/ct/abilityCall", notes = "照明系统能力调用")
     @ApiResponses({ @ApiResponse(code = 200, message = "success"),
     @ApiResponses({ @ApiResponse(code = 200, message = "success"),
         @ApiResponse(code = 400, message = "{code:****,message:'fail'}")
         @ApiResponse(code = 400, message = "{code:****,message:'fail'}")
     })
     })

+ 309 - 0
ems/ems-cloud/ems-dev-adapter/src/main/java/com/ruoyi/ems/handle/AcrelElecMonitorHandler.java

@@ -0,0 +1,309 @@
+/*
+ * 文 件 名:  AcrelElecMonitorHandler
+ * 版    权:  华设设计集团股份有限公司
+ * 描    述:  <描述>
+ * 修 改 人:  lvwenbin
+ * 修改时间:  2025/10/20
+ * 跟踪单号:  <跟踪单号>
+ * 修改单号:  <修改单号>
+ * 修改内容:  <修改内容>
+ */
+package com.ruoyi.ems.handle;
+
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import com.ruoyi.ems.config.AcrelConfig;
+import com.ruoyi.ems.core.Acrel3000Template;
+import com.ruoyi.ems.domain.EmsDevice;
+import com.ruoyi.ems.domain.EmsObjAttr;
+import com.ruoyi.ems.domain.EmsObjAttrValue;
+import com.ruoyi.ems.domain.MeterDevice;
+import com.ruoyi.ems.enums.DevObjType;
+import com.ruoyi.ems.model.AbilityPayload;
+import com.ruoyi.ems.model.CallResponse;
+import com.ruoyi.ems.model.QueryDevice;
+import com.ruoyi.ems.model.acrel.Circuit;
+import com.ruoyi.ems.model.acrel.MeterKeyValue;
+import com.ruoyi.ems.model.acrel.MeterUse;
+import com.ruoyi.ems.model.slightctl.CcElecInfo;
+import com.ruoyi.ems.model.slightctl.SlcDevice;
+import com.ruoyi.ems.service.IEmsObjAttrService;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 安科瑞电力监控模块handle
+ * <功能详细描述>
+ *
+ * @author lvwenbin
+ * @version [版本号, 2025/10/20]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+@Service
+public class AcrelElecMonitorHandler extends BaseMeterDevHandler {
+    private static final Logger log = LoggerFactory.getLogger(AcrelElecMonitorHandler.class);
+
+    // 对接系统
+    private static final String SYS_MODE_CODE = "M_W4_SYS_ELEC_MONITOR";
+
+    // 保护装置模型代码
+    private static final String MONITOR_BHZZ_MODE_CODE = "M_W4_DEV_ELEC_MONITOR_BHZZ";
+
+    // 电表模型代码
+    private static final String MONITOR_DB_MODE_CODE = "M_W4_DEV_ELEC_MONITOR_DB";
+
+    // 设备子系统代码
+    private static final String SUBSYSTEM_CODE = "SYS_DLJK";
+
+    @Resource
+    private AcrelConfig config;
+
+    @Autowired
+    private IEmsObjAttrService objAttrService;
+
+    @Override
+    public List<MeterDevice> getMeterDeviceList() {
+        return Collections.emptyList();
+    }
+
+    @Override
+    public List<EmsDevice> getDeviceList() {
+        QueryDevice queryDevice = new QueryDevice();
+        queryDevice.setSubsystemCode(SUBSYSTEM_CODE);
+        return deviceService.selectList(queryDevice);
+    }
+
+    @Override
+    public CallResponse<Void> call(AbilityPayload abilityParam) {
+        CallResponse<Void> callResponse = null;
+
+        try {
+            if (DevObjType.SYSTEM.getCode() == abilityParam.getObjType()) {
+                switch (abilityParam.getAbilityKey()) {
+                    case "GetDeviceList":
+                        CompletableFuture.runAsync(this::execGetDeviceList);
+                        break;
+                    default:
+                        throw new UnsupportedOperationException("不支持的abilityKey");
+                }
+            }
+
+            callResponse = new CallResponse<>(0, "成功");
+        }
+        catch (Exception e) {
+            callResponse = new CallResponse<>(-1, e.getMessage());
+            log.error("调用ability异常", e);
+        }
+
+        return callResponse;
+    }
+
+    public void execSyncDevAttrAll() {
+        try {
+            // 执行采集
+            String[] subIds = StringUtils.split(config.getSubIds(), ",");
+            // 采集同步设备
+            Acrel3000Template template = new Acrel3000Template(config.getUrl());
+
+            for (String subId : subIds) {
+                List<MeterUse> meterUseList = template.getMeterUseInfoList(subId);
+                meterUseList = meterUseList.stream().filter(this::meterUseList).collect(Collectors.toList());
+
+                if (CollectionUtils.isNotEmpty(meterUseList)) {
+                    Map<String, MeterUse> meterUseMap = meterUseList.stream()
+                        .collect(Collectors.toMap(MeterUse::getMeterCode, Function.identity()));
+
+                    List<Circuit> circuitList = template.getCircuitInfoTree(subId);
+
+                    // TODO
+                }
+            }
+        }
+        catch (Exception e) {
+            log.error("execSyncDevAttrAll fail!", e);
+        }
+    }
+
+    public void execGetDeviceList() {
+        try {
+            // 删除数据库设备
+            QueryDevice param = new QueryDevice();
+            param.setSubsystemCode(SUBSYSTEM_CODE);
+            List<EmsDevice> dbDevs = deviceService.selectList(param);
+
+            if (CollectionUtils.isNotEmpty(dbDevs)) {
+                for (EmsDevice emsDevice : dbDevs) {
+                    deviceService.deleteDevice(emsDevice.getDeviceModel(), emsDevice.getDeviceCode());
+                    objAttrValueService.deleteByObjCode(emsDevice.getDeviceModel(), emsDevice.getDeviceCode());
+                }
+            }
+
+            // 执行采集
+            String[] subIds = StringUtils.split(config.getSubIds(), ",");
+
+            if (ArrayUtils.isNotEmpty(subIds)) {
+                for (String subId : subIds) {
+                    getAreaDeviceList(subId);
+                }
+            }
+        }
+        catch (Exception e) {
+            log.error("execGetDeviceList fail!", e);
+        }
+    }
+
+    @Override
+    public void refreshOnline() {
+
+    }
+
+    public void getAreaDeviceList(String subId) {
+        // 采集同步设备
+        Acrel3000Template template = new Acrel3000Template(config.getUrl());
+        List<MeterUse> meterUseList = template.getMeterUseInfoList(subId);
+        meterUseList = meterUseList.stream().filter(this::meterUseList).collect(Collectors.toList());
+
+        if (CollectionUtils.isNotEmpty(meterUseList)) {
+            Map<String, MeterUse> meterUseMap = meterUseList.stream()
+                .collect(Collectors.toMap(MeterUse::getMeterCode, Function.identity()));
+
+            List<Circuit> circuitList = template.getCircuitInfoTree(subId);
+
+            for (Circuit circuit : circuitList) {
+                if (meterUseMap.containsKey(circuit.getMeterCode())) {
+                    MeterUse meterUse = meterUseMap.get(circuit.getMeterCode());
+
+                    // 构造设备对象
+                    EmsDevice device = convertDevice(meterUse);
+                    deviceService.insertEmsDevice(device);
+
+                    // 设备属性
+                    List<EmsObjAttrValue> attrValues = buildDeviceAttr(circuit, device, meterUseMap, template);
+
+                    if (CollectionUtils.isNotEmpty(attrValues)) {
+                        objAttrValueService.insertBatch(attrValues);
+                    }
+                }
+            }
+        }
+    }
+
+    private List<EmsObjAttrValue> buildDeviceAttr(Circuit circuit, EmsDevice device, Map<String, MeterUse> meterUseMap,
+        Acrel3000Template template) {
+        // 主节点设备自身属性获取
+        List<EmsObjAttrValue> attrValues = new ArrayList<>(
+            getDeviceAttrFromSys(device.getDeviceCode(), device.getDeviceModel(), device.getDeviceStatus(), circuit,
+                template));
+
+        if (circuit.getInComIng() && CollectionUtils.isNotEmpty(circuit.getChildren())) {
+            JSONArray subDevArray = new JSONArray();
+
+            for (Circuit subCircuit : circuit.getChildren()) {
+                JSONObject jsonObject = new JSONObject();
+                jsonObject.put("deviceCode", subCircuit.getMeterCode());
+                jsonObject.put("modelCode", device.getDeviceModel());
+                subDevArray.add(jsonObject);
+
+                MeterUse subMeterUse = meterUseMap.get(subCircuit.getMeterCode());
+                // 子节点设备属性获取
+                attrValues.addAll(
+                    getDeviceAttrFromSys(subCircuit.getMeterCode(), device.getDeviceModel(), convertStatus(subMeterUse),
+                        subCircuit, template));
+            }
+
+            attrValues.add(
+                new EmsObjAttrValue(device.getDeviceCode(), device.getDeviceModel(), "subDev", subDevArray.toString()));
+        }
+
+        return attrValues;
+    }
+
+    private List<EmsObjAttrValue> getDeviceAttrFromSys(String objCode, String modelCode, Integer deviceStatus,
+        Circuit circuit, Acrel3000Template template) {
+        List<EmsObjAttrValue> retList = new ArrayList<>();
+        retList.add(new EmsObjAttrValue(objCode, modelCode, "subId", circuit.getSubId()));
+        retList.add(new EmsObjAttrValue(objCode, modelCode, "subName", circuit.getSubName()));
+        retList.add(new EmsObjAttrValue(objCode, modelCode, "meterName", circuit.getCircuitName()));
+        retList.add(new EmsObjAttrValue(objCode, modelCode, "meterCode", circuit.getMeterCode()));
+        retList.add(new EmsObjAttrValue(objCode, modelCode, "deviceStatus", deviceStatus.toString()));
+
+        List<MeterKeyValue> meterKeyValueList = template.getMeterParamValueByKey(circuit.getSubId(),
+            circuit.getMeterCode());
+
+        if (CollectionUtils.isNotEmpty(meterKeyValueList)) {
+            List<EmsObjAttr> objAttrList = objAttrService.selectByModelCode(modelCode);
+
+            Map<String, MeterKeyValue> map = meterKeyValueList.stream()
+                .collect(Collectors.toMap(MeterKeyValue::getParamCode, Function.identity()));
+
+            for (EmsObjAttr objAttr : objAttrList) {
+                if (map.containsKey(objAttr.getAttrKey())) {
+                    MeterKeyValue meterKeyValue = map.get(objAttr.getAttrKey());
+                    retList.add(
+                        new EmsObjAttrValue(objCode, modelCode, objAttr.getAttrKey(), meterKeyValue.getValue()));
+                }
+            }
+        }
+
+        return retList;
+    }
+
+    private EmsDevice convertDevice(MeterUse meterUse) {
+        EmsDevice device = new EmsDevice();
+        device.setDeviceCode(String.format("W4-E-%s", meterUse.getMeterCode()));
+        device.setDeviceName(meterUse.getMeterName());
+        device.setDeviceBrand("安科瑞");
+        device.setDeviceSpec(null);
+        device.setDeviceStatus(convertStatus(meterUse));
+        device.setLocation(meterUse.getSubName());
+        device.setPsCode("SM");
+        device.setSubsystemCode(SUBSYSTEM_CODE);
+
+        if (StringUtils.equals("01001", meterUse.getMeterTypeCode())) {
+            device.setDeviceModel(MONITOR_DB_MODE_CODE);
+        }
+        else if (StringUtils.equals("01002", meterUse.getMeterTypeCode())) {
+            device.setDeviceModel(MONITOR_BHZZ_MODE_CODE);
+        }
+
+        if (StringUtils.equals("10100002", meterUse.getSubId())) {
+            device.setLocationRef("321283124S300100");
+            device.setAreaCode("321283124S3001");
+            device.setRefFacs("NH01");
+        }
+        else if (StringUtils.equals("10100003", meterUse.getSubId())) {
+            device.setLocationRef("321283124S300200");
+            device.setAreaCode("321283124S3002");
+            device.setRefFacs("NH02");
+        }
+
+        return device;
+    }
+
+
+
+    private Integer convertStatus(MeterUse meterUse) {
+        return meterUse.getDisConnect() ? 0 : 1;
+    }
+
+    private boolean meterUseList(MeterUse meterUse) {
+        return
+            (StringUtils.equals(meterUse.getMeterTypeCode(), "01001") && !StringUtils.contains(meterUse.getMeterName(),
+                "温感")) || StringUtils.equals(meterUse.getMeterTypeCode(), "01002");
+    }
+}

+ 18 - 0
ems/ems-cloud/ems-dev-adapter/src/main/java/com/ruoyi/ems/handle/BaseDevHandler.java

@@ -14,6 +14,7 @@ import com.huashe.common.utils.DateUtils;
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.ems.domain.EmsDevice;
 import com.ruoyi.ems.domain.EmsDevice;
 import com.ruoyi.ems.domain.EmsObjAbilityCallLog;
 import com.ruoyi.ems.domain.EmsObjAbilityCallLog;
+import com.ruoyi.ems.domain.EmsObjAttrValue;
 import com.ruoyi.ems.domain.EmsObjEventLog;
 import com.ruoyi.ems.domain.EmsObjEventLog;
 import com.ruoyi.ems.enums.DevOnlineStatus;
 import com.ruoyi.ems.enums.DevOnlineStatus;
 import com.ruoyi.ems.model.AbilityPayload;
 import com.ruoyi.ems.model.AbilityPayload;
@@ -30,10 +31,12 @@ import com.ruoyi.ems.service.IFdEnergyPriceConfigService;
 import com.ruoyi.ems.service.IPriceService;
 import com.ruoyi.ems.service.IPriceService;
 import com.ruoyi.ems.service.IWaterMeterHService;
 import com.ruoyi.ems.service.IWaterMeterHService;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 
 
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 /**
 /**
  * 设备处理基类
  * 设备处理基类
@@ -213,4 +216,19 @@ public abstract class BaseDevHandler {
     }
     }
 
 
     public abstract void refreshOnline();
     public abstract void refreshOnline();
+
+    protected void checkAndUpdate(Map<String, EmsObjAttrValue> objAttrValueMap, String objCode, String modelCode,
+        String key, String newValue) {
+        EmsObjAttrValue objAttrValue = objAttrValueMap.get(key);
+
+        if (null != objAttrValue) {
+            if (!StringUtils.equals(objAttrValue.getAttrValue(), newValue)) {
+                objAttrValueService.updateObjAttrValue(modelCode, objCode, key, newValue);
+            }
+        }
+        else {
+            objAttrValue = new EmsObjAttrValue(objCode, modelCode, key, newValue);
+            objAttrValueService.mergeObjAttrValue(objAttrValue);
+        }
+    }
 }
 }

+ 28 - 49
ems/ems-cloud/ems-dev-adapter/src/main/java/com/ruoyi/ems/handle/SquareLightCtlHandler.java

@@ -19,7 +19,6 @@ import com.ruoyi.ems.config.SquareLightCtlConfig;
 import com.ruoyi.ems.core.SquareLightCtlTemplate;
 import com.ruoyi.ems.core.SquareLightCtlTemplate;
 import com.ruoyi.ems.domain.EmsDevice;
 import com.ruoyi.ems.domain.EmsDevice;
 import com.ruoyi.ems.domain.EmsObjAttrValue;
 import com.ruoyi.ems.domain.EmsObjAttrValue;
-import com.ruoyi.ems.domain.MeterDevice;
 import com.ruoyi.ems.enums.DevObjType;
 import com.ruoyi.ems.enums.DevObjType;
 import com.ruoyi.ems.model.AbilityPayload;
 import com.ruoyi.ems.model.AbilityPayload;
 import com.ruoyi.ems.model.CallData;
 import com.ruoyi.ems.model.CallData;
@@ -64,7 +63,7 @@ import java.util.stream.Collectors;
  * @since [产品/模块版本]
  * @since [产品/模块版本]
  */
  */
 @Service
 @Service
-public class SquareLightCtlHandler extends BaseMeterDevHandler {
+public class SquareLightCtlHandler extends BaseDevHandler {
     private static final Logger log = LoggerFactory.getLogger(SquareLightCtlHandler.class);
     private static final Logger log = LoggerFactory.getLogger(SquareLightCtlHandler.class);
 
 
     // 对接系统
     // 对接系统
@@ -86,11 +85,6 @@ public class SquareLightCtlHandler extends BaseMeterDevHandler {
     private SquareLightCtlConfig config;
     private SquareLightCtlConfig config;
 
 
     @Override
     @Override
-    public List<MeterDevice> getMeterDeviceList() {
-        throw new UnsupportedOperationException("不支持的调用");
-    }
-
-    @Override
     public List<EmsDevice> getDeviceList() {
     public List<EmsDevice> getDeviceList() {
         QueryDevice queryDevice = new QueryDevice();
         QueryDevice queryDevice = new QueryDevice();
         queryDevice.setDeviceModel(DEV_MODE_CODE);
         queryDevice.setDeviceModel(DEV_MODE_CODE);
@@ -602,26 +596,26 @@ public class SquareLightCtlHandler extends BaseMeterDevHandler {
 
 
             if (null != deviceInfo.getBaselineInfo()) {
             if (null != deviceInfo.getBaselineInfo()) {
                 BaselineInfo baselineInfo = deviceInfo.getBaselineInfo();
                 BaselineInfo baselineInfo = deviceInfo.getBaselineInfo();
-                checkAndUpdate(vMap, deviceId, "firmwareVer", baselineInfo.getFirmwareVer());
-                checkAndUpdate(vMap, deviceId, "softwareVer", baselineInfo.getSoftwareVer());
+                checkAndUpdate(vMap, deviceId, DEV_MODE_CODE, "firmwareVer", baselineInfo.getFirmwareVer());
+                checkAndUpdate(vMap, deviceId, DEV_MODE_CODE, "softwareVer", baselineInfo.getSoftwareVer());
             }
             }
 
 
             if (null != deviceInfo.getStatusInfo()) {
             if (null != deviceInfo.getStatusInfo()) {
                 StatusInfo sInfo = 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()));
+                checkAndUpdate(vMap, deviceId, DEV_MODE_CODE, "csq", String.valueOf(sInfo.getCsq()));
+                checkAndUpdate(vMap, deviceId, DEV_MODE_CODE, "current", String.valueOf(sInfo.getCurrent()));
+                checkAndUpdate(vMap, deviceId, DEV_MODE_CODE, "power", String.valueOf(sInfo.getPower()));
+                checkAndUpdate(vMap, deviceId, DEV_MODE_CODE, "factor", String.valueOf(sInfo.getFactor()));
+                checkAndUpdate(vMap, deviceId, DEV_MODE_CODE, "voltage", String.valueOf(sInfo.getVoltage()));
+                checkAndUpdate(vMap, deviceId, DEV_MODE_CODE, "energy", String.valueOf(sInfo.getEnergy()));
+                checkAndUpdate(vMap, deviceId, DEV_MODE_CODE, "temperature", String.valueOf(sInfo.getTemperature()));
             }
             }
 
 
             if (CollectionUtils.isNotEmpty(deviceInfo.getLampList())) {
             if (CollectionUtils.isNotEmpty(deviceInfo.getLampList())) {
                 List<SlcDeviceLamp> lampList = deviceInfo.getLampList();
                 List<SlcDeviceLamp> lampList = deviceInfo.getLampList();
                 SlcDeviceLamp lamp = lampList.get(0);
                 SlcDeviceLamp lamp = lampList.get(0);
-                checkAndUpdate(vMap, deviceId, "cct", String.valueOf(lamp.getCct()));
-                checkAndUpdate(vMap, deviceId, "lampOnOff", String.valueOf(lamp.getLampOnOff()));
+                checkAndUpdate(vMap, deviceId, DEV_MODE_CODE, "cct", String.valueOf(lamp.getCct()));
+                checkAndUpdate(vMap, deviceId, DEV_MODE_CODE, "lampOnOff", String.valueOf(lamp.getLampOnOff()));
             }
             }
         }
         }
         else {
         else {
@@ -692,23 +686,23 @@ public class SquareLightCtlHandler extends BaseMeterDevHandler {
             if (CollectionUtils.isNotEmpty(objAttrValues)) {
             if (CollectionUtils.isNotEmpty(objAttrValues)) {
                 Map<String, EmsObjAttrValue> objAttrValueMap = objAttrValues.stream()
                 Map<String, EmsObjAttrValue> objAttrValueMap = objAttrValues.stream()
                     .collect(Collectors.toMap(EmsObjAttrValue::getAttrKey, Function.identity()));
                     .collect(Collectors.toMap(EmsObjAttrValue::getAttrKey, Function.identity()));
-                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), "abnormal",
+                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), CONCENTRATOR_MODE_CODE, "abnormal",
                     String.valueOf(slcDevice.getAbnormal()));
                     String.valueOf(slcDevice.getAbnormal()));
-                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), "csq", String.valueOf(slcDevice.getCsq()));
-                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), "kwh", String.valueOf(info.getKwh()));
-                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), "kvarh", String.valueOf(info.getKvarh()));
-                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), "ua", String.valueOf(info.getUa()));
-                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), "ub", String.valueOf(info.getUb()));
-                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), "uc", String.valueOf(info.getUc()));
-                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), "ia", String.valueOf(info.getIa()));
-                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), "ib", String.valueOf(info.getIb()));
-                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), "ic", String.valueOf(info.getIc()));
-                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), "pfa", String.valueOf(info.getPfa()));
-                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), "pfb", String.valueOf(info.getPfb()));
-                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), "pfc", String.valueOf(info.getPfc()));
-                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), "hza", String.valueOf(info.getHza()));
-                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), "hzb", String.valueOf(info.getHzb()));
-                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), "hzc", String.valueOf(info.getHzc()));
+                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), CONCENTRATOR_MODE_CODE, "csq", String.valueOf(slcDevice.getCsq()));
+                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), CONCENTRATOR_MODE_CODE, "kwh", String.valueOf(info.getKwh()));
+                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), CONCENTRATOR_MODE_CODE, "kvarh", String.valueOf(info.getKvarh()));
+                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), CONCENTRATOR_MODE_CODE, "ua", String.valueOf(info.getUa()));
+                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), CONCENTRATOR_MODE_CODE, "ub", String.valueOf(info.getUb()));
+                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), CONCENTRATOR_MODE_CODE, "uc", String.valueOf(info.getUc()));
+                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), CONCENTRATOR_MODE_CODE, "ia", String.valueOf(info.getIa()));
+                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), CONCENTRATOR_MODE_CODE, "ib", String.valueOf(info.getIb()));
+                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), CONCENTRATOR_MODE_CODE, "ic", String.valueOf(info.getIc()));
+                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), CONCENTRATOR_MODE_CODE, "pfa", String.valueOf(info.getPfa()));
+                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), CONCENTRATOR_MODE_CODE, "pfb", String.valueOf(info.getPfb()));
+                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), CONCENTRATOR_MODE_CODE, "pfc", String.valueOf(info.getPfc()));
+                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), CONCENTRATOR_MODE_CODE, "hza", String.valueOf(info.getHza()));
+                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), CONCENTRATOR_MODE_CODE, "hzb", String.valueOf(info.getHzb()));
+                checkAndUpdate(objAttrValueMap, slcDevice.getDeviceCode(), CONCENTRATOR_MODE_CODE, "hzc", String.valueOf(info.getHzc()));
             }
             }
             else {
             else {
                 objAttrValues = new ArrayList<>();
                 objAttrValues = new ArrayList<>();
@@ -760,19 +754,4 @@ public class SquareLightCtlHandler extends BaseMeterDevHandler {
             }
             }
         }
         }
     }
     }
-
-    private void checkAndUpdate(Map<String, EmsObjAttrValue> objAttrValueMap, String objCode, String key,
-        String newValue) {
-        EmsObjAttrValue objAttrValue = objAttrValueMap.get(key);
-
-        if (null != objAttrValue) {
-            if (!StringUtils.equals(objAttrValue.getAttrValue(), newValue)) {
-                objAttrValueService.updateObjAttrValue(DEV_MODE_CODE, objCode, key, newValue);
-            }
-        }
-        else {
-            objAttrValue = new EmsObjAttrValue(objCode, DEV_MODE_CODE, key, newValue);
-            objAttrValueService.mergeObjAttrValue(objAttrValue);
-        }
-    }
 }
 }

+ 1 - 1
ems/ems-cloud/ems-dev-adapter/src/main/java/com/ruoyi/ems/model/acrel/Circuit.java

@@ -30,7 +30,7 @@ public class Circuit {
      * 站点id
      * 站点id
      */
      */
     @JSONField(name = "fSubid")
     @JSONField(name = "fSubid")
-    private Integer subId;
+    private String subId;
 
 
     /**
     /**
      * 站点名称
      * 站点名称

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

@@ -61,6 +61,7 @@ adapter:
     auth:
     auth:
       loginName: admin
       loginName: admin
       password: Acrel001
       password: Acrel001
+    subids: 10100002,10100003
   # 室内能耗
   # 室内能耗
   id-energy:
   id-energy:
     url: http://127.0.0.1:8093
     url: http://127.0.0.1:8093

+ 1 - 0
ems/ems-cloud/ems-dev-adapter/src/main/resources/application-prod-ct.yml

@@ -61,6 +61,7 @@ adapter:
     auth:
     auth:
       loginName: admin
       loginName: admin
       password: Acrel001
       password: Acrel001
+    subids: 10100002,10100003
   # 室内能耗
   # 室内能耗
   id-energy:
   id-energy:
     url: http://172.17.50.186:80
     url: http://172.17.50.186:80

+ 3 - 3
ems/ems-cloud/ems-dev-adapter/src/test/java/com/huashe/test/Acrel3000Test.java

@@ -99,7 +99,7 @@ public class Acrel3000Test {
     @Test
     @Test
     public void testGetMeterParamValueByKey() {
     public void testGetMeterParamValueByKey() {
         Acrel3000Template template = new Acrel3000Template(config.getUrl());
         Acrel3000Template template = new Acrel3000Template(config.getUrl());
-        List<MeterKeyValue> meterKeyValueList = template.getMeterParamValueByKey("10100001", "T201019");
+        List<MeterKeyValue> meterKeyValueList = template.getMeterParamValueByKey("10100002", "T102086");
         log.info("MeterKeyValueList: {}", meterKeyValueList);
         log.info("MeterKeyValueList: {}", meterKeyValueList);
         Assert.assertNotNull(meterKeyValueList);
         Assert.assertNotNull(meterKeyValueList);
     }
     }
@@ -107,8 +107,8 @@ public class Acrel3000Test {
     @Test
     @Test
     public void testGetNewConsumeReport() {
     public void testGetNewConsumeReport() {
         Acrel3000Template template = new Acrel3000Template(config.getUrl());
         Acrel3000Template template = new Acrel3000Template(config.getUrl());
-        ConsumeReport consumeReport = template.getNewConsumeReport("10100001001", "min", "2025-07-01 00:00:00",
-            "2025-07-20 00:00:00", "24", "EPI");
+        ConsumeReport consumeReport = template.getNewConsumeReport("101000020001", "min", "2025-10-16 00:00:00",
+            "2025-10-17 00:00:00", "24", "EPI");
         log.info("consumeReport: {}", consumeReport);
         log.info("consumeReport: {}", consumeReport);
         Assert.assertNotNull(consumeReport);
         Assert.assertNotNull(consumeReport);
     }
     }

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

@@ -84,7 +84,6 @@ public class ElecPvSupplyHController extends BaseController {
     @PostMapping("/hour/export")
     @PostMapping("/hour/export")
     @ApiOperation("导出光伏产能统计数据")
     @ApiOperation("导出光伏产能统计数据")
     public void export(HttpServletResponse response, QueryMeter queryMeter) {
     public void export(HttpServletResponse response, QueryMeter queryMeter) {
-        // ✅ 移除了 @RequestBody 注解,改为直接接收参数
         try {
         try {
             validateAndSetDefaults(queryMeter);
             validateAndSetDefaults(queryMeter);
 
 

+ 7 - 18
ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/WaterConsumptionServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ruoyi.ems.service.impl;
 package com.ruoyi.ems.service.impl;
 
 
+import com.huashe.common.utils.DateUtils;
 import com.ruoyi.ems.domain.Area;
 import com.ruoyi.ems.domain.Area;
 import com.ruoyi.ems.domain.WaterMeterH;
 import com.ruoyi.ems.domain.WaterMeterH;
 import com.ruoyi.ems.mapper.WaterConsumptionMapper;
 import com.ruoyi.ems.mapper.WaterConsumptionMapper;
@@ -18,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import java.util.Collections;
 import java.util.Collections;
+import java.util.Date;
 import java.util.HashSet;
 import java.util.HashSet;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
@@ -68,10 +70,13 @@ public class WaterConsumptionServiceImpl implements IWaterConsumptionService {
         switch (queryMeter.getTimeDimension().toLowerCase()) {
         switch (queryMeter.getTimeDimension().toLowerCase()) {
             case "day":
             case "day":
                 result = waterConsumptionMapper.selectAreaDailyWaterConsumptionByDevices(queryMeter, meterDevices);
                 result = waterConsumptionMapper.selectAreaDailyWaterConsumptionByDevices(queryMeter, meterDevices);
+                break;
             case "month":
             case "month":
                 result = waterConsumptionMapper.selectAreaMonthlyWaterConsumptionByDevices(queryMeter, meterDevices);
                 result = waterConsumptionMapper.selectAreaMonthlyWaterConsumptionByDevices(queryMeter, meterDevices);
+                break;
             case "year":
             case "year":
                 result = waterConsumptionMapper.selectAreaYearlyWaterConsumptionByDevices(queryMeter, meterDevices);
                 result = waterConsumptionMapper.selectAreaYearlyWaterConsumptionByDevices(queryMeter, meterDevices);
+                break;
             default:
             default:
                 result = waterConsumptionMapper.selectAreaMonthlyWaterConsumptionByDevices(queryMeter, meterDevices);
                 result = waterConsumptionMapper.selectAreaMonthlyWaterConsumptionByDevices(queryMeter, meterDevices);
         }
         }
@@ -348,24 +353,8 @@ public class WaterConsumptionServiceImpl implements IWaterConsumptionService {
     /**
     /**
      * 日期格式化用于显示
      * 日期格式化用于显示
      */
      */
-    private String formatDateForDisplay(Object dateObj) {
-        if (dateObj == null) {
-            return "";
-        }
-
-        String dateStr = dateObj.toString();
-
-        // 如果是完整的日期时间字符串,提取日期部分
-        if (dateStr.contains(" ")) {
-            return dateStr.split(" ")[0];
-        }
-
-        // 如果已经是日期格式,直接返回
-        if (dateStr.matches("\\d{4}-\\d{2}-\\d{2}")) {
-            return dateStr;
-        }
-
-        return dateStr;
+    private String formatDateForDisplay(Date dateObj) {
+        return DateUtils.dateToString(dateObj, "yyyy-MM-dd");
     }
     }
 
 
     /**
     /**

+ 137 - 56
ems/sql/ems_init_data.sql

@@ -177,15 +177,15 @@ INSERT INTO `adm_ems_facs` (`facs_code`, `facs_name`, `facs_category`, `facs_sub
 INSERT INTO `adm_ems_facs` (`facs_code`, `facs_name`, `facs_category`, `facs_subcategory`, `enable`, `ref_area`) VALUES ('DEV02', '南区-设备监测', 'W', 'W4', 1, '321283124S3002');
 INSERT INTO `adm_ems_facs` (`facs_code`, `facs_name`, `facs_category`, `facs_subcategory`, `enable`, `ref_area`) VALUES ('DEV02', '南区-设备监测', 'W', 'W4', 1, '321283124S3002');
 
 
 -- 能源设备
 -- 能源设备
-INSERT INTO `adm_ems_device` (`device_code`, `device_name`, `device_brand`, `device_spec`, `device_status`, `location`, `location_ref`, `area_code`, `device_model`, `ref_facs`, `ps_code`, `subsystem_code`) VALUES ( 'ID-E-C-2003', '北区能耗采集器C', '-', '-', '1', '综合楼', '321283124S300101', '321283124S3001', 'M_W4_SM_INDOOR_ENERGY', 'NH01', 'SM', 'SYS_NHJC');
-INSERT INTO `adm_ems_device` (`device_code`, `device_name`, `device_brand`, `device_spec`, `device_status`, `location`, `location_ref`, `area_code`, `device_model`, `ref_facs`, `ps_code`, `subsystem_code`) VALUES ( 'ID-E-C-2004', '北区能耗采集器D', '-', '-', '1', '综合楼', '321283124S300101', '321283124S3001', 'M_W4_SM_INDOOR_ENERGY', 'NH01', 'SM', 'SYS_NHJC');
-INSERT INTO `adm_ems_device` (`device_code`, `device_name`, `device_brand`, `device_spec`, `device_status`, `location`, `location_ref`, `area_code`, `device_model`, `ref_facs`, `ps_code`, `subsystem_code`) VALUES ( 'ID-E-C-2005', '北区汽修间能耗采集器', '-', '-', '1', '司机之家', '321283124S300102', '321283124S3001', 'M_W4_SM_INDOOR_ENERGY', 'NH01', 'SM', 'SYS_NHJC');
-INSERT INTO `adm_ems_device` (`device_code`, `device_name`, `device_brand`, `device_spec`, `device_status`, `location`, `location_ref`, `area_code`, `device_model`, `ref_facs`, `ps_code`, `subsystem_code`) VALUES ( 'ID-E-C-2006', '北区警务室能耗采集器', '-', '-', '1', '警务室', '321283124S300103', '321283124S3001', 'M_W4_SM_INDOOR_ENERGY', 'NH01', 'SM', 'SYS_NHJC');
+INSERT INTO `adm_ems_device` (`device_code`, `device_name`, `device_brand`, `device_spec`, `device_status`, `location`, `location_ref`, `area_code`, `device_model`, `ref_facs`, `ps_code`, `subsystem_code`) VALUES ( 'W4-E-C-2003', '北区能耗采集器C', '-', '-', '1', '综合楼', '321283124S300101', '321283124S3001', 'M_W4_SM_INDOOR_ENERGY', 'NH01', 'SM', 'SYS_NHJC');
+INSERT INTO `adm_ems_device` (`device_code`, `device_name`, `device_brand`, `device_spec`, `device_status`, `location`, `location_ref`, `area_code`, `device_model`, `ref_facs`, `ps_code`, `subsystem_code`) VALUES ( 'W4-E-C-2004', '北区能耗采集器D', '-', '-', '1', '综合楼', '321283124S300101', '321283124S3001', 'M_W4_SM_INDOOR_ENERGY', 'NH01', 'SM', 'SYS_NHJC');
+INSERT INTO `adm_ems_device` (`device_code`, `device_name`, `device_brand`, `device_spec`, `device_status`, `location`, `location_ref`, `area_code`, `device_model`, `ref_facs`, `ps_code`, `subsystem_code`) VALUES ( 'W4-E-C-2005', '北区汽修间能耗采集器', '-', '-', '1', '司机之家', '321283124S300102', '321283124S3001', 'M_W4_SM_INDOOR_ENERGY', 'NH01', 'SM', 'SYS_NHJC');
+INSERT INTO `adm_ems_device` (`device_code`, `device_name`, `device_brand`, `device_spec`, `device_status`, `location`, `location_ref`, `area_code`, `device_model`, `ref_facs`, `ps_code`, `subsystem_code`) VALUES ( 'W4-E-C-2006', '北区警务室能耗采集器', '-', '-', '1', '警务室', '321283124S300103', '321283124S3001', 'M_W4_SM_INDOOR_ENERGY', 'NH01', 'SM', 'SYS_NHJC');
 
 
-INSERT INTO `adm_ems_device` (`device_code`, `device_name`, `device_brand`, `device_spec`, `device_status`, `location`, `location_ref`, `area_code`, `device_model`, `ref_facs`, `ps_code`, `subsystem_code`) VALUES ( 'ID-E-C-1003', '南区能耗采集器C', '-', '-', '1', '综合楼', '321283124S300201', '321283124S3002', 'M_W4_SM_INDOOR_ENERGY', 'NH02', 'SM', 'SYS_NHJC');
-INSERT INTO `adm_ems_device` (`device_code`, `device_name`, `device_brand`, `device_spec`, `device_status`, `location`, `location_ref`, `area_code`, `device_model`, `ref_facs`, `ps_code`, `subsystem_code`) VALUES ( 'ID-E-C-1004', '南区能耗采集器D', '-', '-', '1', '综合楼', '321283124S300201', '321283124S3002', 'M_W4_SM_INDOOR_ENERGY', 'NH02', 'SM', 'SYS_NHJC');
-INSERT INTO `adm_ems_device` (`device_code`, `device_name`, `device_brand`, `device_spec`, `device_status`, `location`, `location_ref`, `area_code`, `device_model`, `ref_facs`, `ps_code`, `subsystem_code`) VALUES ( 'ID-E-C-1005', '南区汽修间能耗采集器', '-', '-', '1', '司机之家', '321283124S300202', '321283124S3002', 'M_W4_SM_INDOOR_ENERGY', 'NH02', 'SM', 'SYS_NHJC');
-INSERT INTO `adm_ems_device` (`device_code`, `device_name`, `device_brand`, `device_spec`, `device_status`, `location`, `location_ref`, `area_code`, `device_model`, `ref_facs`, `ps_code`, `subsystem_code`) VALUES ( 'ID-E-C-1007', '南区宿舍能耗采集器', '-', '-', '1', '宿舍', '321283124S300203', '321283124S3002', 'M_W4_SM_INDOOR_ENERGY', 'NH02', 'SM', 'SYS_NHJC');
+INSERT INTO `adm_ems_device` (`device_code`, `device_name`, `device_brand`, `device_spec`, `device_status`, `location`, `location_ref`, `area_code`, `device_model`, `ref_facs`, `ps_code`, `subsystem_code`) VALUES ( 'W4-E-C-1003', '南区能耗采集器C', '-', '-', '1', '综合楼', '321283124S300201', '321283124S3002', 'M_W4_SM_INDOOR_ENERGY', 'NH02', 'SM', 'SYS_NHJC');
+INSERT INTO `adm_ems_device` (`device_code`, `device_name`, `device_brand`, `device_spec`, `device_status`, `location`, `location_ref`, `area_code`, `device_model`, `ref_facs`, `ps_code`, `subsystem_code`) VALUES ( 'W4-E-C-1004', '南区能耗采集器D', '-', '-', '1', '综合楼', '321283124S300201', '321283124S3002', 'M_W4_SM_INDOOR_ENERGY', 'NH02', 'SM', 'SYS_NHJC');
+INSERT INTO `adm_ems_device` (`device_code`, `device_name`, `device_brand`, `device_spec`, `device_status`, `location`, `location_ref`, `area_code`, `device_model`, `ref_facs`, `ps_code`, `subsystem_code`) VALUES ( 'W4-E-C-1005', '南区汽修间能耗采集器', '-', '-', '1', '司机之家', '321283124S300202', '321283124S3002', 'M_W4_SM_INDOOR_ENERGY', 'NH02', 'SM', 'SYS_NHJC');
+INSERT INTO `adm_ems_device` (`device_code`, `device_name`, `device_brand`, `device_spec`, `device_status`, `location`, `location_ref`, `area_code`, `device_model`, `ref_facs`, `ps_code`, `subsystem_code`) VALUES ( 'W4-E-C-1007', '南区宿舍能耗采集器', '-', '-', '1', '宿舍', '321283124S300203', '321283124S3002', 'M_W4_SM_INDOOR_ENERGY', 'NH02', 'SM', 'SYS_NHJC');
 
 
 -- mock设备
 -- mock设备
 INSERT INTO `adm_ems_device` (`device_code`, `device_name`, `device_brand`, `device_spec`, `device_status`, `location`, `location_ref`, `area_code`, `device_model`, `ref_facs`, `ps_code`, `subsystem_code`) VALUES ('GCZR-001', '光储设备1',    'xxx', 'xxx', 1, '北区广场', '321283124S300104', '321283124S3001',  'test', 'C101', NULL, 'SYS_GCC');
 INSERT INTO `adm_ems_device` (`device_code`, `device_name`, `device_brand`, `device_spec`, `device_status`, `location`, `location_ref`, `area_code`, `device_model`, `ref_facs`, `ps_code`, `subsystem_code`) VALUES ('GCZR-001', '光储设备1',    'xxx', 'xxx', 1, '北区广场', '321283124S300104', '321283124S3001',  'test', 'C101', NULL, 'SYS_GCC');
@@ -243,14 +243,17 @@ INSERT INTO `adm_op_energy_strategy_param` (`strategy_code`, `param_group`, `par
 
 
 
 
 -- 对象模型表
 -- 对象模型表
-INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_W4_SYS_IN_DOOR', '室内能耗监测系统', 3, null, null);
-INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_Z010_SYS_SQUARE_LIGHT', '广场照明系统', 3, NULL, NULL);
+INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_W4_SYS_IN_DOOR', '室内能耗监测系统', 3, 'http://172.17.60.27:9203/ems-dev-adapter/in-door-energy/ct/abilityCall', null);
+INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_Z010_SYS_SQUARE_LIGHT', '广场照明系统', 3, 'http://172.17.60.27:9203/ems-dev-adapter/square-light-ctl/ct/abilityCall', NULL);
+INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_W4_SYS_ELEC_MONITOR', '电力监控系统', 3, 'http://172.17.60.27:9203/ems-dev-adapter/elec-monitor-acrel/ct/abilityCall', NULL);
 INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_TEST', '测试', 3, NULL, NULL);
 INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_TEST', '测试', 3, NULL, NULL);
 
 
 INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_W4_SM_INDOOR_ENERGY', '室内能耗计量终端', 2, 'http://172.17.60.27:9203/ems-dev-adapter/in-door-energy/ct/abilityCall', NULL);
 INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_W4_SM_INDOOR_ENERGY', '室内能耗计量终端', 2, 'http://172.17.60.27:9203/ems-dev-adapter/in-door-energy/ct/abilityCall', NULL);
 INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_Z010_DEV_SQUARE_LAMP_POST', '智慧灯杆', 2, 'http://172.17.60.27:9203/ems-dev-adapter/square-light-ctl/ct/abilityCall', NULL);
 INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_Z010_DEV_SQUARE_LAMP_POST', '智慧灯杆', 2, 'http://172.17.60.27:9203/ems-dev-adapter/square-light-ctl/ct/abilityCall', NULL);
 INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_Z010_DEV_SQUARE_LIGHT', '照明灯组', 2, 'http://172.17.60.27:9203/ems-dev-adapter/square-light-ctl/ct/abilityCall', NULL);
 INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_Z010_DEV_SQUARE_LIGHT', '照明灯组', 2, 'http://172.17.60.27:9203/ems-dev-adapter/square-light-ctl/ct/abilityCall', NULL);
 INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_Z010_DEV_SQUARE_CONCENTRATOR', '照明集中器', 2, 'http://172.17.60.27:9203/ems-dev-adapter/square-light-ctl/ct/abilityCall', NULL);
 INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_Z010_DEV_SQUARE_CONCENTRATOR', '照明集中器', 2, 'http://172.17.60.27:9203/ems-dev-adapter/square-light-ctl/ct/abilityCall', NULL);
+INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', '电力保护装置', 2, 'http://172.17.60.27:9203/ems-dev-adapter/elec-monitor-acrel/ct/abilityCall', NULL);
+INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', '多功能电表', 2, 'http://172.17.60.27:9203/ems-dev-adapter/elec-monitor-acrel/ct/abilityCall', NULL);
 INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_W2_QF_GEEKOPEN', 'GeekOpen断路器', 2, 'http://172.17.60.27:9203/ems-dev-adapter/circuit-breaker/GeekOpen/abilityCall', NULL);
 INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_W2_QF_GEEKOPEN', 'GeekOpen断路器', 2, 'http://172.17.60.27:9203/ems-dev-adapter/circuit-breaker/GeekOpen/abilityCall', NULL);
 INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_W2_QS_KEKA_86', 'KEKA开关(86型)', 2, 'http://172.17.60.27:9203/ems-dev-adapter/button-switch/keka/86ButtonSwitchCall', NULL);
 INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`, `ability_handler`, `event_handler`) VALUES ('M_W2_QS_KEKA_86', 'KEKA开关(86型)', 2, 'http://172.17.60.27:9203/ems-dev-adapter/button-switch/keka/86ButtonSwitchCall', NULL);
 
 
@@ -324,69 +327,140 @@ 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_CONCENTRATOR', 'State', 'hzb', 'B相频率', '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_CONCENTRATOR', 'State', 'hzb', 'B相频率', '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_CONCENTRATOR', 'State', 'hzc', 'C相频率', '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_CONCENTRATOR', 'State', 'hzc', 'C相频率', 'Hz', 'Value');
 
 
+-- 电力监控属性
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_SYS_ELEC_MONITOR', 'Protocol', 'interfaceType', '协议类型', NULL, 'String');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_SYS_ELEC_MONITOR', 'Protocol', 'url', '服务地址', NULL, 'String');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_SYS_ELEC_MONITOR', 'Protocol', 'userName', '用户名', NULL, 'String');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_SYS_ELEC_MONITOR', 'Protocol', 'password', '密码', NULL, 'String');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_SYS_ELEC_MONITOR', 'State', 'interfaceStatus', '通道状态', NULL, 'Enum');
+
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', 'Base', 'subId', '站点编号', NULL, 'String');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', 'Base', 'subName', '站点名称', NULL, 'String');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', 'Base', 'meterName', '测点名称', NULL, 'String');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', 'Base', 'meterCode', '测点编码', NULL, 'String');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', 'Base', 'subDev', '测点设备', NULL, 'String');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', 'State', 'deviceStatus', '在线状态', NULL, 'Enum');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', 'State', 'Switch', '开关', NULL, 'Enum');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', 'State', 'Fr', '频率', 'Hz', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', 'State', 'Ia', 'A相电流', 'A', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', 'State', 'Ib', 'B相电流', 'A', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', 'State', 'Ic', 'C相电流', 'A', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', 'State', 'Uab', 'AB线电压', 'V', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', 'State', 'Ubc', 'BC线电压', 'V', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', 'State', 'Uca', 'CA线电压', 'V', 'Value');
+
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'Base', 'subId', '站点编号', NULL, 'String');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'Base', 'subName', '站点名称', NULL, 'String');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'Base', 'meterName', '测点名称', NULL, 'String');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'Base', 'meterCode', '测点编码', NULL, 'String');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'Base', 'subDev', '测点设备', NULL, 'String');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'deviceStatus', '在线状态', NULL, 'Enum');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Switch', '开关', NULL, 'Enum');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Fr', '频率', 'Hz', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Ia', 'A相电流', 'A', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Ib', 'B相电流', 'A', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Ic', 'C相电流', 'A', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'In', '零线电流', 'A', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'CUB', '电流不平衡度', '%', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Ua', 'A相电压', 'V', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Ub', 'B相电压', 'V', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Uc', 'C相电压', 'V', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Uab', 'AB线电压', 'V', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Ubc', 'BC线电压', 'V', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Uca', 'CA线电压', 'V', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'VUB', '电压不平衡度', '%', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'P', '总有功功率', 'kW', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Pa', 'A相有功功率', 'kW', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Pb', 'B相有功功率', 'kW', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Pc', 'C相有功功率', 'kW', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Q', '总无功功率', 'kVar', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Qa', 'A相无功功率', 'kVar', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Qb', 'B相无功功率', 'kVar', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Qc', 'C相无功功率', 'kVar', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'S', '总视在功率', 'kVA', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Sa', 'A相视在功率', 'kW·h', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Sb', 'B相视在功率', 'kW·h', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Sc', 'C相视在功率', 'kW·h', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Pf', '总功率因数', NULL, 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Pfa', 'A相功率因数', NULL, 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Pfb', 'B相功率因数', NULL, 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Pfc', 'C相功率因数', NULL, 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'State', 'Temp', '环境温度', '℃', 'Value');
+INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_group`, `attr_key`, `attr_name`, `attr_unit`, `attr_value_type`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'Measure', 'EPI', '正向有功总电能', 'kW·h', 'Value');
 
 
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_W4_SYS_IN_DOOR', 'interfaceStatus', '1', '正常');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_W4_SYS_IN_DOOR', 'interfaceStatus', '1', '正常');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_W4_SYS_IN_DOOR', 'interfaceStatus', '0', '断开');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_W4_SYS_IN_DOOR', 'interfaceStatus', '0', '断开');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_Z010_SYS_SQUARE_LIGHT', 'interfaceStatus', '1', '正常');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_Z010_SYS_SQUARE_LIGHT', 'interfaceStatus', '1', '正常');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_Z010_SYS_SQUARE_LIGHT', 'interfaceStatus', '0', '断开');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_Z010_SYS_SQUARE_LIGHT', 'interfaceStatus', '0', '断开');
+INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_W4_SYS_ELEC_MONITOR', 'interfaceStatus', '1', '正常');
+INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_W4_SYS_ELEC_MONITOR', 'interfaceStatus', '0', '断开');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_Z010_DEV_SQUARE_LIGHT', 'abnormal', '0', '正常');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_Z010_DEV_SQUARE_LIGHT', 'abnormal', '0', '正常');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_Z010_DEV_SQUARE_LIGHT', 'abnormal', '1', '异常');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_Z010_DEV_SQUARE_LIGHT', 'abnormal', '1', '异常');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_Z010_DEV_SQUARE_LIGHT', 'lampOnOff', '0', '关闭');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_Z010_DEV_SQUARE_LIGHT', 'lampOnOff', '0', '关闭');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_Z010_DEV_SQUARE_LIGHT', 'lampOnOff', '1', '开启');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_Z010_DEV_SQUARE_LIGHT', 'lampOnOff', '1', '开启');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_Z010_DEV_SQUARE_CONCENTRATOR', 'abnormal', '0', '正常');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_Z010_DEV_SQUARE_CONCENTRATOR', 'abnormal', '0', '正常');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_Z010_DEV_SQUARE_CONCENTRATOR', 'abnormal', '1', '异常');
 INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_Z010_DEV_SQUARE_CONCENTRATOR', 'abnormal', '1', '异常');
+INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', 'Switch', '0', '关闭');
+INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', 'Switch', '1', '开启');
+INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'Switch', '0', '关闭');
+INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'Switch', '1', '开启');
+INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', 'deviceStatus', '0', '离线');
+INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_W4_DEV_ELEC_MONITOR_BHZZ', 'deviceStatus', '1', '在线');
+INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'deviceStatus', '0', '离线');
+INSERT INTO `adm_ems_obj_attr_enum` (`model_code`, `attr_key`, `attr_value`, `attr_value_name`) VALUES ('M_W4_DEV_ELEC_MONITOR_DB', 'deviceStatus', '1', '在线');
+
 
 
 -- 对象属性
 -- 对象属性
 INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_NHJC', 'M_W4_SYS_IN_DOOR', 'interfaceType', 'http', NULL);
 INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_NHJC', 'M_W4_SYS_IN_DOOR', 'interfaceType', 'http', NULL);
 INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_NHJC', 'M_W4_SYS_IN_DOOR', 'url', 'http://172.17.50.186:80', NULL);
 INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_NHJC', 'M_W4_SYS_IN_DOOR', 'url', 'http://172.17.50.186:80', NULL);
 INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_NHJC', 'M_W4_SYS_IN_DOOR', 'appId', 'httpsjy', NULL);
 INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_NHJC', 'M_W4_SYS_IN_DOOR', 'appId', 'httpsjy', NULL);
 INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_NHJC', 'M_W4_SYS_IN_DOOR', 'interfaceStatus', '1', NULL);
 INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_NHJC', 'M_W4_SYS_IN_DOOR', 'interfaceStatus', '1', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2003', 'M_W4_SM_INDOOR_ENERGY', 'ip', '172.17.50.175', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2003', 'M_W4_SM_INDOOR_ENERGY', 'gateway', '172.17.50.254', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2003', 'M_W4_SM_INDOOR_ENERGY', 'subnetMask', '255.255.255.0', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2003', 'M_W4_SM_INDOOR_ENERGY', 'interface1', '[{"name":"(电表)北区综合楼ALZ","key":"C_2003_AV_0000","value":null,"updateTime":null},{"name":"(电表)北区综合楼AKZ","key":"C_2003_AV_0001","value":null,"updateTime":null},{"name":"(电表)北区综合楼APXF2","key":"C_2003_AV_0002","value":null,"updateTime":null},{"name":"(电表)北区综合楼APXF1","key":"C_2003_AV_0003","value":null,"updateTime":null},{"name":"(电表)北区综合楼APJK","key":"C_2003_AV_0005","value":null,"updateTime":null},{"name":"(电表)北区综合楼APsbjf","key":"C_2003_AV_0006","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2003', 'M_W4_SM_INDOOR_ENERGY', 'interface2', '[{"name":"(电表)德克士","key":"C_2003_AV_0206","value":null,"updateTime":null},{"name":"(电表)微团生活馆","key":"C_2003_AV_0214","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0222","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0230","value":null,"updateTime":null},{"name":"(电表)沪上阿姨(奶茶)","key":"C_2003_AV_0238","value":null,"updateTime":null},{"name":"(电表)服饰鞋帽(服饰)","key":"C_2003_AV_0246","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0254","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0262","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0270","value":null,"updateTime":null},{"name":"(电表)传统小吃(小吃)","key":"C_2003_AV_0278","value":null,"updateTime":null},{"name":"(电表)美广","key":"C_2003_AV_0286","value":null,"updateTime":null},{"name":"(电表)共和春(面馆)","key":"C_2003_AV_0294","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0302","value":null,"updateTime":null},{"name":"(电表)特产市集(特产)","key":"C_2003_AV_0310","value":null,"updateTime":null},{"name":"(电表)超市","key":"C_2003_AV_0318","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0326","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0334","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0342","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0350","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2003', 'M_W4_SM_INDOOR_ENERGY', 'interface3', '[{"name":"(电表)厨房配电","key":"C_2003_AV_0406","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2003', 'M_W4_SM_INDOOR_ENERGY', 'interface4', '[{"name":"(电表)北区综合楼APDT","key":"C_2003_AV_0600","value":null,"updateTime":null},{"name":"(电表)北区综合楼2APDP","key":"C_2003_AV_0601","value":null,"updateTime":null},{"name":"(电表)北区综合楼APKT1","key":"C_2003_AV_0603","value":null,"updateTime":null},{"name":"(电表)北区综合楼APKT2","key":"C_2003_AV_0604","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2004', 'M_W4_SM_INDOOR_ENERGY', 'ip', '172.17.50.176', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2004', 'M_W4_SM_INDOOR_ENERGY', 'gateway', '172.17.50.254', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2004', 'M_W4_SM_INDOOR_ENERGY', 'subnetMask', '255.255.255.0', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2004', 'M_W4_SM_INDOOR_ENERGY', 'interface1', '[{"name":"(水表)货车服务空间","key":"C_2004_AV_0000","value":null,"updateTime":null},{"name":"(水表)沪上阿姨","key":"C_2004_AV_0001","value":null,"updateTime":null},{"name":"(水表)微团生活馆","key":"C_2004_AV_0002","value":null,"updateTime":null},{"name":"(水表)服饰鞋帽","key":"C_2004_AV_0003","value":null,"updateTime":null},{"name":"(水表)卫生间","key":"C_2004_AV_0004","value":null,"updateTime":null},{"name":"(水表)开水间","key":"C_2004_AV_0005","value":null,"updateTime":null},{"name":"(水表)超市","key":"C_2004_AV_0006","value":null,"updateTime":null},{"name":"(水表)特产市集","key":"C_2004_AV_0007","value":null,"updateTime":null},{"name":"(水表)堂食餐饮","key":"C_2004_AV_0008","value":null,"updateTime":null},{"name":"(水表)传统小吃","key":"C_2004_AV_0009","value":null,"updateTime":null},{"name":"(水表)德克士","key":"C_2004_AV_0010","value":null,"updateTime":null},{"name":"(水表)共和春面馆","key":"C_2004_AV_0011","value":null,"updateTime":null},{"name":"(水表)中餐厅","key":"C_2004_AV_0012","value":null,"updateTime":null},{"name":"(水表)二楼","key":"C_2004_AV_0200","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2004', 'M_W4_SM_INDOOR_ENERGY', 'interface3', '[{"name":"(电表)北区综合楼APXK 消控室","key":"C_2004_AV_0400","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2005', 'M_W4_SM_INDOOR_ENERGY', 'ip', '172.17.50.177', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2005', 'M_W4_SM_INDOOR_ENERGY', 'gateway', '172.17.50.254', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2005', 'M_W4_SM_INDOOR_ENERGY', 'subnetMask', '255.255.255.0', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2005', 'M_W4_SM_INDOOR_ENERGY', 'interface2', '[{"name":"(电表)北区司机之家维修间ALWX","key":"C_2005_AV_0200","value":null,"updateTime":null},{"name":"(电表)北区司机之家维修间ALE","key":"C_2005_AV_0201","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2005', 'M_W4_SM_INDOOR_ENERGY', 'interface3', '[{"name":"(电表)北区司机之家维修间ALZ","key":"C_2005_AV_0400","value":null,"updateTime":null},{"name":"(电表)北区司机之家维修间ALSS","key":"C_2005_AV_0401","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2005', 'M_W4_SM_INDOOR_ENERGY', 'interface4', '[{"name":"(水表)司机之家","key":"C_2005_AV_0600","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2006', 'M_W4_SM_INDOOR_ENERGY', 'ip', '172.17.50.178', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2006', 'M_W4_SM_INDOOR_ENERGY', 'gateway', '172.17.50.254', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2006', 'M_W4_SM_INDOOR_ENERGY', 'subnetMask', '255.255.255.0', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-2006', 'M_W4_SM_INDOOR_ENERGY', 'interface1', '[{"name":"(电表)警务室AL","key":"C_2006_AV_0000","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1003', 'M_W4_SM_INDOOR_ENERGY', 'ip', '172.17.50.162', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1003', 'M_W4_SM_INDOOR_ENERGY', 'gateway', '172.17.50.254', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1003', 'M_W4_SM_INDOOR_ENERGY', 'subnetMask', '255.255.255.0', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1003', 'M_W4_SM_INDOOR_ENERGY', 'interface1', '[{"name":"(电表)南区综合楼ALZ","key":"C_1003_AV_0000","value":null,"updateTime":null},{"name":"(电表)南区综合楼AKZ","key":"C_1003_AV_0001","value":null,"updateTime":null},{"name":"(电表)南区综合楼APXF2","key":"C_1003_AV_0002","value":null,"updateTime":null},{"name":"(电表)南区综合楼APXF1","key":"C_1003_AV_0003","value":null,"updateTime":null},{"name":"(电表)南区综合楼APJF","key":"C_1003_AV_0004","value":null,"updateTime":null},{"name":"(电表)南区综合楼APJK","key":"C_1003_AV_0005","value":null,"updateTime":null},{"name":"(电表)南区综合楼APsbjf","key":"C_1003_AV_0006","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1003', 'M_W4_SM_INDOOR_ENERGY', 'interface2', '[{"name":"(电表)德克士","key":"C_1003_AV_0206","value":null,"updateTime":null},{"name":"(电表)微团生活馆","key":"C_1003_AV_0214","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0222","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0230","value":null,"updateTime":null},{"name":"(电表)沪上阿姨(奶茶)","key":"C_1003_AV_0238","value":null,"updateTime":null},{"name":"(电表)服饰鞋帽(服饰)","key":"C_1003_AV_0246","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0254","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0262","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0270","value":null,"updateTime":null},{"name":"(电表)传统小吃(小吃)","key":"C_1003_AV_0278","value":null,"updateTime":null},{"name":"(电表)美广","key":"C_1003_AV_0286","value":null,"updateTime":null},{"name":"(电表)共和春(面馆)","key":"C_1003_AV_0294","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0302","value":null,"updateTime":null},{"name":"(电表)特产市集(特产)","key":"C_1003_AV_0310","value":null,"updateTime":null},{"name":"(电表)超市","key":"C_1003_AV_0318","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0326","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0334","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0342","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0350","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1003', 'M_W4_SM_INDOOR_ENERGY', 'interface3', '[{"name":"(电表)厨房配电","key":"C_1003_AV_0406","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1003', 'M_W4_SM_INDOOR_ENERGY', 'interface4', '[{"name":"(电表)南区综合楼APDT","key":"C_1003_AV_0600","value":null,"updateTime":null},{"name":"(电表)南区综合楼2APDP","key":"C_1003_AV_0601","value":null,"updateTime":null},{"name":"(电表)南区综合楼2ALZt","key":"C_1003_AV_0602","value":null,"updateTime":null},{"name":"(电表)南区综合楼APKT1","key":"C_1003_AV_0603","value":null,"updateTime":null},{"name":"(电表)南区综合楼APKT2","key":"C_1003_AV_0604","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1004', 'M_W4_SM_INDOOR_ENERGY', 'ip', '172.17.50.163', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1004', 'M_W4_SM_INDOOR_ENERGY', 'gateway', '172.17.50.254', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1004', 'M_W4_SM_INDOOR_ENERGY', 'subnetMask', '255.255.255.0', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1004', 'M_W4_SM_INDOOR_ENERGY', 'interface1', '[{"name":"(水表)货车服务空间","key":"C_1004_AV_0000","value":null,"updateTime":null},{"name":"(水表)沪上阿姨","key":"C_1004_AV_0001","value":null,"updateTime":null},{"name":"(水表)微团生活馆","key":"C_1004_AV_0002","value":null,"updateTime":null},{"name":"(水表)服饰鞋帽","key":"C_1004_AV_0003","value":null,"updateTime":null},{"name":"(水表)卫生间","key":"C_1004_AV_0004","value":null,"updateTime":null},{"name":"(水表)开水间","key":"C_1004_AV_0005","value":null,"updateTime":null},{"name":"(水表)超市","key":"C_1004_AV_0006","value":null,"updateTime":null},{"name":"(水表)特产市集","key":"C_1004_AV_0007","value":null,"updateTime":null},{"name":"(水表)堂食餐饮","key":"C_1004_AV_0008","value":null,"updateTime":null},{"name":"(水表)传统小吃","key":"C_1004_AV_0009","value":null,"updateTime":null},{"name":"(水表)德克士","key":"C_1004_AV_0010","value":null,"updateTime":null},{"name":"(水表)共和春面馆","key":"C_1004_AV_0011","value":null,"updateTime":null},{"name":"(水表)中餐厅","key":"C_1004_AV_0012","value":null,"updateTime":null},{"name":"(水表)二楼","key":"C_1004_AV_0200","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1004', 'M_W4_SM_INDOOR_ENERGY', 'interface3', '[{"name":"(电表)南区综合楼APXK 消控室","key":"C_1004_AV_0400","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1005', 'M_W4_SM_INDOOR_ENERGY', 'ip', '172.17.50.164', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1005', 'M_W4_SM_INDOOR_ENERGY', 'gateway', '172.17.50.254', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1005', 'M_W4_SM_INDOOR_ENERGY', 'subnetMask', '255.255.255.0', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1005', 'M_W4_SM_INDOOR_ENERGY', 'interface1', '[{"name":"(电表)南区司机之家维修间ALZ","key":"C_1005_AV_0000","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1005', 'M_W4_SM_INDOOR_ENERGY', 'interface2', '[{"name":"(电表)南区司机之家维修间ALWX","key":"C_1005_AV_0200","value":null,"updateTime":null},{"name":"(电表)南区司机之家维修间ALE","key":"C_1005_AV_0201","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1005', 'M_W4_SM_INDOOR_ENERGY', 'interface3', '[{"name":"(电表)南区司机之家维修间ALSS","key":"C_1005_AV_0400","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1005', 'M_W4_SM_INDOOR_ENERGY', 'interface4', '[{"name":"(水表)司机之家","key":"C_1005_AV_0600","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1007', 'M_W4_SM_INDOOR_ENERGY', 'ip', '172.17.50.166', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1007', 'M_W4_SM_INDOOR_ENERGY', 'gateway', '172.17.50.254', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1007', 'M_W4_SM_INDOOR_ENERGY', 'subnetMask', '255.255.255.0', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1007', 'M_W4_SM_INDOOR_ENERGY', 'interface1', '[{"name":"(电表)南区宿舍ALZ","key":"C_1007_AV_0000","value":null,"updateTime":null}]', NULL);
-INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('ID-E-C-1007', 'M_W4_SM_INDOOR_ENERGY', 'interface2', '[{"name":"(电表)南区宿舍ALE","key":"C_1007_AV_0200","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2003', 'M_W4_SM_INDOOR_ENERGY', 'ip', '172.17.50.175', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2003', 'M_W4_SM_INDOOR_ENERGY', 'gateway', '172.17.50.254', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2003', 'M_W4_SM_INDOOR_ENERGY', 'subnetMask', '255.255.255.0', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2003', 'M_W4_SM_INDOOR_ENERGY', 'interface1', '[{"name":"(电表)北区综合楼ALZ","key":"C_2003_AV_0000","value":null,"updateTime":null},{"name":"(电表)北区综合楼AKZ","key":"C_2003_AV_0001","value":null,"updateTime":null},{"name":"(电表)北区综合楼APXF2","key":"C_2003_AV_0002","value":null,"updateTime":null},{"name":"(电表)北区综合楼APXF1","key":"C_2003_AV_0003","value":null,"updateTime":null},{"name":"(电表)北区综合楼APJK","key":"C_2003_AV_0005","value":null,"updateTime":null},{"name":"(电表)北区综合楼APsbjf","key":"C_2003_AV_0006","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2003', 'M_W4_SM_INDOOR_ENERGY', 'interface2', '[{"name":"(电表)德克士","key":"C_2003_AV_0206","value":null,"updateTime":null},{"name":"(电表)微团生活馆","key":"C_2003_AV_0214","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0222","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0230","value":null,"updateTime":null},{"name":"(电表)沪上阿姨(奶茶)","key":"C_2003_AV_0238","value":null,"updateTime":null},{"name":"(电表)服饰鞋帽(服饰)","key":"C_2003_AV_0246","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0254","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0262","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0270","value":null,"updateTime":null},{"name":"(电表)传统小吃(小吃)","key":"C_2003_AV_0278","value":null,"updateTime":null},{"name":"(电表)美广","key":"C_2003_AV_0286","value":null,"updateTime":null},{"name":"(电表)共和春(面馆)","key":"C_2003_AV_0294","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0302","value":null,"updateTime":null},{"name":"(电表)特产市集(特产)","key":"C_2003_AV_0310","value":null,"updateTime":null},{"name":"(电表)超市","key":"C_2003_AV_0318","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0326","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0334","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0342","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_2003_AV_0350","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2003', 'M_W4_SM_INDOOR_ENERGY', 'interface3', '[{"name":"(电表)厨房配电","key":"C_2003_AV_0406","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2003', 'M_W4_SM_INDOOR_ENERGY', 'interface4', '[{"name":"(电表)北区综合楼APDT","key":"C_2003_AV_0600","value":null,"updateTime":null},{"name":"(电表)北区综合楼2APDP","key":"C_2003_AV_0601","value":null,"updateTime":null},{"name":"(电表)北区综合楼APKT1","key":"C_2003_AV_0603","value":null,"updateTime":null},{"name":"(电表)北区综合楼APKT2","key":"C_2003_AV_0604","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2004', 'M_W4_SM_INDOOR_ENERGY', 'ip', '172.17.50.176', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2004', 'M_W4_SM_INDOOR_ENERGY', 'gateway', '172.17.50.254', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2004', 'M_W4_SM_INDOOR_ENERGY', 'subnetMask', '255.255.255.0', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2004', 'M_W4_SM_INDOOR_ENERGY', 'interface1', '[{"name":"(水表)货车服务空间","key":"C_2004_AV_0000","value":null,"updateTime":null},{"name":"(水表)沪上阿姨","key":"C_2004_AV_0001","value":null,"updateTime":null},{"name":"(水表)微团生活馆","key":"C_2004_AV_0002","value":null,"updateTime":null},{"name":"(水表)服饰鞋帽","key":"C_2004_AV_0003","value":null,"updateTime":null},{"name":"(水表)卫生间","key":"C_2004_AV_0004","value":null,"updateTime":null},{"name":"(水表)开水间","key":"C_2004_AV_0005","value":null,"updateTime":null},{"name":"(水表)超市","key":"C_2004_AV_0006","value":null,"updateTime":null},{"name":"(水表)特产市集","key":"C_2004_AV_0007","value":null,"updateTime":null},{"name":"(水表)堂食餐饮","key":"C_2004_AV_0008","value":null,"updateTime":null},{"name":"(水表)传统小吃","key":"C_2004_AV_0009","value":null,"updateTime":null},{"name":"(水表)德克士","key":"C_2004_AV_0010","value":null,"updateTime":null},{"name":"(水表)共和春面馆","key":"C_2004_AV_0011","value":null,"updateTime":null},{"name":"(水表)中餐厅","key":"C_2004_AV_0012","value":null,"updateTime":null},{"name":"(水表)二楼","key":"C_2004_AV_0200","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2004', 'M_W4_SM_INDOOR_ENERGY', 'interface3', '[{"name":"(电表)北区综合楼APXK 消控室","key":"C_2004_AV_0400","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2005', 'M_W4_SM_INDOOR_ENERGY', 'ip', '172.17.50.177', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2005', 'M_W4_SM_INDOOR_ENERGY', 'gateway', '172.17.50.254', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2005', 'M_W4_SM_INDOOR_ENERGY', 'subnetMask', '255.255.255.0', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2005', 'M_W4_SM_INDOOR_ENERGY', 'interface2', '[{"name":"(电表)北区司机之家维修间ALWX","key":"C_2005_AV_0200","value":null,"updateTime":null},{"name":"(电表)北区司机之家维修间ALE","key":"C_2005_AV_0201","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2005', 'M_W4_SM_INDOOR_ENERGY', 'interface3', '[{"name":"(电表)北区司机之家维修间ALZ","key":"C_2005_AV_0400","value":null,"updateTime":null},{"name":"(电表)北区司机之家维修间ALSS","key":"C_2005_AV_0401","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2005', 'M_W4_SM_INDOOR_ENERGY', 'interface4', '[{"name":"(水表)司机之家","key":"C_2005_AV_0600","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2006', 'M_W4_SM_INDOOR_ENERGY', 'ip', '172.17.50.178', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2006', 'M_W4_SM_INDOOR_ENERGY', 'gateway', '172.17.50.254', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2006', 'M_W4_SM_INDOOR_ENERGY', 'subnetMask', '255.255.255.0', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-2006', 'M_W4_SM_INDOOR_ENERGY', 'interface1', '[{"name":"(电表)警务室AL","key":"C_2006_AV_0000","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1003', 'M_W4_SM_INDOOR_ENERGY', 'ip', '172.17.50.162', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1003', 'M_W4_SM_INDOOR_ENERGY', 'gateway', '172.17.50.254', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1003', 'M_W4_SM_INDOOR_ENERGY', 'subnetMask', '255.255.255.0', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1003', 'M_W4_SM_INDOOR_ENERGY', 'interface1', '[{"name":"(电表)南区综合楼ALZ","key":"C_1003_AV_0000","value":null,"updateTime":null},{"name":"(电表)南区综合楼AKZ","key":"C_1003_AV_0001","value":null,"updateTime":null},{"name":"(电表)南区综合楼APXF2","key":"C_1003_AV_0002","value":null,"updateTime":null},{"name":"(电表)南区综合楼APXF1","key":"C_1003_AV_0003","value":null,"updateTime":null},{"name":"(电表)南区综合楼APJF","key":"C_1003_AV_0004","value":null,"updateTime":null},{"name":"(电表)南区综合楼APJK","key":"C_1003_AV_0005","value":null,"updateTime":null},{"name":"(电表)南区综合楼APsbjf","key":"C_1003_AV_0006","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1003', 'M_W4_SM_INDOOR_ENERGY', 'interface2', '[{"name":"(电表)德克士","key":"C_1003_AV_0206","value":null,"updateTime":null},{"name":"(电表)微团生活馆","key":"C_1003_AV_0214","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0222","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0230","value":null,"updateTime":null},{"name":"(电表)沪上阿姨(奶茶)","key":"C_1003_AV_0238","value":null,"updateTime":null},{"name":"(电表)服饰鞋帽(服饰)","key":"C_1003_AV_0246","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0254","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0262","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0270","value":null,"updateTime":null},{"name":"(电表)传统小吃(小吃)","key":"C_1003_AV_0278","value":null,"updateTime":null},{"name":"(电表)美广","key":"C_1003_AV_0286","value":null,"updateTime":null},{"name":"(电表)共和春(面馆)","key":"C_1003_AV_0294","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0302","value":null,"updateTime":null},{"name":"(电表)特产市集(特产)","key":"C_1003_AV_0310","value":null,"updateTime":null},{"name":"(电表)超市","key":"C_1003_AV_0318","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0326","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0334","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0342","value":null,"updateTime":null},{"name":"(电表)备用","key":"C_1003_AV_0350","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1003', 'M_W4_SM_INDOOR_ENERGY', 'interface3', '[{"name":"(电表)厨房配电","key":"C_1003_AV_0406","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1003', 'M_W4_SM_INDOOR_ENERGY', 'interface4', '[{"name":"(电表)南区综合楼APDT","key":"C_1003_AV_0600","value":null,"updateTime":null},{"name":"(电表)南区综合楼2APDP","key":"C_1003_AV_0601","value":null,"updateTime":null},{"name":"(电表)南区综合楼2ALZt","key":"C_1003_AV_0602","value":null,"updateTime":null},{"name":"(电表)南区综合楼APKT1","key":"C_1003_AV_0603","value":null,"updateTime":null},{"name":"(电表)南区综合楼APKT2","key":"C_1003_AV_0604","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1004', 'M_W4_SM_INDOOR_ENERGY', 'ip', '172.17.50.163', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1004', 'M_W4_SM_INDOOR_ENERGY', 'gateway', '172.17.50.254', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1004', 'M_W4_SM_INDOOR_ENERGY', 'subnetMask', '255.255.255.0', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1004', 'M_W4_SM_INDOOR_ENERGY', 'interface1', '[{"name":"(水表)货车服务空间","key":"C_1004_AV_0000","value":null,"updateTime":null},{"name":"(水表)沪上阿姨","key":"C_1004_AV_0001","value":null,"updateTime":null},{"name":"(水表)微团生活馆","key":"C_1004_AV_0002","value":null,"updateTime":null},{"name":"(水表)服饰鞋帽","key":"C_1004_AV_0003","value":null,"updateTime":null},{"name":"(水表)卫生间","key":"C_1004_AV_0004","value":null,"updateTime":null},{"name":"(水表)开水间","key":"C_1004_AV_0005","value":null,"updateTime":null},{"name":"(水表)超市","key":"C_1004_AV_0006","value":null,"updateTime":null},{"name":"(水表)特产市集","key":"C_1004_AV_0007","value":null,"updateTime":null},{"name":"(水表)堂食餐饮","key":"C_1004_AV_0008","value":null,"updateTime":null},{"name":"(水表)传统小吃","key":"C_1004_AV_0009","value":null,"updateTime":null},{"name":"(水表)德克士","key":"C_1004_AV_0010","value":null,"updateTime":null},{"name":"(水表)共和春面馆","key":"C_1004_AV_0011","value":null,"updateTime":null},{"name":"(水表)中餐厅","key":"C_1004_AV_0012","value":null,"updateTime":null},{"name":"(水表)二楼","key":"C_1004_AV_0200","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1004', 'M_W4_SM_INDOOR_ENERGY', 'interface3', '[{"name":"(电表)南区综合楼APXK 消控室","key":"C_1004_AV_0400","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1005', 'M_W4_SM_INDOOR_ENERGY', 'ip', '172.17.50.164', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1005', 'M_W4_SM_INDOOR_ENERGY', 'gateway', '172.17.50.254', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1005', 'M_W4_SM_INDOOR_ENERGY', 'subnetMask', '255.255.255.0', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1005', 'M_W4_SM_INDOOR_ENERGY', 'interface1', '[{"name":"(电表)南区司机之家维修间ALZ","key":"C_1005_AV_0000","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1005', 'M_W4_SM_INDOOR_ENERGY', 'interface2', '[{"name":"(电表)南区司机之家维修间ALWX","key":"C_1005_AV_0200","value":null,"updateTime":null},{"name":"(电表)南区司机之家维修间ALE","key":"C_1005_AV_0201","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1005', 'M_W4_SM_INDOOR_ENERGY', 'interface3', '[{"name":"(电表)南区司机之家维修间ALSS","key":"C_1005_AV_0400","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1005', 'M_W4_SM_INDOOR_ENERGY', 'interface4', '[{"name":"(水表)司机之家","key":"C_1005_AV_0600","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1007', 'M_W4_SM_INDOOR_ENERGY', 'ip', '172.17.50.166', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1007', 'M_W4_SM_INDOOR_ENERGY', 'gateway', '172.17.50.254', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1007', 'M_W4_SM_INDOOR_ENERGY', 'subnetMask', '255.255.255.0', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1007', 'M_W4_SM_INDOOR_ENERGY', 'interface1', '[{"name":"(电表)南区宿舍ALZ","key":"C_1007_AV_0000","value":null,"updateTime":null}]', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('W4-E-C-1007', 'M_W4_SM_INDOOR_ENERGY', 'interface2', '[{"name":"(电表)南区宿舍ALE","key":"C_1007_AV_0200","value":null,"updateTime":null}]', NULL);
 
 
 INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_ZHZM', 'M_Z010_SYS_SQUARE_LIGHT', 'interfaceType', 'http', NULL);
 INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_ZHZM', 'M_Z010_SYS_SQUARE_LIGHT', 'interfaceType', 'http', NULL);
 INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_ZHZM', 'M_Z010_SYS_SQUARE_LIGHT', 'url', 'http://172.17.60.30:8686', NULL);
 INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_ZHZM', 'M_Z010_SYS_SQUARE_LIGHT', 'url', 'http://172.17.60.30:8686', NULL);
@@ -397,6 +471,11 @@ INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `att
 INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_ZHZM', 'M_Z010_SYS_SQUARE_LIGHT', 'projectList', '[{"createTime":"2025-07-25 22:21:16","projectAddress":"未知","projectDeviceNum":196,"projectId":"1948750398922747906","projectName":"智慧照明","projectSubsetNum":4,"remark":"","type":"0"}]', NULL);
 INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_ZHZM', 'M_Z010_SYS_SQUARE_LIGHT', 'projectList', '[{"createTime":"2025-07-25 22:21:16","projectAddress":"未知","projectDeviceNum":196,"projectId":"1948750398922747906","projectName":"智慧照明","projectSubsetNum":4,"remark":"","type":"0"}]', NULL);
 INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_ZHZM', 'M_Z010_SYS_SQUARE_LIGHT', 'projectSubsetList', '[{"subsetDeviceNum":"196","subsetId":"1948750399027605506","subsetName":"分组1"},{"subsetDeviceNum":"0","subsetId":"1948750399090520065","subsetName":"分组2"},{"subsetDeviceNum":"0","subsetId":"1948750399140851713","subsetName":"分组3"},{"subsetDeviceNum":"0","subsetId":"1948750399186989058","subsetName":"分组4"}]', NULL);
 INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_ZHZM', 'M_Z010_SYS_SQUARE_LIGHT', 'projectSubsetList', '[{"subsetDeviceNum":"196","subsetId":"1948750399027605506","subsetName":"分组1"},{"subsetDeviceNum":"0","subsetId":"1948750399090520065","subsetName":"分组2"},{"subsetDeviceNum":"0","subsetId":"1948750399140851713","subsetName":"分组3"},{"subsetDeviceNum":"0","subsetId":"1948750399186989058","subsetName":"分组4"}]', NULL);
 
 
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_DLJK', 'M_W4_SYS_ELEC_MONITOR', 'interfaceType', 'http', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_DLJK', 'M_W4_SYS_ELEC_MONITOR', 'url', 'http://172.61.55.66:8090', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_DLJK', 'M_W4_SYS_ELEC_MONITOR', 'userName', 'admin', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_DLJK', 'M_W4_SYS_ELEC_MONITOR', 'password', 'Acrel001', NULL);
+INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `model_code`, `attr_key`, `attr_value`, `update_time`) VALUES ('SYS_DLJK', 'M_W4_SYS_ELEC_MONITOR', 'interfaceStatus', '1', NULL);
 
 
 -- 对象能力数据
 -- 对象能力数据
 INSERT INTO `adm_ems_obj_ability` (`model_code`, `ability_key`, `ability_name`, `ability_desc`, `param_definition`, `hidden_flag`) VALUES ('M_W4_SYS_IN_DOOR', 'MeterReadingTotal', '全量抄报-网关', '网关-测点批量抄报', null, 1);
 INSERT INTO `adm_ems_obj_ability` (`model_code`, `ability_key`, `ability_name`, `ability_desc`, `param_definition`, `hidden_flag`) VALUES ('M_W4_SYS_IN_DOOR', 'MeterReadingTotal', '全量抄报-网关', '网关-测点批量抄报', null, 1);
@@ -410,6 +489,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_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', '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);
 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);
 INSERT INTO `adm_ems_obj_ability` (`model_code`, `ability_key`, `ability_name`, `ability_desc`, `param_definition`, `hidden_flag`) VALUES ('M_Z010_DEV_SQUARE_LIGHT', 'SyncDevAttr', '刷新状态', '全量灯组状态', null, 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', 'SyncDevAttr', '刷新状态', '全量灯组状态', null, 1);
+INSERT INTO `adm_ems_obj_ability` (`model_code`, `ability_key`, `ability_name`, `ability_desc`, `param_definition`, `hidden_flag`) VALUES ('M_W4_SYS_ELEC_MONITOR', 'GetDeviceList', '同步设备列表', '同步设备列表', null, 1);
 
 
 -- 对象事件数据
 -- 对象事件数据
 INSERT INTO `adm_ems_obj_event` (`model_code`, `event_key`, `event_type`, `event_name`, `event_desc`, `event_code`, `ext_event_code`) VALUES ('M_W4_SYS_IN_DOOR', 'connect', 1, '连接恢复', '连接正常', 'M_W4_SYS_IN_DOOR_00', NULL);
 INSERT INTO `adm_ems_obj_event` (`model_code`, `event_key`, `event_type`, `event_name`, `event_desc`, `event_code`, `ext_event_code`) VALUES ('M_W4_SYS_IN_DOOR', 'connect', 1, '连接恢复', '连接正常', 'M_W4_SYS_IN_DOOR_00', NULL);
@@ -982,6 +1062,7 @@ INSERT INTO adm_meter_reading (`device_code`, `area_code`, `year`, `meter_month`
 
 
 INSERT INTO `adm_ems_subsystem` (`system_code`, `system_name`, `short_name`, `model_code`, `man_facturer`, `contact_person`, `contact_number`, `maintainer_person`, `maintainer_number`, `descr`) VALUES ('SYS_NHJC', '能耗监测系统(室内)', '室内能耗监测', 'M_W4_SYS_IN_DOOR','能耗监测厂商', '东边', '', '', '', NULL);
 INSERT INTO `adm_ems_subsystem` (`system_code`, `system_name`, `short_name`, `model_code`, `man_facturer`, `contact_person`, `contact_number`, `maintainer_person`, `maintainer_number`, `descr`) VALUES ('SYS_NHJC', '能耗监测系统(室内)', '室内能耗监测', 'M_W4_SYS_IN_DOOR','能耗监测厂商', '东边', '', '', '', NULL);
 INSERT INTO `adm_ems_subsystem` (`system_code`, `system_name`, `short_name`, `model_code`, `man_facturer`, `contact_person`, `contact_number`, `maintainer_person`, `maintainer_number`, `descr`) VALUES ('SYS_ZHZM', '智慧照明系统', '智慧照明', 'M_Z010_SYS_SQUARE_LIGHT', '智慧照明厂商', '林工', '1212121121', '刘工', '1212221111', NULL);
 INSERT INTO `adm_ems_subsystem` (`system_code`, `system_name`, `short_name`, `model_code`, `man_facturer`, `contact_person`, `contact_number`, `maintainer_person`, `maintainer_number`, `descr`) VALUES ('SYS_ZHZM', '智慧照明系统', '智慧照明', 'M_Z010_SYS_SQUARE_LIGHT', '智慧照明厂商', '林工', '1212121121', '刘工', '1212221111', NULL);
+INSERT INTO `adm_ems_subsystem` (`system_code`, `system_name`, `short_name`, `model_code`, `man_facturer`, `contact_person`, `contact_number`, `maintainer_person`, `maintainer_number`, `descr`) VALUES ('SYS_DLJK', '电力监控系统', '电力监控', 'M_W4_SYS_ELEC_MONITOR', '安科瑞', 'gzl', '1212121121', 'gzl', '1212221111', NULL);
 INSERT INTO `adm_ems_subsystem` (`system_code`, `system_name`, `short_name`, `model_code`, `man_facturer`, `contact_person`, `contact_number`, `maintainer_person`, `maintainer_number`, `descr`) VALUES ('SYS_GF', '光伏系统', '光伏', 'M_TEST', '南通', '张', '1380000', '李工', '123123', NULL);
 INSERT INTO `adm_ems_subsystem` (`system_code`, `system_name`, `short_name`, `model_code`, `man_facturer`, `contact_person`, `contact_number`, `maintainer_person`, `maintainer_number`, `descr`) VALUES ('SYS_GF', '光伏系统', '光伏', 'M_TEST', '南通', '张', '1380000', '李工', '123123', NULL);
 INSERT INTO `adm_ems_subsystem` (`system_code`, `system_name`, `short_name`, `model_code`, `man_facturer`, `contact_person`, `contact_number`, `maintainer_person`, `maintainer_number`, `descr`) VALUES ('SYS_CN', '储能系统', '储能', 'M_TEST','储能厂商', '王', '122112', '陈', '21212', NULL);
 INSERT INTO `adm_ems_subsystem` (`system_code`, `system_name`, `short_name`, `model_code`, `man_facturer`, `contact_person`, `contact_number`, `maintainer_person`, `maintainer_number`, `descr`) VALUES ('SYS_CN', '储能系统', '储能', 'M_TEST','储能厂商', '王', '122112', '陈', '21212', NULL);
 INSERT INTO `adm_ems_subsystem` (`system_code`, `system_name`, `short_name`, `model_code`, `man_facturer`, `contact_person`, `contact_number`, `maintainer_person`, `maintainer_number`, `descr`) VALUES ('SYS_BA', 'BA', '楼控', 'M_TEST','楼控', '李', '12', '王', '121', NULL);
 INSERT INTO `adm_ems_subsystem` (`system_code`, `system_name`, `short_name`, `model_code`, `man_facturer`, `contact_person`, `contact_number`, `maintainer_person`, `maintainer_number`, `descr`) VALUES ('SYS_BA', 'BA', '楼控', 'M_TEST','楼控', '李', '12', '王', '121', NULL);

+ 21 - 21
ems/sql/ems_sys_data.sql

@@ -80,15 +80,16 @@ insert into sys_menu values ('178',  '日志管理',       '7',   '9',  'log',
 insert into sys_menu values ('179',  '在线用户',       '7',   '10', 'online',             'monitor/online/index',   '', 1, 0, 'C', '0', '0',   'monitor:online:list',    'online',         'admin', sysdate(), '', null, '在线用户菜单');
 insert into sys_menu values ('179',  '在线用户',       '7',   '10', 'online',             'monitor/online/index',   '', 1, 0, 'C', '0', '0',   'monitor:online:list',    'online',         'admin', sysdate(), '', null, '在线用户菜单');
 INSERT INTO sys_menu VALUES ('180',  '任务调度',       '7',   '10', 'task/job',           'monitor/job/index',      '', 1, 0, 'C', '0', '0',   'monitor:job',            'date-range',     'admin', sysdate(), '', NULL, '任务调度');
 INSERT INTO sys_menu VALUES ('180',  '任务调度',       '7',   '10', 'task/job',           'monitor/job/index',      '', 1, 0, 'C', '0', '0',   'monitor:job',            'date-range',     'admin', sysdate(), '', NULL, '任务调度');
 
 
-insert into sys_menu values ('1551',  '能耗监测',       '155',   '2',  'adapter-nhjc',       'adapter/nhjc/index',    '', 1, 0, 'C', '0', '0',   'adapter:notice:list',     'system',      'admin', sysdate(), '', null, '能耗监测');
-insert into sys_menu values ('1552',  '智慧照明',       '155',   '3',  'adapter-zm',         'adapter/zm/index',      '', 1, 0, 'C', '0', '0',   'adapter:post:list',       'system',        'admin', sysdate(), '', null, '智慧照明');
-insert into sys_menu values ('1553',  '光伏',          '155',   '4',  'adapter-pv',         'adapter/pv/index',      '', 1, 0, 'C', '0', '0',   'adapter:user:list',       'photovoltaic',        'admin', sysdate(), '', null, '光伏');
-insert into sys_menu values ('1554',  '光储直柔',       '155',   '5',  'adapter-gczr',       'adapter/gczr/index',    '', 1, 0, 'C', '0', '0',   'adapter:role:list',       'deviceaccess',      'admin', sysdate(), '', null, '光储直柔');
-insert into sys_menu values ('1555',  '光储充',         '155',   '6',  'adapter-gcc',        'adapter/gcc/index',     '', 1, 0, 'C', '0', '0',   'adapter:menu:list',       'energyconsume',       'admin', sysdate(), '', null, '光储充');
-insert into sys_menu values ('1556',  '充电桩',         '155',   '7',  'adapter-cdz',        'adapter/cdz/index',     '', 1, 0, 'C', '0', '0',   'adapter:dept:list',       'powerstore',       'admin', sysdate(), '', null, '充电桩');
-insert into sys_menu values ('1557',  '智慧海绵',       '155',   '8',  'adapter-hm',         'adapter/hm/index',      '', 1, 0, 'C', '0', '0',   'adapter:dict:list',       'system',        'admin', sysdate(), '', null, '智慧海绵');
-insert into sys_menu values ('1558',  '垃圾厨余',       '155',   '9',  'adapter-ljcy',       'adapter/ljcy/index',    '', 1, 0, 'C', '0', '0',   'adapter:config:list',     'system',      'admin', sysdate(), '', null, '垃圾厨余');
-insert into sys_menu values ('1559',  '设备管理',       '155',   '10',  'adapter-devc',      'adapter/devc/index',    '', 1, 0, 'M', '0', '0',   'adapter:devc:list',       'system',      'admin', sysdate(), '', null, '设备管理');
+insert into sys_menu values ('1550',  '能耗监测',       '155',   '1',  'adapter-nhjc',       'adapter/nhjc/index',    '', 1, 0, 'C', '0', '0',   'adapter:devc:list',     'system',       'admin', sysdate(), '', null, '能耗监测');
+insert into sys_menu values ('1551',  '智慧照明',       '155',   '2',  'adapter-zm',         'adapter/zm/index',      '', 1, 0, 'C', '0', '0',   'adapter:devc:list',     'system',        'admin', sysdate(), '', null, '智慧照明');
+insert into sys_menu values ('1552',  '电力监控',       '155',   '3',  'adapter-dljk',       'adapter/dljk/index',    '', 1, 0, 'C', '0', '0',   'adapter:devc:list',     'system',        'admin', sysdate(), '', null, '智慧照明');
+insert into sys_menu values ('1553',  '光伏',          '155',   '4',  'adapter-pv',         'adapter/pv/index',      '', 1, 0, 'C', '0', '0',   'adapter:devc:list',     'photovoltaic',   'admin', sysdate(), '', null, '光伏');
+insert into sys_menu values ('1554',  '光储直柔',       '155',   '5',  'adapter-gczr',       'adapter/gczr/index',    '', 1, 0, 'C', '0', '0',   'adapter:devc:list',     'deviceaccess',  'admin', sysdate(), '', null, '光储直柔');
+insert into sys_menu values ('1555',  '光储充',         '155',   '6',  'adapter-gcc',        'adapter/gcc/index',     '', 1, 0, 'C', '0', '0',   'adapter:devc:list',     'energyconsume', 'admin', sysdate(), '', null, '光储充');
+insert into sys_menu values ('1556',  '充电桩',         '155',   '7',  'adapter-cdz',        'adapter/cdz/index',     '', 1, 0, 'C', '0', '0',   'adapter:devc:list',     'powerstore',    'admin', sysdate(), '', null, '充电桩');
+insert into sys_menu values ('1557',  '智慧海绵',       '155',   '8',  'adapter-hm',         'adapter/hm/index',      '', 1, 0, 'C', '0', '0',   'adapter:devc:list',      'system',        'admin', sysdate(), '', null, '智慧海绵');
+insert into sys_menu values ('1558',  '垃圾厨余',       '155',   '9',  'adapter-ljcy',       'adapter/ljcy/index',    '', 1, 0, 'C', '0', '0',   'adapter:devc:list',      'system',        'admin', sysdate(), '', null, '垃圾厨余');
+insert into sys_menu values ('1559',  '设备管理',       '155',   '10',  'adapter-devc',      'adapter/devc/index',    '', 1, 0, 'M', '0', '0',   'adapter:devc:list',      'system',        'admin', sysdate(), '', null, '设备管理');
 
 
 insert into sys_menu values ('997',  '表单构建',       '99',   '1',  'build',              'tool/build/index',       '', 1, 0, 'C', '0', '0',   'tool:build:list',        'build',          'admin', sysdate(), '', null, '表单构建菜单');
 insert into sys_menu values ('997',  '表单构建',       '99',   '1',  'build',              'tool/build/index',       '', 1, 0, 'C', '0', '0',   'tool:build:list',        'build',          'admin', sysdate(), '', null, '表单构建菜单');
 insert into sys_menu values ('998',  '代码生成',       '99',   '2',  'gen',                'tool/gen/index',         '', 1, 0, 'C', '0', '0',   'tool:gen:list',          'code',           'admin', sysdate(), '', null, '代码生成菜单');
 insert into sys_menu values ('998',  '代码生成',       '99',   '2',  'gen',                'tool/gen/index',         '', 1, 0, 'C', '0', '0',   'tool:gen:list',          'code',           'admin', sysdate(), '', null, '代码生成菜单');
@@ -365,11 +366,10 @@ INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 151);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 152);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 152);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 153);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 153);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 154);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 154);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 155);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 161);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 161);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 162);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 162);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 163);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 163);
-INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 164);
-INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 165);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 170);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 170);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 171);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 171);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 172);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 172);
@@ -439,6 +439,16 @@ INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1543);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1544);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1544);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1545);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1545);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1546);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1546);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1550);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1551);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1552);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1553);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1554);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1555);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1556);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1557);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1558);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1559);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1620);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1620);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1621);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1621);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1622);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1622);
@@ -449,16 +459,6 @@ INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1631);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1632);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1632);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1633);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1633);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1634);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1634);
-INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1650);
-INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1651);
-INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1652);
-INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1653);
-INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1654);
-INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1655);
-INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1656);
-INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1657);
-INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1658);
-INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1659);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1700);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1700);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1701);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1701);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1702);
 INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1702);