From 8c73a9ff2bf3c88b17a1279f51c1ae3993effdcf Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: Tue, 19 Aug 2025 10:53:37 +0800
Subject: [PATCH] 修改
---
exam-system/src/main/resources/mapper/pay/NonCoalCategoryMapper.xml | 180 +++++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 159 insertions(+), 21 deletions(-)
diff --git a/exam-system/src/main/resources/mapper/pay/NonCoalCategoryMapper.xml b/exam-system/src/main/resources/mapper/pay/NonCoalCategoryMapper.xml
index 4d36750..8489cce 100644
--- a/exam-system/src/main/resources/mapper/pay/NonCoalCategoryMapper.xml
+++ b/exam-system/src/main/resources/mapper/pay/NonCoalCategoryMapper.xml
@@ -21,6 +21,13 @@
<result property="updateTime" column="update_time"/>
<result property="createBy" column="create_by"/>
<result property="createTime" column="create_time"/>
+ <result property="operateTypeName" column="operate_type_name"/>
+ <result property="districtName" column="district_name"/>
+ </resultMap>
+
+ <resultMap type="NonCoalCategory" id="NonCoalCategoryResultVO" extends="NonCoalCategoryResult">
+ <result property="operateTypeName" column="operate_type_name"/>
+
</resultMap>
<sql id="selectNonCoalCategoryVo">
@@ -30,38 +37,90 @@
subject_name,
operate_type_id,
amount,
- bussiness_code,
+ business_code,
company_code,
drawer,
reviewer,
- invoicing_company_code, describe, update_by, update_time, create_by, create_time
+ invoicing_company_code,
+ `describe`,
+ update_by,
+ update_time,
+ create_by,
+ create_time
from non_coal_category
</sql>
<select id="selectNonCoalCategoryList" parameterType="NonCoalCategory" resultMap="NonCoalCategoryResult">
- <include refid="selectNonCoalCategoryVo"/>
+ select a.id,
+ a.district_code,
+ a.category_type,
+ a.subject_name,
+ a.operate_type_id,
+ a.amount,
+ a.business_code,
+ a.company_code,
+ a.drawer,
+ a.reviewer,
+ a.invoicing_company_code,
+ a.`describe`,
+ a.update_by,
+ a.update_time,
+ a.create_by,
+ a.create_time,
+ (SELECT GROUP_CONCAT(name SEPARATOR '/') FROM sys_operate_type
+ WHERE FIND_IN_SET(id, (SELECT ancestors FROM sys_operate_type WHERE id = a.operate_type_id)) or id =
+ a.operate_type_id ) operate_type_name,
+ b.name district_name
+ from non_coal_category a
+ left join sys_district b on a.district_code = b.code
<where>
- <if test="districtCode != null and districtCode != ''">and district_code = #{districtCode}</if>
- <if test="categoryType != null ">and category_type = #{categoryType}</if>
- <if test="subjectName != null and subjectName != ''">and subject_name like concat('%', #{subjectName},
+ and a.del_flag = 0
+ <if test="districtCode != null and districtCode != ''">and a.district_code = #{districtCode}</if>
+ <if test="categoryType != null ">and a.category_type = #{categoryType}</if>
+ <if test="subjectName != null and subjectName != ''">and a.subject_name like concat('%', #{subjectName},
'%')
</if>
- <if test="operateTypeId != null ">and operate_type_id = #{operateTypeId}</if>
- <if test="amount != null ">and amount = #{amount}</if>
- <if test="bussinessCode != null and bussinessCode != ''">and bussiness_code = #{bussinessCode}</if>
- <if test="companyCode != null and companyCode != ''">and company_code = #{companyCode}</if>
- <if test="drawer != null and drawer != ''">and drawer = #{drawer}</if>
- <if test="reviewer != null and reviewer != ''">and reviewer = #{reviewer}</if>
- <if test="invoicingCompanyCode != null and invoicingCompanyCode != ''">and invoicing_company_code =
+ <if test="operateTypeId != null ">and a.operate_type_id = #{operateTypeId}</if>
+ <if test="amount != null ">and a.amount = #{amount}</if>
+ <if test="businessCode != null and businessCode != ''">and a.business_code = #{businessCode}</if>
+ <if test="companyCode != null and companyCode != ''">and a.company_code = #{companyCode}</if>
+ <if test="drawer != null and drawer != ''">and a.drawer = #{drawer}</if>
+ <if test="reviewer != null and reviewer != ''">and a.reviewer = #{reviewer}</if>
+ <if test="invoicingCompanyCode != null and invoicingCompanyCode != ''">and a.invoicing_company_code =
#{invoicingCompanyCode}
</if>
- <if test="describe != null and describe != ''">and describe = #{describe}</if>
+ <if test="describe != null and describe != ''">and a.`describe` = #{describe}</if>
</where>
+ order by create_time desc
</select>
<select id="selectNonCoalCategoryById" parameterType="Long" resultMap="NonCoalCategoryResult">
- <include refid="selectNonCoalCategoryVo"/>
- where id = #{id}
+ select a.id,
+ a.district_code,
+ a.category_type,
+ a.subject_name,
+ a.operate_type_id,
+ a.amount,
+ a.business_code,
+ a.company_code,
+ a.drawer,
+ a.reviewer,
+ a.invoicing_company_code,
+ a.`describe`,
+ a.update_by,
+ a.update_time,
+ a.create_by,
+ a.create_time,
+ (SELECT GROUP_CONCAT(name SEPARATOR '/')
+ FROM sys_operate_type
+ WHERE FIND_IN_SET(id, (SELECT ancestors FROM sys_operate_type WHERE id = a.operate_type_id))
+ or id =
+ a.operate_type_id) operate_type_name,
+ b.name district_name
+ from non_coal_category a
+ left join sys_district b on a.district_code = b.code
+
+ where a.id = #{id}
</select>
<insert id="insertNonCoalCategory" parameterType="NonCoalCategory" useGeneratedKeys="true" keyProperty="id">
@@ -72,12 +131,12 @@
<if test="subjectName != null and subjectName != ''">subject_name,</if>
<if test="operateTypeId != null">operate_type_id,</if>
<if test="amount != null">amount,</if>
- <if test="bussinessCode != null and bussinessCode != ''">bussiness_code,</if>
+ <if test="businessCode != null and businessCode != ''">business_code,</if>
<if test="companyCode != null and companyCode != ''">company_code,</if>
<if test="drawer != null and drawer != ''">drawer,</if>
<if test="reviewer != null and reviewer != ''">reviewer,</if>
<if test="invoicingCompanyCode != null and invoicingCompanyCode != ''">invoicing_company_code,</if>
- <if test="describe != null">describe,</if>
+ <if test="describe != null">`describe`,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="createBy != null">create_by,</if>
@@ -90,7 +149,7 @@
<if test="subjectName != null and subjectName != ''">#{subjectName},</if>
<if test="operateTypeId != null">#{operateTypeId},</if>
<if test="amount != null">#{amount},</if>
- <if test="bussinessCode != null and bussinessCode != ''">#{bussinessCode},</if>
+ <if test="businessCode != null and businessCode != ''">#{businessCode},</if>
<if test="companyCode != null and companyCode != ''">#{companyCode},</if>
<if test="drawer != null and drawer != ''">#{drawer},</if>
<if test="reviewer != null and reviewer != ''">#{reviewer},</if>
@@ -112,14 +171,14 @@
<if test="subjectName != null and subjectName != ''">subject_name = #{subjectName},</if>
<if test="operateTypeId != null">operate_type_id = #{operateTypeId},</if>
<if test="amount != null">amount = #{amount},</if>
- <if test="bussinessCode != null and bussinessCode != ''">bussiness_code = #{bussinessCode},</if>
+ <if test="businessCode != null and businessCode != ''">business_code = #{businessCode},</if>
<if test="companyCode != null and companyCode != ''">company_code = #{companyCode},</if>
<if test="drawer != null and drawer != ''">drawer = #{drawer},</if>
<if test="reviewer != null and reviewer != ''">reviewer = #{reviewer},</if>
<if test="invoicingCompanyCode != null and invoicingCompanyCode != ''">invoicing_company_code =
#{invoicingCompanyCode},
</if>
- <if test="describe != null">describe = #{describe},</if>
+ <if test="describe != null">`describe` = #{describe},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
@@ -138,6 +197,85 @@
and subject_name = #{subjectName}
<if test="id != null ">and id != #{id}</if>
</select>
+ <select id="selectCountCategory" resultType="com.gkhy.exam.pay.dto.rep.NonCategoryCount">
+ SELECT
+ cc.operate_type_id,
+ MAX(sot.name) AS subject_name,
+ MAX(cc.amount) AS amount,
+ MAX(cc.category_type) AS category_type,
+ COUNT(cps.id) AS num
+ FROM
+ non_coal_category cc
+ LEFT JOIN sys_operate_type sot ON cc.operate_type_id = sot.id
+ LEFT JOIN non_coal_pay_category cpc ON cc.id = cpc.category_id
+ LEFT JOIN non_coal_pay cp ON cpc.non_coal_pay_id = cp.id AND cp.del_flag = 0
+ LEFT JOIN non_coal_pay_student cps ON cp.id = cps.non_coal_pay_id
+ WHERE cc.category_type = 2 and cc.del_flag = 0 and cp.del_flag = 0 AND cps.del_flag = 0 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="districtCode!=null and districtCode!='' and districtCode != 65">
+ and cc.district_code =#{districtCode}
+ </if>
+ <if test="deptId!=null">
+ and cp.dept_id =#{deptId}
+ </if>
+ GROUP BY
+ cc.operate_type_id
+ </select>
+ <select id="selectCountTheory" resultType="com.gkhy.exam.pay.dto.rep.CateGoryTheory">
+ WITH filtered_data AS (
+ SELECT
+ cp.id AS pay_id,
+ cp.pay_type,
+ cpc.category_id AS category_id
+ FROM
+ non_coal_pay cp
+ LEFT JOIN non_coal_pay_category cpc ON cp.id = cpc.non_coal_pay_id
+ LEFT JOIN non_coal_category cc ON cpc.category_id = cc.id
+ WHERE
+ cc.category_type = 1
+ AND cp.del_flag = 0
+ <if test="year !=null and year!=''">
+ and cp.year = #{year}
+ </if>
+ <if test="quarter!=null">
+ and cp.quarter = #{quarter}
+ </if>
+ <if test="districtCode !=null and districtCode !='' and districtCode != 65 ">
+ and cp.district_code = #{districtCode}
+ </if>
+ <if test="deptId!=null">
+ and cp.dept_id =#{deptId}
+ </if>
+ ),
+ 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 non_coal_pay_student cps ON fd.pay_id = cps.non_coal_pay_id
+ LEFT JOIN non_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
+ FROM
+ pay_type_data
+ GROUP BY
+ pay_type_name
+ </select>
<update id="deleteNonCoalCategoryById" parameterType="Long">
update non_coal_category
--
Gitblit v1.9.2