From 5715d16c6fc4842191c802adb2e3b94d19f44f17 Mon Sep 17 00:00:00 2001 From: liurunyu <lry9898@163.com> Date: 星期四, 21 八月 2025 16:02:38 +0800 Subject: [PATCH] 完善代码 --- pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/mqtt/MonitorMqttStirCtrl.java | 143 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 143 insertions(+), 0 deletions(-) diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/mqtt/MonitorMqttStirCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/mqtt/MonitorMqttStirCtrl.java new file mode 100644 index 0000000..98ee790 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/mqtt/MonitorMqttStirCtrl.java @@ -0,0 +1,143 @@ +package com.dy.pipIrrWechat.mqtt; + +import com.alibaba.fastjson2.JSON; +import com.dy.common.aop.SsoAop; +import com.dy.common.mw.protocol.Command; +import com.dy.common.mw.protocol4Mqtt.MqttSubMsg; +import com.dy.common.mw.protocol4Mqtt.pSdV1.CodeSdV1; +import com.dy.common.mw.protocol4Mqtt.pSdV1.ProtocolConstantSdV1; +import com.dy.common.mw.protocol4Mqtt.pSdV1.upVos.ManureVo; +import com.dy.common.util.Callback; +import com.dy.common.webUtil.BaseResponse; +import com.dy.common.webUtil.BaseResponseUtils; +import com.dy.pipIrrWechat.common.Com4MqttCtrl; +import com.dy.pipIrrWechat.common.Dto4MqttBase; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.http.MediaType; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Proxy; + +/** + * @Author: liurunyu + * @Date: 2025/8/21 14:43 + * @Description + */ +@Slf4j +@Tag(name = "杩滅▼鍛戒护", description = "鎼呮媽鍚仠") +@RestController() +@RequestMapping(path = "mqttStir") +@RequiredArgsConstructor +@Scope("prototype") //鍥犱负鏈夊璞$被灞炴�э紝鎵�浠ラ噰鐢ㄥ師鍨嬫ā寮忥紝姣忔璇锋眰鏂板缓涓�涓疄渚嬪璞� +public class MonitorMqttStirCtrl extends Com4MqttCtrl { + + private static final String RtuSuccessMsg = "鎺у埗鍣ㄦ帴鏀跺苟鎵ц鍛戒护鎴愬姛锛屾棤杩斿洖鏁版嵁"; + + private static final String Protocol = ProtocolConstantSdV1.protocolName ; + private static final Short ProtocolVersion = ProtocolConstantSdV1.protocolVer ; + private static final String ComCode = CodeSdV1.cd_Stir ; + + @Autowired + private MonitorMqttSv sv ; + + /** + * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠� + * @param dto 鍓嶇鍙戞潵鐨勫�煎璞� + * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋� + * @return 杩斿洖鍓嶇 + */ + @PostMapping(path = "start", consumes = MediaType.APPLICATION_JSON_VALUE) + @SsoAop() + public BaseResponse<Object> start(@RequestBody @Valid MonitorMqttDto dto, BindingResult bindingResult) { + return this.send(dto, bindingResult, true) ; + } + /** + * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠� + * @param dto 鍓嶇鍙戞潵鐨勫�煎璞� + * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋� + * @return 杩斿洖鍓嶇 + */ + @PostMapping(path = "stop", consumes = MediaType.APPLICATION_JSON_VALUE) + @SsoAop() + public BaseResponse<Object> stop(@RequestBody @Valid MonitorMqttDto dto, BindingResult bindingResult) { + return this.send(dto, bindingResult, false) ; + } + /** + * 鍚戣澶囷紙Mqtt涓棿浠�->FBox锛夊彂閫佸懡浠� + * @param dto 鍓嶇鍙戞潵鐨勫�煎璞� + * @param bindingResult 瀵筪to楠岃瘉鐨勭粨鏋� + * @return 杩斿洖鍓嶇 + */ + private BaseResponse<Object> send(MonitorMqttDto dto, BindingResult bindingResult, boolean startTrueStopFalse) { + BaseResponse<Object> res ; + //鍙戦�佸懡浠ゅ墠-1锛氶獙璇� + res = super.pre1(sv, ComCode, dto, bindingResult); + if(res == null) { + //鍙戦�佸懡浠ゅ墠-2锛氳幏寰楁暟鎹� + res = super.pre2(sv, Protocol, ProtocolVersion, ComCode, dto, bindingResult); + if (res == null) { + //鍙戦�佸懡浠ゅ墠-3锛氫繚瀛樺懡浠ゆ棩蹇� + MonitorMqttCdParam comParam = MonitorMqttCdParam.builder().no(ctrlPo.no).startTrueStopFalse(startTrueStopFalse).build(); + res = super.pre3(sv, dto.manureId, dto.getOperator(), Protocol, ProtocolVersion, ComCode, comParam); + if (res == null) { + //鍙戦�佸懡浠ゅ墠-4锛氬噯澶嘑eature + super.pre4(); + try { + //鍒涘缓澶栭儴鍛戒护锛堝彂缁橫QTT->FBox锛� + Command com = sv.createMQTTCommand(ctrlPo.fboxId, "" + comId, Protocol, ProtocolVersion, ComCode); + com.rtuResultSendWebUrl = mqttResultSendWebUrl; + com.param = comParam ; + //鍙戦�佸懡浠� + res = super.doSend(sv, com); + if (res == null) { + //鍙戦�佸懡浠ゅ悗 + res = super.after(ComCode, null); + } + } catch (Exception e) { + res = BaseResponseUtils.buildFail("鏈嶅姟绔瀯閫犲苟鍚戦�氫俊涓棿浠跺彂閫佽姹傛椂寮傚父" + (e.getMessage() == null ? "" : e.getMessage())); + } finally { + //鏈�缁� + super.end(); + } + } + } + } + return res ; + } + + @Override + protected String checkDto(Dto4MqttBase dto) { + return null; + } + + @Override + protected String dealComResult(String code, MqttSubMsg subMsg, Callback callback){ + String msg; + if(subMsg != null){ + if(subMsg.vo4Up != null && Proxy.isProxyClass(subMsg.vo4Up.getClass())){ + // 鑾峰彇浠g悊鐨� InvocationHandler + InvocationHandler handler = Proxy.getInvocationHandler(subMsg.vo4Up); + String json = JSON.toJSONString(handler) ; + ManureVo vo = JSON.parseObject(json, ManureVo.class); + msg = vo.toString() ; + }else{ + msg = RtuSuccessMsg ; + } + }else{ + msg = RtuSuccessMsg ; + } + return msg; + } + + +} -- Gitblit v1.8.0