From 05702adf7e0732f90176fd3f9c5f4afe8c8f29da Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期六, 19 十月 2024 11:22:03 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoUnclosedValve.java                     |   25 +++++
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectSv.java               |    9 +
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectCtrl.java             |   18 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java   |   27 +++++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/command/CommandSv.java         |    2 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml                        |    8 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml                            |   76 +++++---------
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml                       |   51 ++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java |   18 +++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayLastMapper.java        |   15 +++
 10 files changed, 194 insertions(+), 55 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayLastMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayLastMapper.java
index 332281a..df753e4 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayLastMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoRm/RmClientAmountDayLastMapper.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoRm.RmClientAmountDayLast;
 import com.dy.pipIrrGlobal.voRm.VoClientAmountDay;
+import com.dy.pipIrrGlobal.voSt.VoClient;
 import com.dy.pipIrrGlobal.voSt.VoDayClient;
 import com.dy.pipIrrGlobal.voSt.VoMonthClient;
 import org.apache.ibatis.annotations.Mapper;
@@ -109,4 +110,18 @@
      * @return
      */
     List<VoMonthClient> getMonthAmountAndMoney(Map<?, ?> params);
+
+    /**
+     * 鏈�杩戞湭鍏呭�肩殑鍐滄埛鏁伴噺
+     * @param params
+     * @return
+     */
+    Long getNotRechargeLastClientsCount(Map<String, Object> params);
+
+    /**
+     * 鏈�杩戞湭鍏呭�肩殑鍐滄埛
+     * @param params
+     * @return
+     */
+    List<VoClient> getNotRechargeLastClients(Map<String, Object> params);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoUnclosedValve.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoUnclosedValve.java
index e09b215..c556bf8 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoUnclosedValve.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voRm/VoUnclosedValve.java
@@ -1,6 +1,7 @@
 package com.dy.pipIrrGlobal.voRm;
 
 import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import lombok.Data;
 
 /**
@@ -11,22 +12,46 @@
  */
 
 @Data
+@JsonPropertyOrder({"intakeNum", "isOnLine", "rtuAddr", "vcNum", "orderNo", "state", "planned"})
 public class VoUnclosedValve implements BaseEntity {
     private static final long serialVersionUID = 202405241634001L;
 
     //private String commandCode;
 
+    /**
+     * 鍙栨按鍙g紪鍙�
+     */
     private String intakeNum;
 
+    /**
+     * 鏄惁鍦ㄧ嚎
+     */
     private Boolean isOnLine;
 
+    /**
+     * 闃�鎺у櫒鍦板潃
+     */
     private String rtuAddr;
 
+    /**
+     * 铏氭嫙鍗$紪鍙�
+     */
     private String vcNum;
 
+    /**
+     * 璁㈠崟鍙�
+     */
     private String orderNo;
 
+    /**
+     * 鐘舵��
+     */
     private String state;
 
+    /**
+     * 鏄惁璁″垝鎬у紑闃�
+     */
+    private Boolean planned;
+
     //private Date openTime;
 }
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml
index 07fb518..927a12d 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmClientAmountDayLastMapper.xml
@@ -833,4 +833,55 @@
             </if>
         </trim>
     </select>
