From 9701bd4fd9665796aa609f1319bd42ce576463cc Mon Sep 17 00:00:00 2001 From: yuliang_guo Date: Thu, 29 Jan 2026 15:27:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=A2=9E=E9=87=8F?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E6=97=B6=E8=BD=AF=E5=88=A0=E9=99=A4=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=AF=BC=E8=87=B4=E7=9A=84=E9=87=8D=E5=A4=8Dusername?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/services/employee_sync_service.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/backend/app/services/employee_sync_service.py b/backend/app/services/employee_sync_service.py index 4e3585c..679197b 100644 --- a/backend/app/services/employee_sync_service.py +++ b/backend/app/services/employee_sync_service.py @@ -246,15 +246,23 @@ class EmployeeSyncService: logger.warning(f"员工 {full_name} 没有手机号,跳过") return None - # 检查用户是否已存在(通过手机号) - stmt = select(User).where( - User.phone == phone, - User.is_deleted == False - ) + # 检查用户是否已存在(通过手机号,包括已软删除的) + stmt = select(User).where(User.phone == phone) result = await self.db.execute(stmt) existing_user = result.scalar_one_or_none() if existing_user: + # 如果是软删除用户,恢复它 + if existing_user.is_deleted: + existing_user.is_deleted = False + existing_user.full_name = full_name or existing_user.full_name + existing_user.is_active = True + dingtalk_id = employee_data.get('dingtalk_id') + if dingtalk_id: + existing_user.dingtalk_id = dingtalk_id + logger.info(f"恢复软删除用户: {phone} ({full_name})") + return existing_user + # 如果用户已存在但没有dingtalk_id,则更新 dingtalk_id = employee_data.get('dingtalk_id') if dingtalk_id and not existing_user.dingtalk_id: