From 6dacac48ebb596797dfd8e5bf3a803ed0b583643 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 05 二月 2025 17:11:31 +0800
Subject: [PATCH] 取水口综合信息-统计数据逻辑处理模块完善
---
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml | 284 +++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 235 insertions(+), 49 deletions(-)
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 ce8f63e..91c9588 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeClientMapper.xml
@@ -11,12 +11,14 @@
<result column="blockId" jdbcType="BIGINT" property="blockid" />
<result column="divideId" jdbcType="BIGINT" property="divideid" />
<result column="name" jdbcType="VARCHAR" property="name" />
+ <result column="virtualId" jdbcType="BIGINT" property="virtualid" />
<result column="clientNum" jdbcType="VARCHAR" property="clientnum" />
<result column="districtNum" jdbcType="BIGINT" property="districtnum" />
<result column="districtTitle" jdbcType="VARCHAR" property="districttitle" />
<result column="phone" jdbcType="VARCHAR" property="phone" />
<result column="idCard" jdbcType="VARCHAR" property="idcard" />
<result column="area" jdbcType="DOUBLE" property="area" />
+ <result column="typeId" jdbcType="BIGINT" property="typeid" />
<result column="address" jdbcType="VARCHAR" property="address" />
<result column="remarks" jdbcType="VARCHAR" property="remarks" />
<result column="operator" jdbcType="BIGINT" property="operator" />
@@ -26,9 +28,9 @@
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
- id, countyId, townId, villageId, blockId, divideId, `name`, clientNum, districtNum,
- districtTitle, phone, idCard, area, address, remarks, `operator`, operateDt, disabled,
- deleted
+ id, countyId, townId, villageId, blockid, divideId, `name`, virtualId, clientNum,
+ districtNum, districtTitle, phone, idCard, area, typeId, address, remarks, `operator`,
+ operateDt, disabled, deleted
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
<!--@mbg.generated-->
@@ -42,23 +44,27 @@
delete from se_client
where id = #{id,jdbcType=BIGINT}
</delete>
+
<insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClient">
<!--@mbg.generated-->
insert into se_client (id, countyId, townId,
villageId, blockId, divideId,
- `name`, clientNum, districtNum,
- districtTitle, phone, idCard,
- area, address, remarks,
- `operator`, operateDt, disabled,
- deleted)
+ `name`, virtualId, clientNum,
+ districtNum, districtTitle, phone,
+ idCard, area, typeId,
+ address, remarks, `operator`,
+ operateDt, disabled, deleted
+ )
values (#{id,jdbcType=BIGINT}, #{countyid,jdbcType=BIGINT}, #{townid,jdbcType=BIGINT},
- #{villageid,jdbcType=BIGINT}, #{blockid,jdbcType=BIGINT}, #{divideid,jdbcType=BIGINT},
- #{name,jdbcType=VARCHAR}, #{clientnum,jdbcType=VARCHAR}, #{districtnum,jdbcType=BIGINT},
- #{districttitle,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR}, #{idcard,jdbcType=VARCHAR},
- #{area,jdbcType=DOUBLE}, #{address,jdbcType=VARCHAR}, #{remarks,jdbcType=VARCHAR},
- #{operator,jdbcType=BIGINT}, #{operatedt,jdbcType=TIMESTAMP}, #{disabled,jdbcType=TINYINT},
- #{deleted,jdbcType=TINYINT})
+ #{villageid,jdbcType=BIGINT}, #{blockid,jdbcType=BIGINT}, #{divideid,jdbcType=BIGINT},
+ #{name,jdbcType=VARCHAR}, #{virtualid,jdbcType=BIGINT}, #{clientnum,jdbcType=VARCHAR},
+ #{districtnum,jdbcType=BIGINT}, #{districttitle,jdbcType=VARCHAR}, #{phone,jdbcType=VARCHAR},
+ #{idcard,jdbcType=VARCHAR}, #{area,jdbcType=DOUBLE}, #{typeid,jdbcType=BIGINT},
+ #{address,jdbcType=VARCHAR}, #{remarks,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT},
+ #{operatedt,jdbcType=TIMESTAMP}, #{disabled,jdbcType=TINYINT}, #{deleted,jdbcType=TINYINT}
+ )
</insert>
+
<insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClient">
<!--@mbg.generated-->
insert into se_client
@@ -84,6 +90,9 @@
<if test="name != null">
`name`,
</if>
+ <if test="virtualid != null">
+ virtualId,
+ </if>
<if test="clientnum != null">
clientNum,
</if>
@@ -101,6 +110,9 @@
</if>
<if test="area != null">
area,
+ </if>
+ <if test="typeid != null">
+ typeId,
</if>
<if test="address != null">
address,
@@ -143,6 +155,9 @@
<if test="name != null">
#{name,jdbcType=VARCHAR},
</if>
+ <if test="virtualid != null">
+ #{virtualid,jdbcType=BIGINT},
+ </if>
<if test="clientnum != null">
#{clientnum,jdbcType=VARCHAR},
</if>
@@ -160,6 +175,9 @@
</if>
<if test="area != null">
#{area,jdbcType=DOUBLE},
+ </if>
+ <if test="typeid != null">
+ #{typeid,jdbcType=BIGINT},
</if>
<if test="address != null">
#{address,jdbcType=VARCHAR},
@@ -203,6 +221,9 @@
<if test="name != null">
`name` = #{name,jdbcType=VARCHAR},
</if>
+ <if test="virtualid != null">
+ virtualId = #{virtualid,jdbcType=BIGINT},
+ </if>
<if test="clientnum != null">
clientNum = #{clientnum,jdbcType=VARCHAR},
</if>
@@ -220,6 +241,9 @@
</if>
<if test="area != null">
area = #{area,jdbcType=DOUBLE},
+ </if>
+ <if test="typeid != null">
+ typeId = #{typeid,jdbcType=BIGINT},
</if>
<if test="address != null">
address = #{address,jdbcType=VARCHAR},
@@ -251,17 +275,18 @@
blockId = #{blockid,jdbcType=BIGINT},
divideId = #{divideid,jdbcType=BIGINT},
`name` = #{name,jdbcType=VARCHAR},
+<!-- virtualId = #{virtualid,jdbcType=BIGINT},-->
clientNum = #{clientnum,jdbcType=VARCHAR},
districtNum = #{districtnum,jdbcType=BIGINT},
districtTitle = #{districttitle,jdbcType=VARCHAR},
phone = #{phone,jdbcType=VARCHAR},
idCard = #{idcard,jdbcType=VARCHAR},
area = #{area,jdbcType=DOUBLE},
+ typeId = #{typeid,jdbcType=BIGINT},
address = #{address,jdbcType=VARCHAR},
remarks = #{remarks,jdbcType=VARCHAR},
`operator` = #{operator,jdbcType=BIGINT},
operateDt = #{operatedt,jdbcType=TIMESTAMP}
-<!-- ,-->
<!-- disabled = #{disabled,jdbcType=TINYINT},-->
<!-- deleted = #{deleted,jdbcType=TINYINT}-->
where id = #{id,jdbcType=BIGINT}
@@ -277,24 +302,71 @@
</select>
<!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛璁板綍鏁�-->
- <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
- SELECT
- COUNT(*) AS recordCount
+<!-- <select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">-->
+ <select id="getRecordCount" resultType="com.dy.pipIrrGlobal.voSe.VoClient">
+<!-- SELECT-->
+<!-- COUNT(*) AS recordCount-->
+ SELECT DISTINCT
+ cli.countyId,
+ dis_con.name AS countryName,
+ cli.townId,
+ dis_town.name AS townName,
+ cli.villageId,
+ dis_village.name AS villageName,
+ cli.blockId,
+ blo.name AS blockName,
+ cli.divideId,
+ divi.name AS divideName,
+ cli.typeId,
+ wat.typeName AS waterTypeName,
+ cli.id AS clientId,
+ cli.name,
+ cli.clientNum,
+ cli.phone,
+ cli.idCard,
+ cli.area,
+ (SELECT COUNT(*) FROM se_client_card WHERE clientId = cli.id)+(SELECT COUNT(*) FROM se_virtual_card WHERE client_id = cli.id) AS cardCount,
+ cli.address,
+ cli.remarks,
+ cli.operateDt
FROM se_client cli
- , (SELECT @i:=0) AS itable
+ 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
+ LEFT JOIN se_client_card card ON card.clientId = cli.id
<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>
+
+ <if test = "villageId != null and villageId !=''">
+ AND cli.villageId = #{villageId}
+ </if>
+ <if test = "blockId != null and blockId !=''">
+ AND cli.blockId = #{blockId}
+ </if>
+ <if test = "divideId != null and divideId !=''">
+ AND cli.divideId = #{divideId}
+ </if>
+ <if test = "cardNum != null">
+ AND card.cardNum = #{cardNum}
</if>
</where>
@@ -303,50 +375,95 @@
<!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鍐滄埛鏁版嵁-->
<select id="getClients" resultType="com.dy.pipIrrGlobal.voSe.VoClient">
- SELECT
- (@i:=@i+1) AS id,
- name,
- clientNum,
- phone,
- idCard,
- (SELECT COUNT(*) FROM se_client_card WHERE clientNum = cli.clientNum) AS cardCount,
- address,
- operateDt
+ SELECT DISTINCT
+ cli.countyId,
+ dis_con.name AS countryName,
+ cli.townId,
+ dis_town.name AS townName,
+ cli.villageId,
+ dis_village.name AS villageName,
+ cli.blockId,
+ blo.name AS blockName,
+ cli.divideId,
+ divi.name AS divideName,
+ cli.typeId,
+ wat.typeName AS waterTypeName,
+ cli.id AS clientId,
+ cli.name,
+ cli.clientNum,
+ cli.phone,
+ cli.idCard,
+ cli.area,
+ (SELECT COUNT(*) FROM se_client_card WHERE clientId = cli.id)+(SELECT COUNT(*) FROM se_virtual_card WHERE client_id = cli.id) AS cardCount,
+ cli.address,
+ cli.remarks,
+ cli.operateDt
FROM se_client cli
- , (SELECT @i:=0) AS itable
+ 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
+ LEFT JOIN se_client_card card ON card.clientId = cli.id
<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>
+
+ <if test = "villageId != null and villageId !=''">
+ AND cli.villageId = #{villageId}
+ </if>
+ <if test = "blockId != null and blockId !=''">
+ AND cli.blockId = #{blockId}
+ </if>
+ <if test = "divideId != null and divideId !=''">
+ AND cli.divideId = #{divideId}
+ </if>
+ <if test = "cardNum != null">
+ AND card.cardNum = #{cardNum}
</if>
</where>
- ORDER BY operateDt DESC
- <if test="pageCurr != null and pageSize != null">
- LIMIT ${pageCurr}, ${pageSize}
- </if>
+ ORDER BY cli.operateDt DESC
+ <trim prefix="limit " >
+ <if test="start != null and count != null">
+ #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+ </if>
+ </trim>
</select>
<!--鏍规嵁鍐滄埛缂栧彿鑾峰彇5绾ц鏀垮尯鍒掍唬鐮�-->
<select id="getAreaCodeByNum" resultType="java.lang.Long">
- SELECT districtNum FROM se_client WHERE clientNum = ${clientNum}
+ SELECT districtNum FROM se_client WHERE clientNum = #{clientNum} LIMIT 0,1
+ </select>
+
+ <!--鏍规嵁鍐滄埛缂栧彿鑾峰彇5绾ц鏀垮尯鍒掍覆areaCode锛岃ˉ鍗¤繃绋嬩腑寮�鏂板崱浣跨敤-->
+ <select id="getAreaCodeById" resultType="java.lang.Long">
+ SELECT districtNum FROM se_client WHERE id = #{clientId}
</select>
<!--鏍规嵁鍐滄埛缂栧彿鑾峰彇鍐滄埛ID-->
<select id="getClientIdByNum" resultType="java.lang.Long">
- SELECT id FROM se_client WHERE clientNum = ${clientNum}
+ SELECT id FROM se_client WHERE clientNum = #{clientNum} LIMIT 0,1
+ </select>
+
+ <!--鏍规嵁鐢佃瘽鍙风爜鑾峰彇鍐滄埛ID-->
+ <select id="getClientIdByPhone" resultType="java.lang.Long">
+ SELECT id FROM se_client WHERE phone = #{phoneNumber}
</select>
<!--鏍规嵁鍐滄埛ID閫昏緫鍒犻櫎鍐滄埛-->
@@ -354,13 +471,82 @@
update se_client set deleted = 1
<where>
<if test = "id != null and id > 0">
- AND id = ${id}
+ AND id = #{id}
</if>
</where>
</update>
<!--鏍规嵁涓婚敭鑾峰彇鏉慖D-->
<select id="getVillageIdById" parameterType="java.lang.Long" resultType="java.lang.Long">
- SELECT villageId FROM se_client WHERE id = ${id}
+ SELECT villageId FROM se_client WHERE id = #{id}
+ </select>
+
+ <!--鑾峰彇铏氭嫙鍗″彿鏈�澶у��-->
+ <select id="getMa1xVirtualId" resultType="java.lang.Long">
+ SELECT virtualId FROM se_client ORDER BY id DESC LIMIT 0,1
+ </select>
+
+ <!--鑾峰彇鐢ㄦ按鏂瑰紡鍒楄〃-->
+ <select id="getWaterTypes" resultType="java.util.Map">
+ SELECT CAST(se_water_type.id AS char) AS id, typeName from se_water_type
+ </select>
+
+ <!--鑾峰彇鍐滄埛鍩烘湰淇℃伅锛屽皬绋嬪簭棣栭〉浣跨敤-->
+ <select id="getSimpleClientInfo" resultType="com.dy.pipIrrGlobal.voSe.VoClientWechat">
+ SELECT
+ CAST(ope.id AS char) AS sessionId,
+ CAST(cli.id AS char) AS clientId,
+ cli.name AS clientName,
+ cli.phone,
+ CAST(cli.blockId AS char) AS blockId
+ FROM se_open_id ope
+ INNER JOIN se_client cli ON ope.client_id = cli.id
+ <where>
+ <if test = "sessionId != null">
+ AND ope.id = #{sessionId}
+ </if>
+
+ <if test = "openId != null">
+ AND ope.open_id = #{openId}
+ </if>
+ </where>
+ LIMIT 0,1
+ </select>
+ <!--鑾峰彇鎸囧畾鏃堕棿娈靛啘鎴凤細鍏呭�煎悎璁°�佹秷璐瑰悎璁°�佷綑棰�-->
+ <select id="getClientUsagesCount" resultType="java.lang.Long">
+ SELECT
+ count(*)
+ FROM se_client cli
+ <where>
+ <if test="clientName != null and clientName != ''">
+ AND cli.name like CONCAT('%', #{clientName}, '%')
+ </if>
+ <if test="clientNum != null and clientNum != ''">
+ AND cli.clientNum like CONCAT('%', #{clientNum}, '%')
+ </if>
+ </where>
+ </select>
+ <!--鑾峰彇鎸囧畾鏃堕棿娈靛啘鎴凤細鍏呭�煎悎璁°�佹秷璐瑰悎璁°�佷綑棰�-->
+ <select id="getClientUsages" resultType="com.dy.pipIrrGlobal.voSt.VoCardUsage">
+ SELECT
+ cli.name AS clientName,
+ (SELECT ROUND(SUM(rch.amount),2) FROM se_recharge_history rch WHERE rch.clientId = cli.id AND rch.operateDt BETWEEN #{timeStart} AND #{timeStop}) AS totalRecharge,
+ (SELECT ROUND(SUM(his.cl_this_money),2) FROM rm_open_close_valve_history his WHERE his.client_id = cli.id AND his.cl_dt BETWEEN #{timeStart} AND #{timeStop}) AS totalConsumption,
+ (SELECT ROUND(SUM(card.money),2) FROM se_client_card card WHERE card.clientId = cli.id) AS balance
+ FROM se_client cli
+ <where>
+ <if test="clientName != null and clientName != ''">
+ AND cli.name like CONCAT('%', #{clientName}, '%')
+ </if>
+ <if test="clientNum != null and clientNum != ''">
+ AND cli.clientNum like CONCAT('%', #{clientNum}, '%')
+ </if>
+ </where>
+ ORDER BY totalConsumption DESC, totalRecharge DESC
+ <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
--
Gitblit v1.8.0