Browse Source

设备属性服务修改

learshaw 4 tháng trước cách đây
mục cha
commit
eeb9664906

+ 2 - 0
common-cloud/ruoyi-gateway/start.sh

@@ -0,0 +1,2 @@
+# /bin/bash
+java -Dfile.encoding=UTF-8 -jar -Dnacos.server.grpc.port.offset=1 ./target/ruoyi-gateway.jar

+ 19 - 2
ems/ems-cloud/ems-dev-adapter/src/main/java/com/ruoyi/ems/handle/GeekOpenCbHandler.java

@@ -128,11 +128,12 @@ public class GeekOpenCbHandler extends MqttBaseHandler {
                 String messageId = msgBody.getString("messageId");
 
                 if (StringUtils.equals("auto", messageId)) {
-                    updateAttr(device, 2, msgBody);
+                    updateAutoAttr(device, 2, msgBody);
                 }
                 else if (StringUtils.isNotEmpty(messageId)) {
                     MqttCacheMsg mqttCacheMsg = new MqttCacheMsg(messageId, deviceCode, new Date(), payload);
                     messageCache.addMqttMessage(messageId, mqttCacheMsg);
+                    updateBaseAttr(device, 2, msgBody);
                 }
             }
             else {
@@ -153,7 +154,13 @@ public class GeekOpenCbHandler extends MqttBaseHandler {
         deviceService.updateEmsDevice(device);
     }
 
-    private void updateAttr(EmsDevice device, Integer objType, JSONObject jsonBody) {
+    /**
+     * 更新自动上报属性值
+     * @param device 设备信息
+     * @param objType 对象类型
+     * @param jsonBody jsonBody 消息体
+     */
+    private void updateAutoAttr(EmsDevice device, Integer objType, JSONObject jsonBody) {
         if (jsonBody.containsKey("voltage")) {
             EmsObjAttrValue attrValue = new EmsObjAttrValue(device.getDeviceCode(), objType, device.getDeviceModel(),
                 "voltage", jsonBody.getString("voltage"));
@@ -179,6 +186,16 @@ public class GeekOpenCbHandler extends MqttBaseHandler {
         }
     }
 
+    /**
+     * 更新基础属性值
+     * @param device 设备信息
+     * @param objType 对象类型
+     * @param jsonBody jsonBody 消息体
+     */
+    private void updateBaseAttr(EmsDevice device, Integer objType, JSONObject jsonBody) {
+
+    }
+
     private boolean checkResult(AbilityPayload abilityParam, MqttCacheMsg cacheMsg) {
         boolean flag = true;
 

+ 23 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/model/ObjAttrItem.java

@@ -0,0 +1,23 @@
+/*
+ * 文 件 名:  ObjAttrItem
+ * 版    权:  华设设计集团股份有限公司
+ * 描    述:  <描述>
+ * 修 改 人:  lvwenbin
+ * 修改时间:  2025/3/4
+ * 跟踪单号:  <跟踪单号>
+ * 修改单号:  <修改单号>
+ * 修改内容:  <修改内容>
+ */
+package com.ruoyi.ems.model;
+
+/**
+ * 对象能力属性记录
+ * <功能详细描述>
+ *
+ * @author lvwenbin
+ * @version [版本号, 2025/3/4]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+public class ObjAttrItem {
+}

+ 15 - 1
ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/EmsObjAttrServiceImpl.java

@@ -6,6 +6,7 @@ import com.ruoyi.ems.mapper.EmsObjAttrMapper;
 import com.ruoyi.ems.service.IEmsObjAttrEnumService;
 import com.ruoyi.ems.service.IEmsObjAttrService;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -25,6 +26,9 @@ public class EmsObjAttrServiceImpl implements IEmsObjAttrService {
     @Autowired
     private IEmsObjAttrEnumService enumService;
 
+    @Autowired
+    private IEmsObjAttrEnumService valueEnumService;
+
     /**
      * 查询能源对象属性
      *
@@ -85,7 +89,17 @@ public class EmsObjAttrServiceImpl implements IEmsObjAttrService {
      */
     @Override
     public int insertObjAttr(EmsObjAttr objAttr) {
-        return objAttrMapper.insertObjAttr(objAttr);
+        int cnt = objAttrMapper.insertObjAttr(objAttr);
+
+        if (StringUtils.equals(objAttr.getAttrValueType(), "Enum")) {
+            valueEnumService.deleteByModelCode(objAttr.getModelCode());
+
+            if (CollectionUtils.isNotEmpty(objAttr.getValueEnums())) {
+                valueEnumService.addObjAttrEnumBatch(objAttr.getValueEnums());
+            }
+        }
+
+        return cnt;
     }
 
     @Override

+ 1 - 1
ems/sql/ems_sys_data.sql

@@ -56,7 +56,7 @@ insert into sys_menu values ('121',  '数据报表',       '3',    '6',  'analys
 insert into sys_menu values ('131',  '碳排计量',       '4',    '1',  'ca-emission',        'ca/emission',            '', 1, 0, 'C', '0', '0',   'ca-analysis:emission',   'caemission',     'admin', sysdate(), '', null, '碳排分析');
 insert into sys_menu values ('132',  '碳汇测算',       '4',    '2',  'ca-sink',            'ca/sink',                '', 1, 0, 'C', '0', '0',   'ca-analysis:sink',       'casink',         'admin', sysdate(), '', null, '碳汇分析');
 
-insert into sys_menu values ('141',  '设备属性',       '5',    '1',  'device-attr',         'devmgr/attr',           '', 1, 0, 'C', '0', '0',    'ems:device:list',        'deviceattr',     'admin', sysdate(), '', null, '设备属性');
+insert into sys_menu values ('141',  '设备列表',       '5',    '1',  'device-attr',         'devmgr/attr',           '', 1, 0, 'C', '0', '0',    'ems:device:list',        'deviceattr',     'admin', sysdate(), '', null, '设备属性');
 insert into sys_menu values ('142',  '设备台账',       '5',    '2',  'device-el',           'devmgr/el',              '', 1, 0, 'C', '0', '0',   'device:el',              'excel',          'admin', sysdate(), '', null, '设备台账');
 insert into sys_menu values ('143',  '设备告警',       '5',    '3',  'analysis-warn',       'analysis/device/warn',   '', 1, 0, 'C', '0', '0',   'analysis:device',        'deviceanalyze',  'admin', sysdate(), '', null, '设备分析');
 insert into sys_menu values ('144',  '抄表管理',       '5',    '4',  'deviceMeter',         '',                       '', 1, 0, 'M', '0', '0',   'device:meter',           'meterReading',   'admin', sysdate(), '', null, '抄表管理');