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 | 1 | package org.thingsboard.server.common.data.yunteng.dto; |
2 | 2 | |
3 | +import com.fasterxml.jackson.databind.JsonNode; | |
3 | 4 | import io.swagger.annotations.ApiModelProperty; |
4 | 5 | import lombok.Data; |
5 | 6 | import lombok.EqualsAndHashCode; |
... | ... | @@ -22,7 +23,7 @@ public class DoActionDTO extends TenantDTO{ |
22 | 23 | |
23 | 24 | |
24 | 25 | @ApiModelProperty(value = "场景联动内容") |
25 | - private String doContext; | |
26 | + private JsonNode doContext; | |
26 | 27 | |
27 | 28 | @ApiModelProperty(value = "输出目标:设备,场景,其他") |
28 | 29 | private ActionTypeEnum outTarget; | ... | ... |
... | ... | @@ -2,6 +2,8 @@ package org.thingsboard.server.dao.yunteng.entities; |
2 | 2 | |
3 | 3 | import com.baomidou.mybatisplus.annotation.TableField; |
4 | 4 | import com.baomidou.mybatisplus.annotation.TableName; |
5 | +import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler; | |
6 | +import com.fasterxml.jackson.databind.JsonNode; | |
5 | 7 | import lombok.Data; |
6 | 8 | import lombok.EqualsAndHashCode; |
7 | 9 | import org.apache.ibatis.type.EnumTypeHandler; |
... | ... | @@ -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 | 33 | * 场景联动id | ... | ... |
... | ... | @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; |
6 | 6 | import com.fasterxml.jackson.core.type.TypeReference; |
7 | 7 | import com.fasterxml.jackson.databind.JsonNode; |
8 | 8 | import com.fasterxml.jackson.databind.ObjectMapper; |
9 | +import com.fasterxml.jackson.databind.node.ObjectNode; | |
9 | 10 | import lombok.RequiredArgsConstructor; |
10 | 11 | import org.apache.commons.lang3.StringUtils; |
11 | 12 | import org.springframework.stereotype.Service; |
... | ... | @@ -219,9 +220,10 @@ public class SceneLinkageServiceImpl extends AbstractBaseService<SceneLinkageMap |
219 | 220 | .map(doActionDTO -> { |
220 | 221 | doActionDTO.setTenantId(sceneLinkageDTO.getTenantId()); |
221 | 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 | 227 | return doActionDTO.getEntity(DoAction.class); |
226 | 228 | }) |
227 | 229 | .collect(Collectors.toList()); | ... | ... |
... | ... | @@ -84,7 +84,9 @@ public class YtDeviceProfileServiceImpl |
84 | 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 | 90 | return deviceProfileDTO; |
89 | 91 | } |
90 | 92 | ... | ... |
... | ... | @@ -5,7 +5,7 @@ |
5 | 5 | <resultMap id="actionDTO" type="org.thingsboard.server.common.data.yunteng.dto.DoActionDTO"> |
6 | 6 | <result property="id" column="id"/> |
7 | 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 | 9 | <result property="outTarget" column="out_target" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/> |
10 | 10 | <result property="sceneLinkageId" column="scene_linkage_id"/> |
11 | 11 | <result property="description" column="description"/> | ... | ... |
... | ... | @@ -3,6 +3,7 @@ |
3 | 3 | */ |
4 | 4 | package org.thingsboard.rule.engine.yunteng.scene; |
5 | 5 | |
6 | +import com.fasterxml.jackson.databind.JsonNode; | |
6 | 7 | import lombok.extern.slf4j.Slf4j; |
7 | 8 | import org.jetbrains.annotations.NotNull; |
8 | 9 | import org.thingsboard.rule.engine.api.TbContext; |
... | ... | @@ -12,6 +13,7 @@ import org.thingsboard.server.common.data.device.profile.AlarmConditionFilter; |
12 | 13 | import org.thingsboard.server.common.data.device.profile.AlarmConditionFilterKey; |
13 | 14 | import org.thingsboard.server.common.data.rule.RuleNodeState; |
14 | 15 | import org.thingsboard.server.common.data.yunteng.dto.TriggerDTO; |
16 | +import org.thingsboard.server.common.data.yunteng.utils.JacksonUtil; | |
15 | 17 | import org.thingsboard.server.common.data.yunteng.utils.SpringBeanUtils; |
16 | 18 | import org.thingsboard.server.common.msg.TbMsg; |
17 | 19 | import org.thingsboard.server.common.msg.TbMsgMetaData; |
... | ... | @@ -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 | 182 | String lastMsgQueueName = msg.getQueueName(); |
181 | 183 | TbMsgMetaData metaData = msg.getMetaData(); |
182 | 184 | metaData.putValue(DataConstants.IS_CLEARED_ALARM, Boolean.TRUE.toString()); |
... | ... | @@ -185,7 +187,7 @@ class ReactState { |
185 | 187 | , msg.getOriginator() |
186 | 188 | , msg != null ? msg.getCustomerId() : null |
187 | 189 | , metaData |
188 | - , context); | |
190 | + , JacksonUtil.toString(context)); | |
189 | 191 | return newMsg; |
190 | 192 | } |
191 | 193 | } | ... | ... |