From f3d5c380c2e99cff05dfef25ff91cde2fcb54503 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 16 一月 2026 17:47:09 +0800
Subject: [PATCH] 重构员工台账

---
 src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java |   24 ++++++++++++++++++++++--
 1 files changed, 22 insertions(+), 2 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..78f94b2 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java
@@ -8,6 +8,7 @@
 
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.staff.dto.StaffJoinLeaveRecordDto;
 import com.ruoyi.staff.mapper.StaffJoinLeaveRecordMapper;
 import com.ruoyi.staff.mapper.StaffOnJobMapper;
 import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
@@ -24,6 +25,8 @@
 import java.util.*;
 import java.util.function.Function;
 
+import static com.ruoyi.common.enums.StaffJoinLeaveRecordDimissionReason.StaffJoinLeaveRecordDimissionReasonOther;
+
 @Service
 @AllArgsConstructor
 @Transactional(rollbackFor = Exception.class)
@@ -35,7 +38,7 @@
 
     //鍒嗛〉鏌ヨ
     @Override
-    public IPage<StaffJoinLeaveRecord> staffJoinLeaveRecordListPage(Page page, StaffJoinLeaveRecord staffJoinLeaveRecord) {
+    public IPage<StaffJoinLeaveRecordDto> staffJoinLeaveRecordListPage(Page page, StaffJoinLeaveRecord staffJoinLeaveRecord) {
         return staffJoinLeaveRecordMapper.staffJoinLeaveRecordListPage(page,staffJoinLeaveRecord);
     }
 
@@ -77,6 +80,12 @@
                 staffOnJobMapper.updateById(staffOnJob);
             }else {
                 throw new BaseException("娌℃湁鎵惧埌"+staffJoinLeaveRecord.getStaffNo()+"缂栧彿鐨勫憳宸�,鏃犳硶鏂板绂昏亴!!!");
+            }
+            if (staffJoinLeaveRecord.getDimissionReason()==null){
+                throw new BaseException("绂昏亴鍘熷洜涓嶈兘涓虹┖!!!");
+            }
+            if (!StaffJoinLeaveRecordDimissionReasonOther.getCode().equals(staffJoinLeaveRecord.getDimissionReason())){
+                staffJoinLeaveRecord.setDimissionRemark("");
             }
         }
         return staffJoinLeaveRecordMapper.insert(staffJoinLeaveRecord);
@@ -155,14 +164,25 @@
             /*鍏ヨ亴*/
             StaffOnJob job = staffOnJobMapper.selectList(Wrappers.<StaffOnJob>lambdaQuery()
                     .eq(StaffOnJob::getStaffNo, staffJoinLeaveRecord.getStaffNo())).get(0);
+            // 澧炲姞浜嗗悎鍚屾柟妗堟墍浠ュ幓鎺夎繖涓垽鏂�
             //濡傛灉鏇存敼鐨勫悎鍚屽埌鏈熸椂闂存洿涔呭垯鏇存柊,濡傛灉娌℃湁灏变笉鐢ㄦ洿鏂�
-            if (staffJoinLeaveRecord.getContractEndTime().compareTo(job.getContractExpireTime())>0) {
+//            if (staffJoinLeaveRecord.getContractEndTime().compareTo(job.getContractExpireTime())>0) {
+//                BeanUtils.copyProperties(staffJoinLeaveRecord,job,ignoreProperties);
+//                staffOnJobMapper.updateById(job);
+//            }
+            if(job != null){
                 BeanUtils.copyProperties(staffJoinLeaveRecord,job,ignoreProperties);
                 staffOnJobMapper.updateById(job);
             }
         }else {
             /*绂昏亴*/
             //绂昏亴鐨勭紪杈戜笉浼氬奖鍝嶅湪鑱岃〃
+            if (staffJoinLeaveRecord.getDimissionReason()==null){
+                throw new BaseException("绂昏亴鍘熷洜涓嶈兘涓虹┖!!!");
+            }
+            if (!StaffJoinLeaveRecordDimissionReasonOther.getCode().equals(staffJoinLeaveRecord.getDimissionReason())){
+                staffJoinLeaveRecord.setDimissionRemark("");
+            }
         }
         return staffJoinLeaveRecordMapper.updateById(staffJoinLeaveRecord);
     }

--
Gitblit v1.9.3