From e77ae508afddfd24d8e713a63dfe2b3f46e9f070 Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期四, 31 十月 2024 10:25:34 +0800
Subject: [PATCH] 2024-10-31 农户问题上报添加接口、查询接口、删除接口,在线查询代码优化

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java                       |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/qo/QoIssueReport.java    |   45 ++++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java             |   48 ++++
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intake/IntakeSv.java         |   21 +
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml                            |    3 
 pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java          |   36 +--
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeSv.java           |   93 ++++----
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml                                    |   75 +++---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeIssueReportMapper.xml                               |   83 ++++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeIssueReportMapper.java                |   25 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java |   13 +
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java         |   19 -
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoIssueReport.java                       |   70 +++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java           |   53 ++++
 14 files changed, 461 insertions(+), 127 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java
index 7cc909c..54646cf 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/command/ComSupport.java
@@ -254,6 +254,10 @@
         } catch (Exception e) {
             e.printStackTrace();
         }
+
+        if(response == null) {
+            return BaseResponseUtils.buildErrorMsg("涓棿浠惰皟鐢ㄥけ璐�");
+        }
         return response.getBody();
     }
 
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeIssueReportMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeIssueReportMapper.java
index 5d1f9ac..cc4e746 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeIssueReportMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeIssueReportMapper.java
@@ -2,7 +2,11 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoSe.SeIssueReport;
+import com.dy.pipIrrGlobal.voSe.VoIssueReport;
 import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author ZhuBaoMin
@@ -24,4 +28,25 @@
     int updateByPrimaryKeySelective(SeIssueReport record);
 
     int updateByPrimaryKey(SeIssueReport record);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛闂涓婃姤鏁伴噺
+     * @param params
+     * @return
+     */
+    Long getIssueReportsCount(Map<?, ?> params);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛闂涓婃姤
+     * @param params
+     * @return
+     */
+    List<VoIssueReport> getIssueReports(Map<?, ?> params);
+
+    /**
+     * 閫昏緫鍒犻櫎涓�涓啘鎴烽棶棰樹笂鎶�
+     * @param issueReportId
+     * @return
+     */
+    Integer deleteIssueReport(Long issueReportId);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoIssueReport.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoIssueReport.java
new file mode 100644
index 0000000..e5ca60d
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoIssueReport.java
@@ -0,0 +1,70 @@
+package com.dy.pipIrrGlobal.voSe;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-10-30 13:51
+ * @LastEditTime 2024-10-30 13:51
+ * @Description 鍐滄埛闂涓婃姤瑙嗗浘瀵硅薄
+ */
+
+@Data
+@JsonPropertyOrder({"issueReportId", "clientName", "phone", "reportTime", "content", "images", "audios", "videos", "state"})
+public class VoIssueReport implements BaseEntity {
+    private static final long serialVersionUID = 202410301354001L;
+
+    /**
+     * 鍐滄埛闂涓婃姤ID
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private Long issueReportId;
+
+    /**
+     * 鍐滄埛濮撳悕
+     */
+    private String clientName;
+
+    /**
+     * 鑱旂郴鐢佃瘽
+     */
+    private String phone;
+
+    /**
+     * 涓婃姤鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date reportTime;
+
+    /**
+     * 涓婃姤鍐呭
+     */
+    private String content;
+
+    /**
+     * 鐓х墖鍒楄〃
+     */
+    private String images;
+
+    /**
+     * 闊抽鍒楄〃
+     */
+    private String audios;
+
+    /**
+     * 瑙嗛鍒楄〃
+     */
+    private String videos;
+
+    /**
+     * 鐘舵��
+     */
+    private String state;
+}
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 a75444d..5c02036 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -438,44 +438,45 @@
 
     <!--鑾峰彇鍙栨按鍙e垪琛紙鍦ㄧ嚎鍜屼笉鍦ㄥ厛锛�-->
     <select id="getOnLineIntakes" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
