From 593cbad35cb45247ac022127ca7edad48ff92b12 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期四, 05 三月 2026 15:51:44 +0800
Subject: [PATCH] yys 1.人员入职同步新增用户,离职禁用登录     2.社保管理模块开发

---
 src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java |   45 +++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 43 insertions(+), 2 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 d421345..02253f5 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
@@ -6,10 +6,15 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.exception.base.BaseException;
+import com.ruoyi.common.utils.OrderUtils;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.dto.WordDateDto;
 import com.ruoyi.project.system.domain.SysPost;
+import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysPostMapper;
+import com.ruoyi.project.system.mapper.SysUserMapper;
+import com.ruoyi.project.system.service.impl.SysUserServiceImpl;
 import com.ruoyi.staff.dto.StaffOnJobDto;
 import com.ruoyi.staff.mapper.StaffContractMapper;
 import com.ruoyi.staff.mapper.StaffLeaveMapper;
@@ -22,6 +27,8 @@
 import freemarker.template.Template;
 import lombok.AllArgsConstructor;
 
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.ListUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -35,6 +42,7 @@
 import java.time.LocalDate;
 import java.time.ZoneId;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @AllArgsConstructor
 @Service
@@ -50,6 +58,12 @@
     @Autowired
     private StaffLeaveMapper staffLeaveMapper;
 
+    @Autowired
+    private SysUserServiceImpl sysUserService;
+
+    @Autowired
+    private SysUserMapper sysUserMapper;
+
 
     //鍦ㄨ亴鍛樺伐鍙拌处鍒嗛〉鏌ヨ
     @Override
@@ -64,14 +78,29 @@
         String[] ignoreProperties = {"id"};//鎺掗櫎id灞炴��
         // 鍒ゆ柇缂栧彿鏄惁瀛樺湪
         List<StaffOnJob> staffOnJobs = staffOnJobMapper.selectList(Wrappers.<StaffOnJob>lambdaQuery().eq(StaffOnJob::getStaffNo, staffOnJobPrams.getStaffNo()));
-        if (staffOnJobs.size()>0){
+        if (staffOnJobs != null && !staffOnJobs.isEmpty()){
             throw new BaseException("缂栧彿涓�"+staffOnJobPrams.getStaffNo()+"鐨勫憳宸ュ凡缁忓瓨鍦�,鏃犳硶鏂板!!!");
         }
+
         // 鍒涘缓鍏ヨ亴鏁版嵁
         staffOnJobPrams.setContractExpireTime(staffOnJobPrams.getContractEndTime());
         staffOnJobPrams.setStaffState(1);
         staffOnJobMapper.insert(staffOnJobPrams);
-
+        // 鏌ヨ鐢ㄦ埛鏄惁宸茬粡鏂板
+        SysUser sysUser = sysUserService.selectUserById(staffOnJobPrams.getId());
+        if(sysUser == null){
+            SysUser sysUser1 = new SysUser();
+            sysUser1.setUserName(staffOnJobPrams.getStaffNo());
+            sysUser1.setNickName(staffOnJobPrams.getStaffName());
+            String s = SecurityUtils.encryptPassword("123456");
+            sysUser1.setPassword(s);
+            Long[] posts = new Long[]{staffOnJobPrams.getSysPostId().longValue()};
+            sysUser1.setPostIds(posts);
+            sysUser1.setRoleIds(new Long[]{staffOnJobPrams.getRoleId()});
+            sysUser1.setDeptIds(new  Long[]{staffOnJobPrams.getSysDeptId()});
+            sysUser1.setStatus("0");
+            sysUserService.insertUser(sysUser1);
+        }
         // 鍒涘缓鍚堝悓璁板綍
         StaffContract staffContract = new StaffContract();
         staffContract.setStaffOnJobId(staffOnJobPrams.getId());
@@ -112,10 +141,22 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int delStaffOnJobs(List<Integer> ids) {
+        List<StaffOnJob> staffOnJobs = staffOnJobMapper.selectList(Wrappers.<StaffOnJob>lambdaQuery().in(StaffOnJob::getId, ids));
+        if(CollectionUtils.isEmpty(staffOnJobs)){
+            throw new BaseException("璇ュ憳宸ヤ笉瀛樺湪,鏃犳硶鍒犻櫎!!!");
+        }
         // 鍒犻櫎鍏ヨ亴鏁版嵁
         staffOnJobMapper.deleteBatchIds(ids);
         // 鍒犻櫎绂昏亴鏁版嵁
         staffLeaveMapper.delete(Wrappers.<StaffLeave>lambdaQuery().in(StaffLeave::getStaffOnJobId, ids));
+        // 鍒犻櫎鐢ㄦ埛鏁版嵁
+        List<SysUser> sysUsers = sysUserMapper.selectList(Wrappers.<SysUser>lambdaQuery()
+                .in(SysUser::getUserName, staffOnJobs.stream().map(StaffOnJob::getStaffNo).collect(Collectors.toList())));
+        if(CollectionUtils.isNotEmpty(sysUsers)){
+            Long[] longs = sysUsers.stream().map(SysUser::getUserId).toArray(Long[]::new);
+            sysUserService.deleteUserByIds(longs);
+        }
+
         // 鍒犻櫎鍚堝悓鏁版嵁
         return staffContractMapper.delete(Wrappers.<StaffContract>lambdaQuery().in(StaffContract::getStaffOnJobId, ids));
     }

--
Gitblit v1.9.3