102 lines
5.1 KiB
XML
102 lines
5.1 KiB
XML
<?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="com.ruoyi.ccdi.mapper.CcdiStaffEnterpriseRelationMapper">
|
||
|
||
<!-- 员工实体关系信息ResultMap -->
|
||
<resultMap type="com.ruoyi.ccdi.domain.vo.CcdiStaffEnterpriseRelationVO" id="CcdiStaffEnterpriseRelationVOResult">
|
||
<id property="id" column="id"/>
|
||
<result property="personId" column="person_id"/>
|
||
<result property="personName" column="person_name"/>
|
||
<result property="relationPersonPost" column="relation_person_post"/>
|
||
<result property="socialCreditCode" column="social_credit_code"/>
|
||
<result property="enterpriseName" column="enterprise_name"/>
|
||
<result property="status" column="status"/>
|
||
<result property="remark" column="remark"/>
|
||
<result property="dataSource" column="data_source"/>
|
||
<result property="isEmployee" column="is_employee"/>
|
||
<result property="isEmpFamily" column="is_emp_family"/>
|
||
<result property="isCustomer" column="is_customer"/>
|
||
<result property="isCustFamily" column="is_cust_family"/>
|
||
<result property="createTime" column="create_time"/>
|
||
<result property="updateTime" column="update_time"/>
|
||
<result property="createdBy" column="created_by"/>
|
||
<result property="updatedBy" column="updated_by"/>
|
||
</resultMap>
|
||
|
||
<!-- 分页查询员工实体关系列表 -->
|
||
<select id="selectRelationPage" resultMap="CcdiStaffEnterpriseRelationVOResult">
|
||
SELECT
|
||
ser.id, ser.person_id, bs.name as person_name, ser.relation_person_post,
|
||
ser.social_credit_code, ser.enterprise_name, ser.status, ser.remark,
|
||
ser.data_source, ser.is_employee, ser.is_emp_family, ser.is_customer,
|
||
ser.is_cust_family, ser.created_by, ser.create_time, ser.updated_by,
|
||
ser.update_time
|
||
FROM ccdi_staff_enterprise_relation ser
|
||
LEFT JOIN ccdi_base_staff bs ON ser.person_id = bs.id_card
|
||
<where>
|
||
<if test="query.personId != null and query.personId != ''">
|
||
AND ser.person_id LIKE CONCAT('%', #{query.personId}, '%')
|
||
</if>
|
||
<if test="query.socialCreditCode != null and query.socialCreditCode != ''">
|
||
AND ser.social_credit_code LIKE CONCAT('%', #{query.socialCreditCode}, '%')
|
||
</if>
|
||
<if test="query.enterpriseName != null and query.enterpriseName != ''">
|
||
AND ser.enterprise_name LIKE CONCAT('%', #{query.enterpriseName}, '%')
|
||
</if>
|
||
<if test="query.status != null">
|
||
AND ser.status = #{query.status}
|
||
</if>
|
||
</where>
|
||
ORDER BY ser.create_time DESC
|
||
</select>
|
||
|
||
<!-- 查询员工实体关系详情 -->
|
||
<select id="selectRelationById" resultMap="CcdiStaffEnterpriseRelationVOResult">
|
||
SELECT
|
||
ser.id, ser.person_id, bs.name as person_name, ser.relation_person_post,
|
||
ser.social_credit_code, ser.enterprise_name, ser.status, ser.remark,
|
||
ser.data_source, ser.is_employee, ser.is_emp_family, ser.is_customer,
|
||
ser.is_cust_family, ser.created_by, ser.create_time, ser.updated_by,
|
||
ser.update_time
|
||
FROM ccdi_staff_enterprise_relation ser
|
||
LEFT JOIN ccdi_base_staff bs ON ser.person_id = bs.id_card
|
||
WHERE ser.id = #{id}
|
||
</select>
|
||
|
||
<!-- 判断身份证号和统一社会信用代码的组合是否已存在 -->
|
||
<select id="existsByPersonIdAndSocialCreditCode" resultType="boolean">
|
||
SELECT COUNT(1) > 0
|
||
FROM ccdi_staff_enterprise_relation
|
||
WHERE person_id = #{personId}
|
||
AND social_credit_code = #{socialCreditCode}
|
||
</select>
|
||
|
||
<!-- 批量查询已存在的person_id + social_credit_code组合 -->
|
||
<!-- 优化导入性能:一次性查询所有组合,避免N+1查询问题 -->
|
||
<select id="batchExistsByCombinations" resultType="string">
|
||
SELECT CONCAT(person_id, '|', social_credit_code) AS combination
|
||
FROM ccdi_staff_enterprise_relation
|
||
WHERE CONCAT(person_id, '|', social_credit_code) IN
|
||
<foreach collection="combinations" item="combination" open="(" separator="," close=")">
|
||
#{combination}
|
||
</foreach>
|
||
</select>
|
||
|
||
<!-- 批量插入员工实体关系数据 -->
|
||
<insert id="insertBatch">
|
||
INSERT INTO ccdi_staff_enterprise_relation
|
||
(person_id, relation_person_post, social_credit_code, enterprise_name,
|
||
status, remark, data_source, is_employee, is_emp_family, is_customer, is_cust_family,
|
||
created_by, create_time, updated_by, update_time)
|
||
VALUES
|
||
<foreach collection="list" item="item" separator=",">
|
||
(#{item.personId}, #{item.relationPersonPost}, #{item.socialCreditCode}, #{item.enterpriseName},
|
||
#{item.status}, #{item.remark}, #{item.dataSource}, #{item.isEmployee}, #{item.isEmpFamily}, #{item.isCustomer}, #{item.isCustFamily},
|
||
#{item.createdBy}, NOW(), #{item.updatedBy}, NOW())
|
||
</foreach>
|
||
</insert>
|
||
|
||
</mapper>
|