+    <!--鏈�杩戞湭鍏呭�肩殑鍐滄埛鏁伴噺-->
+    <select id="getNotRechargeLastClientsCount" resultType="java.lang.Long">
+        SELECT COUNT(*)
+        FROM
+        (        SELECT
+        sc.id    AS clientId,
+        sc.`name`   AS clientName,
+        sc.clientNum  AS clientNum,
+        sc.address   AS address,
+        sc.phone    AS phone,
+        sc.idCard   AS idCard
+        FROM
+        se_client sc
+        LEFT JOIN (SELECT srh.clientId FROM `se_recharge_history` srh
+        <where>
+            srh.amount > 0 AND srh.operate_valid = 2
+            <if test="timeStart != null and timeStart != ''">
+                AND srh.operateDt > #{timeStart}
+            </if>
+        </where>
+        ) c on c.clientId = sc.id
+        WHERE c.clientId IS NULL
+        GROUP BY sc.id) d
+    </select>
+    <!--鏈�杩戞湭鍏呭�肩殑鍐滄埛-->
+    <select id="getNotRechargeLastClients" resultType="com.dy.pipIrrGlobal.voSt.VoClient">
+        SELECT
+        sc.id    AS clientId,
+        sc.`name`   AS clientName,
+        sc.clientNum  AS clientNum,
+        sc.address   AS address,
+        sc.phone    AS phone,
+        sc.idCard   AS idCard
+        FROM
+            se_client sc
+                LEFT JOIN (SELECT srh.clientId FROM `se_recharge_history` srh
+        <where>
+            srh.amount > 0 AND srh.operate_valid = 2
+            <if test="timeStart != null and timeStart != ''">
+                AND srh.operateDt > #{timeStart}
+            </if>
+        </where>
+        ) c on c.clientId = sc.id
+        WHERE c.clientId IS NULL
+        GROUP BY sc.id
+        <trim prefix="limit ">
+            <if test="start != null and count != null">
+                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </select>
 </mapper>
\ No newline at end of file
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 7888144..f69c0b4 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmCommandHistoryMapper.xml
@@ -197,55 +197,29 @@
 
     <!--鏍规嵁鎿嶄綔鍛業D鑾峰彇鏈叧闃�璁板綍锛堝寘鍚湪绾挎儏鍐碉級-->
     <select id="getUnclosedValves" resultType="com.dy.pipIrrGlobal.voRm.VoUnclosedValve">
-        SELECT inta.name                  AS intakeNum,
-               rtus.isOnLine,
-               com.rtu_addr               AS rtuAddr,
-               com.param ->> '$.icCardNo' AS vcNum,
-               (SELECT param ->> '$.orderNo' AS orderNo
+        SELECT
+            inta.name AS intakeNum,
+            rtus.isOnLine,
+            com.rtu_addr AS rtuAddr,
+            com.param ->> '$.icCardNo' AS vcNum,
+            (
+                SELECT param ->> '$.orderNo' AS orderNo
                 FROM rm_command_history
                 WHERE rtu_addr = com.rtu_addr
                 ORDER BY send_time desc
-                LIMIT 0,1)                AS orderNo,
-               'toClose'                  AS state
+                LIMIT 0,1
+            ) AS orderNo,
+            'toClose'                  AS state,
+            CASE
+                WHEN com.command_code = 'A1' OR com.command_code = 'A2' THEN 0
+                ELSE 0
+            END AS planned,
+            com.send_time AS sendTime
         FROM rm_command_history com
             INNER JOIN pr_controller con ON com.rtu_addr = con.rtuAddr
             INNER JOIN pr_intake inta ON con.intakeId = inta.id
