From 809562f45f703f99f9f75618428cef59a6458799 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 30 三月 2026 17:39:05 +0800
Subject: [PATCH] yys 1.设备导入,人员导入

---
 src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java |   50 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 47 insertions(+), 3 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 8336f90..3613da3 100644
--- a/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
+++ b/src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
@@ -10,12 +10,17 @@
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.dto.WordDateDto;
+import com.ruoyi.project.system.domain.SysDept;
 import com.ruoyi.project.system.domain.SysPost;
+import com.ruoyi.project.system.domain.SysRole;
 import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.mapper.SysDeptMapper;
 import com.ruoyi.project.system.mapper.SysPostMapper;
+import com.ruoyi.project.system.mapper.SysRoleMapper;
 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.dto.StaffOnJobExcelDto;
 import com.ruoyi.staff.mapper.*;
 import com.ruoyi.staff.pojo.*;
 import com.ruoyi.staff.service.IStaffOnJobService;
@@ -46,6 +51,13 @@
 
     @Autowired
     private StaffOnJobMapper staffOnJobMapper;
+
+    @Autowired
+    private SysDeptMapper sysDeptMapper;
+
+    @Autowired
+    private SysRoleMapper sysRoleMapper;
+
     @Autowired
     private SysPostMapper sysPostMapper;
 
@@ -53,6 +65,9 @@
     private StaffContractMapper staffContractMapper;
     @Autowired
     private StaffLeaveMapper staffLeaveMapper;
+
+    @Autowired
+    private PersonalAttendanceRecordsMapper personalAttendanceRecordsMapper;
 
     @Autowired
     private SysUserServiceImpl sysUserService;
@@ -215,6 +230,8 @@
         staffOnJobMapper.deleteBatchIds(ids);
         // 鍒犻櫎绂昏亴鏁版嵁
         staffLeaveMapper.delete(Wrappers.<StaffLeave>lambdaQuery().in(StaffLeave::getStaffOnJobId, ids));
+        // 鍒犻櫎鎵撳崱璁板綍
+        personalAttendanceRecordsMapper.delete(Wrappers.<PersonalAttendanceRecords>lambdaQuery().in(PersonalAttendanceRecords::getStaffOnJobId, ids));
         // 鍒犻櫎鐢ㄦ埛鏁版嵁
         List<SysUser> sysUsers = sysUserMapper.selectList(Wrappers.<SysUser>lambdaQuery()
                 .in(SysUser::getUserName, staffOnJobs.stream().map(StaffOnJob::getStaffNo).collect(Collectors.toList())));
@@ -305,11 +322,38 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public Boolean importData(MultipartFile file) {
         try {
-            ExcelUtil<StaffOnJob> util = new ExcelUtil<>(StaffOnJob.class);
-            List<StaffOnJob> staffOnJobs = util.importExcel(file.getInputStream());
-            return saveOrUpdateBatch(staffOnJobs);
+            ExcelUtil<StaffOnJobExcelDto> util = new ExcelUtil<>(StaffOnJobExcelDto.class);
+            List<StaffOnJobExcelDto> staffOnJobs = util.importExcel(file.getInputStream());
+            if (CollectionUtils.isEmpty(staffOnJobs)){
+                return false;
+            }
+            // 鑾峰彇鎵�鏈夐儴闂ㄦ暟鎹�
+            List<SysDept> sysDepts = sysDeptMapper.selectList(Wrappers.<SysDept>lambdaQuery().eq(SysDept::getDelFlag, 0));
+            // 鑾峰彇鎵�鏈夎鑹叉暟鎹�
+            List<SysRole> sysRoles = sysRoleMapper.selectRoleAll();
+            staffOnJobs.forEach(staffOnJob -> {
+                StaffOnJobDto staffOnJobDto = new StaffOnJobDto();
+                BeanUtils.copyProperties(staffOnJob, staffOnJobDto);
+                // 閫氳繃鍚嶇О鑾峰彇閮ㄩ棬id
+                staffOnJobDto.setSysDeptId(// ... existing code ...
+                        sysDepts.stream()
+                            .filter(dept -> dept.getDeptName() != null && dept.getDeptName().equals(staffOnJob.getSysDeptName()))
+                            .findFirst()
+                            .map(SysDept::getDeptId)
+                            .orElse(null)
+                        );
+                // 閫氳繃鍚嶇О鑾峰彇瑙掕壊id
+                staffOnJobDto.setRoleId(sysRoles.stream()
+                        .filter(role -> role.getRoleName() != null && role.getRoleName().equals(staffOnJob.getRoleName()))
+                        .findFirst()
+                        .map(SysRole::getRoleId)
+                        .orElse( null));
+                add(staffOnJobDto);
+            });
+            return true;
         } catch (Exception e) {
             e.printStackTrace();
             return false;

--
Gitblit v1.9.3