From 8009db163dda5fe1e3f772e1e1bb808b5db8132a Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期四, 22 十月 2026 22:29:48 +0800
Subject: [PATCH] fix(浪潮SSO): 单点登录增加容错与日志(同步自 dev_tide_wrzs)

---
 src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java b/src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java
index f82ecc8..f10bc12 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java
@@ -58,14 +58,23 @@
             if (staffOnJobs.size()>0){
                 StaffOnJob staffOnJob = staffOnJobs.get(0);
                 //鍏堟瘮杈冨埌鏈熸棩鏈�,杩欓噷閫夌敤鍒版湡鏃ユ湡鏈�涔呯殑
-                if (staffJoinLeaveRecord.getContractEndTime().compareTo(staffOnJob.getContractExpireTime())>0) {
+                if (staffJoinLeaveRecord.getContractEndTime() != null
+                        && (staffOnJob.getContractExpireTime() == null
+                        || staffJoinLeaveRecord.getContractEndTime().compareTo(staffOnJob.getContractExpireTime())>0)) {
                     BeanUtils.copyProperties(staffJoinLeaveRecord,staffOnJob,ignoreProperties);
+                    staffOnJob.setContractExpireTime(staffJoinLeaveRecord.getContractEndTime());
+                    //鍏ヨ亴鏃ユ湡瀛楁鍚嶄笉鍚�(contractStartTime -> entryDate)锛孊eanUtils 鎷蜂笉杩囨潵锛岄渶鎵嬪姩璧嬪��
+                    if (staffJoinLeaveRecord.getContractStartTime() != null) {
+                        staffOnJob.setEntryDate(staffJoinLeaveRecord.getContractStartTime());
+                    }
                     staffOnJobMapper.updateById(staffOnJob);
                 }
             }else {
                 StaffOnJob staffOnJob = new StaffOnJob();
                 BeanUtils.copyProperties(staffJoinLeaveRecord,staffOnJob,ignoreProperties);
                 staffOnJob.setContractExpireTime(staffJoinLeaveRecord.getContractEndTime());
+                //鍏ヨ亴鏃ユ湡鍚屾鍒板彴璐︼紝淇濊瘉鍙拌处鈥滃叆鑱屾椂闂粹�濆垪鏈夊��
+                staffOnJob.setEntryDate(staffJoinLeaveRecord.getContractStartTime());
                 staffOnJobMapper.insert(staffOnJob);
             }
         }else {

--
Gitblit v1.9.3