From a7485c9f9b16ece4f12f0b3f6d6a8c90370f5ae4 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期三, 09 四月 2025 16:08:30 +0800
Subject: [PATCH] 灌溉计划详情信息增加取水口命令发布失败数量

---
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeSv.java |  262 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 262 insertions(+), 0 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeSv.java
new file mode 100644
index 0000000..33bb871
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeSv.java
@@ -0,0 +1,262 @@
+package com.dy.pipIrrWechat.intake;
+
+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.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrGlobal.daoPr.PrIntakeMapper;
+import com.dy.pipIrrGlobal.daoRm.RmOpenCloseValveHistoryMapper;
+import com.dy.pipIrrGlobal.pojoPr.PrIntake;
+import com.dy.pipIrrGlobal.voPr.VoAllIntake;
+import com.dy.pipIrrGlobal.voPr.VoOnLineIntake;
+import com.dy.pipIrrGlobal.voRm.VoOpenClostWechat;
+import com.dy.pipIrrWechat.intake.qo.OnLineIntakesQO;
+import com.dy.pipIrrWechat.intake.qo.QoOpenClose;
+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.List;
+import java.util.Map;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-06-20 8:37
+ * @LastEditTime 2024-06-20 8:37
+ * @Description
+ */
+
+@Slf4j
+@Service
+public class IntakeSv {
+    @Autowired
+    private PrIntakeMapper prIntakeMapper;
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Autowired
+    private RmOpenCloseValveHistoryMapper rmOpenCloseValveHistoryMapper;
+
+    //protected static String mwUrlSendCom = "http://127.0.0.1:8070/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";
+    @Autowired
+    public IntakeSv(Environment env) {
+        this.env = env;
+    }
+
+    /**
+     * 鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栧彇姘村彛瀵硅薄
+     * @return
+     */
+    public VoOnLineIntake selectOneIntake(OnLineIntakesQO qo) {
+        //Command com = new Command() ;
+        //com.id = Command.defaultId;
+        //com.code = "LCD0001";
+        //com.type = "innerCommand";
+        //comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw);
+        //
+        //JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com));
+        //
+        //JSONArray jsonArray = new JSONArray();
+        //if(response != null && response.getString("code").equals("0001")) {
+        //    JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment");
+        //    if(attachment != null) {
+        //        attachment.forEach((key, value) -> {
+        //            JSONObject jsonObject = new JSONObject();
+        //            jsonObject.put("rtuAddr", key);
+        //            jsonObject.put("isOnLine", value);
+        //            jsonArray.add(jsonObject);
+        //        });
+        //    }
+        //}
+        //qo.setOnLineMap(jsonArray.toJSONString());
+
+        // 濡傛灉 intakeNum 涓嶄负绌猴紝鍒欒浆涓哄皬鍐欏啀鍐欏叆qo瀵硅薄
+        String intakeNum = qo.getIntakeNum();
+        if(intakeNum != null) {
+            qo.setIntakeNum(intakeNum.toLowerCase());
+        }
+
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
+        return prIntakeMapper.getIntakeByName(params);
+    }
+
+    /**
+     * 鑾峰彇鍙栨按鍙e垪琛紙鍦ㄧ嚎鍜屼笉鍦ㄧ嚎锛�
+     * @return
+     */
+    public QueryResultVo<List<VoOnLineIntake>> selectAllIntakes(OnLineIntakesQO qo) {
+        //Command com = new Command() ;
+        //com.id = Command.defaultId;
+        //com.code = "LCD0001";
+        //com.type = "innerCommand";
+        //comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw);
+        //
+        //JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com));
+        //
+        //JSONArray jsonArray = new JSONArray();
+        //if(response != null && response.getString("code").equals("0001")) {
+        //    JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment");
+        //    if(attachment != null) {
+        //        attachment.forEach((key, value) -> {
+        //            JSONObject jsonObject = new JSONObject();
+        //            jsonObject.put("rtuAddr", key);
+        //            jsonObject.put("isOnLine", value);
+        //            jsonArray.add(jsonObject);
+        //        });
+        //    }
+        //}
+        //qo.setOnLineMap(jsonArray.toJSONString());
+
+        // 濡傛灉 intakeNum 涓嶄负绌猴紝鍒欒浆涓哄皬鍐欏啀鍐欏叆qo瀵硅薄
+        String intakeNum = qo.getIntakeNum();
+        if(intakeNum != null) {
+            qo.setIntakeNum(intakeNum.toLowerCase());
+        }
+
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
+        Long itemTotal = prIntakeMapper.getOnLineIntakesCount(params);
+
+        QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>() ;
+        rsVo.pageSize = qo.pageSize ;
+        rsVo.pageCurr = qo.pageCurr ;
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = prIntakeMapper.getOnLineIntakes(params);
+        return rsVo;
+
+    }
+
+    /**
+     * 鏍规嵁鎿嶄綔鍛樿幏鍙栧父鐢ㄥ彇姘村彛
+     * @param operatorId
+     * @return
+     */
+    public List<VoOnLineIntake> getUsedIntakes(Long operatorId) {
+        Command com = new Command() ;
+        com.id = Command.defaultId;
+        com.code = "LCD0001";
+        com.type = "innerCommand";
+        comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw);
+
+        JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com));
+        //String response_Str = "{\"code\": \"0001\",\"content\": {\"attachment\": {\"530115059980\": true,\"620201000030\": true},\"code\": \"LCD0001\",\"id\": \"999999999\",\"param\": {\"message\": \"鏌ヨ鎵�鏈塕TU鍦ㄧ嚎鎯呭喌缁撴灉\",\"success\": true},\"protocol\": \"\",\"rtuAddr\": \"\",\"rtuResultSendWebUrl\": \"\",\"type\": \"resultCommand\"},\"msg\": \"璇锋眰鎴愬姛\",\"success\": true}";
+        //JSONObject response = JSON.parseObject(response_Str);
+        //String test = response.toJSONString();
+
+        JSONArray jsonArray = new JSONArray();
+        if(response != null && response.getString("code").equals("0001")) {
+            JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment");
+            if(attachment != null) {
+                attachment.forEach((key, value) -> {
+                    JSONObject jsonObject = new JSONObject();
+                    jsonObject.put("rtuAddr", key);
+                    jsonObject.put("isOnLine", value);
+                    jsonArray.add(jsonObject);
+
+                });
+            }
+
+            System.out.println(jsonArray.toJSONString());
+            //return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operatorId);
+        //} else {
+        //    return new ArrayList<>();
+        }
+
+        return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operatorId);
+    }
+
+    /**
+     * 鍙戦�佸懡浠�
+     * @return
+     */
+    protected BaseResponse sendCom2Mw(Command com){
+        String url = UriComponentsBuilder.fromUriString(comSendUrl)
+                .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();
+    }
+
+    /**
+     * 鑾峰彇鐗╃悊鍗″紑鍏抽榾璁板綍锛屽井淇″皬绋嬪簭浣跨敤
+     * @param queryVo
+     * @return
+     */
+    public QueryResultVo<List<VoOpenClostWechat>> getCardOpenClose(QoOpenClose queryVo) {
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
+
+        Long itemTotal = rmOpenCloseValveHistoryMapper.getCardOpenCloseCount(params);
+
+        QueryResultVo<List<VoOpenClostWechat>> rsVo = new QueryResultVo<>();
+        rsVo.pageSize = queryVo.pageSize;
+        rsVo.pageCurr = queryVo.pageCurr;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmOpenCloseValveHistoryMapper.getCardOpenClose(params);
+        return rsVo;
+    }
+
+    /**
+     * 鑾峰彇铏氭嫙鍗″紑鍏抽榾璁板綍锛屽井淇″皬绋嬪簭浣跨敤
+     * @param queryVo
+     * @return
+     */
+    public QueryResultVo<List<VoOpenClostWechat>> getVcCardOpenClose(QoOpenClose queryVo) {
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
+
+        Long itemTotal = rmOpenCloseValveHistoryMapper.getVcCardOpenCloseCount(params);
+
+        QueryResultVo<List<VoOpenClostWechat>> rsVo = new QueryResultVo<>();
+        rsVo.pageSize = queryVo.pageSize;
+        rsVo.pageCurr = queryVo.pageCurr;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmOpenCloseValveHistoryMapper.getVcCardOpenClose(params);
+        return rsVo;
+    }
+
+    /**
+     * 寰楀埌鎵�鏈夊彇姘村彛
+     *
+     * @return 鎵�鏈夊彇姘村彛闆嗗悎
+     */
+    public QueryResultVo<List<VoAllIntake>> selectAll() {
+        QueryResultVo<List<VoAllIntake>> rsVo = new QueryResultVo<>();
+        rsVo.obj = this.prIntakeMapper.selectAll();
+        return rsVo;
+    }
+}

--
Gitblit v1.8.0