src/main/java/com/ruoyi/staff/service/impl/StaffOnJobServiceImpl.java
@@ -34,10 +34,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.io.StringWriter;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.time.Instant;
import java.time.LocalDate;
@@ -111,7 +108,8 @@
        // 创建合同记录
        StaffContract staffContract = new StaffContract();
        staffContract.setStaffOnJobId(staffOnJobPrams.getId());
        staffContract.setContractTerm(staffOnJobPrams.getContractTerm());
        String contractTerm = staffOnJobPrams.getContractTerm();
        staffContract.setContractTerm(StringUtils.isNotEmpty(contractTerm) ? contractTerm : null);
        staffContract.setContractStartTime(staffOnJobPrams.getContractStartTime());
        staffContract.setContractEndTime(staffOnJobPrams.getContractEndTime());
        return staffContractMapper.insert(staffContract);
@@ -321,41 +319,36 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Boolean importData(MultipartFile file) {
        try {
            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();
    public Boolean importData(MultipartFile file) throws IOException {
        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(
                    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;
    }