From 346b480ab7848c742065e9bf989abaf43b515613 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 21 四月 2025 15:05:26 +0800
Subject: [PATCH] 获取轮灌组详情

---
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigation/IrrigationSv.java |  150 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 149 insertions(+), 1 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigation/IrrigationSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigation/IrrigationSv.java
index 53d5b19..205ec52 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigation/IrrigationSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/irrigation/IrrigationSv.java
@@ -1,17 +1,38 @@
 package com.dy.pipIrrWechat.irrigation;
 
-import com.dy.common.webUtil.QueryResultVo;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.common.multiDataSource.DataSourceContext;
+import com.dy.common.mw.protocol.Command;
+import com.dy.common.mw.protocol.CommandType;
+
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrGlobal.rtuMw.Web2RtuMw;
+
+import com.dy.common.webUtil.BaseResponse;
 import com.dy.pipIrrGlobal.daoIr.IrIrrigateGroupMapper;
 import com.dy.pipIrrGlobal.daoIr.IrProjectMapper;
+import com.dy.pipIrrGlobal.rtuMw.CodeLocal;
+import com.dy.pipIrrGlobal.voIr.VoGroupIntakes;
 import com.dy.pipIrrGlobal.voIr.VoGroupSimple;
+import com.dy.pipIrrGlobal.voIr.VoIntake;
 import com.dy.pipIrrGlobal.voIr.VoProjectSimple;
 import com.dy.pipIrrWechat.irrigation.qo.QoGroup;
 import com.dy.pipIrrWechat.irrigation.qo.QoProject;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.util.UriComponentsBuilder;
 
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -30,6 +51,27 @@
 
     @Autowired
     private IrIrrigateGroupMapper irIrrigateGroupMapper;
+
+    @Autowired
+    private Environment env;
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    private static final String pro_mw = "mw";
+    private static final String pro_url = "url";
+    protected static final String ContextComSend = "/rtuMw/com/send";
+
+    protected String comSendUrl;
+    /**
+     * pro_mw锛氬睘鎬�
+     * tag浠庢帶鍒跺櫒涓幏鍙�
+     * key_mw锛歶rl鐨刱ey
+     */
+    //private Environment env = null;
+    //private String pro_mw = "mw";
+    private String key_mw = "comSendUrl";
+
 
     /**
      * 鏍规嵁鎸囧畾鏉′欢鑾峰彇椤圭洰璁板綍(绮剧畝)
@@ -58,4 +100,110 @@
         return irIrrigateGroupMapper.getSimpleGroups(params);
     }
 
+    /**
+     * 鏍规嵁杞亴缁処D鑾峰彇杞亴缁勮鎯�
+     * @param groupId
+     * @return
+     */
+    public Map getGroupDetails(Long groupId) {
+        try {
+            // 鐢熸垚椤圭洰淇℃伅鍙婅疆鐏岀粍淇℃伅
+            VoGroupIntakes voGroupIntakes = new VoGroupIntakes();
+            String projectName = "";
+            String groupName = "";
+            List<VoGroupIntakes> groupIntakes = irIrrigateGroupMapper.getGroupIntakes(groupId);
+            if (groupIntakes == null) {
+                Map map = new HashMap<>();
+                map.put("success", false);
+                map.put("msg", "杞亴缁勪笉瀛樺湪");
+                map.put("content", null);
+                return map;
+            }
+            for(VoGroupIntakes groupIntake : groupIntakes) {
+                projectName = projectName + groupIntake.getProjectName() + "銆�";
+                groupName = groupIntake.getGroupName();
+            }
+            voGroupIntakes.setProjectName(projectName.substring(0, projectName.length() - 1));
+            voGroupIntakes.setGroupName(groupName);
+
+            // 琛ュ叏鍙栨按鍙d俊鎭紙鍦ㄧ嚎鎯呭喌锛�
+            List<VoIntake> intakes = irIrrigateGroupMapper.getGroupIntakesList(groupId);
+            if(intakes == null) {
+                Map map = new HashMap<>();
+                map.put("success", false);
+                map.put("msg", "璇ヨ疆鐏岀粍鏈粦瀹氬彇姘村彛");
+                map.put("content", null);
+                return map;
+            }
+            for (VoIntake intake : intakes) {
+                intake.setIsOnLine(getRtuStatus(intake.getRtuAddr()));
+            }
+            voGroupIntakes.setIntakes(intakes);
+
+            Map map = new HashMap<>();
+            map.put("success", true);
+            map.put("msg", "鑾峰彇杞亴缁勮鎯呮垚鍔�");
+            map.put("content", voGroupIntakes);
+            return map;
+        } catch (Exception e) {
+            Map map = new HashMap<>();
+            map.put("success", false);
+            map.put("msg", "鑾峰彇杞亴缁勮鎯呭け璐�");
+            map.put("content", null);
+            return map;
+        }
+    }
+
+    /**
+     * 鑾峰彇rtu鍦ㄧ嚎鎯呭喌
+     * @param rtuAdd
+     * @return
+     */
+    public Boolean getRtuStatus(String rtuAdd) {
+        Command com = new Command();
+        com.id = Command.defaultId;
+        com.code = CodeLocal.onLinePart;
+        com.type = CommandType.innerCommand;
+        com.setRtuAddr(rtuAdd);
+        com.setParam(rtuAdd);
+        JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com));
+
+        if (response == null || !response.getString("code").equals("0001") || response.getJSONObject("content").getJSONObject("attachment").size() == 0) {
+            return false;
+        }
+
+        if(response.getJSONObject("content").getJSONObject("attachment").getBoolean(rtuAdd)) {
+            return true;
+        }
+        else {
+            return false;
+        }
+    }
+
+    /**
+     * 鍙戦�佸懡浠�
+     *
+     * @return
+     */
+    protected BaseResponse sendCom2Mw(Command com) {
+        String url = UriComponentsBuilder.fromUriString(env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw))
+                .build()
+                .toUriString();
+        HttpHeaders headers = new HttpHeaders();
+        HttpEntity<Command> httpEntity = new HttpEntity<>(com, headers);
+        ResponseEntity<BaseResponse> response = null;
+        try {
+            // 閫氳繃Post鏂瑰紡璋冪敤鎺ュ彛
+            response = restTemplate.exchange(url, HttpMethod.POST, httpEntity, BaseResponse.class);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        if(response == null) {
+            return BaseResponseUtils.buildErrorMsg("涓棿浠惰皟鐢ㄥけ璐�");
+        }
+
+        return response.getBody();
+    }
+
 }

--
Gitblit v1.8.0