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

88 lines
5.6 KiB
XML
Raw Normal View History

<?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.mapper.QualFilingMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="org.qinan.safetyeval.infrastructure.dataobject.QualFilingDO">
<id column="id" property="id"/>
<result column="org_id" property="orgId"/>
<result column="filing_territory_code" property="filingTerritoryCode"/>
<result column="filing_territory_name" property="filingTerritoryName"/>
<result column="filing_unit_name" property="filingUnitName"/>
<result column="filing_unit_type_code" property="filingUnitTypeCode"/>
<result column="filing_unit_type_name" property="filingUnitTypeName"/>
<result column="filing_no" property="filingNo"/>
<result column="business_scope" property="businessScope"/>
<result column="register_address" property="registerAddress"/>
<result column="office_address" property="officeAddress"/>
<result column="credit_code" property="creditCode"/>
<result column="qual_cert_no" property="qualCertNo"/>
<result column="legal_person_phone" property="legalPersonPhone"/>
<result column="contact_phone" property="contactPhone"/>
<result column="info_disclosure_url" property="infoDisclosureUrl"/>
<result column="fixed_asset_amount" property="fixedAssetAmount"/>
<result column="archive_room_area" property="archiveRoomArea"/>
<result column="fulltime_evaluator_count" property="fulltimeEvaluatorCount"/>
<result column="registered_engineer_count" property="registeredEngineerCount"/>
<result column="workplace_area" property="workplaceArea"/>
<result column="unit_intro" property="unitIntro"/>
<result column="attachment_url" property="attachmentUrl"/>
<result column="origin_filing_id" property="originFilingId"/>
<result column="reject_reason" property="rejectReason"/>
<result column="submit_time" property="submitTime"/>
<result column="approve_time" property="approveTime"/>
<result column="filing_status_code" property="filingStatusCode"/>
<result column="filing_status_name" property="filingStatusName"/>
<result column="apply_type_code" property="applyTypeCode"/>
<result column="apply_type_name" property="applyTypeName"/>
<result column="delete_enum" property="deleteEnum"/>
<result column="remarks" property="remarks"/>
<result column="create_name" property="createName"/>
<result column="update_name" property="updateName"/>
<result column="tenant_id" property="tenantId"/>
<result column="version" property="version"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="create_id" property="createId"/>
<result column="update_id" property="updateId"/>
<result column="env" property="env"/>
</resultMap>
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
`id`, `org_id`, `filing_territory_code`, `filing_territory_name`, `filing_unit_name`, `filing_unit_type_code`, `filing_unit_type_name`, `filing_no`, `business_scope`, `register_address`, `office_address`, `credit_code`, `qual_cert_no`, `legal_person_phone`, `contact_phone`, `info_disclosure_url`, `fixed_asset_amount`, `archive_room_area`, `fulltime_evaluator_count`, `registered_engineer_count`, `workplace_area`, `unit_intro`, `attachment_url`, `origin_filing_id`, `reject_reason`, `submit_time`, `approve_time`, `filing_status_code`, `filing_status_name`, `apply_type_code`, `apply_type_name`, `delete_enum`, `remarks`, `create_name`, `update_name`, `tenant_id`, `version`, `create_time`, `update_time`, `create_id`, `update_id`, `env`
</sql>
2026-07-14 11:04:08 +08:00
<!-- CO查询映射结果business_scope 以 JSON 数组字符串存储,出库时转换为 List<String> -->
<resultMap id="QualFilingCOResultMap" type="org.qinan.safetyeval.client.co.QualFilingCO" autoMapping="true">
<result column="business_scope" property="businessScope"
typeHandler="org.qinan.safetyeval.infrastructure.handler.JsonStringListTypeHandler"/>
</resultMap>
<select id="qualificationMonitoringPage" resultMap="QualFilingCOResultMap">
2026-07-16 13:10:31 +08:00
select info.credit_code as orgInfoCreditCode, info.unit_name as unitName, filing.* from org_info as info
2026-07-14 10:24:47 +08:00
left join qual_filing as filing on info.id = filing.org_id
2026-07-16 13:10:31 +08:00
where info.delete_enum = 'false'
2026-07-14 15:28:29 +08:00
<if test="query.keyword != null">
and (info.credit_code like concat('%',#{query.keyword},'%') or info.unit_name like concat('%',#{query.keyword},'%'))
2026-07-14 10:24:47 +08:00
</if>
<if test="query.alertStatus != null">
and filing.alert_status = #{query.alertStatus}
</if>
<if test="query.businessScope != null">
2026-07-14 15:28:29 +08:00
and JSON_CONTAINS(filing.business_scope, CONCAT('"', #{query.businessScope}, '"'))
2026-07-14 10:24:47 +08:00
</if>
order by filing.id desc
</select>
2026-07-16 13:10:31 +08:00
<select id="qualificationMonitoringPageStatistics"
resultType="org.qinan.safetyeval.client.co.QualFilingStatisticsCO">
select count(*) as orgInfoSum,
SUM(CASE WHEN alert_status = 'normal' THEN 1 ELSE 0 END) AS normalSum,
SUM(CASE WHEN alert_status = 'person_rate' THEN 1 ELSE 0 END) AS earlyWarningSum
from org_info as info
left join qual_filing as filing on info.id = filing.org_id
where info.delete_enum = 'false';
</select>
2026-07-14 10:24:47 +08:00
</mapper>