From 1fb9069acd396eb8bdbd65252f6eb10d3e8362b7 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 02 六月 2026 13:56:57 +0800
Subject: [PATCH] feat(staff): 修改员工入职服务接口增加用户添加标识参数

---
 src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java |   24 +++++++++++++++++++-----
 src/main/java/com/ruoyi/staff/service/IStaffOnJobService.java         |    2 +-
 src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java    |    2 +-
 3 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java b/src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java
index 8eb5334..810e434 100644
--- a/src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java
+++ b/src/main/java/com/ruoyi/staff/controller/StaffOnJobController.java
@@ -59,7 +59,7 @@
      */
     @PostMapping("")
     public AjaxResult add(@RequestBody StaffOnJobDto staffOnJob) {
-        return AjaxResult.success(staffOnJobService.add(staffOnJob));
+        return AjaxResult.success(staffOnJobService.add(staffOnJob,true));
     }
 
     /**
diff --git a/src/main/java/com/ruoyi/staff/service/IStaffOnJobService.java b/src/main/java/com/ruoyi/staff/service/IStaffOnJobService.java
index 46588d1..9b990b2 100644
--- a/src/main/java/com/ruoyi/staff/service/IStaffOnJobService.java
+++ b/src/main/java/com/ruoyi/staff/service/IStaffOnJobService.java
@@ -18,7 +18,7 @@
 
      StaffOnJobDto staffOnJobDetail(Long id);
 
-    int add(StaffOnJobDto staffOnJob);
+    int add(StaffOnJobDto staffOnJob,boolean isAddUser);
 
     int update(Long id, StaffOnJobDto staffOnJob);
 
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..3b116fc 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
@@ -76,12 +76,15 @@
     //鏂板鍏ヨ亴
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public int add(StaffOnJobDto staffOnJobPrams) {
+    public int add(StaffOnJobDto staffOnJobPrams,boolean isAddUser) {
         String[] ignoreProperties = {"id"};//鎺掗櫎id灞炴��
         // 鍒ゆ柇缂栧彿鏄惁瀛樺湪
         List<StaffOnJob> staffOnJobs = staffOnJobMapper.selectList(Wrappers.<StaffOnJob>lambdaQuery().eq(StaffOnJob::getStaffNo, staffOnJobPrams.getStaffNo()));
         if (staffOnJobs != null && !staffOnJobs.isEmpty()){
-            throw new BaseException("缂栧彿涓�"+staffOnJobPrams.getStaffNo()+"鐨勫憳宸ュ凡缁忓瓨鍦�,鏃犳硶鏂板!!!");
+            if(isAddUser){
+                throw new BaseException("缂栧彿涓�"+staffOnJobPrams.getStaffNo()+"鐨勫憳宸ュ凡缁忓瓨鍦�,鏃犳硶鏂板!");
+            }
+            return 0;
         }
 
         // 鍒涘缓鍏ヨ亴鏁版嵁
@@ -332,9 +335,20 @@
             List<SysDept> sysDepts = sysDeptMapper.selectList(Wrappers.<SysDept>lambdaQuery().eq(SysDept::getDelFlag, 0));
             // 鑾峰彇鎵�鏈夎鑹叉暟鎹�
             List<SysRole> sysRoles = sysRoleMapper.selectRoleAll();
-            staffOnJobs.forEach(staffOnJob -> {
+            for (StaffOnJobExcelDto staffOnJob : staffOnJobs) {
                 StaffOnJobDto staffOnJobDto = new StaffOnJobDto();
                 BeanUtils.copyProperties(staffOnJob, staffOnJobDto);
+                // 濡傛灉鍚堝悓骞撮檺涓虹┖锛屾牴鎹悎鍚屽紑濮嬫棩鏈熷拰缁撴潫鏃ユ湡璁$畻
+                if (StringUtils.isEmpty(staffOnJob.getContractTerm())
+                        && staffOnJob.getContractStartTime() != null
+                        && staffOnJob.getContractEndTime() != null) {
+                    LocalDate start = staffOnJob.getContractStartTime().toInstant()
+                            .atZone(ZoneId.of("Asia/Shanghai")).toLocalDate();
+                    LocalDate end = staffOnJob.getContractEndTime().toInstant()
+                            .atZone(ZoneId.of("Asia/Shanghai")).toLocalDate();
+                    int years = end.getYear() - start.getYear();
+                    staffOnJobDto.setContractTerm(String.valueOf(years));
+                }
                 // 閫氳繃鍚嶇О鑾峰彇閮ㄩ棬id
                 staffOnJobDto.setSysDeptId(// ... existing code ...
                         sysDepts.stream()
@@ -349,8 +363,8 @@
                         .findFirst()
                         .map(SysRole::getRoleId)
                         .orElse( null));
-                add(staffOnJobDto);
-            });
+                int i = add(staffOnJobDto,false);
+            }
             return true;
         } catch (Exception e) {
             e.printStackTrace();

--
Gitblit v1.9.3