GuDingZiChan/backend/scripts/backfillBorrowRecordJobNumber.sql

35 lines
1.2 KiB
SQL

-- 仅用于“100% 可确定”的历史借用记录工号回填。
-- 执行前必须先确认:
-- 1. person.job_number 已由可信 HR 同步写入
-- 2. 本次只允许回填当前 person_identifier 为空的记录
-- 3. 只处理 source_system = 'ding_hr' 且 source_userid 非空的可信同步人员
SELECT
br.id,
br.equipment_code,
br.person_id,
br.person_name,
br.person_nickname,
br.person_identifier AS current_identifier,
p.job_number AS target_job_number,
p.source_userid,
p.source_system
FROM borrow_record br
JOIN person p ON p.id = br.person_id
WHERE (br.person_identifier IS NULL OR TRIM(br.person_identifier) = '')
AND p.job_number IS NOT NULL
AND TRIM(p.job_number) <> ''
AND p.source_system = 'ding_hr'
AND p.source_userid IS NOT NULL
ORDER BY br.id;
-- 确认上面的候选数据无误后,再手动执行下面的 UPDATE。
-- UPDATE borrow_record br
-- JOIN person p ON p.id = br.person_id
-- SET br.person_identifier = p.job_number
-- WHERE (br.person_identifier IS NULL OR TRIM(br.person_identifier) = '')
-- AND p.job_number IS NOT NULL
-- AND TRIM(p.job_number) <> ''
-- AND p.source_system = 'ding_hr'
-- AND p.source_userid IS NOT NULL;