maven
2025-11-24 3e451c90f8734835743e9cebcf02ce30e577c28d
src/main/java/com/ruoyi/staff/service/impl/StaffJoinLeaveRecordServiceImpl.java
@@ -7,7 +7,10 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.exception.base.BaseException;
import com.ruoyi.common.utils.excel.ExcelUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.lavorissue.mapper.DeptPositionMapper;
import com.ruoyi.lavorissue.pojo.DeptPosition;
import com.ruoyi.staff.mapper.StaffJoinLeaveRecordMapper;
import com.ruoyi.staff.mapper.StaffOnJobMapper;
import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
@@ -17,6 +20,8 @@
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.ServletException;
@@ -166,4 +171,27 @@
        }
        return staffJoinLeaveRecordMapper.updateById(staffJoinLeaveRecord);
    }
    private final DeptPositionMapper deptPositionMapper;
    @Override
    public Boolean importData(MultipartFile file) throws Exception{
        ExcelUtil<StaffJoinLeaveRecord> util = new ExcelUtil<>(StaffJoinLeaveRecord.class);
        List<StaffJoinLeaveRecord> staffJoinLeaveRecords = util.importExcel(file.getInputStream());
        if(CollectionUtils.isEmpty(staffJoinLeaveRecords)){
            return false;
        }
        List<DeptPosition> deptPositions = deptPositionMapper.selectList(null);
        if(CollectionUtils.isEmpty(deptPositions)){
            return false;
        }
        // 通过部门名称查询部门id
        for (StaffJoinLeaveRecord staffJoinLeaveRecord : staffJoinLeaveRecords) {
            staffJoinLeaveRecord.setStaffState(1);
            Optional<DeptPosition> deptPosition = deptPositions.stream().filter(deptPosition1 -> deptPosition1.getName().equals(staffJoinLeaveRecord.getDeptPositionName())).findFirst();
            deptPosition.ifPresent(position -> staffJoinLeaveRecord.setDeptPositionId(position.getId()));
            add(staffJoinLeaveRecord);
        }
        return true;
    }
}