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

98 lines
5.9 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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>
<!-- 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">
select info.credit_code as orgInfoCreditCode, info.unit_name as unitName, filing.* from org_info as info
left join qual_filing as filing on info.id = filing.org_id
where info.delete_enum = 'false'
<if test="query.keyword != null">
and (info.credit_code like concat('%',#{query.keyword},'%') or info.unit_name like concat('%',#{query.keyword},'%'))
</if>
<if test="query.alertStatus != null">
and filing.alert_status = #{query.alertStatus}
</if>
<if test="query.businessScope != null">
and JSON_CONTAINS(filing.business_scope, CONCAT('"', #{query.businessScope}, '"'))
</if>
order by filing.id desc
</select>
<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>
<select id="selectByOrgIdLastOne" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from qual_filing
where org_id = #{orgId}
and delete_enum = 'false'
order by id desc
limit 1
</select>
</mapper>