From 5fa6e6f8410ef9d057174bcff2a3c5038c54a551 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期日, 27 四月 2025 18:41:20 +0800
Subject: [PATCH] bug修改

---
 ruoyi-system/src/main/resources/mapper/system/TBillMapper.xml |  381 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 361 insertions(+), 20 deletions(-)

diff --git a/ruoyi-system/src/main/resources/mapper/system/TBillMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TBillMapper.xml
index 0eb1d7b..abbc7ab 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TBillMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TBillMapper.xml
@@ -5,31 +5,372 @@
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TBill">
         <id column="id" property="id" />
-        <result column="contractId" property="contractId" />
-        <result column="payableFeesMoney" property="payableFeesMoney" />
-        <result column="payableFeesTime" property="payableFeesTime" />
-        <result column="payFeesStatus" property="payFeesStatus" />
-        <result column="payFeesMoney" property="payFeesMoney" />
-        <result column="payFeesTime" property="payFeesTime" />
-        <result column="payFeesType" property="payFeesType" />
-        <result column="billType" property="billType" />
-        <result column="overDays" property="overDays" />
-        <result column="payableFeesPenalty" property="payableFeesPenalty" />
-        <result column="startTime" property="startTime" />
-        <result column="endTime" property="endTime" />
-        <result column="bankSerialNumber" property="bankSerialNumber" />
-        <result column="actualMoney" property="actualMoney" />
+        <result column="contract_id" property="contractId" />
+        <result column="contract_number" property="contractNumber" />
+        <result column="payable_fees_money" property="payableFeesMoney" />
+        <result column="payable_fees_time" property="payableFeesTime" />
+        <result column="pay_fees_status" property="payFeesStatus" />
+        <result column="pay_fees_money" property="payFeesMoney" />
+        <result column="pay_fees_time" property="payFeesTime" />
+        <result column="pay_fees_type" property="payFeesType" />
+        <result column="bill_type" property="billType" />
+        <result column="over_days" property="overDays" />
+        <result column="payable_fees_penalty" property="payableFeesPenalty" />
+        <result column="start_time" property="startTime" />
+        <result column="end_time" property="endTime" />
+        <result column="bank_serial_number" property="bankSerialNumber" />
+        <result column="outstanding_money" property="outstandingMoney" />
         <result column="voucher" property="voucher" />
-        <result column="createTime" property="createTime" />
-        <result column="updateTime" property="updateTime" />
-        <result column="createBy" property="createBy" />
-        <result column="updateBy" property="updateBy" />
-        <result column="isDelete" property="isDelete" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="create_by" property="createBy" />
+        <result column="update_by" property="updateBy" />
+        <result column="disabled" property="disabled" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, contractId, payableFeesMoney, payableFeesTime, payFeesStatus, payFeesMoney, payFeesTime, payFeesType, billType, overDays, payableFeesPenalty, startTime, endTime, bankSerialNumber, actualMoney, voucher, createTime, updateTime, createBy, updateBy, isDelete
+        id, contract_id,contract_number, payable_fees_money, payable_fees_time, pay_fees_status, pay_fees_money, pay_fees_time, pay_fees_type, bill_type, over_days, payable_fees_penalty, start_time, end_time, bank_serial_number, outstanding_money, voucher, create_time, update_time, create_by, update_by, disabled
     </sql>
 
