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

89 lines
4.8 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.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"/>
2026-07-14 14:58:07 +08:00
<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>
2026-07-31 17:29:44 +08:00
<!-- 根据人员id列表统计技术负责人和过程控制负责人数量按业务范围分组 -->
2026-07-15 11:11:13 +08:00
<select id="countLeaderFlags" resultType="org.qinan.safetyeval.infrastructure.persistence.domainobject.OrgPersonnelLeaderCountDO">
SELECT
2026-07-31 17:29:44 +08:00
qual_scope,
2026-07-15 11:11:13 +08:00
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>
2026-07-31 17:29:44 +08:00
GROUP BY qual_scope
2026-07-15 11:11:13 +08:00
</select>
2026-07-29 15:08:19 +08:00
<!-- 根据人员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>
2026-08-04 16:06:24 +08:00
<!-- 资质备案人员分页查询,直接返回 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
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>