Commit 853aebeb5c9132d702b72d02ae6e2eca204f8a11
Merge remote-tracking branch 'origin/i18n' into i18n
Showing
9 changed files
with
23 additions
and
12 deletions
... | ... | @@ -318,6 +318,7 @@ public abstract class BaseController { |
318 | 318 | |
319 | 319 | @ExceptionHandler(Exception.class) |
320 | 320 | public void handleControllerException(Exception e, HttpServletResponse response) { |
321 | + log.error(e.getMessage(),e); | |
321 | 322 | ThingsboardException thingsboardException = handleException(e); |
322 | 323 | if (thingsboardException.getErrorCode() == ThingsboardErrorCode.GENERAL && thingsboardException.getCause() instanceof Exception |
323 | 324 | && StringUtils.equals(thingsboardException.getCause().getMessage(), thingsboardException.getMessage())) { |
... | ... | @@ -330,6 +331,7 @@ public abstract class BaseController { |
330 | 331 | |
331 | 332 | @ExceptionHandler(ThingsboardException.class) |
332 | 333 | public void handleThingsboardException(ThingsboardException ex, HttpServletResponse response) { |
334 | + log.error(ex.getMessage(),ex); | |
333 | 335 | errorResponseHandler.handle(ex, response); |
334 | 336 | } |
335 | 337 | |
... | ... | @@ -393,6 +395,7 @@ public abstract class BaseController { |
393 | 395 | * */ |
394 | 396 | @ExceptionHandler(MethodArgumentNotValidException.class) |
395 | 397 | public void handleValidationError(MethodArgumentNotValidException validationError, HttpServletResponse response) { |
398 | + log.error(validationError.getMessage(),validationError); | |
396 | 399 | List<ConstraintViolation<Object>> constraintsViolations = validationError.getFieldErrors().stream() |
397 | 400 | .map(fieldError -> { |
398 | 401 | try { | ... | ... |
... | ... | @@ -224,7 +224,7 @@ public class TkConvertDataToController extends BaseController { |
224 | 224 | Integer sceneStatus = convertReqDTO.getStatus(); |
225 | 225 | JsonNode configuration = |
226 | 226 | sceneLinkageService.getRuleNodeConfig( |
227 | - sceneId, | |
227 | + sceneId, querySceneLink.getRuleChainId(), | |
228 | 228 | currentTenant, |
229 | 229 | getCurrentUser().getCustomerId().getId().toString(), |
230 | 230 | sceneStatus); | ... | ... |
... | ... | @@ -602,6 +602,7 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev |
602 | 602 | if (partitionService.resolve(ServiceType.TB_CORE, stateData.getTenantId(), deviceId).isMyPartition()) { |
603 | 603 | |
604 | 604 | } else { |
605 | + log.error("updateInactivityStateIfExpired isMyPartition=false , serverType={},tenantId={},deviceId={}",ServiceType.TB_CORE,stateData.getTenantId(),deviceId); | |
605 | 606 | cleanupEntity(deviceId); |
606 | 607 | } |
607 | 608 | } |
... | ... | @@ -617,7 +618,6 @@ public class DefaultDeviceStateService extends AbstractPartitionBasedService<Dev |
617 | 618 | state.setLastInactivityAlarmTime(ts); |
618 | 619 | save(deviceId, INACTIVITY_ALARM_TIME, ts); |
619 | 620 | onDeviceActivityStatusChange(deviceId, false, stateData); |
620 | - System.err.println("Inactivity Device : "+deviceId); | |
621 | 621 | } |
622 | 622 | |
623 | 623 | boolean isActive(long ts, DeviceState state) { | ... | ... |
... | ... | @@ -53,6 +53,10 @@ public class RuleChainMetaData { |
53 | 53 | connectionInfo.setFromIndex(fromIndex); |
54 | 54 | connectionInfo.setToIndex(toIndex); |
55 | 55 | connectionInfo.setType(type); |
56 | + addConnectionInfo(connectionInfo); | |
57 | + } | |
58 | + | |
59 | + public void addConnectionInfo(NodeConnectionInfo connectionInfo) { | |
56 | 60 | if (connections == null) { |
57 | 61 | connections = new ArrayList<>(); |
58 | 62 | } | ... | ... |
... | ... | @@ -41,7 +41,7 @@ public class UserDTO extends BaseDTO { |
41 | 41 | private String[] roleIds; |
42 | 42 | |
43 | 43 | @ApiModelProperty(value = "电话号码") |
44 | -// @NotEmpty(message = "电话号码不能为空或字符串", groups = AddGroup.class) | |
44 | + @NotEmpty(message = "电话号码不能为空或字符串", groups = AddGroup.class) | |
45 | 45 | private String phoneNumber; |
46 | 46 | |
47 | 47 | @ApiModelProperty(value = "邮箱") | ... | ... |
... | ... | @@ -164,7 +164,7 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC |
164 | 164 | List<EntityRelation> relations = new ArrayList<>(); |
165 | 165 | |
166 | 166 | Map<RuleNodeId, Integer> ruleNodeIndexMap = new HashMap<>(); |
167 | - if (nodes != null) { | |
167 | + if (nodes != null && nodes.size()>0) { | |
168 | 168 | for (RuleNode node : nodes) { |
169 | 169 | setSingletonMode(node); |
170 | 170 | if (node.getId() != null) { |
... | ... | @@ -191,7 +191,7 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC |
191 | 191 | updatedRuleNodes.add(new RuleNodeUpdateResult(existingNode, newRuleNode)); |
192 | 192 | } |
193 | 193 | RuleChainId ruleChainId = ruleChain.getId(); |
194 | - if (nodes != null) { | |
194 | + if (nodes != null && nodes.size()>0) { | |
195 | 195 | for (RuleNode node : toAddOrUpdate) { |
196 | 196 | node.setRuleChainId(ruleChainId); |
197 | 197 | node = ruleNodeUpdater.apply(node); |
... | ... | @@ -208,7 +208,7 @@ public class BaseRuleChainService extends AbstractEntityService implements RuleC |
208 | 208 | deleteRuleNodes(tenantId, toDelete); |
209 | 209 | } |
210 | 210 | RuleNodeId firstRuleNodeId = null; |
211 | - if (nodes != null) { | |
211 | + if (nodes != null && nodes.size()>0) { | |
212 | 212 | if (ruleChainMetaData.getFirstNodeIndex() != null) { |
213 | 213 | firstRuleNodeId = nodes.get(ruleChainMetaData.getFirstNodeIndex()).getId(); |
214 | 214 | } | ... | ... |
... | ... | @@ -431,7 +431,10 @@ public class TkConvertConfigServiceImpl |
431 | 431 | private void freshRuleChainMetaData(RuleChainMetaData ruleChainMetaData, int removeNodeIndex) { |
432 | 432 | ruleChainMetaData.getNodes().remove(removeNodeIndex); |
433 | 433 | |
434 | - int firstIndex = ruleChainMetaData.getFirstNodeIndex(); | |
434 | + Integer firstIndex = ruleChainMetaData.getFirstNodeIndex(); | |
435 | + if(firstIndex==null){ | |
436 | + return; | |
437 | + } | |
435 | 438 | ruleChainMetaData.setFirstNodeIndex( |
436 | 439 | Math.max(firstIndex < removeNodeIndex ? firstIndex : firstIndex - 1, 0)); |
437 | 440 | |
... | ... | @@ -834,7 +837,7 @@ public class TkConvertConfigServiceImpl |
834 | 837 | nodeConnectionInfo.setFromIndex(ruleNodeIndex.get()); |
835 | 838 | nodeConnectionInfo.setToIndex(ruleChainMetaData.getNodes().size() - 2); |
836 | 839 | nodeConnectionInfo.setType(connectionType); |
837 | - ruleChainMetaData.getConnections().add(nodeConnectionInfo); | |
840 | + ruleChainMetaData.addConnectionInfo(nodeConnectionInfo); | |
838 | 841 | } |
839 | 842 | if (node.getName().equals(sceneOriginatorName) |
840 | 843 | && node.getType().equals(originatorType)) { |
... | ... | @@ -842,7 +845,7 @@ public class TkConvertConfigServiceImpl |
842 | 845 | nodeConnectionInfo.setFromIndex(ruleNodeIndex.get()); |
843 | 846 | nodeConnectionInfo.setToIndex(ruleChainMetaData.getNodes().size() - 1); |
844 | 847 | nodeConnectionInfo.setType(connectionType); |
845 | - ruleChainMetaData.getConnections().add(nodeConnectionInfo); | |
848 | + ruleChainMetaData.addConnectionInfo(nodeConnectionInfo); | |
846 | 849 | } |
847 | 850 | |
848 | 851 | if (node.getType().equals("org.thingsboard.rule.engine.rpc.TbSendRPCRequestNode")) { |
... | ... | @@ -850,7 +853,7 @@ public class TkConvertConfigServiceImpl |
850 | 853 | nodeConnectionInfo.setFromIndex(ruleChainMetaData.getNodes().size() - 1); |
851 | 854 | nodeConnectionInfo.setToIndex(ruleNodeIndex.get()); |
852 | 855 | nodeConnectionInfo.setType("RPC Request"); |
853 | - ruleChainMetaData.getConnections().add(nodeConnectionInfo); | |
856 | + ruleChainMetaData.addConnectionInfo(nodeConnectionInfo); | |
854 | 857 | } |
855 | 858 | ruleNodeIndex.getAndIncrement(); |
856 | 859 | }); | ... | ... |
... | ... | @@ -473,11 +473,12 @@ public class TkSceneLinkageServiceImpl |
473 | 473 | */ |
474 | 474 | @Override |
475 | 475 | public JsonNode getRuleNodeConfig( |
476 | - String currentSceneId, String tenantId, String customerId, Integer state) { | |
476 | + String currentSceneId, String ruleChainId,String tenantId, String customerId, Integer state) { | |
477 | 477 | List<TkSceneLinkageEntity> runningScenes = |
478 | 478 | baseMapper.selectList( |
479 | 479 | new LambdaQueryWrapper<TkSceneLinkageEntity>() |
480 | 480 | .eq(TkSceneLinkageEntity::getTenantId, tenantId) |
481 | + .eq(TkSceneLinkageEntity::getRuleChainId,ruleChainId) | |
481 | 482 | .eq(TkSceneLinkageEntity::getStatus, FastIotConstants.StateValue.ENABLE)); |
482 | 483 | Set<String> enableIds = new HashSet<>(); |
483 | 484 | Map<String, String> sceneInform = new HashMap<>(); | ... | ... |
... | ... | @@ -87,7 +87,7 @@ public interface SceneLinkageService extends BaseService<TkSceneLinkageEntity>{ |
87 | 87 | * @param state 是否启动 |
88 | 88 | * @return |
89 | 89 | */ |
90 | - JsonNode getRuleNodeConfig(String sceneId,String tenantId,String customerId,Integer state); | |
90 | + JsonNode getRuleNodeConfig(String sceneId,String ruleChainId,String tenantId,String customerId,Integer state); | |
91 | 91 | |
92 | 92 | /** |
93 | 93 | * 详情 | ... | ... |