-            INNER 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 com.rtu_addr = rtus.rtuAddr
-        <where>
-            AND (com.command_code = '92' OR com.command_code = 'A2' OR com.command_code = '97')
-                  AND com.operator = #{operator}
-                  AND NOT EXISTS(
-                    SELECT *
-                    FROM rm_command_history
-                    WHERE (result IS NULL OR result = 1)
-                      AND (command_code = '93' OR command_code = 'A3' OR command_code = '98')
-                      AND param ->> '$.orderNo' = com.param ->> '$.orderNo'
-                )
-        </where>
-        GROUP BY inta.name, rtus.isOnLine, com.rtu_addr, com.param ->> '$.icCardNo'
-
-        UNION ALL
-
-        SELECT inta.name                  AS intakeNum,
-               rtus.isOnLine,
-               com.rtu_addr               AS rtuAddr,
-               com.param ->> '$.icCardNo' AS vcNum,
-               (SELECT param ->> '$.orderNo' AS orderNo
-                FROM rm_command_history
-                WHERE rtu_addr = com.rtu_addr
-                ORDER BY send_time desc
-                LIMIT 0,1)                AS orderNo,
-               'toCancel'                 AS state
-        FROM rm_command_history com
-                 INNER JOIN pr_intake inta ON inta.id = com.intake_id
-                 INNER JOIN JSON_TABLE(
+            LEFT JOIN JSON_TABLE(
+<!--                '[{"rtuAddr":"620201000030","isOnLine":true}]',-->
                 #{onLineMap},
                 '$[*]' COLUMNS (
                     rtuAddr VARCHAR(20) PATH '$.rtuAddr',
@@ -253,14 +227,18 @@
                     )
             ) rtus ON com.rtu_addr = rtus.rtuAddr
         <where>
-            AND (command_code = 'A1' OR command_code = 'A2')
             AND com.operator = #{operator}
-                  AND DATE_FORMAT(
-                              CONCAT(com.param ->> '$.year', '-', com.param ->> '$.month', '-', com.param ->> '$.day',
-                                     ' ',
-                                     com.param ->> '$.hour', ':', com.param ->> '$.minute', ':', '0'),
-                              '%Y-%m-%d %H:%i:%S') > NOW()
+            AND (com.protocol = 'p206V1_0_1' AND (com.command_code = '92' OR com.command_code = '97' OR com.command_code = '99' OR com.command_code = 'A0' OR com.command_code = 'A1' OR com.command_code = 'A2'))
+            AND NOT EXISTS(
+                SELECT * FROM rm_command_history
+                WHERE (result IS NULL OR result = 1)
+                AND (com.protocol = 'p206V1_0_1' AND (command_code = '93' OR command_code = '98' OR command_code = '00'))
+                AND param ->> '$.orderNo' = com.param ->> '$.orderNo'
+            )
         </where>
+        GROUP BY inta.name, rtus.isOnLine, com.rtu_addr, com.param ->> '$.icCardNo', com.command_code, com.send_time
+        ORDER BY com.send_time DESC
+        LIMIT 1
     </select>
 
     <!--鏍规嵁鍙栨按鍙D鑾峰彇璇ュ彇姘村彛鏈叧闃�鍙傛暟-->
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 dd62be3..34f6871 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/RmOpenCloseValveLastMapper.xml
@@ -473,10 +473,10 @@
                 AND oh.rtu_addr LIKE CONCAT('%', #{rtuAddr}, '%')
             </if>
             <if test="timeStart_open != null and timeStart_open != '' and timeStop_open != null and timeStop_open != ''">
-                AND oh.op_dt BETWEEN #{timeStart_open} AND #{timeStop_open}
+                AND oh.open_dt BETWEEN #{timeStart_open} AND #{timeStop_open}
             </if>
             <if test="timeStart_close != null and timeStart_close != '' and timeStop_close != null and timeStop_close != ''">
-                AND oh.cl_dt BETWEEN #{timeStart_close} AND #{timeStop_close}
+                AND oh.close_dt BETWEEN #{timeStart_close} AND #{timeStop_close}
             </if>
         </where>
     </select>
@@ -540,10 +540,10 @@
                 AND oh.rtu_addr LIKE CONCAT('%', #{rtuAddr}, '%')
             </if>
             <if test="timeStart_open != null and timeStart_open != '' and timeStop_open != null and timeStop_open != ''">
-                AND oh.op_dt BETWEEN #{timeStart_open} AND #{timeStop_open}
+                AND oh.open_dt BETWEEN #{timeStart_open} AND #{timeStop_open}
             </if>
             <if test="timeStart_close != null and timeStart_close != '' and timeStop_close != null and timeStop_close != ''">
-                AND oh.cl_dt BETWEEN #{timeStart_close} AND #{timeStop_close}
+                AND oh.close_dt BETWEEN #{timeStart_close} AND #{timeStop_close}
             </if>
         </where>
         ORDER BY oh.op_dt DESC
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectCtrl.java
index 26e4ca5..26446d4 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectCtrl.java
@@ -75,7 +75,7 @@
 
                     // 娣诲姞宸℃璁板綍
                     OpeInspect opeInspect = new OpeInspect();
-                    opeInspect.setInspectorId(inspects.getInspectorId());
+                    opeInspect.setInspectorId(inspectorId);
                     if(startTime != null) {
                         opeInspect.setStartTime(startTime);
                     }
@@ -97,7 +97,23 @@
                     }
                 }else {
                     // 璇ュ贰妫�宸蹭笂浼犺繃璁板綍锛岀画浼�
+                    if(stopTime != null) {
+                        OpeInspect inspect = new OpeInspect();
+                        inspect.setId(inspectId);
+                        inspect.setStopTime(stopTime);
+                        inspectSv.updateInspect(inspect);
+                    }
 
+                    if(tracks != null && tracks.size() > 0) {
+                        for (int j = 0; j < tracks.size(); j++) {
+                            tracks.get(j).setId(idLongGenerator.generate());
+                            tracks.get(j).setInspectId(inspectId);
+                        }
+                        Integer rec = inspectSv.insertTracks(tracks);
+                        if(rec == null || rec == 0) {
+                            return BaseResponseUtils.buildErrorMsg("宸℃杞ㄨ抗娣诲姞澶辫触");
+                        }
+                    }
                 }
             }
             return BaseResponseUtils.buildSuccess() ;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectSv.java
