Commit 853aebeb5c9132d702b72d02ae6e2eca204f8a11

Authored by chenjunyu_1481036421
2 parents c7641323 b3df49e7

Merge remote-tracking branch 'origin/i18n' into i18n

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