From 830295f3693ac5c916a0f50a38d23918843005aa Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期四, 24 十月 2024 16:51:53 +0800
Subject: [PATCH] 优化代码 取水口分页查询

---
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java |  123 ++++++++++++++++++++++++++++++----------
 1 files changed, 91 insertions(+), 32 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java
index 1c61f81..1bbe943 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java
@@ -3,9 +3,11 @@
 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.QueryResultVo;
+import com.dy.pipIrrGlobal.config.DingTalk;
 import com.dy.pipIrrGlobal.daoPr.PrDivideMapper;
 import com.dy.pipIrrGlobal.daoPr.PrIntakeMapper;
 import com.dy.pipIrrGlobal.pojoPr.PrIntake;
@@ -15,6 +17,7 @@
 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;
@@ -45,8 +48,33 @@
     @Autowired
     private RestTemplate restTemplate;
 
-    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;
+    }
+
+    @Autowired
+    private DingTalk dingTalk;
+
+    public String sendMessage(String message) {
+        try {
+            dingTalk.sendMessage(DataSourceContext.get(), this.env, message);
+        } catch (Exception e) {
+            return "鍙戦�佸け璐�";
+        }
+        return "鍙戦�佹垚鍔�";
+    }
 
     /**
      * 娣诲姞鍙栨按鍙�
@@ -58,7 +86,7 @@
     Integer addIntake(PrIntake po) {
         Long villageId = Optional.ofNullable(po.getVillageId()).orElse(0L);
 
-        if (villageId != 0){
+        if (villageId != 0) {
             if (po.getTownId() == null || po.getTownId() == 0) {
                 Long townId = getSupperByVillageId(po.getVillageId());
                 po.setTownId(townId);
@@ -78,7 +106,6 @@
     public Long getSupperByVillageId(long vaId) {
         return prIntakeMapper.getSupperByVillageId(vaId);
     }
-
 
     /**
      * 淇濆瓨淇敼瀹炰綋
@@ -107,21 +134,44 @@
      * @return 鍙栨按鍙h褰曞垪琛�
      */
     public QueryResultVo<List<VoIntake>> getIntakes(QueryVo queryVo) {
-//        String isBinded = queryVo.getIsBinded();
-//
-//        if(isBinded == null || isBinded.length() <= 0) {
-//
-//        }
+        Command com = new Command();
+        com.id = Command.defaultId;
+        com.code = "LCD0001";
+        com.type = "innerCommand";
+        comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw);
+        BaseResponse baseResponse = sendCom2Mw(com);
+        JSONObject response = (JSONObject) JSON.toJSON(baseResponse);
 
-        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
-        Long itemTotal = prIntakeMapper.getRecordCount(params);
+        if (response != null && response.getString("code").equals("0001")) {
+            JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment").getJSONObject("onLineMap");
 
-        QueryResultVo<List<VoIntake>> rsVo = new QueryResultVo<>();
-        rsVo.pageSize = queryVo.pageSize;
-        rsVo.pageCurr = queryVo.pageCurr;
-        rsVo.calculateAndSet(itemTotal, params);
-        rsVo.obj = prIntakeMapper.getIntakes(params);
-        return rsVo;
+            JSONArray jsonArray = new JSONArray();
+
+            if(attachment != null) {
+                HashMap<String, Boolean> onLineMap = JSON.parseObject(attachment.toJSONString(), HashMap.class);
+                for (Map.Entry<String, Boolean> entry : onLineMap.entrySet()) {
+                    JSONObject jsonObject = new JSONObject();
+                    jsonObject.put("rtuAddr", entry.getKey());
+                    jsonObject.put("isOnLine", entry.getValue());
+                    jsonArray.add(jsonObject);
+                }
+            }
+
+            queryVo.setOnLineMap(jsonArray.toJSONString());
+
+            Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
+            Long itemTotal = prIntakeMapper.getRecordCount(params);
+
+            QueryResultVo<List<VoIntake>> rsVo = new QueryResultVo<>();
+            rsVo.pageSize = queryVo.pageSize;
+            rsVo.pageCurr = queryVo.pageCurr;
+            rsVo.calculateAndSet(itemTotal, params);
+            rsVo.obj = prIntakeMapper.getIntakes(params);
+            return rsVo;
+        } else {
+            QueryResultVo<List<VoIntake>> rsVo = new QueryResultVo<>();
+            return rsVo;
+        }
     }
 
     /**
@@ -200,17 +250,18 @@
 
     /**
      * 鑾峰彇鍙栨按鍙e垪琛�
+     *
      * @return
      */
     public QueryResultVo<List<VoOnLineIntake>> selectOnLineIntakes(OnLineIntakesQO qo) {
-        Command com = new Command() ;
+        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));
-
-        if(response != null && response.getString("code").equals("0001")) {
+        if (response != null && response.getString("code").equals("0001")) {
             JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment").getJSONObject("onLineMap");
             HashMap<String, Boolean> onLineMap = JSON.parseObject(attachment.toJSONString(), HashMap.class);
 
@@ -223,12 +274,12 @@
             }
 
             qo.setOnLineMap(jsonArray.toJSONString());
-            Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
+            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 ;
+            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;
@@ -240,17 +291,18 @@
 
     /**
      * 鏍规嵁鎿嶄綔鍛樿幏鍙栧父鐢ㄥ彇姘村彛
+     *
      * @param operator
      * @return
      */
     public List<VoOnLineIntake> getUsedIntakes(Long operator) {
-        Command com = new Command() ;
+        Command com = new Command();
         com.id = Command.defaultId;
         com.code = "LCD0001";
         com.type = "innerCommand";
         JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com));
 
-        if(response != null && response.getString("code").equals("0001")) {
+        if (response != null && response.getString("code").equals("0001")) {
             JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment").getJSONObject("onLineMap");
             HashMap<String, Boolean> onLineMap = JSON.parseObject(attachment.toJSONString(), HashMap.class);
 
@@ -269,10 +321,11 @@
 
     /**
      * 鍙戦�佸懡浠�
+     *
      * @return
      */
-    protected BaseResponse sendCom2Mw(Command com){
-        String url = UriComponentsBuilder.fromUriString(mwUrlSendCom)
+    protected BaseResponse sendCom2Mw(Command com) {
+        String url = UriComponentsBuilder.fromUriString(comSendUrl)
                 .build()
                 .toUriString();
         HttpHeaders headers = new HttpHeaders();
@@ -287,20 +340,26 @@
         return response.getBody();
     }
 
+
     /**
-     * 寰楀埌鎵�鏈夊彇姘村彛鍚嶇О
+     * 鍙栨按鍙e悕绉版崲鍙栨按鍙D锛岄獙璇佹槸鍚﹂噸澶嶅悕绉颁娇鐢�
+     *
+     * @param intakeName
      * @return
      */
-    public List<String> getIntakeName() {
-        return prIntakeMapper.getIntakeName();
+    public List<Long> getIntakeIdsByName(String intakeName) {
+        return prIntakeMapper.getIntakeIdsByName(intakeName);
     }
 
     /**
      * 鍙栨按鍙e悕绉版崲鍙栨按鍙D锛岄獙璇佹槸鍚﹂噸澶嶅悕绉颁娇鐢�
+     *
      * @param intakeName
      * @return
      */
-    public List<Long> getIntakeIdByName1(String intakeName) {
-        return prIntakeMapper.getIntakeIdByName1(intakeName);
+    public List<Long> getIntakeIdByNameExcludeId(Long id, String intakeName) {
+        return prIntakeMapper.getIntakeIdByNameExcludeId(id, intakeName);
     }
+
+
 }

--
Gitblit v1.8.0