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 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 * 详情
... ...