From 7fb7b39bedae57a957be706bc9b866d89f7316f2 Mon Sep 17 00:00:00 2001
From: yuan <123@>
Date: 星期三, 26 八月 2026 14:28:02 +0800
Subject: [PATCH] feat: 添加清除当前用户的所有消息接口

---
 src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java |   27 +++++++++++++++++++++++----
 1 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java b/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
index 1f20da2..e17cc90 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
@@ -127,15 +127,25 @@
             throw new BaseException("缂栧彿涓�"+staffOnJobParams.getStaffNo()+"鐨勫憳宸ヤ笉瀛樺湪,鏃犳硶鏇存柊!!!");
         }
 
-        String[] ignoreProperties = {"id"};//鎺掗櫎鏇存柊灞炴��
-
         // 鑾峰彇鏈�鏂板悎鍚屾暟鎹紝骞朵笖鏇存柊
         StaffContract contract = staffContractMapper.selectOne(Wrappers.<StaffContract>lambdaQuery()
                 .eq(StaffContract::getStaffOnJobId, id)
                 .last("limit 1")
                 .orderByDesc(StaffContract::getId));
-        if (contract != null){
-            BeanUtils.copyProperties(staffOnJobParams,contract,ignoreProperties);
+        boolean hasContractData = staffOnJobParams.getContractTerm() != null
+                || staffOnJobParams.getContractStartTime() != null
+                || staffOnJobParams.getContractEndTime() != null;
+        if (contract == null && hasContractData) {
+            contract = new StaffContract();
+            contract.setStaffOnJobId(id);
+            contract.setContractTerm(staffOnJobParams.getContractTerm());
+            contract.setContractStartTime(staffOnJobParams.getContractStartTime());
+            contract.setContractEndTime(staffOnJobParams.getContractEndTime());
+            staffContractMapper.insert(contract);
+        } else if (contract != null) {
+            contract.setContractTerm(staffOnJobParams.getContractTerm());
+            contract.setContractStartTime(staffOnJobParams.getContractStartTime());
+            contract.setContractEndTime(staffOnJobParams.getContractEndTime());
             staffContractMapper.updateById(contract);
         }
 
@@ -145,6 +155,7 @@
         bingingStaffOnJobExtra(id,staffOnJobParams);
         // 鏇存柊鍛樺伐鏁版嵁
         syncStudyInfoFromEducation(staffOnJobParams);
+        staffOnJobParams.setId(id);
         staffOnJobParams.setContractExpireTime(staffOnJobParams.getContractEndTime());
         return staffOnJobMapper.updateById(staffOnJobParams);
     }
@@ -333,8 +344,16 @@
             // 鑾峰彇鎵�鏈夎鑹叉暟鎹�
             List<SysRole> sysRoles = sysRoleMapper.selectRoleAll();
             staffOnJobs.forEach(staffOnJob -> {
+                if (staffOnJob.getStaffNo() == null || staffOnJob.getStaffNo().trim().isEmpty()) {
+                    throw new BaseException("鍛樺伐缂栧彿涓嶈兘涓虹┖锛屽憳宸ュ鍚嶏細" + staffOnJob.getStaffName());
+                }
                 StaffOnJobDto staffOnJobDto = new StaffOnJobDto();
                 BeanUtils.copyProperties(staffOnJob, staffOnJobDto);
+                staffOnJobDto.setContractStartTime(staffOnJob.getContractStartTime());
+                staffOnJobDto.setContractEndTime(staffOnJob.getContractEndTime());
+                staffOnJobDto.setContractTerm(staffOnJob.getContractTerm());
+                staffOnJobDto.setStaffNo(staffOnJob.getStaffNo());
+                staffOnJobDto.setStaffName(staffOnJob.getStaffName());
                 // 閫氳繃鍚嶇О鑾峰彇閮ㄩ棬id
                 staffOnJobDto.setSysDeptId(// ... existing code ...
                         sysDepts.stream()

--
Gitblit v1.9.3