-        SELECT inta.id                     AS intakeId,
-        con.rtuAddr,
-        inta.name                   AS intakeNum,
-        inta.lng,
-        inta.lat,
-        IFNULL(hou.total_amount, 0) AS totalAmount,
-        (CASE
-        WHEN con.rtuAddr IS NULL THEN false
-        WHEN con.rtuAddr IS NOT NULL THEN true
-        END)                    AS isBinded,
-        rtus.isOnLine,
-        alarm.alarm
+        SELECT
+            inta.id AS intakeId,
+            con.rtuAddr,
+            inta.name AS intakeNum,
+            inta.lng,
+            inta.lat,
+            IFNULL(hou.total_amount, 0) AS totalAmount,
+            (CASE
+                WHEN con.rtuAddr IS NULL THEN false
+                WHEN con.rtuAddr IS NOT NULL THEN true
+            END) AS isBinded,
+            rtus.isOnLine,
+            alarm.alarm
         FROM pr_intake inta
-        LEFT JOIN pr_controller con ON con.intakeId = inta.id
-        LEFT JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
-        LEFT JOIN(
-        SELECT intake_id AS intakeId,
-        CONCAT(
-        IF(alarm_loss = 1, IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�,', ''),
-        IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�', '')),
-        IF(alarm_battery_volt = 1, IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ,', ''),
-        IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ', '')),
-        IF(alarm_valve = 1, IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�,', ''),
-        IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�', '')),
-        IF(alarm_valve = 1, '闃�闂ㄦ姤璀�', '')
-        )     AS alarm
-        FROM rm_alarm_state_last
-        WHERE (alarm_water_meter_fault = 1 OR alarm_loss = 1 OR alarm_battery_volt = 1 OR alarm_valve = 1)
-        AND dt >= DATE_SUB(NOW(), INTERVAL 12 HOUR)
-        ) alarm ON alarm.intakeId = inta.id
-        LEFT JOIN JSON_TABLE(
-        <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',-->
-        #{onLineMap},
-        '$[*]' COLUMNS (
-        rtuAddr VARCHAR(20) PATH '$.rtuAddr',
-        isOnLine BOOLEAN PATH '$.isOnLine'
-        )
-        ) rtus ON con.rtuAddr = rtus.rtuAddr
+            LEFT JOIN pr_controller con ON con.intakeId = inta.id
+            LEFT JOIN rm_on_hour_report_last hou ON hou.intake_id = inta.id
+            LEFT JOIN(
+                SELECT intake_id AS intakeId,
+                    CONCAT(
+                        IF(alarm_loss = 1, IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�,', ''),
+                        IF(alarm_water_meter_fault = 1, '娴侀噺璁℃晠闅�', '')),
+                        IF(alarm_battery_volt = 1, IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ,', ''),
+                        IF(alarm_loss = 1, '婕忔崯(鍋锋按)鎶ヨ', '')),
+                        IF(alarm_valve = 1, IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�,', ''),
+                        IF(alarm_battery_volt = 1, '钃勭數姹犵數鍘嬫姤璀�', '')),
+                        IF(alarm_valve = 1, '闃�闂ㄦ姤璀�', '')
+                    ) AS alarm
+                FROM rm_alarm_state_last
+                WHERE (alarm_water_meter_fault = 1 OR alarm_loss = 1 OR alarm_battery_volt = 1 OR alarm_valve = 1)
+                    AND dt >= DATE_SUB(NOW(), INTERVAL 12 HOUR)
+            ) alarm ON alarm.intakeId = inta.id
+            LEFT JOIN JSON_TABLE(
+                <!--'[{"rtuAddr":"37142501020100215","isOnLine":true},{"rtuAddr":"4000004","isOnLine":true},{"rtuAddr":"dy20240325","isOnLine":false}]',-->
+                #{onLineMap},
+                '$[*]' COLUMNS (
+                    rtuAddr VARCHAR(20) PATH '$.rtuAddr',
+                    isOnLine BOOLEAN PATH '$.isOnLine'
+                )
+            ) rtus ON con.rtuAddr = rtus.rtuAddr
         <where>
             <if test="isOnLine != null">
                 rtus.isOnLine = #{isOnLine}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
index 2f95192..66a399f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
@@ -199,7 +199,8 @@
     <select id="getUnclosedValves" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedValve">
         SELECT
             inta.name AS intakeNum,
-            rtus.isOnLine,
+<!--            rtus.isOnLine,-->
+            IFNULL(rtus.isOnLine,'鏈煡') AS isOnLine,
             com.rtu_addr AS rtuAddr,
             com.param ->> '$.icCardNo' AS vcNum,
             (
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeIssueReportMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeIssueReportMapper.xml
index 1d9065f..8e8c84f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeIssueReportMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeIssueReportMapper.xml
@@ -169,4 +169,87 @@
       `state` = #{state,jdbcType=TINYINT}
     where id = #{id,jdbcType=BIGINT}
   </update>
+
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛闂涓婃姤鏁伴噺-->
+  <select id="getIssueReportsCount" resultType="java.lang.Long">
+    SELECT COUNT(*) AS recordCount
+    FROM se_issue_report rpt
+        LEFT JOIN se_client cli ON cli.id = rpt.client_id
+    <where>
+      AND rpt.state != 3
+
+      <if test="clientId != null">
+        AND rpt.client_id = #{clientId}
+      </if>
+
+      <if test="clientName != null and clientName != ''">
+        AND cli.name like CONCAT('%', #{clientName}, '%')
+      </if>
+
+      <if test="content != null and content != ''">
+        AND rpt.content like CONCAT('%', #{content}, '%')
+      </if>
+
+      <if test="timeStart != null and timeStop != null ">
+        AND rpt.report_time BETWEEN #{timeStart} AND #{timeStop}
+      </if>
+
+      <if test="state != null">
+        AND rpt.state = #{state}
+      </if>
+    </where>
+  </select>
+
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛闂涓婃姤-->
+  <select id="getIssueReports" resultType="com.dy.pipIrrGlobal.voSe.VoIssueReport" >
+    SELECT
+        rpt.id AS issueReportId,
+        cli.name AS clientName,
+        rpt.phone,
+        rpt.report_time AS reportTime,
+        rpt.content,
+        rpt.images,
+        rpt.audios,
+        rpt.videos,
+        CASE
+            WHEN rpt.state = 1 THEN '鏈彈鐞�'
+            WHEN rpt.state = 2 THEN '宸插彈鐞�'
+        END AS state
+    FROM se_issue_report rpt
+        LEFT JOIN se_client cli ON cli.id = rpt.client_id
+    <where>
+      AND rpt.state != 3
+
+      <if test="clientId != null">
+        AND rpt.client_id = #{clientId}
+      </if>
+
+      <if test="clientName != null and clientName != ''">
+        AND cli.name like CONCAT('%', #{clientName}, '%')
+      </if>
+
+      <if test="content != null and content != ''">
+        AND rpt.content like CONCAT('%', #{content}, '%')
+      </if>
+
+      <if test="timeStart != null and timeStop != null ">
+        AND rpt.report_time BETWEEN #{timeStart} AND #{timeStop}
+      </if>
+
+      <if test="state != null">
+        AND rpt.state = #{state}
+      </if>
+    </where>
+    ORDER BY rpt.report_time DESC
+    <trim prefix="limit ">
+      <if test="start != null and count != null">
+        #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+      </if>
+    </trim>
+  </select>
+
+  <!--閫昏緫鍒犻櫎涓�涓啘鎴烽棶棰樹笂鎶�-->
+  <update id="deleteIssueReport">
+    UPDATE se_issue_report SET state = 3 WHERE id = #{issueReportId}
+  </update>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
index 9dd4755..edec64e 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java
@@ -6,6 +6,7 @@
 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.PrControllerMapper;
 import com.dy.pipIrrGlobal.daoPr.PrIntakeControllerMapper;
@@ -25,7 +26,10 @@
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.util.UriComponentsBuilder;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
 
 /**
  * @author ZhuBaoMin
@@ -80,6 +84,8 @@
         comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw);
 
         JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com));
+
+
         if (response != null && response.getString("code").equals("0001")) {
             JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment");
 
@@ -256,6 +262,11 @@
         } catch (Exception e) {
             e.printStackTrace();
         }
+
+        if(response == null) {
+            return BaseResponseUtils.buildErrorMsg("涓棿浠惰皟鐢ㄥけ璐�");
+        }
+
         return response.getBody();
     }
 }
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 e5c9295..1c3e486 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
@@ -6,6 +6,7 @@
 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.config.DingTalk;
 import com.dy.pipIrrGlobal.daoPr.PrDivideMapper;
@@ -26,7 +27,9 @@
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.util.UriComponentsBuilder;
 
-import java.util.*;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
 
 /**
  * @author wuzeyu
@@ -272,23 +275,22 @@
         com.code = "LCD0001";
         com.type = "innerCommand";
         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");
-
-            JSONArray jsonArray = new JSONArray();
             if(attachment != null) {
                 attachment.forEach((key, value) -> {
                     JSONObject jsonObject = new JSONObject();
                     jsonObject.put("rtuAddr", key);
                     jsonObject.put("isOnLine", value);
                     jsonArray.add(jsonObject);
-
                 });
             }
-            return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operator);
-        } else {
-            return new ArrayList<>();
+        //} else {
+        //    return new ArrayList<>();
         }
+        return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operator);
     }
 
     /**
@@ -309,6 +311,11 @@
         } catch (Exception e) {
             e.printStackTrace();
         }
+
+        if(response == null) {
+            return BaseResponseUtils.buildErrorMsg("涓棿浠惰皟鐢ㄥけ璐�");
+        }
+
         return response.getBody();
     }
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java
index 9cbb39f..c706351 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-remote/src/main/java/com/dy/pipIrrRemote/common/CommandSv.java
@@ -16,7 +16,6 @@
 import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
 import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
-import com.dy.pipIrrGlobal.voPr.VoOnLineIntake;
 import com.dy.pipIrrGlobal.voRm.VoCommand;
 import com.dy.pipIrrGlobal.voRm.VoUnclosedParam;
 import com.dy.pipIrrGlobal.voRm.VoUnclosedValve;
@@ -121,29 +120,27 @@
         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");
-
-            JSONArray jsonArray = new JSONArray();
             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);
-            List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves(jsonArray.toJSONString(), operator);
-            if(res != null) {
-                return res;
-            } else {
-                return new ArrayList<>();
-            }
+        //} else {
+        //    return new ArrayList<>();
+        }
+
+        List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves(jsonArray.toJSONString(), operator);
+        if(res != null) {
+            return res;
         } else {
-            QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>();
             return new ArrayList<>();
         }
     }
@@ -189,27 +186,24 @@
         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");
-
-            JSONArray jsonArray = new JSONArray();
             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);
-            return rmCommandHistoryMapper.getUncloseParam(jsonArray.toJSONString(), intakeId);
-        } else {
-            QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>();
-            VoUnclosedParam voUnclosedParam = new VoUnclosedParam();
-            return voUnclosedParam;
+        //} else {
+        //    VoUnclosedParam voUnclosedParam = new VoUnclosedParam();
+        //    return voUnclosedParam;
         }
-
+        return rmCommandHistoryMapper.getUncloseParam(jsonArray.toJSONString(), intakeId);
     }
 
     /**
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java
index 218b9ef..21df891 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java
@@ -17,7 +17,6 @@
 import com.dy.pipIrrGlobal.daoSe.SeVirtualCardMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmCommandHistory;
 import com.dy.pipIrrGlobal.pojoSe.SeClientCard;
-import com.dy.pipIrrGlobal.voPr.VoOnLineIntake;
 import com.dy.pipIrrGlobal.voRm.VoIrrigaterProfile;
 import com.dy.pipIrrGlobal.voRm.VoUnclosedValve;
 import com.dy.pipIrrGlobal.voSe.VoVirtualCard;
@@ -102,29 +101,25 @@
         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");
-
-            JSONArray jsonArray = new JSONArray();
             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());
-            List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves(jsonArray.toJSONString(), operator);
-            if(res != null) {
-                return res;
-            } else {
-                return new ArrayList<>();
-            }
+        }
+
+        List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves(jsonArray.toJSONString(), operator);
+        if(res != null) {
+            return res;
         } else {
-            QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>();
             return new ArrayList<>();
         }
     }
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 ec68ff5..f8ce89c 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
@@ -6,6 +6,7 @@
 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;
@@ -25,7 +26,6 @@
 import org.springframework.web.client.RestTemplate;
 import org.springframework.web.util.UriComponentsBuilder;
 
-import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -75,32 +75,31 @@
         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");
-
-            JSONArray jsonArray = new JSONArray();
             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);
-        } else {
-            return new VoOnLineIntake();
+        //} else {
+        //    return new VoOnLineIntake();
         }
+
+        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);
     }
 
     /**
@@ -115,40 +114,40 @@
         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");
-
-            JSONArray jsonArray = new JSONArray();
             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;
-        } else {
-            QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>();
-            return rsVo;
+        //} else {
+        //    QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>();
+        //    return rsVo;
         }
+
+        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;
+
     }
 
     /**
@@ -168,10 +167,9 @@
         //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");
-
-            JSONArray jsonArray = new JSONArray();
             if(attachment != null) {
                 attachment.forEach((key, value) -> {
                     JSONObject jsonObject = new JSONObject();
@@ -183,10 +181,12 @@
             }
 
             System.out.println(jsonArray.toJSONString());
-            return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operatorId);
-        } else {
-            return new ArrayList<>();
+            //return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operatorId);
+        //} else {
+        //    return new ArrayList<>();
         }
+
+        return prIntakeMapper.getUsedIntakes(jsonArray.toJSONString(), operatorId);
     }
 
     /**
@@ -206,6 +206,11 @@
         } catch (Exception e) {
             e.printStackTrace();
         }
+
+        if(response == null) {
+            return BaseResponseUtils.buildErrorMsg("涓棿浠惰皟鐢ㄥけ璐�");
+        }
+
         return response.getBody();
     }
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java
index 3c18226..8ea2eec 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java
@@ -3,19 +3,21 @@
 import com.alibaba.fastjson2.JSONArray;
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.pojoSe.SeIssueReport;
+import com.dy.pipIrrGlobal.voSe.VoIssueReport;
 import com.dy.pipIrrWechat.issue.dto.DtoIssueReport;
+import com.dy.pipIrrWechat.issue.qo.QoIssueReport;
 import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
 
@@ -64,6 +66,8 @@
         seIssueReport.setImages(images);
         seIssueReport.setAudios(audios);
         seIssueReport.setVideos(videos);
+        seIssueReport.setReportTime(new Date());
+        seIssueReport.setState((byte)1);
         Long issueReportId = issueSv.insertIssueReport(seIssueReport);
         if(issueReportId == null) {
             return BaseResponseUtils.buildErrorMsg("鍐滄埛闂涓婃姤澶辫触");
@@ -71,4 +75,45 @@
 
         return BaseResponseUtils.buildSuccess(true) ;
     }
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛闂涓婃姤
+     * @param vo
+     * @return
+     */
+    @GetMapping(path = "/getIssueReports")
+    public BaseResponse<QueryResultVo<List<VoIssueReport>>> getIssueReports(QoIssueReport vo) {
+        try {
+            QueryResultVo<List<VoIssueReport>> res = issueSv.getIssueReports(vo);
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鑾峰彇鍐滄埛闂涓婃姤璁板綍寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+    /**
+     * 閫昏緫鍒犻櫎鍐滄埛闂涓婃姤
+     * @param issueReportId
+     * @return
+     */
+    @PostMapping(path = "deleteIssueReport")
+    public BaseResponse<Boolean> deleteIssueReport(@RequestParam("issueReportId") Long issueReportId) {
+        if (issueReportId == null) {
+            return BaseResponseUtils.buildErrorMsg("鏈�夋嫨瑕佸垹闄ょ殑鍐滄埛闂涓婃姤");
+        }
+
+        try {
+            //鍙栨按鍙D
+            Integer recordCount = Optional.ofNullable(issueSv.deleteIssueReport(issueReportId)).orElse(0);
+            if (recordCount == 0) {
+                return BaseResponseUtils.buildErrorMsg("鍐滄埛闂涓婃姤鍒犻櫎澶辫触");
+            } else {
+                return BaseResponseUtils.buildSuccess(true);
+            }
+        } catch (Exception e) {
+            log.error("鍐滄埛闂涓婃姤鍒犻櫎澶辫触", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java
index 44b313d..dc3836c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java
@@ -1,10 +1,17 @@
 package com.dy.pipIrrWechat.issue;
 
+import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrGlobal.daoSe.SeIssueReportMapper;
 import com.dy.pipIrrGlobal.pojoSe.SeIssueReport;
+import com.dy.pipIrrGlobal.voSe.VoIssueReport;
+import com.dy.pipIrrWechat.issue.qo.QoIssueReport;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author ZhuBaoMin
@@ -28,4 +35,45 @@
         seIssueReportMapper.insert(po);
         return po.getId();
     }
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛闂涓婃姤
+     * @param queryVo
+     * @return
+     */
+    public QueryResultVo<List<VoIssueReport>> getIssueReports(QoIssueReport queryVo) {
+        //瀹屽杽鏌ヨ鍏呭�艰褰曠殑璧锋鏃堕棿
+        String timeStart = queryVo.getTimeStart();
+        String timeStop = queryVo.getTimeStop();
+        if (timeStart != null) {
+            timeStart = timeStart + " 00:00:00";
+            queryVo.setTimeStart(timeStart);
+        }
+        if (timeStop != null) {
+            timeStop = timeStop + " 23:59:59";
+            queryVo.setTimeStop(timeStop);
+        }
+
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
+
+        Long itemTotal = seIssueReportMapper.getIssueReportsCount(params);
+        QueryResultVo<List<VoIssueReport>> rsVo = new QueryResultVo<>();
+
+        rsVo.pageSize = queryVo.pageSize;
+        rsVo.pageCurr = queryVo.pageCurr;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = seIssueReportMapper.getIssueReports(params);
+        return rsVo;
+    }
+
+    /**
+     * 鍒犻櫎鍐滄埛闂涓婃姤
+     * @param issueReportId
+     * @return
+     */
+    public Integer deleteIssueReport(Long issueReportId) {
+        return seIssueReportMapper.deleteIssueReport(issueReportId);
+    }
+
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/qo/QoIssueReport.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/qo/QoIssueReport.java
new file mode 100644
index 0000000..1574948
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/qo/QoIssueReport.java
@@ -0,0 +1,45 @@
+package com.dy.pipIrrWechat.issue.qo;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-10-30 21:51
+ * @LastEditTime 2024-10-30 21:51
+ * @Description 鍐滄埛闂涓婃姤鏌ヨ瀵硅薄
+ */
+
+@Data
+public class QoIssueReport extends QueryConditionVo {
+
+    /**
+     * 鍐滄埛ID
+     */
+    private Long clientId;
+
+    /**
+     * 鍐滄埛濮撳悕
+     */
+    private String clientName;
+
+    /**
+     * 涓婃姤鍐呭
+     */
+    private String content;
+
+    /**
+     * 鏌ヨ寮�濮嬫椂闂�
+     */
+    private String timeStart;
+
+    /**
+     * 鏌ヨ缁撴潫鏃堕棿
+     */
+    private String timeStop;
+
+    /**
+     * 鐘舵��
+     */
+    private Integer state;
+}

--
Gitblit v1.8.0