From 51dab03d03a4f3f671a64c3660c42e5241357c9b Mon Sep 17 00:00:00 2001
From: Administrator <zhubaomin>
Date: 星期四, 28 十二月 2023 15:30:57 +0800
Subject: [PATCH] 2023-12-28 朱宝民 根据水卡编号获取操作记录,重构农户查询,返回23个字段

---
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml                            |   10 ++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardCtrl.java |   37 ++++++++-
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java             |   14 +++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml                                |   70 +++++++++++-----
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoClient.java                        |   40 +++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardSv.java   |   19 +++-
 6 files changed, 156 insertions(+), 34 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
index 7c70169..97dfd57 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoSe/SeClientCardMapper.java
@@ -64,4 +64,18 @@
      * @return
      */
     List<VoCardInfo> getCardInfoByClientId(@Param("clientId") Long clientId);
+
+    /**
+     * 鏍规嵁姘村崱缂栧彿鑾峰彇鎿嶄綔璁板綍鍒楄〃
+     * @param cardNum 姘村崱缂栧彿
+     * @return 姘村崱鎿嶄綔璁板綍鍒楄〃
+     */
+    List<Map<String, Object>> getOperateRecordsByCardNum(@Param("cardNum") Long cardNum);
+
+    /**
+     * 鏍规嵁姘村崱缂栧彿鑾峰彇浣欓
+     * @param cardNum 姘村崱缂栧彿
+     * @return 浣欓
+     */
+    Float getMoneyByCardNum(@Param("cardNum") Long cardNum);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoClient.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoClient.java
index 64e4fed..76fe8c1 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoClient.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoClient.java
@@ -23,6 +23,36 @@
     @Schema(title = "ID")
     private Long id;
 
+    @Schema(title = "鍘縄D")
+    private String countyId;
+    @Schema(title = "鍘垮悕绉�")
+    private String countryName;
+
+    @Schema(title = "闀嘔D")
+    private String townId;
+    @Schema(title = "闀囧悕绉�")
+    private String townName;
+
+    @Schema(title = "鏉慖D")
+    private String villageId;
+    @Schema(title = "鏉戝悕绉�")
+    private String villageName;
+
+    @Schema(title = "鐗囧尯ID")
+    private String blockId;
+    @Schema(title = "鐗囧尯鍚嶇О")
+    private String bolckName;
+
+    @Schema(title = "鍒嗘按鎴縄D")
+    private String divideId;
+    @Schema(title = "鍒嗘按鎴垮悕绉�")
+    private String divideName;
+
+    @Schema(title = "鐢ㄦ埛绫诲瀷ID")
+    private String waterTypeId;
+    @Schema(title = "鐢ㄦ埛绫诲瀷鍚嶇О")
+    private String waterTypeName;
+
     @Schema(title = "鍐滄埛ID")
     private String clientId;
 
@@ -36,7 +66,10 @@
     private String phone;
 
     @Schema(title = "韬唤璇佸彿")
-    private String idCard;
+    private String idcard;
+
+    @Schema(title = "绉嶆闈㈢Н")
+    private Double area;
 
     @Schema(title = "鍗$墖鏁伴噺")
     private Integer cardCount;
@@ -44,10 +77,11 @@
     @Schema(title = "鍦板潃")
     private String address;
 
+    @Schema(title = "澶囨敞")
+    private String remarks;
+
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @Schema(title = "娉ㄥ唽鏃堕棿")
     private Date operateDt;
-
-
 }
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 ea222f6..44a5e35 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientCardMapper.xml
@@ -272,4 +272,14 @@
     FROM se_client_card
     WHERE clientId = ${clientId}
   </select>
