<?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= "net.lab1024.sa.admin.module.service.dao.ServiceApplicationsDao" >
<!-- 查询结果列 -->
<sql id= "base_columns" >
t_service_applications.application_id,
t_service_applications.user_id,
t_service_applications.firm_id,
t_service_applications.service_start,
t_service_applications.service_end,
t_service_applications.service_duration,
t_service_applications.beneficiary_count,
t_service_applications.organizer_name,
t_service_applications.organizer_contact,
t_service_applications.organizer_phone,
t_service_applications.service_content,
t_service_applications.workload_score,
t_service_applications.firm_audit_status,
t_service_applications.firm_audit_opinion,
t_service_applications.firm_audit_user,
t_service_applications.firm_audit_time,
t_service_applications.association_audit_status,
t_service_applications.association_audit_opinion,
t_service_applications.association_audit_user,
t_service_applications.association_audit_time,
t_service_applications.record_no,
t_service_applications.record_status,
t_service_applications.record_time,
t_service_applications.update_time,
t_service_applications.create_time,
t_service_applications.deleted_flag,
t_service_applications.certificate_number,
t_service_applications.activity_category_id,
t_service_applications.activity_name_id,
t_service_applications.attachment_ids,
t_service_applications.report_time,
t_service_applications.position_id
</sql>
<!-- 分页查询 -->
<select id= "queryPage" resultType= "net.lab1024.sa.admin.module.service.domain.vo.ServiceApplicationsVO" >
SELECT
<include refid= "base_columns" />
FROM t_service_applications
<where >
deleted_flag = 0
<if test= "queryForm.applicationId != null and queryForm.applicationId != ''" >
and application_id = #{queryForm.applicationId}
</if>
<if test= "queryForm.userId != null and queryForm.userId != ''" >
and user_id = #{queryForm.userId}
</if>
<if test= "queryForm.firmId != null" >
and firm_id = #{queryForm.firmId}
</if>
<if test= "queryForm.serviceStart != null and queryForm.serviceStart != ''" >
and service_start > = #{queryForm.serviceStart}
</if>
<if test= "queryForm.serviceEnd != null and queryForm.serviceEnd != ''" >
and service_end < = #{queryForm.serviceEnd}
</if>
<if test= "queryForm.serviceDuration != null and queryForm.serviceDuration != ''" >
and service_duration = #{queryForm.serviceDuration}
</if>
<if test= "queryForm.beneficiaryCount != null and queryForm.beneficiaryCount != ''" >
and beneficiary_count = #{queryForm.beneficiaryCount}
</if>
<if test= "queryForm.organizerName != null and queryForm.organizerName != ''" >
and organizer_name like CONCAT('%', #{queryForm.organizerName}, '%')
</if>
<if test= "queryForm.organizerContact != null and queryForm.organizerContact != ''" >
and organizer_contact like CONCAT('%', #{queryForm.organizerContact}, '%')
</if>
<if test= "queryForm.certificateNumber != null and queryForm.certificateNumber != ''" >
and certificate_number = #{queryForm.certificateNumber}
</if>
<if test= "queryForm.activityCategoryId != null and queryForm.activityCategoryId != ''" >
and activity_category_id = #{queryForm.activityCategoryId}
</if>
<if test= "queryForm.associationAuditStatus != null and queryForm.associationAuditStatus != ''" >
<choose >
<when test= "queryForm.associationAuditStatus == 1" >
and association_audit_status < = 1
</when>
<otherwise >
and association_audit_status = #{queryForm.associationAuditStatus}
</otherwise>
</choose>
</if>
<if test= "queryForm.firmAuditStatus != null and queryForm.firmAuditStatus != ''" >
<choose >
<when test= "queryForm.firmAuditStatus == 1" >
and firm_audit_status < = 1
</when>
<otherwise >
and firm_audit_status = #{queryForm.firmAuditStatus}
</otherwise>
</choose>
</if>
<if test= "queryForm.activityNameId != null and queryForm.activityNameId != ''" >
and activity_name_id = #{queryForm.activityNameId}
</if>
<if test= "queryForm.employeeIdList != null and !queryForm.employeeIdList.isEmpty() " >
and user_id in
<foreach collection= "queryForm.employeeIdList" item= "item" separator= "," open= "(" close= ")" >
#{item}
</foreach>
</if>
<if test= "queryForm.positionId != null and queryForm.positionId != ''" >
and position_id = #{queryForm.positionId}
</if>
<!-- 协会角色过滤条件:只在没有明确指定任一审核状态时才应用此规则,且对自己创建的数据不过滤 -->
<if test= "queryForm.includeAssociationReviewed != null and queryForm.includeAssociationReviewed and (queryForm.associationAuditStatus == null or queryForm.associationAuditStatus == '') and (queryForm.firmAuditStatus == null or queryForm.firmAuditStatus == '')" >
AND (
(t_service_applications.association_audit_status IS NOT NULL
AND t_service_applications.association_audit_status > = 1)
OR (t_service_applications.association_audit_status >= 1 and t_service_applications.user_id = #{queryForm.currentUserId}) <!-- 对自己创建的数据不过滤 -->
)
</if>
<!-- 当用户指定了协会审核状态时,仍然允许查看自己创建的数据 -->
<if test= "queryForm.includeAssociationReviewed != null and queryForm.includeAssociationReviewed and (queryForm.associationAuditStatus != null and queryForm.associationAuditStatus != '')" >
AND (
(association_audit_status = #{queryForm.associationAuditStatus})
OR t_service_applications.user_id = #{queryForm.currentUserId} <!-- 对自己创建的数据不过滤 -->
)
</if>
<!-- 普通律所用户不过滤审核状态,当noStatusFilter为true时,不应用firm审核状态过滤 -->
<if test= "queryForm.noStatusFilter != null and queryForm.noStatusFilter" >
<!-- 普通律所用户:不过滤firm_audit_status,可以看到所有状态的数据 -->
</if>
<!-- 服务申报律所过滤:只查看律所主任或行政有成本查看权限的律所的数据 -->
<if test= "queryForm.costReportViewOnly != null and queryForm.costReportViewOnly" >
AND t_service_applications.firm_id IN (
SELECT DISTINCT e.department_id
FROM t_employee e
INNER JOIN t_role_employee re ON e.employee_id = re.employee_id
INNER JOIN t_role r ON re.role_id = r.role_id
WHERE (e.deleted_flag = 0 OR e.deleted_flag IS NULL)
AND (r.role_code = 'cto' OR r.role_code = 'staff')
AND e.cost_visible_flag = 1
)
</if>
<!-- 律所管理员过滤条件:查看部门内已审核数据以及自己创建的所有数据(不包括未提交的草稿) -->
<if test= "queryForm.includeFirmReviewed != null and queryForm.includeFirmReviewed and (queryForm.firmAuditStatus == null or queryForm.firmAuditStatus == '') and (queryForm.associationAuditStatus == null or queryForm.associationAuditStatus == '')" >
AND (
(t_service_applications.firm_audit_status IS NOT NULL
AND (t_service_applications.firm_audit_status = 1 OR t_service_applications.firm_audit_status = 3 OR t_service_applications.firm_audit_status = 4)
AND t_service_applications.user_id IN
<foreach collection= "queryForm.employeeIdList" item= "item" separator= "," open= "(" close= ")" >
#{item}
</foreach> )
OR (t_service_applications.user_id = #{queryForm.currentUserId}
AND t_service_applications.firm_audit_status != 0) <!-- 查看自己创建的所有数据,明确排除未提交的草稿 -->
)
</if>
<!-- 当用户指定了律所审核状态时,查看部门内指定状态的数据以及自己创建的所有数据(不包括未提交的草稿) -->
<if test= "queryForm.includeFirmReviewed != null and queryForm.includeFirmReviewed and (queryForm.firmAuditStatus != null and queryForm.firmAuditStatus != '')" >
AND (
(firm_audit_status = #{queryForm.firmAuditStatus}
AND t_service_applications.user_id IN
<foreach collection= "queryForm.employeeIdList" item= "item" separator= "," open= "(" close= ")" >
#{item}
</foreach> )
OR (t_service_applications.user_id = #{queryForm.currentUserId}
AND t_service_applications.firm_audit_status != 0) <!-- 查看自己创建的所有数据,明确排除未提交的草稿 -->
)
</if>
</where>
ORDER BY
CASE
WHEN t_service_applications.firm_audit_status = 1 OR t_service_applications.association_audit_status = 1 THEN 0
ELSE 1
END ASC,
t_service_applications.report_time DESC,
t_service_applications.application_id DESC
</select>
<update id= "batchUpdateDeleted" >
update t_service_applications set deleted_flag = #{deletedFlag}
where application_id in
<foreach collection= "idList" open= "(" close= ")" separator= "," item= "item" >
#{item}
</foreach>
</update>
<update id= "updateDeleted" >
update t_service_applications set deleted_flag = #{deletedFlag}
where application_id = #{applicationId}
</update>
<update id= "batchSubmit" >
update t_service_applications set firm_audit_status = #{deletedFlag}, report_time = NOW()
where application_id in
<foreach collection= "idList" open= "(" close= ")" separator= "," item= "item" >
#{item}
</foreach>
</update>
<update id= "batchSubmitAsFirm" >
update t_service_applications set
firm_audit_status = #{firmAuditStatus},
firm_audit_user = #{userId},
firm_audit_time = #{submitTime},
report_time = NOW()
where application_id in
<foreach collection= "idList" open= "(" close= ")" separator= "," item= "item" >
#{item}
</foreach>
</update>
<update id= "batchSubmitAsAssociation" >
update t_service_applications set
association_audit_status = #{associationAuditStatus}
where application_id in
<foreach collection= "idList" open= "(" close= ")" separator= "," item= "item" >
#{item}
</foreach>
</update>
<update id= "batchReview" >
update t_service_applications set firm_audit_status = #{value}
where application_id in
<foreach collection= "fileKeyList" open= "(" close= ")" separator= "," item= "item" >
#{item}
</foreach>
</update>
<!-- 律所审核 -->
<update id= "batchReviewAsFirm" >
update t_service_applications set
firm_audit_status = #{value},
firm_audit_user = #{userId},
firm_audit_time = #{reviewTime},
firm_audit_opinion = #{auditOpinion}
where application_id in
<foreach collection= "fileKeyList" open= "(" close= ")" separator= "," item= "item" >
#{item}
</foreach>
</update>
<!-- 协会审核 -->
<update id= "batchReviewAsAssociation" >
update t_service_applications set
association_audit_status = #{value},
association_audit_user = #{userId},
association_audit_time = #{reviewTime},
association_audit_opinion = #{auditOpinion}
where application_id in
<foreach collection= "fileKeyList" open= "(" close= ")" separator= "," item= "item" >
#{item}
</foreach>
</update>
<update id= "batchReviewByDepartmentId" >
update t_service_applications set
association_audit_status = #{queryForm.associationAuditStatus},
association_audit_user = #{queryForm.associationAuditUser},
association_audit_time = #{queryForm.associationAuditTime}
where association_audit_status = 1 and firm_id = #{queryForm.firmId}
</update>
<!-- 律师统计查询(无参数,保持向后兼容) -->
<select id= "getLawyerStatistics" resultType= "net.lab1024.sa.admin.module.service.domain.vo.LawyerStatisticsVO" >
SELECT
e.actual_name AS lawyerName,
tsa.certificate_number AS certificateNumber,
COALESCE(SUM(CASE WHEN tsa.service_start >= DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 3 MONTH), '%Y-%m-01') THEN tsa.service_duration ELSE 0 END), 0) AS quarterlyServiceDuration,
COALESCE(SUM(CASE WHEN tsa.service_start >= DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 3 MONTH), '%Y-%m-01') THEN tsa.workload_score ELSE 0 END), 0) AS quarterlyServiceCost,
COALESCE(SUM(CASE WHEN YEAR(tsa.service_start) = YEAR(NOW()) THEN tsa.service_duration ELSE 0 END), 0) AS annualServiceDuration,
COALESCE(SUM(CASE WHEN YEAR(tsa.service_start) = YEAR(NOW()) THEN tsa.workload_score ELSE 0 END), 0) AS annualServiceCost
FROM t_service_applications tsa
LEFT JOIN t_employee e ON tsa.user_id = e.employee_id
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
WHERE tsa.deleted_flag = 0
AND tsa.association_audit_status = 3 <!-- PASS -->
GROUP BY tsa.user_id, tsa.certificate_number, e.actual_name
ORDER BY e.actual_name
</select>
<!-- 律师统计查询(带参数) -->
<select id= "getLawyerStatisticsWithParam" resultType= "net.lab1024.sa.admin.module.service.domain.form.ServiceLawyerImportForm" >
SELECT
e.actual_name AS lawyerName,
e.employee_id as userId,
tsa.certificate_number AS certificateNumber,
COALESCE(SUM(tsa.service_duration), 0) AS annualServiceDuration
FROM t_service_applications tsa
LEFT JOIN t_employee e ON tsa.user_id = e.employee_id
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
<where >
tsa.deleted_flag = 0
AND tsa.association_audit_status = 3 <!-- 只统计律协审核通过的 -->
AND tsa.firm_id IS NOT NULL
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
<if test= "queryForm.userId != null and queryForm.userId != ''" >
and tsa.user_id = #{queryForm.userId}
</if>
<if test= "queryForm.lawyerName != null and queryForm.lawyerName != ''" >
AND e.actual_name LIKE CONCAT('%', #{queryForm.lawyerName}, '%')
</if>
<if test= "queryForm.firmName != null and queryForm.firmName != ''" >
AND d.department_name LIKE CONCAT('%', #{queryForm.firmName}, '%')
</if>
<if test= "queryForm.firmId != null" >
AND tsa.firm_id = #{queryForm.firmId}
</if>
</where>
GROUP BY tsa.user_id, tsa.certificate_number
ORDER BY e.actual_name
</select>
<select id= "getLawyerStatisticsWithParamYear"
resultType="net.lab1024.sa.admin.module.service.domain.vo.LawyerStatisticsVO">
SELECT
e.actual_name AS lawyerName,
e.employee_id as userId,
tsa.certificate_number AS certificateNumber,
COALESCE(SUM(tsa.service_duration), 0) AS annualServiceDuration
FROM t_service_applications tsa
LEFT JOIN t_employee e ON tsa.user_id = e.employee_id
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
<where >
tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
<if test= "queryForm.userId != null and queryForm.userId != ''" >
and tsa.user_id = #{queryForm.userId}
</if>
<if test= "queryForm.lawyerName != null and queryForm.lawyerName != ''" >
AND e.actual_name LIKE CONCAT('%', #{queryForm.lawyerName}, '%')
</if>
<if test= "queryForm.firmName != null and queryForm.firmName != ''" >
AND d.department_name LIKE CONCAT('%', #{queryForm.firmName}, '%')
</if>
<if test= "queryForm.firmId != null" >
AND tsa.firm_id = #{queryForm.firmId}
</if>
</where>
GROUP BY tsa.user_id, tsa.certificate_number
</select>
<select id= "getLawyerStatisticsWithParamYearNoPage"
resultType="net.lab1024.sa.admin.module.service.domain.vo.LawyerStatisticsVO">
SELECT
e.actual_name AS lawyerName,
e.employee_id as userId,
tsa.certificate_number AS certificateNumber,
COALESCE(SUM(tsa.service_duration), 0) AS annualServiceDuration
FROM t_service_applications tsa
LEFT JOIN t_employee e ON tsa.user_id = e.employee_id
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
<where >
tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
<if test= "queryForm.userId != null and queryForm.userId != ''" >
and tsa.user_id = #{queryForm.userId}
</if>
<if test= "queryForm.lawyerName != null and queryForm.lawyerName != ''" >
AND e.actual_name LIKE CONCAT('%', #{queryForm.lawyerName}, '%')
</if>
<if test= "queryForm.firmName != null and queryForm.firmName != ''" >
AND d.department_name LIKE CONCAT('%', #{queryForm.firmName}, '%')
</if>
<if test= "queryForm.firmId != null" >
AND tsa.firm_id = #{queryForm.firmId}
</if>
</where>
GROUP BY tsa.user_id, tsa.certificate_number
</select>
<select id= "getLawyerStatistic"
resultType="net.lab1024.sa.admin.module.service.domain.vo.LawyerStatisticsVO">
SELECT
e.actual_name AS lawyerName,
e.employee_id as userId,
tsa.certificate_number AS certificateNumber,
COALESCE(SUM(tsa.service_duration), 0) AS quarterlyServiceDuration
FROM t_service_applications tsa
LEFT JOIN t_employee e ON tsa.user_id = e.employee_id
<where >
tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
<if test= "queryForm.userId != null and queryForm.userId != ''" >
and tsa.user_id = #{queryForm.userId}
</if>
<if test= "queryForm.firmId != null" >
and tsa.firm_id = #{queryForm.firmId}
</if>
</where>
GROUP BY tsa.user_id, tsa.certificate_number
LIMIT 1
</select>
<select id= "getdepartmentStatistics"
resultType="net.lab1024.sa.admin.module.service.domain.vo.LawyerStatisticsVO">
SELECT
d.department_name AS firmName,
d.department_id as firmId,
COALESCE(SUM(tsa.service_duration), 0) AS annualServiceDuration
FROM t_service_applications tsa
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
<where >
tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
<if test= "queryForm.userId != null and queryForm.userId != ''" >
and tsa.user_id = #{queryForm.userId}
</if>
<if test= "queryForm.firmId != null" >
and tsa.firm_id = #{queryForm.firmId}
</if>
</where>
GROUP BY d.department_id, d.department_name
</select>
<!-- 律所统计分页查询 -->
<select id= "getdepartmentStatisticsPage"
resultType="net.lab1024.sa.admin.module.service.domain.vo.LawyerStatisticsVO">
SELECT
d.department_name AS firmName,
d.department_id as firmId,
COALESCE(SUM(tsa.service_duration), 0) AS annualServiceDuration
FROM t_service_applications tsa
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
<where >
tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
<if test= "queryForm.userId != null and queryForm.userId != ''" >
and tsa.user_id = #{queryForm.userId}
</if>
<if test= "queryForm.firmId != null" >
and tsa.firm_id = #{queryForm.firmId}
</if>
</where>
GROUP BY d.department_id, d.department_name
</select>
<select id= "getdepartmentMothStatistic"
resultType="net.lab1024.sa.admin.module.service.domain.vo.LawyerStatisticsVO">
SELECT
d.department_name AS firmName,
d.department_id as firmId,
COALESCE(SUM(tsa.service_duration), 0) AS quarterlyServiceDuration
FROM t_service_applications tsa
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
<where >
tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
<if test= "queryForm.userId != null and queryForm.userId != ''" >
and tsa.user_id = #{queryForm.userId}
</if>
<if test= "queryForm.firmId != null" >
and tsa.firm_id = #{queryForm.firmId}
</if>
</where>
GROUP BY d.department_id, d.department_name
LIMIT 1
</select>
<select id= "getDepartmentStatisticsWithParam"
resultType="net.lab1024.sa.admin.module.service.domain.form.ServiceDepartmentImportForm">
SELECT
d.department_name AS firmName,
d.department_id as firmId,
COALESCE(SUM(tsa.service_duration), 0) AS annualServiceDuration
FROM t_service_applications tsa
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
<where >
tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
AND tsa.firm_id IS NOT NULL
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
<if test= "queryForm.userId != null and queryForm.userId != ''" >
and tsa.user_id = #{queryForm.userId}
</if>
<if test= "queryForm.firmId != null" >
and tsa.firm_id = #{queryForm.firmId}
</if>
</where>
group by d.department_id
</select>
<!-- 服务上报统计 -->
<select id= "getServiceReportStatistics" resultType= "net.lab1024.sa.admin.module.service.domain.vo.ServiceReportStatisticsVO" >
SELECT
d.department_id AS firmId,
d.department_name AS firmName,
COUNT(DISTINCT e.employee_id) AS lawyerCount,
COUNT(CASE WHEN tsa.association_audit_status != 0 THEN 1 END) AS reportCount,
COUNT(CASE WHEN tsa.association_audit_status = 3 THEN 1 END) AS approvedCount,
COUNT(CASE WHEN tsa.association_audit_status = 4 THEN 1 END) AS rejectCount,
COUNT(CASE WHEN tsa.association_audit_status !=0 THEN 1 END) - COUNT(CASE WHEN tsa.association_audit_status in (3,4) THEN 1 END )
AS pendingCount,
COALESCE(SUM(CASE WHEN tsa.association_audit_status = 3 THEN tsa.service_duration ELSE 0 END), 0) AS totalServiceDuration
FROM
t_department d
LEFT JOIN t_employee e ON e.department_id = d.department_id AND e.deleted_flag = 0
LEFT JOIN t_service_applications tsa ON tsa.user_id = e.employee_id
AND tsa.deleted_flag = 0
AND tsa.association_audit_status IN (1, 2, 3)
<if test= "queryForm.firmId != null" >
AND tsa.firm_id = #{queryForm.firmId}
</if>
<if test= "queryForm.startTime != null" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
WHERE
1 = 1
<if test= "queryForm.firmId != null" >
AND d.department_id = #{queryForm.firmId}
</if>
<!-- 成本填报律所过滤:只查看律所主任或行政有成本查看权限的律所的数据 -->
<if test= "queryForm.costReportViewOnly != null and queryForm.costReportViewOnly" >
AND d.department_id IN (
SELECT DISTINCT e2.department_id
FROM t_employee e2
INNER JOIN t_role_employee re ON e2.employee_id = re.employee_id
INNER JOIN t_role r ON re.role_id = r.role_id
WHERE (e2.deleted_flag = 0 OR e2.deleted_flag IS NULL)
AND (r.role_code = 'cto' OR r.role_code = 'staff')
AND e2.cost_visible_flag = 1
)
</if>
GROUP BY
d.department_id,
d.department_name
ORDER BY
pendingCount DESC,approvedCount DESC,lawyerCount DESC
</select>
<select id= "getServiceApplicationsCost" resultType= "java.lang.Long" >
SELECT
SUM(tsa.service_duration) AS totalServiceCost
FROM t_service_applications tsa
WHERE tsa.deleted_flag = 0
AND tsa.firm_audit_status = 3
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
<if test= "queryForm.firmId != null" >
AND tsa.firm_id = #{queryForm.firmId}
</if>
</select>
<select id= "getLawyerStatisticsByMonth"
resultType="net.lab1024.sa.admin.module.service.domain.form.ServiceLawyerImportForm">
SELECT
d.department_name AS firmName,
d.department_id as firmId,
COALESCE(SUM(tsa.service_duration), 0) AS quarterlyServiceDuration
FROM t_service_applications tsa
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
<where >
tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
<if test= "queryForm.userId != null and queryForm.userId != ''" >
and tsa.user_id = #{queryForm.userId}
</if>
<if test= "queryForm.firmId != null and queryForm.firmId != ''" >
and d.department_id = #{queryForm.firmId}
</if>
</where>
GROUP BY d.department_id, d.department_name
</select>
<select id= "getServiceApplicationsAmount" resultType= "java.math.BigDecimal" >
SELECT
COALESCE(SUM(tsa.workload_score), 0) as workloadScore
FROM t_service_applications tsa
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
<where >
tsa.deleted_flag = 0
AND tsa.firm_audit_status = 3
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
<if test= "queryForm.userId != null and queryForm.userId != ''" >
and tsa.user_id = #{queryForm.userId}
</if>
<if test= "queryForm.firmId != null and queryForm.firmId != ''" >
and d.department_id = #{queryForm.firmId}
</if>
</where>
</select>
<select id= "selectByRecordNo"
resultType="net.lab1024.sa.admin.module.service.domain.vo.ServiceApplicationsVO">
SELECT
tsa.application_id AS applicationId,
tsa.user_id AS userId,
te.actual_name AS userName,
tsa.firm_id AS firmId,
tsa.service_start AS serviceStart,
tsa.service_end AS serviceEnd,
tsa.service_duration AS serviceDuration,
tsa.beneficiary_count AS beneficiaryCount,
tsa.organizer_name AS organizerName,
tsa.organizer_contact AS organizerContact,
tsa.organizer_phone AS organizerPhone
FROM t_service_applications tsa left join t_employee te on tsa.user_id = te.employee_id
WHERE tsa.deleted_flag = 0 and tsa.record_no = #{recordNo}
</select>
<select id= "getServiceAmount" resultType= "java.math.BigDecimal" >
SELECT
COALESCE(SUM(tsa.workload_score), 0)
FROM t_service_applications tsa
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
<where >
tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
<if test= "queryForm.userId != null and queryForm.userId != ''" >
and tsa.user_id = #{queryForm.userId}
</if>
<if test= "queryForm.firmId != null and queryForm.firmId != ''" >
and d.department_id = #{queryForm.firmId}
</if>
</where>
</select>
<select id= "getServiceAmountList" resultType= "java.math.BigDecimal" >
SELECT
COALESCE(SUM(tsa.workload_score), 0)
FROM t_service_applications tsa
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
<where >
tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
<if test= "queryForm.firmId != null and queryForm.firmId != ''" >
and d.department_id = #{queryForm.firmId}
</if>
</where>
</select>
<select id= "getLawyerAmountStatistics" resultType= "net.lab1024.sa.admin.module.service.domain.vo.LawyerStatisticsVO" >
SELECT
e.actual_name AS lawyerName,
e.employee_id as userId,
tsa.certificate_number AS certificateNumber,
d.department_id AS firmId,
d.department_name AS firmName,
COALESCE(SUM(tsa.workload_score), 0) AS annualServiceCost,
0.0 AS annualServiceDuration,
0.0 AS quarterlyServiceDuration,
COALESCE(0, 0) AS quarterlyServiceCost
FROM t_service_applications tsa
LEFT JOIN t_employee e ON tsa.user_id = e.employee_id
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
<where >
tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
<if test= "queryForm.firmId != null and queryForm.firmId != ''" >
and d.department_id = #{queryForm.firmId}
</if>
<if test= "queryForm.lawyerName != null and queryForm.lawyerName != ''" >
AND e.actual_name LIKE CONCAT('%', #{queryForm.lawyerName}, '%')
</if>
<if test= "queryForm.firmName != null and queryForm.firmName != ''" >
AND d.department_name LIKE CONCAT('%', #{queryForm.firmName}, '%')
</if>
</where>
GROUP BY tsa.user_id, tsa.certificate_number
HAVING annualServiceCost > 0
ORDER BY e.actual_name
</select>
<select id= "selectByRecordNoNotMy"
resultType="net.lab1024.sa.admin.module.service.domain.vo.ServiceApplicationsVO">
SELECT
tsa.application_id AS applicationId,
tsa.user_id AS userId,
te.actual_name AS userName,
tsa.firm_id AS firmId,
tsa.service_start AS serviceStart,
tsa.service_end AS serviceEnd,
tsa.service_duration AS serviceDuration,
tsa.beneficiary_count AS beneficiaryCount,
tsa.organizer_name AS organizerName,
tsa.organizer_contact AS organizerContact,
tsa.organizer_phone AS organizerPhone
FROM t_service_applications tsa left join t_employee te on tsa.user_id = te.employee_id
<where >
tsa.deleted_flag = 0
<if test= "userId != null" >
and tsa.user_id != #{userId}
</if>
<if test= "recordNo != null" >
and tsa.record_no = #{recordNo}
</if>
</where>
</select>
<!-- 查询上个月是否有未审核的数据 -->
<select id= "queryNoReview" resultType= "java.lang.Long" >
SELECT COUNT(*)
FROM t_service_applications
WHERE deleted_flag = 0
and firm_audit_status = 1
AND firm_id = #{departmentId}
AND (
-- 上个月的数据(处理跨年情况)
(YEAR(create_time) = YEAR(DATE_SUB(NOW(), INTERVAL 1 MONTH))
AND MONTH(create_time) = MONTH(DATE_SUB(NOW(), INTERVAL 1 MONTH)))
OR
-- 或者是本月但还未到审核截止时间的数据
(YEAR(create_time) = YEAR(NOW()) AND MONTH(create_time) = MONTH(NOW()))
)
</select>
<!-- 查询有成本查看权限律所的未审核数据数量 -->
<select id= "queryNoReviewWithCostFilter" resultType= "java.lang.Long" >
SELECT COUNT(*)
FROM t_service_applications tsa
WHERE tsa.deleted_flag = 0
AND tsa.firm_audit_status = 1
AND tsa.firm_id IN (
SELECT DISTINCT e.department_id
FROM t_employee e
INNER JOIN t_role_employee re ON e.employee_id = re.employee_id
INNER JOIN t_role r ON re.role_id = r.role_id
WHERE (e.deleted_flag = 0 OR e.deleted_flag IS NULL)
AND (r.role_code = 'cto' OR r.role_code = 'staff')
AND e.cost_visible_flag = 1
)
AND (
-- 上个月的数据(处理跨年情况)
(YEAR(tsa.create_time) = YEAR(DATE_SUB(NOW(), INTERVAL 1 MONTH))
AND MONTH(tsa.create_time) = MONTH(DATE_SUB(NOW(), INTERVAL 1 MONTH)))
OR
-- 或者是本月但还未到审核截止时间的数据
(YEAR(tsa.create_time) = YEAR(NOW()) AND MONTH(tsa.create_time) = MONTH(NOW()))
)
</select>
<!-- 判断律所是否有成本查看权限 -->
<select id= "countFirmWithCostPermission" resultType= "java.lang.Integer" >
SELECT COUNT(1)
FROM t_employee e
INNER JOIN t_role_employee re ON e.employee_id = re.employee_id
INNER JOIN t_role r ON re.role_id = r.role_id
WHERE (e.deleted_flag = 0 OR e.deleted_flag IS NULL)
AND e.department_id = #{firmId}
AND (r.role_code = 'cto' OR r.role_code = 'staff')
AND e.cost_visible_flag = 1
</select>
<!-- 根据律所ID和时间范围查询服务申请记录(按服务上报时间过滤) -->
<select id= "queryByFirmIdAndTimeRange" resultType= "net.lab1024.sa.admin.module.service.domain.vo.ServiceApplicationsVO" >
SELECT
tsa.application_id AS applicationId,
tsa.user_id AS userId,
te.actual_name AS userName,
tsa.firm_id AS firmId,
tsa.service_start AS serviceStart,
tsa.service_end AS serviceEnd,
tsa.service_duration AS serviceDuration,
tsa.beneficiary_count AS beneficiaryCount,
tsa.organizer_name AS organizerName,
tsa.organizer_contact AS organizerContact,
tsa.organizer_phone AS organizerPhone,
tsa.service_content AS serviceContent,
tsa.workload_score AS serviceAmount,
tsa.firm_audit_status AS firmAuditStatus,
tsa.firm_audit_opinion AS firmAuditOpinion,
tsa.firm_audit_user AS firmAuditUser,
tsa.firm_audit_time AS firmAuditTime,
tsa.association_audit_status AS associationAuditStatus,
tsa.association_audit_opinion AS associationAuditOpinion,
tsa.association_audit_user AS associationAuditUser,
tsa.association_audit_time AS associationAuditTime,
tsa.record_no AS recordNo,
tsa.record_status AS recordStatus,
tsa.record_time AS recordTime,
tsa.update_time AS updateTime,
tsa.create_time AS createTime,
tsa.deleted_flag AS deletedFlag,
tsa.certificate_number AS certificateNumber,
tsa.activity_category_id AS activityCategoryId,
tsa.activity_name_id AS activityNameId,
tsa.attachment_ids AS attachmentIds,
tsa.report_time AS reportTime,
tsa.position_id AS positionId,
tg.time_type AS serviceType,
tg.price AS activityPrice
FROM t_service_applications tsa
LEFT JOIN t_employee te ON tsa.user_id = te.employee_id
LEFT JOIN t_goods tg ON tsa.activity_name_id = tg.goods_id
WHERE tsa.deleted_flag = 0
AND tsa.firm_id = #{firmId}
AND tsa.report_time > = #{startTime}
AND tsa.report_time < = #{endTime}
</select>
<!-- 查询律师列表(分页) -->
<select id= "getLawyerActivityCount" resultType= "net.lab1024.sa.admin.module.service.domain.vo.LawyerActivityCountVO" >
SELECT DISTINCT
tsa.user_id AS userId,
e.actual_name AS lawyerName,
d.department_id AS firmId,
d.department_name AS firmName,
tsa.certificate_number AS certificateNumber,
COALESCE(stats.totalCount, 0) AS totalCount
FROM t_service_applications tsa
LEFT JOIN t_employee e ON tsa.user_id = e.employee_id
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
LEFT JOIN (
SELECT
user_id,
COUNT(*) AS totalCount
FROM t_service_applications
WHERE deleted_flag = 0
AND association_audit_status = 3
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND report_time < = #{queryForm.endTime}
</if>
GROUP BY user_id
) stats ON tsa.user_id = stats.user_id
WHERE tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
<if test= "queryForm.firmId != null and queryForm.firmId != ''" >
AND tsa.firm_id = #{queryForm.firmId}
</if>
ORDER BY totalCount DESC, tsa.user_id
</select>
<!-- 查询指定律师的活动统计 -->
<select id= "getLawyerActivityDetail" resultType= "net.lab1024.sa.admin.module.service.domain.vo.LawyerActivityCountVO" >
SELECT
g.goods_id AS activityId,
g.goods_name AS activityName,
COALESCE(stats.count, 0) AS count
FROM t_goods g
LEFT JOIN (
-- 统计每个律师每个活动的参与次数
SELECT
tsa.activity_name_id,
COUNT(*) AS count
FROM t_service_applications tsa
WHERE tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
AND tsa.user_id = #{userId}
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
GROUP BY tsa.activity_name_id
) stats ON g.goods_id = stats.activity_name_id
ORDER BY g.goods_id
</select>
<!-- 查询律所列表(分页,按活动总数排序) -->
<select id= "getFirmActivityCount" resultType= "net.lab1024.sa.admin.module.service.domain.vo.FirmActivityCountVO" >
SELECT
d.department_id AS firmId,
d.department_name AS firmName,
COUNT(tsa.application_id) AS totalCount
FROM t_service_applications tsa
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
WHERE tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
<if test= "queryForm.firmId != null and queryForm.firmId != ''" >
AND tsa.firm_id = #{queryForm.firmId}
</if>
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
GROUP BY d.department_id, d.department_name
ORDER BY totalCount DESC
</select>
<!-- 查询指定律所下的所有律师 -->
<select id= "getLawyersByFirmId" resultType= "net.lab1024.sa.admin.module.service.domain.vo.LawyerActivityCountVO" >
SELECT DISTINCT
tsa.user_id AS userId,
e.actual_name AS lawyerName,
d.department_id AS firmId,
d.department_name AS firmName,
tsa.certificate_number AS certificateNumber
FROM t_service_applications tsa
LEFT JOIN t_employee e ON tsa.user_id = e.employee_id
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
WHERE tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
AND tsa.firm_id = #{firmId}
ORDER BY tsa.user_id
</select>
<!-- 查询所有律师(不分页,用于导出) -->
<select id= "getAllLawyers" resultType= "net.lab1024.sa.admin.module.service.domain.vo.LawyerActivityCountVO" >
SELECT DISTINCT
tsa.user_id AS userId,
e.actual_name AS lawyerName,
d.department_id AS firmId,
d.department_name AS firmName,
tsa.certificate_number AS certificateNumber
FROM t_service_applications tsa
LEFT JOIN t_employee e ON tsa.user_id = e.employee_id
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
WHERE tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
<if test= "queryForm.firmId != null and queryForm.firmId != ''" >
AND tsa.firm_id = #{queryForm.firmId}
</if>
ORDER BY tsa.user_id
</select>
<!-- 查询所有律所(不分页,用于导出) -->
<select id= "getAllFirms" resultType= "net.lab1024.sa.admin.module.service.domain.vo.FirmActivityCountVO" >
SELECT DISTINCT
d.department_id AS firmId,
d.department_name AS firmName
FROM t_service_applications tsa
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
WHERE tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
<if test= "queryForm.firmId != null and queryForm.firmId != ''" >
AND tsa.firm_id = #{queryForm.firmId}
</if>
ORDER BY d.department_id
</select>
<!-- 查询指定律所的活动统计(用于导出) -->
<select id= "getFirmActivityDetail" resultType= "net.lab1024.sa.admin.module.service.domain.vo.FirmActivityCountVO$ActivityParticipationVO" >
SELECT
g.goods_id AS activityId,
g.goods_name AS activityName,
COALESCE(stats.count, 0) AS count
FROM t_goods g
LEFT JOIN (
SELECT
tsa.activity_name_id,
COUNT(*) AS count
FROM t_service_applications tsa
WHERE tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
AND tsa.firm_id = #{firmId}
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
GROUP BY tsa.activity_name_id
) stats ON g.goods_id = stats.activity_name_id
ORDER BY g.goods_id
</select>
<!-- 导出律师活动统计(有什么导出什么) -->
<select id= "exportLawyerActivity" resultType= "net.lab1024.sa.admin.module.service.domain.vo.LawyerActivityCountVO" >
SELECT
tsa.user_id AS userId,
MAX(e.actual_name) AS lawyerName,
MAX(d.department_id) AS firmId,
MAX(d.department_name) AS firmName,
MAX(tsa.certificate_number) AS certificateNumber,
tsa.activity_name_id AS activityId,
g.goods_name AS activityName,
COUNT(*) AS count,
MAX(user_stats.totalCount) AS totalCount
FROM t_service_applications tsa
LEFT JOIN t_employee e ON tsa.user_id = e.employee_id
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
LEFT JOIN t_goods g ON tsa.activity_name_id = g.goods_id
LEFT JOIN (
SELECT
user_id,
COUNT(*) AS totalCount
FROM t_service_applications
WHERE deleted_flag = 0
AND association_audit_status = 3
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND report_time < = #{queryForm.endTime}
</if>
GROUP BY user_id
) user_stats ON tsa.user_id = user_stats.user_id
WHERE tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
<if test= "queryForm.firmId != null and queryForm.firmId != ''" >
AND tsa.firm_id = #{queryForm.firmId}
</if>
GROUP BY tsa.user_id, tsa.activity_name_id
ORDER BY totalCount DESC, tsa.user_id, tsa.activity_name_id
</select>
<!-- 导出律所活动统计(有什么导出什么) -->
<select id= "exportFirmActivity" resultType= "net.lab1024.sa.admin.module.service.domain.vo.FirmActivityCountVO" >
SELECT
d.department_id AS firmId,
d.department_name AS firmName,
tsa.activity_name_id AS activityId,
g.goods_name AS activityName,
COUNT(*) AS count,
MAX(firm_stats.totalCount) AS totalCount
FROM t_service_applications tsa
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
LEFT JOIN t_goods g ON tsa.activity_name_id = g.goods_id
LEFT JOIN (
SELECT
firm_id,
COUNT(*) AS totalCount
FROM t_service_applications
WHERE deleted_flag = 0
AND association_audit_status = 3
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND report_time < = #{queryForm.endTime}
</if>
GROUP BY firm_id
) firm_stats ON tsa.firm_id = firm_stats.firm_id
WHERE tsa.deleted_flag = 0
AND tsa.association_audit_status = 3
<if test= "queryForm.startTime != null and queryForm.startTime != ''" >
AND tsa.report_time > = #{queryForm.startTime}
</if>
<if test= "queryForm.endTime != null and queryForm.endTime != ''" >
AND tsa.report_time < = #{queryForm.endTime}
</if>
<if test= "queryForm.firmId != null and queryForm.firmId != ''" >
AND tsa.firm_id = #{queryForm.firmId}
</if>
GROUP BY tsa.firm_id, tsa.activity_name_id
ORDER BY totalCount DESC, tsa.firm_id, tsa.activity_name_id
</select>
<!-- 导出活动明细查询 -->
<select id= "exportActivityDetail" resultType= "net.lab1024.sa.admin.module.service.domain.vo.ServiceApplicationsVO" >
SELECT
tsa.application_id,
tsa.user_id,
tsa.firm_id,
tsa.service_start,
tsa.service_end,
tsa.service_duration,
tsa.beneficiary_count,
tsa.organizer_name,
tsa.organizer_contact,
tsa.organizer_phone,
tsa.service_content,
tsa.firm_audit_status,
tsa.association_audit_status,
tsa.record_no,
e.actual_name AS userName,
d.department_name AS departmentName,
g.goods_name AS activityName
FROM t_service_applications tsa
LEFT JOIN t_employee e ON tsa.user_id = e.employee_id
LEFT JOIN t_department d ON tsa.firm_id = d.department_id
LEFT JOIN t_goods g ON tsa.activity_name_id = g.goods_id
WHERE tsa.deleted_flag = 0 and tsa.association_audit_status = 3
<if test= "queryForm.userId != null and queryForm.userId != ''" >
AND tsa.user_id = #{queryForm.userId}
</if>
<if test= "queryForm.firmId != null and queryForm.firmId != ''" >
AND tsa.firm_id = #{queryForm.firmId}
</if>
<if test= "queryForm.serviceStart != null and queryForm.serviceStart != ''" >
AND tsa.service_start > = #{queryForm.serviceStart}
</if>
<if test= "queryForm.serviceEnd != null and queryForm.serviceEnd != ''" >
AND tsa.service_end < = #{queryForm.serviceEnd}
</if>
<if test= "queryForm.associationAuditStatus != null and queryForm.associationAuditStatus != ''" >
AND tsa.association_audit_status = #{queryForm.associationAuditStatus}
</if>
<if test= "queryForm.firmAuditStatus != null and queryForm.firmAuditStatus != ''" >
AND tsa.firm_audit_status = #{queryForm.firmAuditStatus}
</if>
<if test= "queryForm.activityNameId != null and queryForm.activityNameId != ''" >
AND tsa.activity_name_id = #{queryForm.activityNameId}
</if>
<if test= "queryForm.positionId != null" >
AND tsa.position_id = #{queryForm.positionId}
</if>
ORDER BY tsa.create_time DESC
</select>
</mapper>