完成员工亲属实体关联改造并清理旧数据

This commit is contained in:
wkc
2026-04-24 08:55:05 +08:00
parent b7d020c0b2
commit b7db711906
25 changed files with 1298 additions and 219 deletions

View File

@@ -8,7 +8,9 @@
<resultMap type="com.ruoyi.info.collection.domain.vo.CcdiStaffEnterpriseRelationVO" id="CcdiStaffEnterpriseRelationVOResult">
<id property="id" column="id"/>
<result property="personId" column="person_id"/>
<result property="personName" column="person_name"/>
<result property="relationName" column="relation_name"/>
<result property="staffPersonId" column="staff_person_id"/>
<result property="staffPersonName" column="staff_person_name"/>
<result property="relationPersonPost" column="relation_person_post"/>
<result property="socialCreditCode" column="social_credit_code"/>
<result property="enterpriseName" column="enterprise_name"/>
@@ -28,17 +30,28 @@
<!-- 分页查询员工实体关系列表 -->
<select id="selectRelationPage" resultMap="CcdiStaffEnterpriseRelationVOResult">
SELECT
ser.id, ser.person_id, bs.name as person_name, ser.relation_person_post,
ser.id, ser.person_id, sfr.relation_name, sfr.person_id AS staff_person_id, bs.name AS staff_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
LEFT JOIN ccdi_staff_fmy_relation sfr
ON ser.person_id = sfr.relation_cert_no
AND sfr.is_emp_family = 1
LEFT JOIN ccdi_base_staff bs ON sfr.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.relationName != null and query.relationName != ''">
AND sfr.relation_name LIKE CONCAT('%', #{query.relationName}, '%')
</if>
<if test="query.staffPersonName != null and query.staffPersonName != ''">
AND (sfr.person_id LIKE CONCAT('%', #{query.staffPersonName}, '%')
OR bs.name LIKE CONCAT('%', #{query.staffPersonName}, '%'))
</if>
<if test="query.socialCreditCode != null and query.socialCreditCode != ''">
AND ser.social_credit_code LIKE CONCAT('%', #{query.socialCreditCode}, '%')
</if>
@@ -55,16 +68,40 @@
<!-- 查询员工实体关系详情 -->
<select id="selectRelationById" resultMap="CcdiStaffEnterpriseRelationVOResult">
SELECT
ser.id, ser.person_id, bs.name as person_name, ser.relation_person_post,
ser.id, ser.person_id, sfr.relation_name, sfr.person_id AS staff_person_id, bs.name AS staff_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
LEFT JOIN ccdi_staff_fmy_relation sfr
ON ser.person_id = sfr.relation_cert_no
AND sfr.is_emp_family = 1
LEFT JOIN ccdi_base_staff bs ON sfr.person_id = bs.id_card
WHERE ser.id = #{id}
</select>
<!-- 查询有效员工亲属下拉选项 -->
<select id="selectFamilyOptions" resultType="com.ruoyi.info.collection.domain.vo.CcdiStaffEnterpriseRelationOptionVO">
SELECT
sfr.relation_cert_no AS relationCertNo,
sfr.relation_name AS relationName,
sfr.person_id AS staffPersonId,
bs.name AS staffPersonName
FROM ccdi_staff_fmy_relation sfr
LEFT JOIN ccdi_base_staff bs ON sfr.person_id = bs.id_card
<where>
sfr.is_emp_family = 1
AND sfr.status = 1
<if test="query != null and query != ''">
AND sfr.relation_cert_no LIKE CONCAT('%', #{query}, '%')
</if>
</where>
ORDER BY sfr.create_time DESC
LIMIT 100
</select>
<!-- 判断身份证号和统一社会信用代码的组合是否已存在 -->
<select id="existsByPersonIdAndSocialCreditCode" resultType="boolean">
SELECT COUNT(1) > 0
@@ -84,6 +121,14 @@
</foreach>
</select>
<update id="invalidateByFamilyCertNo">
UPDATE ccdi_staff_enterprise_relation
SET status = 0,
update_time = NOW()
WHERE person_id = #{personId}
AND status != 0
</update>
<!-- 批量插入员工实体关系数据 -->
<insert id="insertBatch">
INSERT INTO ccdi_staff_enterprise_relation