123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.winhc.repal.repository.RepalBillMapper">
- <select id="getRepalBillPage" resultType="com.winhc.repal.entity.RepalBill" parameterType="com.winhc.repal.model.bo.BillPageBO">
- SELECT bill.* FROM REPAL_BILL AS bill
- <if test="!param2.allFlag">
- LEFT JOIN REPAL_RESPONSIBLE_PERSON AS person ON person.REPAL_BILL_ID = bill.ID
- </if>
- <if test="param2.dynamicType != null">
- LEFT JOIN REPAL_REMIND_READ_INFO ri ON bill.id = ri.REPAL_BILL_ID AND ri.USER_ID = #{param2.userId}
- </if>
- <where>
- <if test="!param2.allFlag">
- AND person.USER_ID = #{param2.userId}
- AND person.DELETED = 0
- </if>
- AND bill.REPAL_BOOK_ID = #{param2.repalBookId}
- AND bill.REPAL_GROUP_ID = #{param2.repalGroupId}
- AND bill.DELETED = 0
- AND bill.REPAL_BILL_TYPE = #{param2.repalBillType}
- <if test="param2.overdueStatus != null">
- <if test="param2.overdueStatus == 1">
- AND bill.REPAL_BILL_STATUS = 1
- </if>
- <if test="param2.overdueStatus == 2">
- AND bill.REPAL_BILL_STATUS = 1 AND bill.END_DATE <![CDATA[<=]]> date_add(CURDATE(), interval 7 day) and bill.END_DATE >= CURDATE()
- </if>
- <if test="param2.overdueStatus == 3">
- AND bill.REPAL_BILL_STATUS = 2
- </if>
- <if test="param2.overdueStatus == 4">
- AND bill.REPAL_BILL_STATUS = 3
- </if>
- <if test="param2.overdueStatus == 5">
- AND bill.REPAL_BILL_STATUS = 4
- </if>
- </if>
- <if test="param2.diagnosisGrade != null">
- <if test='param2.diagnosisGrade == "E"'>
- AND (DIAGNOSIS_GRADE = '' OR DIAGNOSIS_GRADE IS NULL)
- </if>
- <if test='param2.diagnosisGrade != "E"'>
- AND bill.DIAGNOSIS_GRADE = #{param2.diagnosisGrade}
- </if>
- </if>
- <if test="param2.startDate != null">
- AND bill.END_DATE >= #{param2.startDate}
- </if>
- <if test="param2.endDate != null">
- AND bill.END_DATE <![CDATA[<=]]> #{param2.endDate}
- </if>
- <if test="param2.dynamicType != null">
- AND EXISTS (SELECT 1 FROM REPAL_REMIND_HISTORY his WHERE
- <if test="param2.dynamicType == 1">
- his.REMIND_TYPE = 'RISK' AND his.id > ri.RISK_REMIND_ID
- </if>
- <if test="param2.dynamicType == 2">
- his.REMIND_TYPE = 'FINANCE' AND his.id > ri.FINANCE_REMIND_ID
- </if>
- <if test="param2.dynamicType == 3">
- his.REMIND_TYPE = 'RANK' AND his.id > ri.RANK_REMIND_ID
- </if>
- <if test="param2.dynamicType == 4">
- his.REMIND_TYPE = 'OVERDUE' AND his.id > ri.OVERDUE_REMIND_ID
- </if>
- AND his.REPAL_BILL_ID = bill.ID)
- </if>
- </where>
- <if test="param2.sortedType != null">
- <if test="param2.sortedType == 1">
- ORDER BY bill.END_DATE, bill.ID
- </if>
- <if test="param2.sortedType == 2">
- ORDER BY bill.END_DATE DESC, bill.ID DESC
- </if>
- <if test="param2.sortedType == 3">
- ORDER BY bill.TOTAL_MONEY, bill.ID
- </if>
- <if test="param2.sortedType == 4">
- ORDER BY bill.TOTAL_MONEY DESC, bill.ID DESC
- </if>
- </if>
- <if test="param2.sortedType == null">
- ORDER BY bill.ID DESC
- </if>
- </select>
- <select id="getTotalMoneyByGroup" resultType="com.winhc.repal.model.bo.TotalMoneyBO" parameterType="com.winhc.repal.model.bo.BillPageBO">
- SELECT IFNULL(SUM(bill.TOTAL_MONEY),0) AS totalMoney, COUNT(bill.ID) AS totalCount FROM REPAL_BILL AS bill
- <if test="!allFlag">
- LEFT JOIN REPAL_RESPONSIBLE_PERSON AS person ON person.REPAL_BILL_ID = bill.ID
- </if>
- <if test="dynamicType != null">
- LEFT JOIN REPAL_REMIND_READ_INFO ri ON bill.id = ri.REPAL_BILL_ID AND ri.USER_ID = #{userId}
- </if>
- <where>
- <if test="!allFlag">
- AND person.USER_ID = #{userId}
- AND person.DELETED = 0
- </if>
- AND bill.REPAL_BOOK_ID = #{repalBookId}
- AND bill.REPAL_GROUP_ID = #{repalGroupId}
- AND bill.DELETED = 0
- AND bill.REPAL_BILL_TYPE = #{repalBillType}
- <if test="overdueStatus != null">
- <if test="overdueStatus == 1">
- AND bill.REPAL_BILL_STATUS = 1
- </if>
- <if test="overdueStatus == 2">
- AND bill.REPAL_BILL_STATUS = 1 AND bill.END_DATE <![CDATA[<=]]> date_add(CURDATE(), interval 7 day) and bill.END_DATE >= CURDATE()
- </if>
- <if test="overdueStatus == 3">
- AND bill.REPAL_BILL_STATUS = 2
- </if>
- <if test="overdueStatus == 4">
- AND bill.REPAL_BILL_STATUS = 3
- </if>
- <if test="overdueStatus == 5">
- AND bill.REPAL_BILL_STATUS = 4
- </if>
- <if test="overdueStatus == 6">
- AND bill.REPAL_BILL_STATUS IN (1,2)
- </if>
- </if>
- <if test="diagnosisGrade != null">
- <if test='diagnosisGrade == "E"'>
- AND (DIAGNOSIS_GRADE = '' OR DIAGNOSIS_GRADE IS NULL)
- </if>
- <if test='diagnosisGrade != "E"'>
- AND bill.DIAGNOSIS_GRADE = #{diagnosisGrade}
- </if>
- </if>
- <if test="startDate != null">
- AND bill.END_DATE >= #{startDate}
- </if>
- <if test="endDate != null">
- AND bill.END_DATE <![CDATA[<=]]> #{endDate}
- </if>
- <if test="dynamicType != null">
- AND EXISTS (SELECT 1 FROM REPAL_REMIND_HISTORY his WHERE
- <if test="dynamicType == 1">
- his.REMIND_TYPE = 'RISK' AND his.id > ri.RISK_REMIND_ID
- </if>
- <if test="dynamicType == 2">
- his.REMIND_TYPE = 'FINANCE' AND his.id > ri.FINANCE_REMIND_ID
- </if>
- <if test="dynamicType == 3">
- his.REMIND_TYPE = 'RANK' AND his.id > ri.RANK_REMIND_ID
- </if>
- <if test="dynamicType == 4">
- his.REMIND_TYPE = 'OVERDUE' AND his.id > ri.OVERDUE_REMIND_ID
- </if>
- AND his.REPAL_BILL_ID = bill.ID)
- </if>
- </where>
- </select>
- <select id="searchPage" parameterType="com.winhc.repal.model.bo.SearchBillPageBO" resultType="com.winhc.repal.entity.RepalBill">
- SELECT
- DISTINCT
- bill.* FROM REPAL_BILL AS bill
- LEFT JOIN REPAL_RESPONSIBLE_PERSON AS aPerson ON aPerson.REPAL_BILL_ID = bill.ID and bill.REPAL_BILL_TYPE = 1 and aPerson.DELETED = 0
- LEFT JOIN REPAL_RESPONSIBLE_PERSON AS bPerson ON bPerson.REPAL_BILL_ID = bill.ID and bill.REPAL_BILL_TYPE = 2 and bPerson.DELETED = 0
- <where>
- <if test="param2.repalBillType != null">
- <if test="param2.repalBillType == 1">
- <if test="!param2.receivableFlag">
- (aPerson.USER_ID = #{param2.userId})
- </if>
- </if>
- <if test="param2.repalBillType == 2">
- <if test="!param2.receiptFlag">
- (bPerson.USER_ID = #{param2.userId})
- </if>
- </if>
- </if>
- <if test="param2.repalBillType == null">
- <if test="!param2.allFlag">
- <if test="!param2.receivableFlag and param2.receiptFlag">
- (aPerson.USER_ID = #{param2.userId} or bPerson.USER_ID is not null)
- </if>
- <if test="!param2.receiptFlag and param2.receivableFlag">
- (bPerson.USER_ID = #{param2.userId} or aPerson.USER_ID is not null)
- </if>
- </if>
- </if>
- <if test="param2.repalBillType != null">
- AND bill.REPAL_BILL_TYPE = #{param2.repalBillType}
- </if>
- AND bill.REPAL_BOOK_ID = #{param2.repalBookId}
- AND bill.REPAL_GROUP_ID = #{param2.repalGroupId}
- AND bill.DELETED = 0
- <if test="param2.statusFlag == 1">
- AND bill.REPAL_BILL_STATUS IN (1,2)
- </if>
- <if test='param2.keyword != null'>
- AND bill.CUSTOMER_NAME LIKE concat('%', #{param2.keyword}, '%')
- </if>
- </where>
- ORDER BY bill.ID DESC
- </select>
- <select id="getTotalMoneyByUser" resultType="com.winhc.repal.model.bo.TotalMoneyBO">
- SELECT COUNT(*) AS totalCount, IFNULL(SUM(bill.RECEIVABLE), 0) AS totalMoney FROM REPAL_RESPONSIBLE_PERSON AS person
- LEFT JOIN REPAL_BILL AS bill ON person.REPAL_BILL_ID = bill.ID
- WHERE person.USER_ID = #{userId} AND person.DELETED = 0
- <if test="repalBillStatus != null">
- AND bill.REPAL_BILL_STATUS = #{repalBillStatus}
- </if>
- AND bill.REPAL_GROUP_ID = #{repalGroupId}
- AND bill.REPAL_BOOK_ID = #{repalBookId}
- AND bill.REPAL_BILL_TYPE = #{repalGroupType}
- </select>
- <select id="getCustRepalBillPage" resultType="com.winhc.repal.entity.RepalBill">
- SELECT bill.* FROM REPAL_BILL AS bill
- <where>
- AND bill.CUSTOMER_ID = #{custId}
- AND bill.DELETED = 0
- </where>
- ORDER BY bill.ID DESC
- </select>
- <select id="getManageBillInfo" resultType="com.winhc.repal.model.bo.ManageBillInfoBO">
- select (SELECT count(*) FROM REPAL_BILL A WHERE
- REPAL_GROUP_ID = #{groupId}
- AND DELETED = 0
- AND REPAL_BILL_STATUS = 2
- AND REPAL_BILL_TYPE = 1
- <if test="!allFlag">
- AND EXISTS ( SELECT 1 FROM REPAL_RESPONSIBLE_PERSON B WHERE B.REPAL_BILL_ID = A.ID AND B.USER_ID = #{userId})
- </if>
- ) as totalOverdueCount,
- (SELECT IFNULL(sum(RECEIVABLE),0) FROM REPAL_BILL A
- WHERE REPAL_GROUP_ID = #{groupId}
- AND DELETED = 0
- AND REPAL_BILL_STATUS = 2
- AND REPAL_BILL_TYPE = 1
- <if test="!allFlag">
- AND EXISTS ( SELECT 1 FROM REPAL_RESPONSIBLE_PERSON B WHERE B.REPAL_BILL_ID = A.ID AND B.USER_ID = #{userId})
- </if>
- ) as totalOverdue,
- (SELECT IFNULL( sum( RECEIVABLE ), 0 ) FROM REPAL_BILL A
- WHERE REPAL_GROUP_ID = #{groupId}
- AND DELETED = 0
- AND REPAL_BILL_STATUS = 1
- AND REPAL_BILL_TYPE = 1
- AND END_DATE <![CDATA[<=]]> #{startTime}
- <if test="!allFlag">
- AND EXISTS ( SELECT 1 FROM REPAL_RESPONSIBLE_PERSON B WHERE B.REPAL_BILL_ID = A.ID AND B.USER_ID = #{userId})
- </if>
- ) as totalOverdueWeek,
- (SELECT count(*) FROM REPAL_BILL A
- WHERE
- REPAL_GROUP_ID = #{groupId}
- AND DELETED = 0
- AND REPAL_BILL_STATUS = 1
- AND REPAL_BILL_TYPE = 1
- AND END_DATE <![CDATA[<=]]> #{startTime}
- <if test="!allFlag">
- AND EXISTS ( SELECT 1 FROM REPAL_RESPONSIBLE_PERSON B WHERE B.REPAL_BILL_ID = A.ID AND B.USER_ID = #{userId})
- </if>
- ) as totalOverdueWeekCount,
- (SELECT IFNULL( sum( TOTAL_MONEY ), 0 ) FROM REPAL_BILL A
- WHERE
- REPAL_GROUP_ID = #{groupId}
- AND DELETED = 0
- AND REPAL_BILL_TYPE = 1
- AND REPAL_BILL_STATUS in (1,2)
- <if test="!allFlag">
- AND EXISTS ( SELECT 1 FROM REPAL_RESPONSIBLE_PERSON B WHERE B.REPAL_BILL_ID = A.ID AND B.USER_ID = #{userId})
- </if>
- ) as totalMoney from dual
- </select>
- <select id="getManageBillPage" resultType="com.winhc.repal.model.bo.RepalManageBillPageBO">
- SELECT
- A.ID AS repalBillId,
- A.REPAL_BOOK_ID AS repalBookId,
- B.REPAL_BOOK_NAME AS repalBookName,
- A.REPAL_BILL_STATUS AS repalBillStatus,
- A.END_DATE AS endDate,
- C.CUST_PROPERTY AS custProperty,
- C.CUST_NAME AS customerName,
- A.TOTAL_MONEY AS totalMoney,
- A.RECEIVABLE AS receivable
- FROM
- REPAL_BILL A
- LEFT JOIN REPAL_BOOK B ON A.REPAL_BOOK_ID = B.ID
- LEFT JOIN REPAL_CUSTOMER C ON A.CUSTOMER_ID = C.CUST_ID
- WHERE
- A.REPAL_GROUP_ID = #{groupId}
- AND A.DELETED = 0
- AND C.DELETED = 0
- AND A.REPAL_BILL_TYPE = 1
- AND ((A.REPAL_BILL_STATUS = 1
- AND A.END_DATE <![CDATA[<=]]> #{startTime}) or A.REPAL_BILL_STATUS = 2)
- <if test="!allFlag">
- AND EXISTS ( SELECT 1 FROM REPAL_RESPONSIBLE_PERSON D WHERE D.REPAL_BILL_ID = A.ID AND D.USER_ID = #{userId})
- </if>
- </select>
- <select id="getBillIdListByBookId" resultType="java.lang.Long">
- SELECT bill.ID FROM REPAL_BILL AS bill
- <if test="userId != null">
- LEFT JOIN REPAL_RESPONSIBLE_PERSON AS rPerson ON bill.ID = rPerson.REPAL_BILL_ID
- </if>
- WHERE bill.REPAL_BOOK_ID = #{repalBookId} AND bill.DELETED = 0
- <if test="userId != null">
- AND rPerson.USER_ID = #{userId}
- </if>
- </select>
- <select id="getBillGradeByBookId" resultType="java.lang.String">
- SELECT bill.DIAGNOSIS_GRADE FROM REPAL_BILL AS bill
- <if test="userId != null">
- LEFT JOIN REPAL_RESPONSIBLE_PERSON AS rPerson ON bill.ID = rPerson.REPAL_BILL_ID
- </if>
- WHERE bill.REPAL_BOOK_ID = #{repalBookId} AND bill.REPAL_BILL_TYPE = 1 AND bill.DELETED = 0
- <if test="start != null">
- AND bill.DIAGNOSIS_DATETIME >= #{start}
- </if>
- <if test="end != null">
- AND bill.DIAGNOSIS_DATETIME <![CDATA[<=]]>#{end}
- </if>
- <if test="userId != null">
- AND rPerson.USER_ID = #{userId}
- </if>
- </select>
- <select id="getBillTotal" resultType="com.winhc.repal.model.bo.HomeReceivableBO">
- SELECT
- <if test="repalBillStatus == null">
- IFNULL(SUM(bill.RECEIVABLE), 0) AS billMoney,
- IFNULL(SUM(bill.RECEIPT), 0) AS receiptMoney,
- IFNULL(SUM(bill.TOTAL_MONEY), 0) AS totalBillMoney,
- IFNULL(COUNT(bill.ID), 0) AS billCount
- </if>
- <if test="repalBillStatus == 2">
- IFNULL(SUM(bill.RECEIVABLE), 0) AS overdueTotal,
- IFNULL(COUNT(bill.ID), 0) AS overdueTotalCount
- </if>
- FROM REPAL_BILL AS bill
- <if test="userId != null">
- LEFT JOIN REPAL_RESPONSIBLE_PERSON AS rPerson ON bill.ID = rPerson.REPAL_BILL_ID
- </if>
- WHERE bill.REPAL_BOOK_ID = #{repalBookId} AND bill.DELETED = 0
- <if test="repalBillStatus == 2">
- AND bill.REPAL_BILL_STATUS = 2
- </if>
- <if test="repalBillStatus == null">
- AND bill.REPAL_BILL_STATUS IN (1, 2)
- </if>
- AND bill.REPAL_BILL_TYPE = #{repalBillType}
- <if test="userId != null">
- AND rPerson.USER_ID = #{userId}
- </if>
- <if test="start != null">
- AND bill.END_DATE >= #{start}
- </if>
- <if test="end != null">
- AND bill.END_DATE <![CDATA[<=]]>#{end}
- </if>
- </select>
- </mapper>
|