| | |
| | | package com.gkhy.exam.system.service.impl; |
| | | |
| | | import com.alibaba.excel.EasyExcel; |
| | | import com.alibaba.excel.ExcelReader; |
| | | import com.alibaba.excel.context.AnalysisContext; |
| | | import com.alibaba.excel.read.listener.ReadListener; |
| | | import com.alibaba.excel.read.metadata.ReadSheet; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.gkhy.exam.common.api.CommonPage; |
| | | import com.gkhy.exam.common.api.CommonResult; |
| | | import com.gkhy.exam.common.api.ImportResult; |
| | | import com.gkhy.exam.common.constant.UserConstant; |
| | | import com.gkhy.exam.common.domain.entity.SysDept; |
| | | import com.gkhy.exam.common.domain.entity.SysUser; |
| | | import com.gkhy.exam.common.utils.PageUtils; |
| | | import com.gkhy.exam.common.utils.SecurityUtils; |
| | | import com.gkhy.exam.system.domain.DTO.KnowledgeImportDTO; |
| | | import com.gkhy.exam.system.domain.DTO.StandingBookImportDTO; |
| | | import com.gkhy.exam.system.domain.ExternalKnowledge; |
| | | import com.gkhy.exam.system.domain.StandingBook; |
| | | import com.gkhy.exam.system.domain.vo.DeptVo; |
| | | import com.gkhy.exam.system.mapper.ExternalKnowledgeMapper; |
| | | import com.gkhy.exam.system.service.ExternalKnowledgeService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.time.LocalDateTime; |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | .set(ExternalKnowledge::getUpdateBy, SecurityUtils.getUsername())); |
| | | return CommonResult.success(); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public ImportResult importExternalKnowledge(Long companyId, MultipartFile file) { |
| | | ImportResult result = new ImportResult(); |
| | | result.setSuccessCount(0); |
| | | result.setFailCount(0); |
| | | result.setErrorMessages(new ArrayList<>()); |
| | | |
| | | |
| | | try { |
| | | // 使用EasyExcel读取文件 |
| | | ReadListener<KnowledgeImportDTO> listener = new ReadListener<KnowledgeImportDTO>() { |
| | | @Override |
| | | public void invoke(KnowledgeImportDTO dto, AnalysisContext context) { |
| | | try { |
| | | // 转换为实体对象 |
| | | ExternalKnowledge externalKnowledge = new ExternalKnowledge(); |
| | | externalKnowledge.setName(dto.getName()); |
| | | externalKnowledge.setNumber(dto.getNumber()); |
| | | switch (dto.getKnowledgeType()) { |
| | | case "标准": |
| | | externalKnowledge.setKnowledgeType(1); |
| | | break; |
| | | case "规范": |
| | | externalKnowledge.setKnowledgeType(2); |
| | | break; |
| | | case "法律法规": |
| | | externalKnowledge.setKnowledgeType(3); |
| | | break; |
| | | default: |
| | | externalKnowledge.setKnowledgeType(4); |
| | | break; |
| | | } |
| | | externalKnowledge.setCompanyId(companyId); |
| | | externalKnowledgeMapper.insert(externalKnowledge); |
| | | result.setSuccessCount(result.getSuccessCount() + 1); |
| | | } catch (Exception e) { |
| | | result.getErrorMessages().add("行" + context.readRowHolder().getRowIndex() + "导入失败:" + e.getMessage()); |
| | | result.setFailCount(result.getFailCount() + 1); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public void doAfterAllAnalysed(AnalysisContext context) { |
| | | // 导入完成后的处理 |
| | | } |
| | | }; |
| | | |
| | | // 创建读取器 |
| | | ExcelReader excelReader = EasyExcel.read(file.getInputStream(), KnowledgeImportDTO.class, listener).build(); |
| | | ReadSheet readSheet = EasyExcel.readSheet(0).build(); |
| | | excelReader.read(readSheet); |
| | | |
| | | } catch (Exception e) { |
| | | result.getErrorMessages().add("导入失败:" + e.getMessage()); |
| | | } |
| | | |
| | | return result; |
| | | } |
| | | } |