|
@@ -11,6 +11,7 @@
|
|
|
<result column="month_" property="month" />
|
|
|
<result column="month_" property="monthStr" />
|
|
|
<result column="organ_id_" property="organId" />
|
|
|
+ <result column="organ_name_" property="organName" />
|
|
|
<result column="total_num_" property="totalNum" />
|
|
|
<result column="activate_num_" property="activateNum" />
|
|
|
<result column="percent_" property="percent" />
|
|
@@ -1342,6 +1343,21 @@
|
|
|
</if>
|
|
|
GROUP BY DATE_FORMAT(fe.create_time_,'%Y-%m-%d')
|
|
|
</select>
|
|
|
+
|
|
|
+ <select id="getOrganFinancePayDataWithTimely" resultMap="IndexBaseMonthData">
|
|
|
+ SELECT SUM(fe.amount_) percent_,o.id_ organ_id_,o.name_ organ_name_
|
|
|
+ FROM organization o
|
|
|
+ LEFT JOIN financial_expenditure fe ON o.id_ = fe.organ_id_ AND fe.tenant_id_ = o.tenant_id_
|
|
|
+ AND DATE_FORMAT(fe.create_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate} AND fe.del_flag_ = 0
|
|
|
+ <if test="organIds!=null and organIds.size()>0">
|
|
|
+ AND fe.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ WHERE o.tenant_id_ = #{tenantId}
|
|
|
+ GROUP BY o.id_ ORDER BY percent_ DESC
|
|
|
+ </select>
|
|
|
<select id="getFinanceBalanceDataWithTimely" resultMap="IndexBaseMonthData">
|
|
|
SELECT spo.organ_id_,SUM(CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) total_num_,
|
|
|
SUM(CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) activate_num_,
|
|
@@ -1356,6 +1372,21 @@
|
|
|
</if>
|
|
|
GROUP BY DATE_FORMAT(spo.pay_time_,'%Y-%m-%d')
|
|
|
</select>
|
|
|
+ <select id="getOrganFinanceBalanceDataWithTimely" resultMap="IndexBaseMonthData">
|
|
|
+ SELECT SUM(CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) percent_,
|
|
|
+ o.id_ organ_id_,o.name_ organ_name_
|
|
|
+ FROM organization o
|
|
|
+ LEFT JOIN student_payment_order spo ON o.id_ = spo.organ_id_ AND o.tenant_id_ = spo.tenant_id_
|
|
|
+ AND spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
|
|
|
+ <if test="organIds!=null and organIds.size() > 0">
|
|
|
+ AND spo.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ WHERE o.tenant_id_ = #{tenantId}
|
|
|
+ GROUP BY o.id_ ORDER BY percent_ DESC
|
|
|
+ </select>
|
|
|
<select id="getFinanceActualDataWithTimely" resultMap="IndexBaseMonthData">
|
|
|
SELECT spo.organ_id_,SUM(spo.actual_amount_) total_num_,
|
|
|
SUM(spo.actual_amount_) activate_num_,
|
|
@@ -1370,6 +1401,20 @@
|
|
|
</if>
|
|
|
GROUP BY DATE_FORMAT(spo.pay_time_,'%Y-%m-%d')
|
|
|
</select>
|
|
|
+ <select id="getOrganFinanceActualDataWithTimely" resultMap="IndexBaseMonthData">
|
|
|
+ SELECT SUM(spo.actual_amount_) percent_,o.id_ organ_id_,o.name_ organ_name_
|
|
|
+ FROM organization o
|
|
|
+ LEFT JOIN student_payment_order spo ON o.id_ = spo.organ_id_ AND o.tenant_id_ = spo.tenant_id_
|
|
|
+ AND spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
|
|
|
+ <if test="organIds!=null and organIds.size()>0">
|
|
|
+ AND spo.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ WHERE o.tenant_id_ = #{tenantId}
|
|
|
+ GROUP BY o.id_ ORDER BY percent_ DESC
|
|
|
+ </select>
|
|
|
<select id="getTotalAmountDataWithTimely" resultMap="IndexBaseMonthData">
|
|
|
SELECT spo.organ_id_,SUM(CASE WHEN spo.actual_amount_ IS NULL THEN 0 ELSE spo.actual_amount_ END +
|
|
|
CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) total_num_,
|
|
@@ -1387,6 +1432,22 @@
|
|
|
</if>
|
|
|
GROUP BY DATE_FORMAT(spo.pay_time_,'%Y-%m-%d')
|
|
|
</select>
|
|
|
+ <select id="getOrganTotalAmountDataWithTimely" resultMap="IndexBaseMonthData">
|
|
|
+ SELECT SUM(CASE WHEN spo.actual_amount_ IS NULL THEN 0 ELSE spo.actual_amount_ END +
|
|
|
+ CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) percent_,
|
|
|
+ o.id_ organ_id_,o.name_ organ_name_
|
|
|
+ FROM organization o
|
|
|
+ LEFT JOIN student_payment_order spo ON o.id_ = spo.organ_id_ AND o.tenant_id_ = spo.tenant_id_
|
|
|
+ AND spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
|
|
|
+ <if test="organIds!=null and organIds.size()>0">
|
|
|
+ AND spo.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ WHERE o.tenant_id_ = #{tenantId}
|
|
|
+ GROUP BY o.id_ ORDER BY percent_ DESC
|
|
|
+ </select>
|
|
|
<select id="getTotalAmountDataWithTimelyDetails" resultMap="IndexBaseMonthData">
|
|
|
SELECT spo.organ_id_,SUM(CASE WHEN spo.actual_amount_ IS NULL THEN 0 ELSE spo.actual_amount_ END +
|
|
|
CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) total_num_,
|
|
@@ -1414,6 +1475,32 @@
|
|
|
GROUP BY DATE_FORMAT(spo.pay_time_,'%Y-%m-%d')
|
|
|
</select>
|
|
|
|
|
|
+ <select id="getOrganTotalAmountDataWithTimelyDetails" resultMap="IndexBaseMonthData">
|
|
|
+ SELECT SUM(CASE WHEN spo.actual_amount_ IS NULL THEN 0 ELSE spo.actual_amount_ END +
|
|
|
+ CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) percent_,
|
|
|
+ o.id_ organ_id_,o.name_ organ_name_
|
|
|
+ FROM organization o
|
|
|
+ LEFT JOIN student_payment_order spo ON o.id_ = spo.organ_id_ AND o.tenant_id_ = spo.tenant_id_
|
|
|
+ AND spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
|
|
|
+ <if test="orderType != null">
|
|
|
+ AND FIND_IN_SET(spo.type_,#{orderType})
|
|
|
+ </if>
|
|
|
+ <if test="notOrderType != null">
|
|
|
+ AND spo.type_ NOT IN
|
|
|
+ <foreach collection="notOrderType" open="(" close=")" item="item" separator=",">
|
|
|
+ #{item}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ <if test="organIds!=null and organIds.size()>0">
|
|
|
+ AND spo.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ WHERE o.tenant_id_ = #{tenantId}
|
|
|
+ GROUP BY o.id_ ORDER BY percent_ DESC
|
|
|
+ </select>
|
|
|
+
|
|
|
<select id="getVipAmountDataWithTimelyDetails" resultMap="IndexBaseMonthData">
|
|
|
SELECT organ_id_,SUM(c.total_num_) total_num_,SUM(c.total_num_) activate_num_,SUM(c.total_num_) percent_,month_ FROM (
|
|
|
SELECT spo.organ_id_,SUM(CASE WHEN spod.price_ IS NULL THEN 0 ELSE spod.price_ END) total_num_,DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') month_
|
|
@@ -1445,6 +1532,38 @@
|
|
|
)c GROUP BY DATE_FORMAT(c.month_,'%Y-%m-%d')
|
|
|
</select>
|
|
|
|
|
|
+ <select id="getOrganVipAmountDataWithTimelyDetails" resultMap="IndexBaseMonthData">
|
|
|
+ SELECT o.id_ organ_id_,o.name_ organ_name_,SUM(c.total_num_) percent_ FROM organization o
|
|
|
+ LEFT JOIN (SELECT spo.organ_id_,SUM(CASE WHEN spod.price_ IS NULL THEN 0 ELSE spod.price_ END) total_num_
|
|
|
+ FROM student_payment_order spo
|
|
|
+ LEFT JOIN student_payment_order_detail spod ON spo.id_ = spod.payment_order_id_
|
|
|
+ WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate} and spo.tenant_id_ = #{tenantId}
|
|
|
+ AND spo.type_ = 'DEGREE' AND spod.type_ IN ('THEORY_COURSE','VIP')
|
|
|
+ <if test="organIds!=null and organIds.size()>0">
|
|
|
+ AND spo.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ GROUP BY spo.organ_id_
|
|
|
+ UNION ALL
|
|
|
+ SELECT spo.organ_id_,SUM(CASE WHEN spo.actual_amount_ IS NULL THEN 0 ELSE spo.actual_amount_ END +
|
|
|
+ CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) total_num_
|
|
|
+ FROM student_payment_order spo
|
|
|
+ WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
|
|
|
+ AND spo.type_ = 'SMALL_CLASS_TO_BUY'
|
|
|
+ <if test="organIds!=null and organIds.size()>0">
|
|
|
+ AND spo.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ GROUP BY spo.organ_id_
|
|
|
+ )c ON c.organ_id_ = o.id_
|
|
|
+ WHERE o.tenant_id_ = #{tenantId}
|
|
|
+ GROUP BY o.id_ ORDER BY percent_ DESC
|
|
|
+ </select>
|
|
|
+
|
|
|
<select id="getOtherAmountDataWithTimelyDetails" resultMap="IndexBaseMonthData">
|
|
|
SELECT organ_id_,SUM(c.total_num_) total_num_,SUM(c.total_num_) activate_num_,SUM(c.total_num_) percent_,month_,c.type_ order_type_ FROM (
|
|
|
SELECT spo.organ_id_,SUM(CASE WHEN spo.actual_amount_ IS NULL THEN 0 ELSE spo.actual_amount_ END +
|
|
@@ -1476,6 +1595,39 @@
|
|
|
)c GROUP BY DATE_FORMAT(c.month_,'%Y-%m-%d'),c.type_
|
|
|
</select>
|
|
|
|
|
|
+ <select id="getOrganOtherAmountDataWithTimelyDetails" resultMap="IndexBaseMonthData">
|
|
|
+ SELECT o.id_ organ_id_,o.name_ organ_name_,SUM(c.total_num_) percent_ FROM organization o
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT spo.organ_id_,SUM(CASE WHEN spo.actual_amount_ IS NULL THEN 0 ELSE spo.actual_amount_ END +
|
|
|
+ CASE WHEN spo.balance_payment_amount_ IS NULL THEN 0 ELSE spo.balance_payment_amount_ END) total_num_,spo.type_
|
|
|
+ FROM student_payment_order spo
|
|
|
+ WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate} and spo.tenant_id_ = #{tenantId}
|
|
|
+ AND spo.type_ NOT IN ('APPLY','RENEW','PRACTICE_GROUP_BUY','PRACTICE_GROUP_RENEW','SMALL_CLASS_TO_BUY','DEGREE')
|
|
|
+ <if test="organIds!=null and organIds.size()>0">
|
|
|
+ AND spo.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ GROUP BY spo.organ_id_,spo.type_
|
|
|
+ UNION ALL
|
|
|
+ SELECT spo.organ_id_,SUM(CASE WHEN spod.price_ IS NULL THEN 0 ELSE spod.price_ END) total_num_,spo.type_
|
|
|
+ FROM student_payment_order spo
|
|
|
+ LEFT JOIN student_payment_order_detail spod ON spo.id_ = spod.payment_order_id_
|
|
|
+ WHERE spo.status_ = 'SUCCESS' AND DATE_FORMAT(spo.pay_time_,'%Y-%m-%d') BETWEEN #{startDate} AND #{endDate}
|
|
|
+ AND spo.type_ = 'DEGREE' AND spod.type_ = 'DEGREE_REGISTRATION'
|
|
|
+ <if test="organIds!=null and organIds.size()>0">
|
|
|
+ AND spo.organ_id_ IN
|
|
|
+ <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
|
|
|
+ #{organId}
|
|
|
+ </foreach>
|
|
|
+ </if>
|
|
|
+ GROUP BY spo.organ_id_,spo.type_
|
|
|
+ )c ON c.organ_id_ = o.id_
|
|
|
+ WHERE o.tenant_id_ = #{tenantId}
|
|
|
+ GROUP BY o.id_ ORDER BY percent_ DESC
|
|
|
+ </select>
|
|
|
+
|
|
|
<sql id="queryTeacherServeInfoCondition">
|
|
|
<where>
|
|
|
sees.tenant_id_ = #{tenantId}
|