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

89 lines
4.8 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.OrgPersonnelMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="org.qinan.safetyeval.infrastructure.dataobject.OrgPersonnelDO">
<id column="id" property="id"/>
<result column="org_id" property="orgId"/>
<result column="dept_id" property="deptId"/>
<result column="post_id" property="postId"/>
<result column="user_name" property="userName"/>
<result column="account" property="account"/>
<result column="gender_code" property="genderCode"/>
<result column="gender_name" property="genderName"/>
<result column="birth_date" property="birthDate"/>
<result column="id_card_no" property="idCardNo"/>
<result column="current_address" property="currentAddress"/>
<result column="office_address" property="officeAddress"/>
<result column="education_code" property="educationCode"/>
<result column="education_name" property="educationName"/>
<result column="graduate_school" property="graduateSchool"/>
<result column="major" property="major"/>
<result column="basic_discipline_major_id" property="basicDisciplineMajorId"/>
<result column="employment_status_code" property="employmentStatusCode"/>
<result column="employment_status_name" property="employmentStatusName"/>
<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`, `dept_id`, `post_id`, `user_name`, `account`, `gender_code`, `gender_name`, `birth_date`, `id_card_no`, `current_address`, `office_address`, `education_code`, `education_name`, `graduate_school`, `major`, `employment_status_code`, `employment_status_name`, `delete_enum`, `remarks`, `create_name`, `update_name`, `tenant_id`, `version`, `create_time`, `update_time`, `create_id`, `update_id`, `env`
</sql>
<!-- 根据人员id列表统计技术负责人和过程控制负责人数量按业务范围分组 -->
<select id="countLeaderFlags" resultType="org.qinan.safetyeval.infrastructure.persistence.domainobject.OrgPersonnelLeaderCountDO">
SELECT
qual_scope,
COUNT(CASE WHEN technical_director_flag = 1 THEN 1 END) AS technical_director_count,
COUNT(CASE WHEN process_control_leader_flag = 1 THEN 1 END) AS process_control_leader_count
FROM org_personnel
WHERE delete_enum = 'false'
AND id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
GROUP BY qual_scope
</select>
<!-- 根据人员id列表查询专业能力code关联 basic_discipline_major -->
<select id="selectProfessionalCapabilityByPersonnelIds" resultType="org.qinan.safetyeval.client.co.IndustryProfessionalPersonCo">
SELECT p.id AS source_personnel_id, bdm.professional_capability_code, bdm.industry_code
FROM org_personnel p
JOIN basic_discipline_major bdm ON p.basic_discipline_major_id = bdm.id
WHERE p.delete_enum = 'false'
AND p.id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
<!-- 资质备案人员分页查询,直接返回 CO -->
<select id="filingPage" resultType="org.qinan.safetyeval.client.co.QualFilingPersonnelInfoCO">
SELECT p.id source_personnel_id, p.id, p.user_name personName, po.position_name, p.post_id, p.gender_code, p.gender_name
, p.birth_date, p.register_engineer_flag, p.evaluator_cert_no, p.join_work_date
FROM org_personnel p
left join org_department d on p.dept_id = d.id and d.delete_enum = 'false'
left join org_position po on po.id = p.post_id and po.delete_enum = 'false'
<where>
p.delete_enum = 'false'
AND p.org_id = #{query.orgId}
<if test="query.personName != null and query.personName != ''">
AND p.user_name LIKE CONCAT('%', #{query.personName}, '%')
</if>
</where>
ORDER BY p.id DESC
</select>
</mapper>