Browse Source

提交指令下发

邵洋 1 year ago
parent
commit
ec3604a51a

+ 23 - 2
pole-service/src/main/java/com/zksy/pole/controller/InstructionIssuanceController.java

@@ -33,7 +33,7 @@ public class InstructionIssuanceController {
 
     @ApiOperation(value = "灯控设备状态查询和抄读网关场景策略")
     @GetMapping(value = "/equipmentStatus")
-    public Result equipmentStatus(EquipmentStatusDto dto){
+    public Result equipmentStatus(BaseDto dto){
         Result result = Result.ok(server.equipmentStatus(dto));
         return result;
     }
@@ -61,7 +61,7 @@ public class InstructionIssuanceController {
 
     @ApiOperation(value = "服务器强制网关重新注册")
     @GetMapping(value = "/reRegistered")
-    public Result reRegistered(EquipmentStatusDto dto){
+    public Result reRegistered(BaseDto dto){
         Result result = Result.ok(server.reRegistered(dto));
         return result;
     }
@@ -73,4 +73,25 @@ public class InstructionIssuanceController {
         return result;
     }
 
+    @ApiOperation(value = "继电器定时策略设置")
+    @GetMapping(value = "/relayTiming")
+    public Result relayTiming(RelayTimingDto dto){
+        Result result = Result.ok(server.relayTiming(dto));
+        return result;
+    }
+
+    @ApiOperation(value = "删除继电器定时策略设置")
+    @GetMapping(value = "/delRelayTiming")
+    public Result delRelayTiming(DelRelayTimingDto dto){
+        Result result = Result.ok(server.delRelayTiming(dto));
+        return result;
+    }
+
+    @ApiOperation(value = "查询继电器定时策略设置")
+    @GetMapping(value = "/queryRelayTiming")
+    public Result queryRelayTiming(QueryRelayTimingDto dto){
+        Result result = Result.ok(server.queryRelayTiming(dto));
+        return result;
+    }
+
 }

+ 4 - 4
pole-service/src/main/java/com/zksy/pole/domain/dto/EquipmentStatusDto.java → pole-service/src/main/java/com/zksy/pole/domain/dto/BaseDto.java

@@ -8,12 +8,12 @@ import lombok.Data;
  * @author Administrator
  * @version 1.0
  * @project dh-server-micro
- * @description 灯控设备状态查询
- * @date 2024/8/28 17:25:33
+ * @description 公共参数
+ * @date 2024/9/2 10:00:32
  */
 @Data
-@ApiModel(value = "灯控设备状态查询dto")
-public class EquipmentStatusDto {
+@ApiModel(value = "公共参数")
+public abstract class BaseDto {
     @ApiModelProperty(value = "命令")
     private String cmd;
     @ApiModelProperty(value = "包id")

+ 25 - 0
pole-service/src/main/java/com/zksy/pole/domain/dto/DelRelayTimingDto.java

@@ -0,0 +1,25 @@
+package com.zksy.pole.domain.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author Administrator
+ * @version 1.0
+ * @project dh-server-micro
+ * @description 删除继电器定时策略设置
+ * @date 2024/8/28 17:25:33
+ */
+@Data
+@ApiModel(value = "删除继电器定时策略设置dto")
+public class DelRelayTimingDto extends BaseDto{
+    @ApiModelProperty(value = "继电器编号")
+    private String index;
+    @ApiModelProperty(value = "策略编号")
+    private String id;
+    @ApiModelProperty(value = "1代表继电器编号下的所有定时器都删除,0代表只删除上面继电器编号的id=策略编号的定时器")
+    private String tag;
+}

+ 1 - 7
pole-service/src/main/java/com/zksy/pole/domain/dto/DelScenarioStrategyDto.java

@@ -15,13 +15,7 @@ import java.util.List;
  */
 @Data
 @ApiModel(value = "删除场景策略设置dto")
-public class DelScenarioStrategyDto {
-    @ApiModelProperty(value = "命令")
-    private String cmd;
-    @ApiModelProperty(value = "包id")
-    private String packageId;
-    @ApiModelProperty(value = "灯编号")
-    private String lightNums;
+public class DelScenarioStrategyDto extends BaseDto{
     @ApiModelProperty(value = "策略编号")
     private String id;
     @ApiModelProperty(value = "1代表灯编号下的所有定时器都删除,0代表只删除上面灯编号的id=策略编号的定时器")

+ 19 - 0
pole-service/src/main/java/com/zksy/pole/domain/dto/QueryRelayTimingDto.java

@@ -0,0 +1,19 @@
+package com.zksy.pole.domain.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author Administrator
+ * @version 1.0
+ * @project dh-server-micro
+ * @description 查询继电器定时策略
+ * @date 2024/8/28 17:25:33
+ */
+@Data
+@ApiModel(value = "查询继电器定时策略dto")
+public class QueryRelayTimingDto extends BaseDto{
+    @ApiModelProperty(value = "继电器编号 1-5")
+    private String index;
+}

+ 1 - 7
pole-service/src/main/java/com/zksy/pole/domain/dto/RelayControlDto.java

@@ -15,13 +15,7 @@ import java.util.List;
  */
 @Data
 @ApiModel(value = "继电器控制dto")
-public class RelayControlDto {
-    @ApiModelProperty(value = "命令")
-    private String cmd;
-    @ApiModelProperty(value = "包id")
-    private String packageId;
-    @ApiModelProperty(value = "灯编号")
-    private String lightNums;
+public class RelayControlDto extends BaseDto{
     @ApiModelProperty(value = "继电器控制详情")
     private List<RelayControlDetailDto> params;
 }

+ 25 - 0
pole-service/src/main/java/com/zksy/pole/domain/dto/RelayTimingDetailDto.java

@@ -0,0 +1,25 @@
+package com.zksy.pole.domain.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author Administrator
+ * @version 1.0
+ * @project dh-server-micro
+ * @description 继电器定时策略设置详情
+ * @date 2024/8/28 17:25:33
+ */
+@Data
+@ApiModel(value = "继电器定时策略设置详情dto")
+public class RelayTimingDetailDto {
+    @ApiModelProperty(value = "0 断开 1闭合")
+    private String val;
+    @ApiModelProperty(value = "bit0-bit6 分别对应周日到周六 循环定时有效")
+    private String week;
+    @ApiModelProperty(value = "小时:分,代表5点5分 循环定时有效。\"2020-05-26 15:55\",单次定时有效,time根据策略类型来设置")
+    private String time;
+}

+ 33 - 0
pole-service/src/main/java/com/zksy/pole/domain/dto/RelayTimingDto.java

@@ -0,0 +1,33 @@
+package com.zksy.pole.domain.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author Administrator
+ * @version 1.0
+ * @project dh-server-micro
+ * @description 继电器定时策略设置
+ * @date 2024/8/28 17:25:33
+ */
+@Data
+@ApiModel(value = "继电器定时策略设置dto")
+public class RelayTimingDto extends BaseDto{
+    @ApiModelProperty(value = "继电器编号")
+    private String index;
+    @ApiModelProperty(value = "策略编号")
+    private String id;
+    @ApiModelProperty(value = "策略类型 0循环定时 1单次定时")
+    private String type;
+    @ApiModelProperty(value = "策略状态 0禁止 1启用")
+    private String status;
+    @ApiModelProperty(value = "策略有效时间年-月-日-小时-分")
+    private String startTime;
+    @ApiModelProperty(value = "策略失效时间年-月-日-小时-分")
+    private String endTime;
+    @ApiModelProperty(value = "继电器定时策略设置详情")
+    private List<RelayTimingDetailDto> params;
+}

+ 1 - 7
pole-service/src/main/java/com/zksy/pole/domain/dto/ReportEnvironmentalDataDto.java

@@ -13,13 +13,7 @@ import lombok.Data;
  */
 @Data
 @ApiModel(value = "灯具及时控制参数dto")
-public class ReportEnvironmentalDataDto {
-    @ApiModelProperty(value = "命令")
-    private String cmd;
-    @ApiModelProperty(value = "灯编号")
-    private String lightNums;
+public class ReportEnvironmentalDataDto extends BaseDto{
     @ApiModelProperty(value = "亮度")
     private String brightness;
-    @ApiModelProperty(value = "包id")
-    private String packageId;
 }

+ 1 - 7
pole-service/src/main/java/com/zksy/pole/domain/dto/ScenarioStrategyDto.java

@@ -15,13 +15,7 @@ import java.util.List;
  */
 @Data
 @ApiModel(value = "场景策略设置dto")
-public class ScenarioStrategyDto {
-    @ApiModelProperty(value = "命令")
-    private String cmd;
-    @ApiModelProperty(value = "包id")
-    private String packageId;
-    @ApiModelProperty(value = "灯编号")
-    private String lightNums;
+public class ScenarioStrategyDto extends BaseDto{
     @ApiModelProperty(value = "策略编号")
     private String id;
     @ApiModelProperty(value = "策略类型 0循环定时 1单次定时2日出 3日落")

+ 1 - 7
pole-service/src/main/java/com/zksy/pole/domain/dto/SetGatewayTimeDto.java

@@ -13,13 +13,7 @@ import lombok.Data;
  */
 @Data
 @ApiModel(value = "设置网关时间dto")
-public class SetGatewayTimeDto {
-    @ApiModelProperty(value = "命令")
-    private String cmd;
-    @ApiModelProperty(value = "包id")
-    private String packageId;
-    @ApiModelProperty(value = "灯编号")
-    private String lightNums;
+public class SetGatewayTimeDto extends BaseDto{
     @ApiModelProperty(value = "时间戳")
     private String timestamp;
 }

+ 7 - 2
pole-service/src/main/java/com/zksy/pole/service/InstructionIssuanceServer.java

@@ -13,7 +13,7 @@ public interface InstructionIssuanceServer {
 
     public String instructionIssuance(ReportEnvironmentalDataDto dto);
 
-    public String equipmentStatus(EquipmentStatusDto dto);
+    public String equipmentStatus(BaseDto dto);
 
     public String scenarioStrategy(ScenarioStrategyDto dto);
 
@@ -21,7 +21,12 @@ public interface InstructionIssuanceServer {
 
     public String setGatewayTime(SetGatewayTimeDto dto);
 
-    public String reRegistered(EquipmentStatusDto dto);
+    String reRegistered(BaseDto dto);
 
     public String relayControl(RelayControlDto dto);
+
+    public String relayTiming(RelayTimingDto dto);
+
+    public String delRelayTiming(DelRelayTimingDto dto);
+    public String queryRelayTiming(QueryRelayTimingDto dto);
 }

+ 75 - 57
pole-service/src/main/java/com/zksy/pole/service/impl/InstructionIssuanceServerImpl.java

@@ -28,93 +28,111 @@ public class InstructionIssuanceServerImpl implements InstructionIssuanceServer
 
     @Override
     public String instructionIssuance(ReportEnvironmentalDataDto dto) {
-        MqttQoS qos = MqttQoS.AT_MOST_ONCE;;
-        String topic = "down/light/"+dto.getLightNums();
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("cmd",dto.getCmd());
-        jsonObject.put("light_nums",dto.getLightNums());
-        jsonObject.put("brightness",dto.getBrightness());
-        jsonObject.put("package_id","1050");
-        writeAndFlush(qos,topic,jsonObject);
+        Map<String, Object> fields = new HashMap<>();
+        fields.put("brightness",dto.getBrightness());
+        sendMqttMessage(dto,fields);
         return "ok";
     }
 
     @Override
-    public String equipmentStatus(EquipmentStatusDto dto) {
-        MqttQoS qos = MqttQoS.AT_MOST_ONCE;
-        String topic = "down/light/"+dto.getLightNums();
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("cmd",dto.getCmd());
-        jsonObject.put("package_id","1050");
-        jsonObject.put("light_nums",dto.getLightNums());
-        writeAndFlush(qos,topic,jsonObject);
+    public String equipmentStatus(BaseDto dto) {
+        Map<String, Object> fields = new HashMap<>();
+        sendMqttMessage(dto,fields);
         return "ok";
     }
 
     @Override
     public String scenarioStrategy(ScenarioStrategyDto dto) {
-        MqttQoS qos = MqttQoS.AT_MOST_ONCE;;
-        String topic = "down/light/"+dto.getLightNums();
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("cmd",dto.getCmd());
-        jsonObject.put("package_id","1050");
-        jsonObject.put("light_nums",dto.getLightNums());
-        jsonObject.put("id",15);
-        jsonObject.put("type",dto.getType());
-        jsonObject.put("status",dto.getStatus());
-        jsonObject.put("start_time",dto.getStart_time());
-        jsonObject.put("end_time",dto.getEnd_time());
-        jsonObject.put("params",dto.getParams());
-        writeAndFlush(qos,topic,jsonObject);
+        Map<String, Object> fields = new HashMap<>();
+        fields.put("id",dto.getId());
+        fields.put("type",dto.getType());
+        fields.put("status",dto.getStatus());
+        fields.put("start_time",dto.getStart_time());
+        fields.put("end_time",dto.getEnd_time());
+        fields.put("params",dto.getParams());
+        sendMqttMessage(dto,fields);
         return "ok";
     }
 
     @Override
     public String delScenarioStrategy(DelScenarioStrategyDto dto) {
-        MqttQoS qos = MqttQoS.AT_MOST_ONCE;;
-        String topic = "down/light/"+dto.getLightNums();
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("cmd",dto.getCmd());
-        jsonObject.put("package_id","1050");
-        jsonObject.put("light_nums",dto.getLightNums());
-        jsonObject.put("id",15);
-        jsonObject.put("tag",dto.getTag());
-        writeAndFlush(qos,topic,jsonObject);
+        Map<String, Object> fields = new HashMap<>();
+        fields.put("id",dto.getId());
+        fields.put("tag",dto.getTag());
+        sendMqttMessage(dto,fields);
         return "ok";
     }
 
     @Override
     public String setGatewayTime(SetGatewayTimeDto dto) {
-        MqttQoS qos = MqttQoS.AT_MOST_ONCE;
-        String topic = "down/light/"+dto.getLightNums();
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("cmd",dto.getCmd());
-        jsonObject.put("package_id","1050");
-        jsonObject.put("timestamp",dto.getTimestamp());
-        writeAndFlush(qos,topic,jsonObject);
+        Map<String, Object> fields = new HashMap<>();
+        fields.put("timestamp",dto.getTimestamp());
+        sendMqttMessage(dto,fields);
         return "ok";
     }
 
     @Override
-    public String reRegistered(EquipmentStatusDto dto) {
-        MqttQoS qos = MqttQoS.AT_MOST_ONCE;
-        String topic = "down/light/"+dto.getLightNums();
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("cmd",dto.getCmd());
-        writeAndFlush(qos,topic,jsonObject);
+    public String reRegistered(BaseDto dto) {
+        Map<String, Object> fields = new HashMap<>();
+        fields.put("package_id",null);
+        sendMqttMessage(dto,fields);
         return "ok";
     }
 
     @Override
     public String relayControl(RelayControlDto dto) {
+        Map<String, Object> fields = new HashMap<>();
+        fields.put("params",dto.getParams());
+        sendMqttMessage(dto,fields);
+        return "ok";
+    }
+
+    @Override
+    public String relayTiming(RelayTimingDto dto) {
+        Map<String, Object> fields = new HashMap<>();
+        fields.put("index",dto.getIndex());
+        fields.put("id",dto.getId());
+        fields.put("type",dto.getType());
+        fields.put("status",dto.getStatus());
+        fields.put("start_time",dto.getStatus());
+        fields.put("end_time",dto.getStartTime());
+        fields.put("params",dto.getEndTime());
+        sendMqttMessage(dto,fields);
+        return "ok";
+    }
+
+    @Override
+    public String delRelayTiming(DelRelayTimingDto dto) {
+        Map<String, Object> fields = new HashMap<>();
+        fields.put("index",dto.getIndex());
+        fields.put("id",dto.getId());
+        fields.put("tag",dto.getTag());
+        sendMqttMessage(dto,fields);
+        return "ok";
+    }
+
+    @Override
+    public String queryRelayTiming(QueryRelayTimingDto dto) {
+        Map<String, Object> fields = new HashMap<>();
+        fields.put("index",dto.getIndex());
+        sendMqttMessage(dto,fields);
+        return "ok";
+    }
+
+    private void sendMqttMessage(BaseDto dto,Map<String, Object> additionalFields) {
         MqttQoS qos = MqttQoS.AT_MOST_ONCE;
-        String topic = "down/light/"+dto.getLightNums();
+        String topic = "down/light/" + dto.getLightNums();
         JSONObject jsonObject = new JSONObject();
-        jsonObject.put("cmd",dto.getCmd());
-        jsonObject.put("package_id",dto.getPackageId());
-        jsonObject.put("params",dto.getParams());
-        writeAndFlush(qos,topic,jsonObject);
-        return "ok";
+        jsonObject.put("cmd", dto.getCmd());
+
+        if (dto.getPackageId() != null && !dto.getPackageId().isEmpty()) {
+            jsonObject.put("package_id", dto.getPackageId());
+        }
+
+        if (additionalFields != null && !additionalFields.isEmpty()) {
+            additionalFields.forEach((key, value) -> jsonObject.put(key, value));
+        }
+        writeAndFlush(qos, topic, jsonObject);
     }
 
     public void writeAndFlush(MqttQoS qos,String topic,JSONObject jsonObject){