Commit 2e3350f246c2c579153305a416b21826fa8ec36b
Merge branch '20200307' into 'master'
feat: 设备配置编辑异常 See merge request huang/thingsboard3.3.2!61
Showing
6 changed files
with
19 additions
and
9 deletions
1 | package org.thingsboard.server.common.data.yunteng.dto; | 1 | package org.thingsboard.server.common.data.yunteng.dto; |
2 | 2 | ||
3 | +import com.fasterxml.jackson.databind.JsonNode; | ||
3 | import io.swagger.annotations.ApiModelProperty; | 4 | import io.swagger.annotations.ApiModelProperty; |
4 | import lombok.Data; | 5 | import lombok.Data; |
5 | import lombok.EqualsAndHashCode; | 6 | import lombok.EqualsAndHashCode; |
@@ -22,7 +23,7 @@ public class DoActionDTO extends TenantDTO{ | @@ -22,7 +23,7 @@ public class DoActionDTO extends TenantDTO{ | ||
22 | 23 | ||
23 | 24 | ||
24 | @ApiModelProperty(value = "场景联动内容") | 25 | @ApiModelProperty(value = "场景联动内容") |
25 | - private String doContext; | 26 | + private JsonNode doContext; |
26 | 27 | ||
27 | @ApiModelProperty(value = "输出目标:设备,场景,其他") | 28 | @ApiModelProperty(value = "输出目标:设备,场景,其他") |
28 | private ActionTypeEnum outTarget; | 29 | private ActionTypeEnum outTarget; |
@@ -2,6 +2,8 @@ package org.thingsboard.server.dao.yunteng.entities; | @@ -2,6 +2,8 @@ package org.thingsboard.server.dao.yunteng.entities; | ||
2 | 2 | ||
3 | import com.baomidou.mybatisplus.annotation.TableField; | 3 | import com.baomidou.mybatisplus.annotation.TableField; |
4 | import com.baomidou.mybatisplus.annotation.TableName; | 4 | import com.baomidou.mybatisplus.annotation.TableName; |
5 | +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; | ||
6 | +import com.fasterxml.jackson.databind.JsonNode; | ||
5 | import lombok.Data; | 7 | import lombok.Data; |
6 | import lombok.EqualsAndHashCode; | 8 | import lombok.EqualsAndHashCode; |
7 | import org.apache.ibatis.type.EnumTypeHandler; | 9 | import org.apache.ibatis.type.EnumTypeHandler; |
@@ -24,7 +26,8 @@ public class DoAction extends TenantBaseEntity { | @@ -24,7 +26,8 @@ public class DoAction extends TenantBaseEntity { | ||
24 | /** | 26 | /** |
25 | * 场景联动内容 | 27 | * 场景联动内容 |
26 | */ | 28 | */ |
27 | - private String doContext; | 29 | + @TableField(typeHandler = JacksonTypeHandler.class) |
30 | + private JsonNode doContext; | ||
28 | 31 | ||
29 | /** | 32 | /** |
30 | * 场景联动id | 33 | * 场景联动id |
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; | @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; | ||
6 | import com.fasterxml.jackson.core.type.TypeReference; | 6 | import com.fasterxml.jackson.core.type.TypeReference; |
7 | import com.fasterxml.jackson.databind.JsonNode; | 7 | import com.fasterxml.jackson.databind.JsonNode; |
8 | import com.fasterxml.jackson.databind.ObjectMapper; | 8 | import com.fasterxml.jackson.databind.ObjectMapper; |
9 | +import com.fasterxml.jackson.databind.node.ObjectNode; | ||
9 | import lombok.RequiredArgsConstructor; | 10 | import lombok.RequiredArgsConstructor; |
10 | import org.apache.commons.lang3.StringUtils; | 11 | import org.apache.commons.lang3.StringUtils; |
11 | import org.springframework.stereotype.Service; | 12 | import org.springframework.stereotype.Service; |
@@ -219,9 +220,10 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap | @@ -219,9 +220,10 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap | ||
219 | .map(doActionDTO -> { | 220 | .map(doActionDTO -> { |
220 | doActionDTO.setTenantId(sceneLinkageDTO.getTenantId()); | 221 | doActionDTO.setTenantId(sceneLinkageDTO.getTenantId()); |
221 | doActionDTO.setSceneLinkageId(sceneLinkageDTO.getId()); | 222 | doActionDTO.setSceneLinkageId(sceneLinkageDTO.getId()); |
222 | - StringBuilder contextBuilder = new StringBuilder("{\"method\": \"methodThingskit\",\"params\": "); | ||
223 | - contextBuilder.append(doActionDTO.getDoContext()); | ||
224 | - doActionDTO.setDoContext(contextBuilder.toString()); | 223 | + ObjectNode doContext = JacksonUtil.newObjectNode(); |
224 | + doContext.put("method","methodThingskit"); | ||
225 | + doContext.put("params",doActionDTO.getDoContext()); | ||
226 | + doActionDTO.setDoContext(doContext); | ||
225 | return doActionDTO.getEntity(DoAction.class); | 227 | return doActionDTO.getEntity(DoAction.class); |
226 | }) | 228 | }) |
227 | .collect(Collectors.toList()); | 229 | .collect(Collectors.toList()); |
@@ -84,7 +84,9 @@ public class YtDeviceProfileServiceImpl | @@ -84,7 +84,9 @@ public class YtDeviceProfileServiceImpl | ||
84 | alarmProfileMapper.insert(alarmProfile); | 84 | alarmProfileMapper.insert(alarmProfile); |
85 | } | 85 | } |
86 | }); | 86 | }); |
87 | - Optional.ofNullable(oldIds).ifPresent(item -> alarmProfileMapper.deleteBatchIds(item)); | 87 | + if(!oldIds.isEmpty()){ |
88 | + alarmProfileMapper.deleteBatchIds(oldIds); | ||
89 | + } | ||
88 | return deviceProfileDTO; | 90 | return deviceProfileDTO; |
89 | } | 91 | } |
90 | 92 |
@@ -5,7 +5,7 @@ | @@ -5,7 +5,7 @@ | ||
5 | <resultMap id="actionDTO" type="org.thingsboard.server.common.data.yunteng.dto.DoActionDTO"> | 5 | <resultMap id="actionDTO" type="org.thingsboard.server.common.data.yunteng.dto.DoActionDTO"> |
6 | <result property="id" column="id"/> | 6 | <result property="id" column="id"/> |
7 | <result property="deviceId" column="device_id"/> | 7 | <result property="deviceId" column="device_id"/> |
8 | - <result property="doContext" column="do_context"/> | 8 | + <result property="doContext" column="do_context" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler"/> |
9 | <result property="outTarget" column="out_target" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/> | 9 | <result property="outTarget" column="out_target" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/> |
10 | <result property="sceneLinkageId" column="scene_linkage_id"/> | 10 | <result property="sceneLinkageId" column="scene_linkage_id"/> |
11 | <result property="description" column="description"/> | 11 | <result property="description" column="description"/> |
@@ -3,6 +3,7 @@ | @@ -3,6 +3,7 @@ | ||
3 | */ | 3 | */ |
4 | package org.thingsboard.rule.engine.yunteng.scene; | 4 | package org.thingsboard.rule.engine.yunteng.scene; |
5 | 5 | ||
6 | +import com.fasterxml.jackson.databind.JsonNode; | ||
6 | import lombok.extern.slf4j.Slf4j; | 7 | import lombok.extern.slf4j.Slf4j; |
7 | import org.jetbrains.annotations.NotNull; | 8 | import org.jetbrains.annotations.NotNull; |
8 | import org.thingsboard.rule.engine.api.TbContext; | 9 | import org.thingsboard.rule.engine.api.TbContext; |
@@ -12,6 +13,7 @@ import org.thingsboard.server.common.data.device.profile.AlarmConditionFilter; | @@ -12,6 +13,7 @@ import org.thingsboard.server.common.data.device.profile.AlarmConditionFilter; | ||
12 | import org.thingsboard.server.common.data.device.profile.AlarmConditionFilterKey; | 13 | import org.thingsboard.server.common.data.device.profile.AlarmConditionFilterKey; |
13 | import org.thingsboard.server.common.data.rule.RuleNodeState; | 14 | import org.thingsboard.server.common.data.rule.RuleNodeState; |
14 | import org.thingsboard.server.common.data.yunteng.dto.TriggerDTO; | 15 | import org.thingsboard.server.common.data.yunteng.dto.TriggerDTO; |
16 | +import org.thingsboard.server.common.data.yunteng.utils.JacksonUtil; | ||
15 | import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; | 17 | import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; |
16 | import org.thingsboard.server.common.msg.TbMsg; | 18 | import org.thingsboard.server.common.msg.TbMsg; |
17 | import org.thingsboard.server.common.msg.TbMsgMetaData; | 19 | import org.thingsboard.server.common.msg.TbMsgMetaData; |
@@ -176,7 +178,7 @@ class ReactState { | @@ -176,7 +178,7 @@ class ReactState { | ||
176 | } | 178 | } |
177 | } | 179 | } |
178 | 180 | ||
179 | - private TbMsg rpcMsg(TbContext ctx, TbMsg msg,String context){ | 181 | + private TbMsg rpcMsg(TbContext ctx, TbMsg msg, JsonNode context){ |
180 | String lastMsgQueueName = msg.getQueueName(); | 182 | String lastMsgQueueName = msg.getQueueName(); |
181 | TbMsgMetaData metaData = msg.getMetaData(); | 183 | TbMsgMetaData metaData = msg.getMetaData(); |
182 | metaData.putValue(DataConstants.IS_CLEARED_ALARM, Boolean.TRUE.toString()); | 184 | metaData.putValue(DataConstants.IS_CLEARED_ALARM, Boolean.TRUE.toString()); |
@@ -185,7 +187,7 @@ class ReactState { | @@ -185,7 +187,7 @@ class ReactState { | ||
185 | , msg.getOriginator() | 187 | , msg.getOriginator() |
186 | , msg != null ? msg.getCustomerId() : null | 188 | , msg != null ? msg.getCustomerId() : null |
187 | , metaData | 189 | , metaData |
188 | - , context); | 190 | + , JacksonUtil.toString(context)); |
189 | return newMsg; | 191 | return newMsg; |
190 | } | 192 | } |
191 | } | 193 | } |