| | |
| | | <select id="selectCoalTicket" resultType="com.gkhy.exam.pay.entity.CoalTicket"> |
| | | select id , ticket_company_name,ticket_company_code,drawer,`check`,company_code from coal_ticket |
| | | </select> |
| | | <select id="countCategory" resultType="com.gkhy.exam.pay.dto.rep.CategoryCount"> |
| | | SELECT |
| | | cc.id, |
| | | cc.subject_name, |
| | | cc.amount, |
| | | cc.category_type, |
| | | COUNT(cps.`name`) num |
| | | FROM |
| | | coal_category cc |
| | | LEFT JOIN coal_pay_category cpc ON cc.id = cpc.coal_category_id |
| | | LEFT JOIN coal_pay cp ON cpc.coal_pay_id = cp.id |
| | | LEFT JOIN coal_pay_student cps on cp.id = cps.coal_pay_id |
| | | <where> |
| | | cc.del_flag = 0 and cp.del_flag = 0 and cps.del_flag = 0 and cc.category_type = 2 and cps.pay_status =1 |
| | | <if test="year !=null and year != ''"> |
| | | and cp.year = #{year} |
| | | </if> |
| | | <if test="quarter!=null"> |
| | | and cp.quarter = #{quarter} |
| | | </if> |
| | | <if test="deptId !=null"> |
| | | and cp.dept_id = #{deptId} |
| | | </if> |
| | | </where> |
| | | GROUP BY cc.id |
| | | </select> |
| | | <select id="countThroey" resultType="com.gkhy.exam.pay.dto.rep.CateGoryTheory"> |
| | | WITH filtered_data AS ( |
| | | SELECT |
| | | cp.id AS pay_id, |
| | | cp.pay_type, |
| | | cpc.coal_category_id AS category_id |
| | | FROM |
| | | coal_pay cp |
| | | LEFT JOIN coal_pay_category cpc ON cp.id = cpc.coal_pay_id |
| | | LEFT JOIN coal_category cc ON cpc.coal_category_id = cc.id |
| | | WHERE |
| | | cc.category_type = 1 |
| | | <if test="year !=null and year != ''"> |
| | | and cp.year = #{year} |
| | | </if> |
| | | <if test="quarter!=null"> |
| | | and cp.quarter = #{quarter} |
| | | </if> |
| | | <if test="deptId!=null"> |
| | | and cp.dept_id =#{deptId} |
| | | </if> |
| | | AND cp.del_flag = 0 |
| | | ), |
| | | pay_type_data AS ( |
| | | SELECT |
| | | CASE |
| | | WHEN fd.pay_type IN (1, 3) THEN '初训理论' |
| | | ELSE '复训理论' |
| | | END AS pay_type_name, |
| | | cps.id AS student_id, |
| | | cc.amount |
| | | FROM |
| | | filtered_data fd |
| | | LEFT JOIN coal_pay_student cps ON fd.pay_id = cps.coal_pay_id |
| | | LEFT JOIN coal_category cc ON fd.category_id = cc.id |
| | | WHERE |
| | | cps.del_flag = 0 and cps.pay_status = 1 |
| | | ) |
| | | SELECT |
| | | pay_type_name, |
| | | COUNT(student_id) AS num, |
| | | MAX(amount) AS amount -- 假设需要汇总 amount |
| | | FROM |
| | | pay_type_data |
| | | GROUP BY |
| | | pay_type_name |
| | | </select> |
| | | |
| | | </mapper> |