From 92d540e497c7d53910476263be9d5f55c40ef788 Mon Sep 17 00:00:00 2001 From: hzj <826100833@qq.com> Date: Mon, 17 Feb 2025 15:07:04 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E9=87=8D=E5=90=AF=E5=92=8C?= =?UTF-8?q?=E8=BF=9B=E7=A8=8B=E9=87=8D=E5=90=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../njcn/message/api/ProduceFeignClient.java | 10 ++++ .../ProduceFeignClientFallbackFactory.java | 9 ++- .../njcn/message/constant/BusinessTopic.java | 2 + .../message/constant/DeviceRebootType.java | 31 ++++++++++ .../message/message/DeviceRebootMessage.java | 58 +++++++++++++++---- .../message/message/ProcessRebootMessage.java | 35 +++++++++++ .../njcn/message/message/RecallMessage.java | 5 ++ .../message/produce/ProduceController.java | 18 +++++- .../ProcessRebootMessageTemplate.java | 30 ++++++++++ 9 files changed, 184 insertions(+), 14 deletions(-) create mode 100644 message/message-api/src/main/java/com/njcn/message/constant/DeviceRebootType.java create mode 100644 message/message-api/src/main/java/com/njcn/message/message/ProcessRebootMessage.java create mode 100644 message/message-boot/src/main/java/com/njcn/message/produce/template/ProcessRebootMessageTemplate.java diff --git a/message/message-api/src/main/java/com/njcn/message/api/ProduceFeignClient.java b/message/message-api/src/main/java/com/njcn/message/api/ProduceFeignClient.java index 4f98728..a306780 100644 --- a/message/message-api/src/main/java/com/njcn/message/api/ProduceFeignClient.java +++ b/message/message-api/src/main/java/com/njcn/message/api/ProduceFeignClient.java @@ -1,11 +1,16 @@ package com.njcn.message.api; +import com.njcn.common.pojo.annotation.OperateInfo; import com.njcn.common.pojo.constant.ServerInfo; +import com.njcn.common.pojo.enums.common.LogEnum; import com.njcn.common.pojo.response.HttpResult; import com.njcn.message.api.fallback.ProduceFeignClientFallbackFactory; import com.njcn.message.message.DeviceRebootMessage; +import com.njcn.message.message.ProcessRebootMessage; import com.njcn.message.message.RecallMessage; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -28,4 +33,9 @@ public interface ProduceFeignClient { @PostMapping("/askRestartDevice") public HttpResult askRestartDevice(@RequestBody DeviceRebootMessage message); + + @PostMapping("/askRestartProcess") + + public HttpResult askRestartProcess(@RequestBody ProcessRebootMessage message); + } diff --git a/message/message-api/src/main/java/com/njcn/message/api/fallback/ProduceFeignClientFallbackFactory.java b/message/message-api/src/main/java/com/njcn/message/api/fallback/ProduceFeignClientFallbackFactory.java index 9f44dc7..f0fc937 100644 --- a/message/message-api/src/main/java/com/njcn/message/api/fallback/ProduceFeignClientFallbackFactory.java +++ b/message/message-api/src/main/java/com/njcn/message/api/fallback/ProduceFeignClientFallbackFactory.java @@ -6,6 +6,7 @@ import com.njcn.common.pojo.response.HttpResult; import com.njcn.message.api.ProduceFeignClient; import com.njcn.message.message.DeviceRebootMessage; +import com.njcn.message.message.ProcessRebootMessage; import com.njcn.message.message.RecallMessage; import com.njcn.message.utils.MessageEnumUtil; import feign.hystrix.FallbackFactory; @@ -43,7 +44,13 @@ public class ProduceFeignClientFallbackFactory implements FallbackFactory askRestartDevice(DeviceRebootMessage message) { - log.error("{}异常,降级处理,异常为:{}", "消息数据解析", throwable.toString()); + log.error("{}异常,降级处理,异常为:{}", "设备重启", throwable.toString()); + throw new BusinessException(finalExceptionEnum); + } + + @Override + public HttpResult askRestartProcess(ProcessRebootMessage message) { + log.error("{}异常,降级处理,异常为:{}", "进程重启", throwable.toString()); throw new BusinessException(finalExceptionEnum); } }; diff --git a/message/message-api/src/main/java/com/njcn/message/constant/BusinessTopic.java b/message/message-api/src/main/java/com/njcn/message/constant/BusinessTopic.java index 39bece3..7346c63 100644 --- a/message/message-api/src/main/java/com/njcn/message/constant/BusinessTopic.java +++ b/message/message-api/src/main/java/com/njcn/message/constant/BusinessTopic.java @@ -32,6 +32,8 @@ public interface BusinessTopic { String CONTROL_TOPIC = "control_Topic"; + String PROCESS_TOPIC = "process_Topic"; + String ASK_REAL_DATA_TOPIC = "ask_real_data_topic"; String RECALL_TOPIC = "recall_Topic"; diff --git a/message/message-api/src/main/java/com/njcn/message/constant/DeviceRebootType.java b/message/message-api/src/main/java/com/njcn/message/constant/DeviceRebootType.java new file mode 100644 index 0000000..e26a3c8 --- /dev/null +++ b/message/message-api/src/main/java/com/njcn/message/constant/DeviceRebootType.java @@ -0,0 +1,31 @@ +package com.njcn.message.constant; + +/** + * Description: + * Date: 2025/02/17 上午 10:09【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +public interface DeviceRebootType { + /*** + * 1. 新增终端台账 + */ + String ADD_TERMINAL = "add_terminal"; + + /*** + * 1. 删除终端台账 + */ + String DELETE_TERMINAL = "delete_terminal"; + + + /*** + *修改终端 新增/删除/监测点台账 + */ + String LEDGER_MODIFY = "ledger_modify"; + /** + * Icd变更 + */ + String ICD_CHANGE = "icd_change"; + +} \ No newline at end of file diff --git a/message/message-api/src/main/java/com/njcn/message/message/DeviceRebootMessage.java b/message/message-api/src/main/java/com/njcn/message/message/DeviceRebootMessage.java index 1e185d0..3885cfb 100644 --- a/message/message-api/src/main/java/com/njcn/message/message/DeviceRebootMessage.java +++ b/message/message-api/src/main/java/com/njcn/message/message/DeviceRebootMessage.java @@ -13,21 +13,55 @@ import java.util.List; */ @Data public class DeviceRebootMessage { - //set_process - private String code="set_process"; + private String code; - private Integer index; - - private List data; + private DeviceInfo data; @Data - public static class RebootData { - //reset/add",重置或者添加进程 - private String fun; - //重置启动多少个进程,或者添加第几个进程 - private Integer processNum; - //"stat/recall/all"//重置的进程类型:stat或者recall或者所有进程;添加的进程类型:stat或者recall或者stat和recall;只有稳态和补招是多进程 - private String frontType; + public static class DeviceInfo { + //终端索引 + private String id; + //终端ip + private String ip; + //终端型号 + private String devType; + //挂载单位 + private String org_name; + //组织名称 + private String port; + //终端端口 + private String stationName; + //变电站名 + private String name; + //终端序列号 + private String updateTime; + //数据更新时间 + private String manufacturer; + //终端厂商 + private String status; + //终端状态 + private String series; + //终端识别码 + private String devKey; + // + private List monitorData; + + @Data + public static class MonitorInfo { + //监测点索引 + private String id; + //名称 + private String name; + //监测点逻辑号 + private String lineNo; + //监测点电压等级 + private String voltageLevel; + //监测点接线方式 + private String ptType; + private String status; + } + + } } diff --git a/message/message-api/src/main/java/com/njcn/message/message/ProcessRebootMessage.java b/message/message-api/src/main/java/com/njcn/message/message/ProcessRebootMessage.java new file mode 100644 index 0000000..5990a32 --- /dev/null +++ b/message/message-api/src/main/java/com/njcn/message/message/ProcessRebootMessage.java @@ -0,0 +1,35 @@ +package com.njcn.message.message; + +import lombok.Data; + +import java.util.List; + +/** + * Description: + * Date: 2024/12/13 10:15【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +public class ProcessRebootMessage { + + //set_process + private String code="set_process"; + + private Integer index; + + private List data; + + @Data + public static class RebootData { + //reset/add",重置或者添加进程 + private String fun; + //重置启动多少个进程,或者添加第几个进程 + private Integer processNum; + //"stat/recall/all"//重置的进程类型:stat或者recall或者所有进程;添加的进程类型:stat或者recall或者stat和recall;只有稳态和补招是多进程 + private String frontType; + } + +} + diff --git a/message/message-api/src/main/java/com/njcn/message/message/RecallMessage.java b/message/message-api/src/main/java/com/njcn/message/message/RecallMessage.java index 962ffed..f4b6011 100644 --- a/message/message-api/src/main/java/com/njcn/message/message/RecallMessage.java +++ b/message/message-api/src/main/java/com/njcn/message/message/RecallMessage.java @@ -20,6 +20,11 @@ public class RecallMessage { public static class RecallDTO { /** + * { + * "dataType":1, + * "monitorId":["1","2"], + * "timeInterval":: ["2024-01-01 12:52:51~2024-01-01 13:53:00","2024-01-02 12:52:51~2024-01-02 13:53:00"] + * } * monitorId : ["id1","id2","id3"] * dataType : 稳态 * timeInterval : ["2024-01-01 12:52:51~2024-01-01 13:53:00","2024-01-02 12:52:51~2024-01-02 13:53:00","2024-01-03 12:52:51~2024-01-03 13:53:00","2024-01-04 12:52:51~2024-01-04 13:53:00"] diff --git a/message/message-boot/src/main/java/com/njcn/message/produce/ProduceController.java b/message/message-boot/src/main/java/com/njcn/message/produce/ProduceController.java index f538515..5394092 100644 --- a/message/message-boot/src/main/java/com/njcn/message/produce/ProduceController.java +++ b/message/message-boot/src/main/java/com/njcn/message/produce/ProduceController.java @@ -8,8 +8,10 @@ import com.njcn.common.pojo.response.HttpResult; import com.njcn.common.utils.HttpResultUtil; import com.njcn.message.message.DeviceRebootMessage; +import com.njcn.message.message.ProcessRebootMessage; import com.njcn.message.message.RecallMessage; import com.njcn.message.produce.template.DeviceRebootMessageTemplate; +import com.njcn.message.produce.template.ProcessRebootMessageTemplate; import com.njcn.message.produce.template.RecallMessaggeTemplate; import com.njcn.middle.rocket.domain.BaseMessage; import com.njcn.web.controller.BaseController; @@ -35,12 +37,14 @@ public class ProduceController extends BaseController { private final DeviceRebootMessageTemplate deviceRebootMessageTemplate; + private final ProcessRebootMessageTemplate processRebootMessageTemplate; + @PostMapping("/recall") @OperateInfo(info = LogEnum.BUSINESS_COMMON) @ApiOperation("数据补招消息推送") @ApiImplicitParam(name = "param", value = "参数", required = true) - public HttpResult recall(@RequestParam RecallMessage message){ + public HttpResult recall(@RequestBody RecallMessage message){ String methodDescribe = getMethodDescribe("recall"); BaseMessage baseMessage = new BaseMessage(); baseMessage.setMessageBody(JSONObject.toJSONString(message)); @@ -59,4 +63,16 @@ public class ProduceController extends BaseController { deviceRebootMessageTemplate.sendMember(baseMessage); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); } + + @PostMapping("/askRestartProcess") + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("请求前置重启设备消息推送") + @ApiImplicitParam(name = "param", value = "参数", required = true) + public HttpResult askRestartProcess(@RequestBody ProcessRebootMessage message){ + String methodDescribe = getMethodDescribe("recall"); + BaseMessage baseMessage = new BaseMessage(); + baseMessage.setMessageBody(JSONObject.toJSONString(message)); + processRebootMessageTemplate.sendMember(baseMessage); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); + } } diff --git a/message/message-boot/src/main/java/com/njcn/message/produce/template/ProcessRebootMessageTemplate.java b/message/message-boot/src/main/java/com/njcn/message/produce/template/ProcessRebootMessageTemplate.java new file mode 100644 index 0000000..366bc29 --- /dev/null +++ b/message/message-boot/src/main/java/com/njcn/message/produce/template/ProcessRebootMessageTemplate.java @@ -0,0 +1,30 @@ +package com.njcn.message.produce.template; + +import com.njcn.message.constant.BusinessResource; +import com.njcn.message.constant.BusinessTopic; +import com.njcn.middle.rocket.domain.BaseMessage; +import com.njcn.middle.rocket.template.RocketMQEnhanceTemplate; +import org.apache.rocketmq.client.producer.SendResult; +import org.apache.rocketmq.spring.core.RocketMQTemplate; +import org.springframework.stereotype.Component; + +/** + * 类的介绍: + * + * @author xuyang + * @version 1.0.0 + * @createTime 2023/8/11 15:28 + */ +@Component +public class ProcessRebootMessageTemplate extends RocketMQEnhanceTemplate { + + public ProcessRebootMessageTemplate(RocketMQTemplate template) { + super(template); + } + + public SendResult sendMember(BaseMessage baseMessage) { + baseMessage.setSource(BusinessResource.WEB_RESOURCE); + baseMessage.setKey("Test_Keys"); + return send(BusinessTopic.PROCESS_TOPIC,"Test_Tag", baseMessage); + } +}