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