safety-eval-service/safety-eval-infrastructure/src/main/resources/mapper/QualOnSiteReviewMapper.xml

126 lines
5.3 KiB
XML
Raw Normal View History

2026-07-20 15:21:03 +08:00
<?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="org.qinan.safetyeval.infrastructure.persistence.mapper.QualOnSiteReviewMapper">
<resultMap type="org.qinan.safetyeval.infrastructure.persistence.domainobject.QualOnSiteReviewDO"
id="QualOnSiteReviewResult">
<id property="id" column="id"/>
<result property="bizType" column="biz_type"/>
<result property="bizId" column="biz_id"/>
<result property="orgId" column="org_id"/>
<result property="reviewDateStart" column="review_date_start"/>
<result property="reviewLocation" column="review_location"/>
<result property="reviewMembers" column="review_members"/>
<result property="materialRequirements" column="material_requirements"/>
<result property="supervisorContact" column="supervisor_contact"/>
<result property="contactPhone" column="contact_phone"/>
<result property="status" column="status"/>
2026-07-20 17:49:22 +08:00
<result property="reviewOpinion" column="review_opinion"/>
2026-07-20 15:21:03 +08:00
<result property="deleteEnum" column="delete_enum"/>
<result property="remarks" column="remarks"/>
<result property="createName" column="create_name"/>
<result property="updateName" column="update_name"/>
<result property="tenantId" column="tenant_id"/>
<result property="version" column="version"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="createId" column="create_id"/>
<result property="updateId" column="update_id"/>
<result property="env" column="env"/>
</resultMap>
<sql id="selectQualOnSiteReview">
select id,
biz_type,
biz_id,
org_id,
review_date_start,
review_location,
review_members,
2026-07-21 10:24:31 +08:00
review_leader,
2026-07-20 15:21:03 +08:00
material_requirements,
supervisor_contact,
contact_phone,
status,
2026-07-20 17:49:22 +08:00
review_opinion,
2026-07-20 15:21:03 +08:00
delete_enum,
remarks,
create_name,
update_name,
tenant_id,
version,
create_time,
update_time,
create_id,
update_id,
env
from qual_on_site_review
</sql>
2026-07-20 15:59:25 +08:00
2026-07-20 16:02:50 +08:00
<select id="monitorPage" resultType="org.qinan.safetyeval.client.review.response.QualOnSiteReviewMonitorCo" >
2026-07-20 15:59:25 +08:00
select info.unit_name , review.*
from qual_on_site_review review
left join org_info info on info.id = review.org_id
where review.delete_enum = 'false'
<if test="query.unitName != null and query.unitName != ''">
and info.unit_name like concat('%', #{query.unitName}, '%')
</if>
2026-07-20 16:29:01 +08:00
<if test="query.status != null">
and review.status = #{query.status}
</if>
<if test="query.reviewDateStartBegin != null">
and review.review_date_start &gt;= #{query.reviewDateStartBegin}
</if>
<if test="query.reviewDateStartEnd != null">
and review.review_date_start &lt;= #{query.reviewDateStartEnd}
</if>
order by review.id desc
</select>
<select id="orgPage" resultType="org.qinan.safetyeval.client.review.response.QualOnSiteReviewOrgCo">
select review.id,
review.biz_type,
review.biz_id,
review.review_date_start,
review.review_location,
review.review_members,
review.material_requirements,
review.supervisor_contact,
review.contact_phone,
review.status,
review.env,
review.version
from qual_on_site_review review
where review.delete_enum = 'false'
and review.org_id = #{query.orgId}
<if test="query.status != null">
and review.status = #{query.status}
</if>
<if test="query.reviewDateStartBegin != null">
and review.review_date_start &gt;= #{query.reviewDateStartBegin}
</if>
<if test="query.reviewDateStartEnd != null">
and review.review_date_start &lt;= #{query.reviewDateStartEnd}
</if>
2026-07-20 15:59:25 +08:00
order by review.id desc
</select>
2026-07-21 09:25:41 +08:00
<!-- 资质现场核查统计单条SQL聚合返回全部指标 -->
<select id="statistics"
resultType="org.qinan.safetyeval.client.review.response.QualOnSiteReviewStatisticsCo">
select
count(*) as totalCount,
2026-07-21 09:37:25 +08:00
SUM(CASE WHEN YEAR(review_date_start) = YEAR(CURDATE()) THEN 1 ELSE 0 END) AS annualCumulativeCount,
SUM(CASE WHEN status IN ('AGENCY_PENDING_CONFIRMATION', 'AGENCY_CONFIRMED')
AND review_date_start BETWEEN CURDATE() AND DATE_ADD(CURDATE(), INTERVAL 30 DAY) THEN 1 ELSE 0 END)
AS pendingReviewNextThirtyDaysCount,
SUM(CASE WHEN status IN ('REVIEW_PASSED', 'REVIEW_FAILED') THEN 1 ELSE 0 END) AS completedArchivedCount
2026-07-21 09:25:41 +08:00
from qual_on_site_review
where delete_enum = 'false'
<if test="orgId != null">
and org_id = #{orgId}
</if>
</select>
2026-07-20 15:21:03 +08:00
</mapper>