From 58481c160b0d45894d631b96e63d3f02f4243533 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期五, 11 十月 2024 10:09:19 +0800
Subject: [PATCH] 优化代码 开关阀最新和历史记录 根据指定获取控制器记录 实现接口 最近未报数的取水口

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml                     |    4 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeUnReported.java                  |   28 +++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java  |   17 +++++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java   |   37 ++++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/controller/ControllerSv.java |   30 ++++++---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java           |   17 ++++-
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml                        |    4 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml                          |   35 +++++++++++
 8 files changed, 154 insertions(+), 18 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java
index 582f401..bb17720 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmOnHourReportLastMapper.java
@@ -3,9 +3,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmOnHourReportLast;
 import com.dy.pipIrrGlobal.voRm.VoOnHour;
-import com.dy.pipIrrGlobal.voSt.VoBatteryVolt;
-import com.dy.pipIrrGlobal.voSt.VoCumulativeFlow;
-import com.dy.pipIrrGlobal.voSt.VoSignalIntensity;
+import com.dy.pipIrrGlobal.voSt.*;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
@@ -139,4 +137,17 @@
      */
     List<VoSignalIntensity> getSpecifiedSignalIntakes(Map<?, ?> params);
 
+    /**
+     * 鏈�杩戞湭鎶ユ暟鐨勫彇姘村彛鏁伴噺
+     * @param params
+     * @return
+     */
+    Long getUnReportedIntakesCount(Map<String, Object> params);
+
+    /**
+     * 鏈�杩戞湭鎶ユ暟鐨勫彇姘村彛
+     * @param params
+     * @return
+     */
+    List<VoIntakeUnReported> getUnReportedIntakes(Map<String, Object> params);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeUnReported.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeUnReported.java
new file mode 100644
index 0000000..63194d6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSt/VoIntakeUnReported.java
@@ -0,0 +1,28 @@
+package com.dy.pipIrrGlobal.voSt;
+
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/10/11  9:45
+ * @LastEditTime :2024/10/11  9:45
+ * @Description
+ */
+@Data
+public class VoIntakeUnReported {
+
+    /**
+     * 鍙栨按鍙g紪鍙�
+     */
+    private String intakeNum;
+    /**
+     * 闃�鎺у櫒鍦板潃
+     */
+    private String rtuAddr;
+    /**
+     * 闃�鎺у櫒鏃堕棿
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private String rtuDt;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml
index a41ef3c..9c251e9 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOnHourReportLastMapper.xml
@@ -417,5 +417,38 @@
             </if>
         </trim>
     </select>
-
+    <!--鑾峰彇鏈�杩戞湭鎶ユ暟鐨勫彇姘村彛鏁伴噺-->
+    <select id="getUnReportedIntakesCount" resultType="java.lang.Long">
+        SELECT
+            count(*)
+        FROM  pr_intake pit
+        LEFT JOIN `rm_on_hour_report_last` rohrl ON pit.id = rohrl.intake_id
+        LEFT JOIN pr_controller pct ON pit.id = pct.intakeId
+        WHERE  rohrl.id is NULL
+        <if test="timeStart != null and timeStart != '' ">
+            OR rohrl.rtu_dt  &lt; #{timeStart}
+        </if>
+        <if test="timeStop != null and timeStop != '' ">
+            OR rohrl.rtu_dt &gt; #{timeStop}
+        </if>
+        ORDER BY rtu_dt ASC
+    </select>
+    <!--鑾峰彇鏈�杩戞湭鎶ユ暟鐨勫彇姘村彛-->
+    <select id="getUnReportedIntakes" resultType="com.dy.pipIrrGlobal.voSt.VoIntakeUnReported">
+        SELECT
+            pit.`name` intakeNum,
+            pct.rtuAddr,
+            rohrl.rtu_dt rtuDt
+        FROM  pr_intake pit
+        LEFT JOIN `rm_on_hour_report_last` rohrl ON pit.id = rohrl.intake_id
+        LEFT JOIN pr_controller pct ON pit.id = pct.intakeId
+        WHERE  rohrl.id is NULL
+        <if test="timeStart != null">
+            OR rohrl.rtu_dt  &lt; #{timeStart}
+        </if>
+        <if test="timeStop != null">
+            OR rohrl.rtu_dt &gt; #{timeStop}
+        </if>
+        ORDER BY rtu_dt ASC
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
index f724ab8..453e6e3 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveHistoryMapper.xml
@@ -470,7 +470,7 @@
                oh.client_name          AS clientName,
                oh.op_ic_card_no        AS openIcNum,
                oh.op_ic_card_addr      AS openIcAddr,
-               oh.op_dt                AS openTime,
+               oh.open_dt              AS openTime,
                CASE
                    WHEN oh.op_type = 1 THEN '鍒峰崱寮�闃�'
                    WHEN oh.op_type = 3 THEN '涓績绔欏紑闃�'
@@ -486,7 +486,7 @@
                oh.op_ele_total_amount  AS openEleTotalAmount,
                oh.cl_ic_card_no        AS closeIcNum,
                oh.cl_ic_card_addr      AS closeIcAddr,
-               oh.cl_dt                AS closeTime,
+               oh.close_dt             AS closeTime,
                CASE
                    WHEN oh.cl_type = 2 THEN '鍒峰崱鍏抽榾'
                    WHEN oh.cl_type = 4 THEN '涓績绔欏叧闃�'
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
index 5bdd2d1..dd62be3 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
@@ -489,7 +489,7 @@
                oh.client_name          AS clientName,
                oh.op_ic_card_no        AS openIcNum,
                oh.op_ic_card_addr      AS openIcAddr,
-               oh.op_dt                AS openTime,
+               oh.open_dt              AS openTime,
                CASE
                    WHEN oh.op_type = 1 THEN '鍒峰崱寮�闃�'
                    WHEN oh.op_type = 3 THEN '涓績绔欏紑闃�'
@@ -505,7 +505,7 @@
                oh.op_ele_total_amount  AS openEleTotalAmount,
                oh.cl_ic_card_no        AS closeIcNum,
                oh.cl_ic_card_addr      AS closeIcAddr,
-               oh.cl_dt                AS closeTime,
+               oh.close_dt             AS closeTime,
                CASE
                    WHEN oh.cl_type = 2 THEN '鍒峰崱鍏抽榾'
                    WHEN oh.cl_type = 4 THEN '涓績绔欏叧闃�'
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 edce345..681ea4a 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
@@ -3,6 +3,7 @@
 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;
@@ -16,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;
@@ -48,8 +50,21 @@
     @Autowired
     private RestTemplate restTemplate;
 
-    protected static String mwUrlSendCom = "http://127.0.0.1:8070/rtuMw/com/send";
+//    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 ControllerSv(Environment env) {
+        this.env = env;
+    }
 
     /**
      * 鏍规嵁鎸囧畾鑾峰彇鎺у埗鍣ㄨ褰�
@@ -59,18 +74,13 @@
      */
     public QueryResultVo<List<VoController>> getControllers(QueryVo queryVo) {
 
-        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 = null;
-        try {
-            response = (JSONObject) JSON.toJSON(sendCom2Mw(com));
-        }catch (Exception e) {
-            QueryResultVo<List<VoController>> rsVo = new QueryResultVo<>();
-            return rsVo;
-        }
+        JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com));
 
 
         if (response != null && response.getString("code").equals("0001")) {
@@ -234,7 +244,7 @@
      * @return
      */
     protected BaseResponse sendCom2Mw(Command com) {
-        String url = UriComponentsBuilder.fromUriString(mwUrlSendCom)
+        String url = UriComponentsBuilder.fromUriString(comSendUrl)
                 .build()
                 .toUriString();
         HttpHeaders headers = new HttpHeaders();
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java
index 77e36a9..f0d7ddf 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntakeSv.java
@@ -771,4 +771,41 @@
         rsVo.obj = rmLossDayLastMapper.getMonthLossAmount(params);
         return rsVo ;
     }
+
+    /**
+     * 鏈�杩戞湭鎶ユ暟鐨勫彇姘村彛
+     * @param qo
+     * @return
+     */
+    public QueryResultVo<List<VoIntakeUnReported>> getUnReportedIntakes(CommonQO qo) {
+        String timeStart = qo.getTimeStart();
+        String timeStop = qo.getTimeStop();
+        if(timeStart == "") {
+            timeStart = null;
+        }
+        if(timeStop == "") {
+            timeStop = null;
+        }
+        if(timeStart != null && timeStart != "") {
+            timeStart = timeStart + " 00:00:00";
+        }
+        qo.setTimeStart(timeStart);
+
+        if(timeStop != null && timeStop != "") {
+            timeStop = timeStop + " 23:59:59";
+        }
+        qo.setTimeStop(timeStop);
+
+
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo);
+        Long itemTotal = rmOnHourReportLastMapper.getUnReportedIntakesCount(params);
+
+        QueryResultVo<List<VoIntakeUnReported>> rsVo = new QueryResultVo<>() ;
+        rsVo.pageSize = qo.pageSize ;
+        rsVo.pageCurr = qo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmOnHourReportLastMapper.getUnReportedIntakes(params);
+        return rsVo ;
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
index 6a999b5..b87d9f7 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/intake/IntkeCtrl.java
@@ -419,4 +419,21 @@
             return BaseResponseUtils.buildException(e.getMessage()) ;
         }
     }
+
+    /**
+     * 鏈�杩戞湭鎶ユ暟鐨勫彇姘村彛
+     * @param
+     * @return
+     */
+    @GetMapping(path = "/getUnReportedIntakes")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoIntakeUnReported>>> getUnReportedIntakes(CommonQO qo) {
+        try {
+            QueryResultVo<List<VoIntakeUnReported>> res = intakeSv.getUnReportedIntakes(qo);
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鑾峰彇璁板綍寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage()) ;
+        }
+    }
 }

--
Gitblit v1.8.0