index 20893a0..6d04f09 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectSv.java
@@ -37,6 +37,15 @@
     }
 
     /**
+     * 淇敼宸℃璁板綍
+     * @param po
+     * @return
+     */
+    public Integer updateInspect(OpeInspect po) {
+        return opeInspectMapper.updateByPrimaryKeySelective(po);
+    }
+
+    /**
      * 鎵归噺娣诲姞宸℃杞ㄨ抗
      * @param list
      * @return
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java
index 7675944..d485488 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientCtrl.java
@@ -298,4 +298,22 @@
         }
     }
 
+
+    /**
+     * 鏈�杩戞湭鍏呭�肩殑鍐滄埛
+     *
+     * @param qo
+     * @return
+     */
+    @GetMapping(path = "/getNotRechargeLastClients")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoClient>>> getNotRechargeLastClients(CommonQO qo) {
+        try {
+            QueryResultVo<List<VoClient>> res = clientSv.getNotRechargeLastClients(qo);
+            return BaseResponseUtils.buildSuccess(res);
+        }catch (Exception e){
+            log.error("鑾峰彇璁板綍寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java
index 1e5b1ad..334c320 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-statistics/src/main/java/com/dy/pipIrrStatistics/client/ClientSv.java
@@ -493,4 +493,31 @@
         rsVo.obj = rmClientAmountDayLastMapper.getMonthAmountAndMoney(params);
         return rsVo ;
     }
+
+    /**
+     * 鏈�杩戞湭鍏呭�肩殑鍐滄埛
+     * @param qo
+     * @return
+     */
+    public QueryResultVo<List<VoClient>> getNotRechargeLastClients(CommonQO qo) {
+        String timeStart = qo.getTimeStart();
+        if (timeStart != null && timeStart != ""){
+            timeStart = timeStart + " 00:00:00";
+            qo.setTimeStart(timeStart);
+        }
+        // 鐢熸垚鏌ヨ鍙傛暟
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ;
+
+        // 鑾峰彇绗﹀悎鏉′欢鐨勮褰曟暟
+        Long itemTotal = Optional.ofNullable(rmClientAmountDayLastMapper.getNotRechargeLastClientsCount(params)).orElse(0L);
+
+        QueryResultVo<List<VoClient>> rsVo = new QueryResultVo<>() ;
+
+        rsVo.pageSize = qo.pageSize ;
+        rsVo.pageCurr = qo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = rmClientAmountDayLastMapper.getNotRechargeLastClients(params);
+        return rsVo ;
+    }
 }
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 6703fde..8af5d2f 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
@@ -111,7 +111,7 @@
                 jsonArray.add(jsonObject);
             }
 
-            System.out.println(jsonArray);
+            System.out.println(jsonArray.toJSONString());
             List<VoUnclosedValve> res = rmCommandHistoryMapper.getUnclosedValves(jsonArray.toJSONString(), operator);
             if(res != null) {
                 return res;

--
Gitblit v1.8.0