ソースを参照

fixed 场景互联

18339543638 4 年 前
コミット
2ecb6a0850

+ 1 - 1
jetlinks-components/rule-engine-component/src/main/java/org/jetlinks/community/rule/engine/executor/ReactorQLTaskExecutorProvider.java

@@ -88,7 +88,7 @@ public class ReactorQLTaskExecutorProvider implements TaskExecutorProvider {
                                     try {
                                         return Mono.just(payload.bodyToJson(true));
                                     } catch (Throwable error) {
-                                        return context.onError(error, null);
+                                        return context.onError(error, null).map(JSONObject::toJSON);
                                     }
                                 });
                         }

+ 2 - 0
jetlinks-core/src/main/java/org/jetlinks/core/message/firmware/UpgradeFirmwareProgressMessage.java

@@ -53,6 +53,8 @@ public class UpgradeFirmwareProgressMessage extends CommonDeviceMessage {
      */
     private String firmwareId;
 
+    private String spendTime;
+
     @Override
     public MessageType getMessageType() {
         return MessageType.UPGRADE_FIRMWARE_PROGRESS;

+ 0 - 2
jetlinks-manager/device-manager/src/main/java/org/jetlinks/community/device/entity/DeviceUpgradeHistoryEntity.java

@@ -158,6 +158,4 @@ public class DeviceUpgradeHistoryEntity extends GenericEntity<String> {
         ,accessMode = Schema.AccessMode.READ_WRITE
     )
     private FirmwareUpgradeState state;
-
-
 }

+ 2 - 3
jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/enums/RuleSceneState.java

@@ -8,9 +8,8 @@ import org.hswebframework.web.dict.EnumDict;
 @Getter
 public enum RuleSceneState implements EnumDict<String> {
 
-    started("已启用"),
-    stopped("已禁用"),
-    disable("已停止");
+    running("运行中"),
+    stopped("已停止");
 
     private String text;
 

+ 15 - 8
jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/service/RuleInstanceService.java

@@ -10,6 +10,7 @@ import org.jetlinks.community.rule.engine.entity.RuleEngineExecuteLogInfo;
 import org.jetlinks.community.rule.engine.entity.RuleInstanceEntity;
 import org.jetlinks.community.rule.engine.enums.RuleInstanceState;
 import org.jetlinks.community.rule.engine.event.handler.RuleEngineLoggerIndexProvider;
+import org.jetlinks.rule.engine.api.RuleData;
 import org.jetlinks.rule.engine.api.RuleEngine;
 import org.jetlinks.rule.engine.api.model.RuleEngineModelParser;
 import org.jetlinks.rule.engine.api.model.RuleModel;
@@ -45,9 +46,15 @@ public class RuleInstanceService extends GenericReactiveCrudService<RuleInstance
         return this.ruleEngine
             .shutdown(id)
             .then(createUpdate()
-                      .set(RuleInstanceEntity::getState, RuleInstanceState.stopped)
-                      .where(RuleInstanceEntity::getId, id)
-                      .execute())
+                .set(RuleInstanceEntity::getState, RuleInstanceState.stopped)
+                .where(RuleInstanceEntity::getId, id)
+                .execute())
+            .then();
+    }
+
+    public Mono<Void> execute(String id, RuleData ruleData) {
+        return this.ruleEngine.getTasks(id)
+            .map(task-> task.execute(ruleData))
             .then();
     }
 
@@ -62,17 +69,17 @@ public class RuleInstanceService extends GenericReactiveCrudService<RuleInstance
             return ruleEngine
                 .startRule(entity.getId(), model)
                 .then(createUpdate()
-                          .set(RuleInstanceEntity::getState, RuleInstanceState.started)
-                          .where(entity::getId)
-                          .execute()).then();
+                    .set(RuleInstanceEntity::getState, RuleInstanceState.started)
+                    .where(entity::getId)
+                    .execute()).then();
         });
     }
 
     @Override
     public Mono<Integer> deleteById(Publisher<String> idPublisher) {
         return Flux.from(idPublisher)
-                   .flatMap(id -> this.stop(id).thenReturn(id))
-                   .as(super::deleteById);
+            .flatMap(id -> this.stop(id).thenReturn(id))
+            .as(super::deleteById);
     }
 
     @Override

+ 8 - 2
jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/service/RuleSceneService.java

@@ -5,6 +5,7 @@ import org.hswebframework.web.crud.service.GenericReactiveCrudService;
 import org.jetlinks.community.rule.engine.entity.DeviceAlarmEntity;
 import org.jetlinks.community.rule.engine.entity.RuleSceneEntity;
 import org.jetlinks.community.rule.engine.enums.AlarmState;
+import org.jetlinks.community.rule.engine.enums.RuleSceneState;
 import org.reactivestreams.Publisher;
 import org.springframework.stereotype.Service;
 import reactor.core.publisher.Flux;
@@ -33,7 +34,7 @@ public class RuleSceneService extends GenericReactiveCrudService<RuleSceneEntity
             .save(Mono.just(entity.toRuleInstance()))
             .then(instanceService.start(entity.getId()))
             .then(createUpdate()
-                .set(RuleSceneEntity::getState, AlarmState.running)
+                .set(RuleSceneEntity::getState, RuleSceneState.running)
                 .where(entity::getId).execute())
             .then();
     }
@@ -42,7 +43,7 @@ public class RuleSceneService extends GenericReactiveCrudService<RuleSceneEntity
     public Mono<Void> stop(String id) {
         return instanceService.stop(id)
             .then(createUpdate()
-                .set(RuleSceneEntity::getState,AlarmState.stopped)
+                .set(RuleSceneEntity::getState,RuleSceneState.stopped)
                 .where(DeviceAlarmEntity::getId,id)
                 .execute())
             .then();
@@ -56,4 +57,9 @@ public class RuleSceneService extends GenericReactiveCrudService<RuleSceneEntity
                 .then(RuleSceneService.super.deleteById(Mono.just(id)))
             ).reduce(Math::addExact);
     }
+
+    public Mono<Void> execute(String id) {
+
+        return null;
+    }
 }

+ 14 - 6
jetlinks-manager/rule-engine-manager/src/main/java/org/jetlinks/community/rule/engine/web/RuleSceneController.java

@@ -29,24 +29,32 @@ public class RuleSceneController implements ReactiveServiceCrudController<RuleSc
 
     @PostMapping("/{id}/_start")
     @SaveAction
-    @Operation(summary = "启动告警配置")
-    public Mono<Void> startAlarm(@PathVariable String id) {
+    @Operation(summary = "启动场景互联配置")
+    public Mono<Void> startScene(@PathVariable String id) {
         return sceneService.start(id);
     }
 
 
     @PostMapping("/{id}/_stop")
     @SaveAction
-    @Operation(summary = "停止告警配置")
-    public Mono<Void> stopAlarm(@PathVariable String id) {
+    @Operation(summary = "停止场景互联配置")
+    public Mono<Void> stopScene(@PathVariable String id) {
         return sceneService.stop(id);
     }
 
     @DeleteMapping("/{id}")
     @SaveAction
-    @Operation(summary = "删除告警配置")
-    public Mono<Void> deleteAlarm(@PathVariable String id) {
+    @Operation(summary = "删除场景互联配置")
+    public Mono<Void> deleteScene(@PathVariable String id) {
         return sceneService.deleteById(Mono.just(id))
             .then();
     }
+
+
+    @PostMapping("/{id}/_execute")
+    @SaveAction
+    @Operation(summary = "执行告警配置")
+    public Mono<Void> executeScene(@PathVariable String id) {
+        return sceneService.execute(id);
+    }
 }