+    <select id="page" resultType="com.ruoyi.system.dto.TBillDto">
+        SELECT
+            b.*,
+            t.resident_name as residentName,
+            t.phone,
+            t.account,
+            h.house_name as houseName
+        FROM
+            t_bill b
+        LEFT JOIN t_contract c ON c.contract_number = b.contract_number and c.disabled=0
+        LEFT JOIN t_house h ON h.id = c.house_id and h.disabled=0
+        LEFT JOIN t_tenant t ON t.id = c.tenant_id and t.disabled=0
+        LEFT JOIN t_bill_type_sort_weight sw on sw.code=b.pay_fees_status
+        <where>
+            b.disabled=0
+            <if test="query.payFeesStatus != null">
+                and b.pay_fees_status = #{query.payFeesStatus}
+            </if>
+            <if test="query.phone != null and query.phone !=''">
+                and t.phone = #{query.phone}
+            </if>
+            <if test="query.residentName != null and query.residentName !=''">
+                and t.resident_name like concat('%',#{query.residentName},'%')
+            </if>
+            <if test="query.contractNumber != null and query.contractNumber !=''">
+                and b.contract_number = #{query.contractNumber}
+            </if>
+            <if test="query.userId != null and query.userId !=''">
+                and t.id = #{query.userId}
+            </if>
+            <if test='query.businessDeptId != null and query.businessDeptId != "" and query.businessDeptId!=0'>
+                and b.business_dept_id = #{query.businessDeptId}
+            </if>
+            <if test="query.billType != null">
+                and b.bill_type = #{query.billType}
+            </if>
+        </where>
+        order by sw.sort_weight desc,b.payable_fees_time asc
+<!--        order by b.payable_fees_time desc,b.create_time desc-->
+    </select>
+
+    <select id="pageForApplet" resultType="com.ruoyi.system.dto.TBillDto">
+        SELECT
+        b.*,
+        t.resident_name as residentName,
+        t.phone,
+        t.account,
+        h.house_name as houseName
+        FROM
+        t_bill b
+        LEFT JOIN t_contract c ON c.contract_number = b.contract_number and c.disabled=0
+        LEFT JOIN t_house h ON h.id = c.house_id and h.disabled=0
+        LEFT JOIN t_tenant t ON t.id = c.tenant_id and t.disabled=0
+        LEFT JOIN t_bill_type_sort_weight sw on sw.code=b.pay_fees_status
+        <where>
+            b.disabled=0
+            <if test="query.payFeesStatus != null">
+                and b.pay_fees_status = #{query.payFeesStatus}
+            </if>
+            <if test="query.phone != null and query.phone !=''">
+                and t.phone = #{query.phone}
+            </if>
+            <if test="query.residentName != null and query.residentName !=''">
+                and t.resident_name like concat('%',#{query.residentName},'%')
+            </if>
+            <if test="query.contractNumber != null and query.contractNumber !=''">
+                and b.contract_number = #{query.contractNumber}
+            </if>
+            <if test="query.userId != null and query.userId !=''">
+                and t.id = #{query.userId}
+            </if>
+            <if test='query.businessDeptId != null and query.businessDeptId != "" and query.businessDeptId!="0"'>
+                and b.business_dept_id = #{query.businessDeptId}
+            </if>
+            <if test="query.billType != null">
+                and b.bill_type = #{query.billType}
+            </if>
+        </where>
+        order by sw.sort_weight desc,b.payable_fees_time asc
+    </select>
+
+    <select id="getBillList" resultType="com.ruoyi.system.dto.TBillDto">
+        SELECT
+        b.*,
+        t.resident_name as residentName,
+        t.phone,
+        t.account,
+        h.house_name as houseName
+        FROM
+        t_bill b
+        LEFT JOIN t_contract c ON c.contract_number = b.contract_number and c.disabled=0
+        LEFT JOIN t_house h ON h.id = c.house_id and h.disabled=0
+        LEFT JOIN t_tenant t ON t.id = c.tenant_id and t.disabled=0
+        <where>
+            <if test="query.payFeesStatus != null">
+                and b.pay_fees_status = #{query.payFeesStatus}
+            </if>
+            <if test="query.phone != null and query.phone !=''">
+                and t.phone = #{query.phone}
+            </if>
+            <if test="query.residentName != null and query.residentName !=''">
+                and t.resident_name like concat('%',#{query.residentName},'%')
+            </if>
+            <if test="query.contractNumber != null and query.contractNumber !=''">
+                and b.contract_number = #{query.contractNumber}
+            </if>
+            <if test="query.userId != null and query.userId !=''">
+                and t.id = #{query.userId}
+            </if>
+            <if test="query.billType != null">
+                and b.bill_type = #{query.billType}
+            </if>
+            and b.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+        </where>
+        order by b.bill_type,b.payable_fees_time
+    </select>
+    <select id="invoiceList" resultType="com.ruoyi.system.dto.TBillDto">
+        SELECT
+        b.*,
+        t.resident_name as residentName,
+        t.phone,
+        t.account,
+        h.house_name as houseName
+        FROM
+        t_bill b
+        LEFT JOIN t_contract c ON c.contract_number = b.contract_number and c.disabled=0
+        LEFT JOIN t_house h ON h.id = c.house_id and h.disabled=0
+        LEFT JOIN t_tenant t ON t.id = c.tenant_id and t.disabled=0
+        LEFT JOIN t_invoice_to_bill tb ON b.id = tb.bill_id
+        <where>
+            <if test="query.phone != null and query.phone !=''">
+                and t.phone = #{query.phone}
+            </if>
+            <if test="query.residentName != null and query.residentName !=''">
+                and t.resident_name like concat('%',#{query.residentName},'%')
+            </if>
+            <if test="query.contractNumber != null and query.contractNumber !=''">
+                and b.contract_number = #{query.contractNumber}
+            </if>
+            <if test="query.userId != null and query.userId !=''">
+                and t.id = #{query.userId}
+            </if>
+            and b.pay_fees_status = 3
+            and tb.invoice_id IS NULL
+            and b.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+        </where>
+        order by b.pay_fees_time
+    </select>
+
+    <select id="selectDetailByBillId" resultType="com.ruoyi.system.dto.TBillDto">
+        SELECT
+            b.*,
+            t.resident_name as residentName,
+            t.email,
+            t.phone,
+            t.account,
+            h.house_name as houseName,
+            c.contract_name,c.pay_type,c.party_two_name,c.total_year,c.deposit
+        FROM
+            t_bill b
+        LEFT JOIN t_contract c ON c.contract_number = b.contract_number and c.disabled=0
+        LEFT JOIN t_house h ON h.id = c.house_id and h.disabled=0
+        LEFT JOIN t_tenant t ON t.id = c.tenant_id and t.disabled=0
+        where b.id = #{billId}
+    </select>
+
+    <select id="statisticsAllRent" resultType="java.math.BigDecimal">
+        SELECT ifnull(sum(payable_fees_money),0) as amount FROM t_bill b
+        LEFT JOIN t_contract c ON c.contract_number = b.contract_number and c.disabled=0
+        LEFT JOIN t_house h ON h.id = c.house_id and h.disabled=0
+        LEFT JOIN t_tenant t ON t.id = c.tenant_id and t.disabled=0
+        <where>
+            b.disabled=0 and b.pay_fees_status!='5'
+            <if test="query.payFeesStatus != null">
+                and b.pay_fees_status = #{query.payFeesStatus}
+            </if>
+            <if test="query.phone != null and query.phone !=''">
+                and t.phone = #{query.phone}
+            </if>
+            <if test="query.residentName != null and query.residentName !=''">
+                and t.resident_name like concat('%',#{query.residentName},'%')
+            </if>
+            <if test="query.contractNumber != null and query.contractNumber !=''">
+                and b.contract_number = #{query.contractNumber}
+            </if>
+            <if test="query.userId != null and query.userId !=''">
+                and t.id = #{query.userId}
+            </if>
+            <if test='query.businessDeptId != null and query.businessDeptId != "" and query.businessDeptId!="0"'>
+                and b.business_dept_id = #{query.businessDeptId}
+            </if>
+            <if test="query.billType != null">
+                and b.bill_type = #{query.billType}
+            </if>
+        </where>
+
+    </select>
+
+    <select id="statisticsNoPay" resultType="java.math.BigDecimal">
+        SELECT ifnull(sum(outstanding_money),0) as amount FROM t_bill b
+        LEFT JOIN t_contract c ON c.contract_number = b.contract_number and c.disabled=0
+        LEFT JOIN t_house h ON h.id = c.house_id and h.disabled=0
+        LEFT JOIN t_tenant t ON t.id = c.tenant_id and t.disabled=0
+        <where>
+            b.disabled=0 and b.pay_fees_status!='3' and b.pay_fees_status!='5'
+            <if test="query.payFeesStatus != null">
+                and b.pay_fees_status = #{query.payFeesStatus}
+            </if>
+            <if test="query.phone != null and query.phone !=''">
+                and t.phone = #{query.phone}
+            </if>
+            <if test="query.residentName != null and query.residentName !=''">
+                and t.resident_name like concat('%',#{query.residentName},'%')
+            </if>
+            <if test="query.contractNumber != null and query.contractNumber !=''">
+                and b.contract_number = #{query.contractNumber}
+            </if>
+            <if test="query.userId != null and query.userId !=''">
+                and t.id = #{query.userId}
+            </if>
+            <if test='query.businessDeptId != null and query.businessDeptId != "" and query.businessDeptId!="0"'>
+                and b.business_dept_id = #{query.businessDeptId}
+            </if>
+            <if test="query.billType != null">
+                and b.bill_type = #{query.billType}
+            </if>
+        </where>
+    </select>
+
+    <select id="statisticsPayed" resultType="java.math.BigDecimal">
+        SELECT ifnull(sum(pay_fees_money),0) as amount FROM t_bill b
+        LEFT JOIN t_contract c ON c.contract_number = b.contract_number and c.disabled=0
+        LEFT JOIN t_house h ON h.id = c.house_id and h.disabled=0
+        LEFT JOIN t_tenant t ON t.id = c.tenant_id and t.disabled=0
+        <where>
+            b.disabled=0 and b.pay_fees_status!='5'
+            <if test="query.payFeesStatus != null">
+                and b.pay_fees_status = #{query.payFeesStatus}
+            </if>
+            <if test="query.phone != null and query.phone !=''">
+                and t.phone = #{query.phone}
+            </if>
+            <if test="query.residentName != null and query.residentName !=''">
+                and t.resident_name like concat('%',#{query.residentName},'%')
+            </if>
+            <if test="query.contractNumber != null and query.contractNumber !=''">
+                and b.contract_number = #{query.contractNumber}
+            </if>
+            <if test="query.userId != null and query.userId !=''">
+                and t.id = #{query.userId}
+            </if>
+            <if test='query.businessDeptId != null and query.businessDeptId != "" and query.businessDeptId!="0"'>
+                and b.business_dept_id = #{query.businessDeptId}
+            </if>
+            <if test="query.billType != null">
+                and b.bill_type = #{query.billType}
+            </if>
+        </where>
+    </select>
+
+    <select id="statisticsOverdue" resultType="java.math.BigDecimal">
+        SELECT ifnull(sum(outstanding_money),0) as amount FROM t_bill b
+        LEFT JOIN t_contract c ON c.contract_number = b.contract_number and c.disabled=0
+        LEFT JOIN t_house h ON h.id = c.house_id and h.disabled=0
+        LEFT JOIN t_tenant t ON t.id = c.tenant_id and t.disabled=0
+        <where>
+            b.disabled=0 and b.pay_fees_status='4'
+            <if test="query.payFeesStatus != null">
+                and b.pay_fees_status = #{query.payFeesStatus}
+            </if>
+            <if test="query.phone != null and query.phone !=''">
+                and t.phone = #{query.phone}
+            </if>
+            <if test="query.residentName != null and query.residentName !=''">
+                and t.resident_name like concat('%',#{query.residentName},'%')
+            </if>
+            <if test="query.contractNumber != null and query.contractNumber !=''">
+                and b.contract_number = #{query.contractNumber}
+            </if>
+            <if test="query.userId != null and query.userId !=''">
+                and t.id = #{query.userId}
+            </if>
+            <if test='query.businessDeptId != null and query.businessDeptId != "" and query.businessDeptId!="0"'>
+                and b.business_dept_id = #{query.businessDeptId}
+            </if>
+            <if test="query.billType != null">
+                and b.bill_type = #{query.billType}
+            </if>
+        </where>
+    </select>
+    <select id="batchBillCount" resultType="java.lang.Integer">
+        SELECT
+            count(b.id)
+        FROM
+            t_bill b
+        LEFT JOIN t_contract c ON c.contract_number = b.contract_number and c.disabled=0
+        LEFT JOIN t_house h ON h.id = c.house_id and h.disabled=0
+        LEFT JOIN t_tenant t ON t.id = c.tenant_id and t.disabled=0
+        <where>
+            <if test="userId != null and userId !=''">
+                AND t.id = #{userId}
+            </if>
+            <if test="billIds != null and billIds.size() > 0">
+                AND b.id NOT IN
+                <foreach collection="billIds" item="item" index="index" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            AND b.bill_type = 3
+            AND b.pay_fees_status != 3
+        </where>
+    </select>
+    <select id="getStreetRentRank" resultType="com.ruoyi.system.vo.ScreenRentRankVO">
+        SELECT
+            ts.street_name,ROUND(COALESCE(SUM(tb.pay_fees_money),0) /10000,2) AS rentAmount
+        FROM
+            t_street ts
+                LEFT JOIN t_house th ON ts.id = th.street_id
+                LEFT JOIN t_contract tc ON tc.house_id = th.id AND tc.pay_type = 2
+                LEFT JOIN t_bill tb ON tc.id = tb.contract_id AND tb.pay_fees_status != 5
+            <where>
+                <if test="businessDeptId != 0">
+                    AND th.business_dept_id = #{businessDeptId}
+                </if>
+            </where>
+        GROUP BY ts.id
+        ORDER BY rentAmount DESC
+    </select>
+    <select id="getJiFuBillList" resultType="com.ruoyi.system.model.TBill" parameterType="java.lang.String">
+        SELECT tb.* FROM t_bill tb LEFT JOIN t_contract tt ON tb.contract_id = tt.id
+        <where>
+            tt.pay_type = 2 AND tb.bill_type = ${@com.ruoyi.common.enums.BillTypeEnum@Zujin.getCode()} AND tb.pay_fees_status != 5
+            <if test="businessDeptId != null and businessDeptId != 0">
+                AND tb.business_dept_id = #{businessDeptId}
+            </if>
+            <if test="first!=null and last !=null">
+                AND tb.payable_fees_time BETWEEN #{first} AND #{last}
+            </if>
+        </where>
+    </select>
 </mapper>

--
Gitblit v1.7.1