+
+  <!--鏍规嵁姘村崱缂栧彿鑾峰彇鎿嶄綔璁板綍鍒楄〃-->
+  <select id="getOperateRecordsByCardNum" resultType="java.util.HashMap">
+    SELECT * FROM v_operate WHERE cardNum = ${cardNum}
+  </select>
+
+  <!--鏍规嵁姘村崱缂栧彿鑾峰彇浣欓-->
+  <select id="getMoneyByCardNum" resultType="java.lang.Float">
+    SELECT money FROM se_client_card WHERE cardNum = ${cardNum}
+  </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
index f94a209..c41166f 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
@@ -304,22 +304,26 @@
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛璁板綍鏁�-->
   <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
     SELECT
-    COUNT(*) AS recordCount
+        COUNT(*) AS recordCount
     FROM se_client cli
     , (SELECT @i:=0) AS itable
     <where>
-      AND disabled = 0
-      AND deleted = 0
+      AND cli.disabled = 0
+      AND cli.deleted = 0
       <if test = "name != null and name !=''">
-        AND name like CONCAT('%',#{name},'%')
+        AND cli.name like CONCAT('%',#{name},'%')
       </if>
 
-      <if test = "num != null and num !=''">
-        AND clientNum like CONCAT('%',#{num},'%')
+      <if test = "clientNum != null and clientNum !=''">
+        AND cli.clientNum like CONCAT('%',#{clientNum},'%')
       </if>
 
       <if test = "phone != null and phone !=''">
-        AND phone like CONCAT('%',#{phone},'%')
+        AND cli.phone like CONCAT('%',#{phone},'%')
+      </if>
+
+      <if test = "address != null and address !=''">
+        AND cli.address like CONCAT('%',#{address},'%')
       </if>
     </where>
 
@@ -329,37 +333,57 @@
   <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛鏁版嵁-->
   <select id="getClients" resultType="com.dy.pipIrrGlobal.voSe.VoClient">
     SELECT
-    (@i:=@i+1) AS id,
-    CAST(id AS char) AS clientId,
-    name,
-    clientNum,
-    phone,
-    idCard,
-    (SELECT COUNT(*) FROM se_client_card WHERE clientNum = cli.clientNum) AS cardCount,
-    address,
-    operateDt
+        (@i:=@i+1) AS id,
+        CAST(cli.countyId AS char) AS countyId,
+        dis_con.name AS countryName,
+        CAST(cli.townId AS char) AS townId,
+        dis_town.name AS townName,
+        CAST(cli.villageId AS char) AS villageId,
+        dis_village.name AS villageName,
+        CAST(cli.blockId AS char) AS blockId,
+        blo.name AS bolckName,
+        CAST(cli.divideId AS char) AS divideId,
+        divi.name AS divideName,
+        CAST(cli.typeId AS char) AS waterTypeId,
+        wat.typeName AS waterTypeName,
+        CAST(cli.id AS char) AS clientId,
+        cli.name,
+        cli.clientNum,
+        cli.phone,
+        cli.idCard,
+        cli.area,
+        (SELECT COUNT(*) FROM se_client_card WHERE clientId = cli.id) AS cardCount,
+        cli.address,
+        cli.remarks,
+        cli.operateDt
     FROM se_client cli
+    LEFT JOIN ba_district dis_con ON cli.countyId = dis_con.id
+    LEFT JOIN ba_district dis_town ON cli.townId = dis_town.id
+    LEFT JOIN ba_district dis_village ON cli.villageId = dis_village.id
+    LEFT JOIN ba_block blo ON cli.blockId = blo.id
+    LEFT JOIN pr_divide divi ON cli.divideId = divi.id
+    LEFT JOIN se_water_type wat ON cli.typeId = wat.id
     , (SELECT @i:=0) AS itable
     <where>
-      AND disabled = 0
-      AND deleted = 0
+      AND cli.disabled = 0
+      AND cli.deleted = 0
       <if test = "name != null and name !=''">
-        AND name like CONCAT('%',#{name},'%')
+        AND cli.name like CONCAT('%',#{name},'%')
       </if>
 
       <if test = "clientNum != null and clientNum !=''">
-        AND clientNum like CONCAT('%',#{clientNum},'%')
+        AND cli.clientNum like CONCAT('%',#{clientNum},'%')
       </if>
 
       <if test = "phone != null and phone !=''">
-        AND phone like CONCAT('%',#{phone},'%')
+        AND cli.phone like CONCAT('%',#{phone},'%')
       </if>
 
       <if test = "address != null and address !=''">
-        AND address like CONCAT('%',#{address},'%')
+        AND cli.address like CONCAT('%',#{address},'%')
       </if>
     </where>
-    ORDER BY operateDt DESC
+    ORDER BY cli.operateDt DESC
     <if test="pageCurr != null and pageSize != null">
       LIMIT ${pageCurr}, ${pageSize}
     </if>
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardCtrl.java
index 6166932..005da2c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardCtrl.java
@@ -16,12 +16,10 @@
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author ZhuBaoMin
@@ -38,6 +36,11 @@
 public class ClientCardCtrl {
     private final ClientCardSv clientCardSv;
 
+    /**
+     * 鑾峰彇鎸囧畾鐢ㄦ埛鍚嶄笅鍏ㄩ儴姘村崱
+     * @param clientId
+     * @return
+     */
     @Operation(summary = "鑾峰緱鍏ㄩ儴姘村崱", description = "杩斿洖鍏ㄩ儴姘村崱鏁版嵁")
     @ApiResponses(value = {
             @ApiResponse(
@@ -58,4 +61,30 @@
             return BaseResponseUtils.buildException(e.getMessage()) ;
         }
     }
+
+    /**
+     * 鏍规嵁姘村崱缂栧彿鑾峰彇鎿嶄綔璁板綍鍙婁綑棰�
+     * @param cardNum 姘村崱缂栧彿
+     * @return 姘村崱鎿嶄綔璁板綍鍙婁綑棰�
+     */
+    @Operation(summary = "鑾峰緱姘村崱鎿嶄綔璁板綍鍙婁綑棰�", description = "杩斿洖姘村崱鎿嶄綔璁板綍鍙婁綑棰�")
+    @ApiResponses(value = {
+            @ApiResponse(
+                    responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE,
+                    description = "杩斿洖涓�椤靛啘鎴锋暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�",
+                    content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE,
+                            schema = @Schema(implementation = BaClient.class))}
+            )
+    })
+    @GetMapping(path = "/getoperaterecords")
+    @SsoAop()
+    public BaseResponse<List<Map<String, Object>>> getOperateRecordsAndMoney(@RequestParam("cardNum") Long cardNum){
+        try {
+            Map map = clientCardSv.getOperateRecordsAndMoney(cardNum);
+            return BaseResponseUtils.buildSuccess(map);
+        } catch (Exception e) {
+            log.error("鏌ヨ鎿嶄綔璁板綍寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage()) ;
+        }
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardSv.java
index f428876..5301d17 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/clientCard/ClientCardSv.java
@@ -7,10 +7,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 
 /**
  * @author ZhuBaoMin
@@ -83,4 +80,18 @@
             return new ArrayList<>();
         }
     }
+
+    /**
+     * 鏍规嵁姘村崱缂栧彿鑾峰彇鎿嶄綔璁板綍鍙婁綑棰�
+     * @param cardNum
+     * @return
+     */
+    public Map getOperateRecordsAndMoney(Long cardNum) {
+        List<Map<String, Object>> list = Optional.ofNullable(seClientCardMapper.getOperateRecordsByCardNum(cardNum)).orElse(new ArrayList<>());
+        Float mondy = Optional.ofNullable(seClientCardMapper.getMoneyByCardNum(cardNum)).orElse(0f);
+        Map map = new HashMap();
+        map.put("mondy", mondy);
+        map.put("list", list);
+        return map;
+    }
 }

--
Gitblit v1.8.0