From 8d3065add0a652305563814e0852ce76fa80efea Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期三, 14 一月 2026 17:08:03 +0800
Subject: [PATCH] 人力资源-新增离职,增加离职原因和备注

---
 src/main/java/com/ruoyi/staff/pojo/StaffJoinLeaveRecord.java                    |   12 ++++++++++++
 src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java |   14 ++++++++++++++
 src/main/java/com/ruoyi/common/enums/StaffJoinLeaveRecordDimissionReason.java   |   28 ++++++++++++++++++++++++++++
 doc/20260114_add_dimission_reason_and_remark_to_staff_join_leave_record.sql     |    3 +++
 4 files changed, 57 insertions(+), 0 deletions(-)

diff --git a/doc/20260114_add_dimission_reason_and_remark_to_staff_join_leave_record.sql b/doc/20260114_add_dimission_reason_and_remark_to_staff_join_leave_record.sql
new file mode 100644
index 0000000..c02a3ba
--- /dev/null
+++ b/doc/20260114_add_dimission_reason_and_remark_to_staff_join_leave_record.sql
@@ -0,0 +1,3 @@
+alter table staff_join_leave_record
+    add dimission_reason varchar(255) null,
+    add dimission_remark text null;
diff --git a/src/main/java/com/ruoyi/common/enums/StaffJoinLeaveRecordDimissionReason.java b/src/main/java/com/ruoyi/common/enums/StaffJoinLeaveRecordDimissionReason.java
new file mode 100644
index 0000000..c59e56c
--- /dev/null
+++ b/src/main/java/com/ruoyi/common/enums/StaffJoinLeaveRecordDimissionReason.java
@@ -0,0 +1,28 @@
+package com.ruoyi.common.enums;
+
+import lombok.AllArgsConstructor;
+
+/**
+ * 闄勪欢璁板綍绫诲瀷鏋氫妇
+ *
+ */
+@AllArgsConstructor
+public enum StaffJoinLeaveRecordDimissionReason {
+    StaffJoinLeaveRecordDimissionReasonSalary("salary","钖祫寰呴亣"),
+    StaffJoinLeaveRecordDimissionReasonCareerDevelopment("career_development","鑱屼笟鍙戝睍"),
+    StaffJoinLeaveRecordDimissionReasonWorkEnvironment("work_environment","宸ヤ綔鐜"),
+    StaffJoinLeaveRecordDimissionReasonPersonalReason("personal_reason","涓汉鍘熷洜"),
+    StaffJoinLeaveRecordDimissionReasonOther("other","鍏朵粬鍘熷洜");
+
+
+    private final String code;
+    private final String info;
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getInfo() {
+        return info;
+    }
+}
diff --git a/src/main/java/com/ruoyi/staff/pojo/StaffJoinLeaveRecord.java b/src/main/java/com/ruoyi/staff/pojo/StaffJoinLeaveRecord.java
index 0e78067..e8f8934 100644
--- a/src/main/java/com/ruoyi/staff/pojo/StaffJoinLeaveRecord.java
+++ b/src/main/java/com/ruoyi/staff/pojo/StaffJoinLeaveRecord.java
@@ -188,6 +188,18 @@
     @Excel(name = "澶囨敞锛堢鍒╁緟閬囷級")
     private String remark;
 
+    /**
+     * 绂昏亴鍘熷洜
+     */
+    @Excel(name = "绂昏亴鍘熷洜",readConverterExp = "salary=钖祫寰呴亣,career_development=鑱屼笟鍙戝睍,work_environment=宸ヤ綔鐜,personal_reason=涓汉鍘熷洜,other=鍏朵粬")
+    private String dimissionReason;
+
+    /**
+     * 绂昏亴澶囨敞
+     */
+    @Excel(name = "绂昏亴澶囨敞")
+    private String dimissionRemark;
+
 
     @ApiModelProperty(value = "鍒涘缓鏃堕棿")
     @TableField(fill = FieldFill.INSERT)
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 378a1f1..d20ee41 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java
@@ -24,6 +24,8 @@
 import java.util.*;
 import java.util.function.Function;
 
+import static com.ruoyi.common.enums.StaffJoinLeaveRecordDimissionReason.StaffJoinLeaveRecordDimissionReasonOther;
+
 @Service
 @AllArgsConstructor
 @Transactional(rollbackFor = Exception.class)
@@ -77,6 +79,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);
@@ -168,6 +176,12 @@
         }else {
             /*绂昏亴*/
             //绂昏亴鐨勭紪杈戜笉浼氬奖鍝嶅湪鑱岃〃
+            if (staffJoinLeaveRecord.getDimissionReason()==null){
+                throw new BaseException("绂昏亴鍘熷洜涓嶈兘涓虹┖!!!");
+            }
+            if (!StaffJoinLeaveRecordDimissionReasonOther.getCode().equals(staffJoinLeaveRecord.getDimissionReason())){
+                staffJoinLeaveRecord.setDimissionRemark("");
+            }
         }
         return staffJoinLeaveRecordMapper.updateById(staffJoinLeaveRecord);
     }

--
Gitblit v1.9.3