From f5a7f6c30bc5fb13eb538b5856a663b1ba0667b6 Mon Sep 17 00:00:00 2001 From: Administrator <zhubaomin> Date: 星期一, 27 五月 2024 16:09:06 +0800 Subject: [PATCH] 2024-05-27 朱宝民 远程开关阀、RTU在线情况 --- pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java | 73 +++++++++++++++++++++++++++++++----- 1 files changed, 63 insertions(+), 10 deletions(-) diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java index 32f9a91..b550305 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/rtu/RtuCtrl.java @@ -1,7 +1,10 @@ package com.dy.pipIrrRemote.rtu; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONObject; import com.dy.common.aop.SsoAop; import com.dy.common.mw.protocol.Command; +import com.dy.common.mw.protocol.Data; import com.dy.common.mw.protocol.p206V202404.CodeV202404; import com.dy.common.mw.protocol.p206V202404.downVos.ComCd10Vo; import com.dy.common.mw.protocol.p206V202404.downVos.ComCdXyVo; @@ -10,21 +13,22 @@ import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory; import com.dy.pipIrrRemote.common.ComSupport; import com.dy.pipIrrRemote.common.CommandSv; +import com.dy.pipIrrRemote.common.dto.Addr; +import com.dy.pipIrrRemote.common.dto.DtoBase; import com.dy.pipIrrRemote.result.RemoteResultCode; -import com.dy.pipIrrRemote.rtu.dto.Addr; -import com.dy.pipIrrRemote.rtu.dto.DtoBase; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.MediaType; import org.springframework.transaction.annotation.Transactional; 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 org.springframework.web.bind.annotation.*; import java.util.Objects; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; /** * @author ZhuBaoMin @@ -43,6 +47,24 @@ protected static String controllerType = "57"; /** + * 鏌ヨ鎵�鏈塕TU鍦ㄧ嚎鎯呭喌 + * @return + */ + @GetMapping(path = "get_online") + @SsoAop() + public BaseResponse<Boolean> get_online() { + Command com = new Command() ; + com.id = Command.defaultId; + com.code = "LCD0001"; + com.type = "innerCommand"; + + JSONObject response = (JSONObject)JSON.toJSON(sendCom2Mw(com)); + JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment"); + + return BaseResponseUtils.buildSuccess(attachment) ; + } + + /** * 璁剧疆璁惧缁堢鍦板潃 * @param addr 璁剧疆璁惧缁堢鍦板潃浼犲叆瀵硅薄 * @param bindingResult @@ -56,10 +78,10 @@ return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } - String commandCode = CodeV202404.cd_10; Long intakeId = addr.getIntakeId(); String newRtuAddr = addr.getNewRtuAddr(); Long operator = addr.getOperator(); + String commandCode = CodeV202404.cd_10; // 鍙栨按鍙D鎹㈤榾鎺у櫒鍦板潃 String rtuAddr = commandSv.getRtuAddrByIntakeId(intakeId); @@ -70,18 +92,49 @@ // 鍒涘缓瑙嗗浘 ComCd10Vo param = new ComCd10Vo() ; param.controllerType = controllerType; - param.projectNo = Integer.parseInt(commandCode); + param.projectNo =projectNo; param.rtuNewAddr = newRtuAddr; // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑 RmCommandHistory rmCommandHistory = getComHistory(commandCode, rtuAddr, param, operator); String comId = commandSv.insert(rmCommandHistory); + System.out.println(comId); // 鏋勯�犲懡浠� Command com = command(comId, commandCode, rtuAddr, param); - return sendCom2Mw(com); + sendCom2Mw(com); + + CompletableFuture<Data> featureObject = new CompletableFuture<>(); + features.put(comId, featureObject); + try { + CompletableFuture<Data> feature = (CompletableFuture<Data>) features.get(comId); + Data resultData = feature.get(30, TimeUnit.SECONDS); + features.remove(comId); + String commandId = resultData.getCommandId(); + if(commandId.equals(comId)) { + //futureValue = new CompletableFuture<>(); + return BaseResponseUtils.buildSuccess((JSONObject)JSON.toJSON(resultData.subData)); + } + } catch (InterruptedException e) { + e.printStackTrace(); + } catch (ExecutionException e) { + e.printStackTrace(); + } catch (TimeoutException e) { + return BaseResponseUtils.buildFail("1鍒嗛挓鍚庡幓鏌ョ湅缁撴灉"); + } + + + //return BaseResponseUtils.buildSuccess(resultData.toJson()); + + return BaseResponseUtils.buildSuccess() ; } + /** + * 娓呴櫎璁惧缁堢鐢ㄦ按璁板綍 + * @param po + * @param bindingResult + * @return + */ @PostMapping(path = "clear_usage_record", consumes = MediaType.APPLICATION_JSON_VALUE) @Transactional(rollbackFor = Exception.class) @SsoAop() @@ -103,7 +156,7 @@ // 鍒涘缓瑙嗗浘 ComCdXyVo param = new ComCdXyVo(); param.controllerType = controllerType; - param.projectNo = Integer.parseInt(commandCode); + param.projectNo = projectNo; // 鍒涘缓鍛戒护鏃ュ織瀵硅薄骞舵坊鍔犲埌鏁版嵁搴撲腑 RmCommandHistory rmCommandHistory = getComHistory(commandCode, rtuAddr, param, operator); -- Gitblit v1.8.0