From 1e409f99905c894363248239b856bce6735fd3d5 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期一, 28 十月 2024 20:15:05 +0800
Subject: [PATCH] 2024-10-28 优化获取常用取水口接口

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml                        |    2 +-
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoOnLineIntake.java              |    2 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeCtrl.java |    8 ++++----
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeSv.java   |   23 ++++++++++++++---------
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeMapper.java             |    2 +-
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml                            |    8 ++++----
 6 files changed, 26 insertions(+), 19 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeMapper.java
index 9789d67..7f1a229 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrIntakeMapper.java
@@ -156,7 +156,7 @@
      * 鏍规嵁鎿嶄綔鍛樿幏鍙栧父鐢ㄥ彇姘村彛
      * @return
      */
-    List<VoOnLineIntake> getUsedIntakes(@Param("onLineMap") String onLineMap, @Param("operator") Long operator);
+    List<VoOnLineIntake> getUsedIntakes(@Param("onLineMap") String onLineMap, @Param("operatorId") Long operatorId);
 
     /**
      * 鍙栨按鍙e悕绉版崲鍙栨按鍙D锛屾壂鐮佸紑闃�浣跨敤
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoOnLineIntake.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoOnLineIntake.java
index 015acd2..daf3aa0 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoOnLineIntake.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoOnLineIntake.java
@@ -1,6 +1,7 @@
 package com.dy.pipIrrGlobal.voPr;
 
 import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import lombok.Data;
 
 /**
@@ -11,6 +12,7 @@
  */
 
 @Data
+@JsonPropertyOrder({ "intakeId", "rtuAddr", "intakeNum", "isOnLine"})
 public class VoOnLineIntake implements BaseEntity {
     private static final long serialVersionUID = 202405271703001L;
 
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
index 329b4be..509381e 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -645,8 +645,8 @@
         FROM pr_common_intakes com
             INNER JOIN pr_intake inta ON inta.id = com.intake_id
             INNER JOIN pr_controller con ON con.intakeId = com.intake_id
-            INNER JOIN JSON_TABLE(
-                <!--'[{"rtuAddr":"620201000030","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',-->
+            LEFT JOIN JSON_TABLE(
+                <!--'[{"rtuAddr":"530115059980","isOnLine":true},{"rtuAddr":"620201000030","isOnLine":true}]',-->
                 #{onLineMap},
                 '$[*]' COLUMNS (
                     rtuAddr VARCHAR(20) PATH '$.rtuAddr',
@@ -654,8 +654,8 @@
                 )
             ) rtus ON con.rtuAddr = rtus.rtuAddr
         <where>
-            <if test="operator != null">
-                com.operator_id = #{operator}
+            <if test="operatorId != null">
+                AND com.operator_id = #{operatorId}
             </if>
         </where>
         ORDER BY com.last_used_time DESC,com.usage_count DESC
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
index 5c4ed90..d3a106c 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -370,7 +370,7 @@
                          END)  AS state
               FROM se_virtual_card vc
                        INNER JOIN se_client cli ON cli.id = vc.client_id
-              WHERE vc.client_id = #{clientId,jdbcType=BIGINT}
+              WHERE vc.state = 1 AND vc.client_id = #{clientId,jdbcType=BIGINT}
         ) card
         ORDER BY card.Money DESC, card.State DESC
     </select>
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeCtrl.java
index 8aaf0a0..b8a722e 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeCtrl.java
@@ -64,17 +64,17 @@
 
     /**
      * 鏍规嵁鎿嶄綔鍛樿幏鍙栧父鐢ㄥ彇姘村彛锛堝湪绾垮拰涓嶅湪绾匡級
-     * @param operator
+     * @param operatorId
      * @return
      */
     @GetMapping(path = "used_intakes")
-    public BaseResponse<List<VoOnLineIntake>> getUsedIntakes(Long operator) {
-        if(operator == null || operator <= 0) {
+    public BaseResponse<List<VoOnLineIntake>> getUsedIntakes(Long operatorId) {
+        if(operatorId == null || operatorId <= 0) {
             return BaseResponseUtils.buildErrorMsg("鎿嶄綔鍛樹笉鑳戒负绌�");
         }
 
         try {
-            List<VoOnLineIntake> res = intakeSv.getUsedIntakes(operator);
+            List<VoOnLineIntake> res = intakeSv.getUsedIntakes(operatorId);
             return BaseResponseUtils.buildSuccess(res);
         } catch (Exception e) {
             log.error("鏌ヨ鍙栨按鍙e紓甯�", e);
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
index 2f4884a..b22b435 100644
--- 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
@@ -154,32 +154,37 @@
 
     /**
      * 鏍规嵁鎿嶄綔鍛樿幏鍙栧父鐢ㄥ彇姘村彛
-     * @param operator
+     * @param operatorId
      * @return
      */
-    public List<VoOnLineIntake> getUsedIntakes(Long operator) {
+    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();
 
         if(response != null && response.getString("code").equals("0001")) {
-            JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment").getJSONObject("onLineMap");
+            JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment");
 
             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()) {
+                attachment.forEach((key, value) -> {
                     JSONObject jsonObject = new JSONObject();
-                    jsonObject.put("rtuAddr", entry.getKey());
-                    jsonObject.put("isOnLine", entry.getValue());
+                    jsonObject.put("rtuAddr", key);
+                    jsonObject.put("isOnLine", value);
                     jsonArray.add(jsonObject);
-                }
+
+                });
             }
 
-            return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operator);
+            System.out.println(jsonArray.toJSONString());
+            return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operatorId);
         } else {
             return new ArrayList<>();
         }

--
Gitblit v1.8.0