| | |
| | | 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.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.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.InternalKnowledge; |
| | | import com.gkhy.exam.system.mapper.InternalKnowledgeMapper; |
| | | import com.gkhy.exam.system.service.InternalKnowledgeService; |
| | | 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; |
| | | |
| | | /** |
| | |
| | | |
| | | @Autowired |
| | | private InternalKnowledgeMapper internalKnowledgeMapper; |
| | | |
| | | @Override |
| | | public CommonPage selectInternalKnowledgeList(InternalKnowledge internalKnowledge) { |
| | | PageUtils.startPage(); |
| | |
| | | @Override |
| | | public CommonResult saveInternalKnowledge(InternalKnowledge internalKnowledge) { |
| | | int i = 0; |
| | | if (internalKnowledge.getId() == null){ |
| | | if (internalKnowledge.getId() == null) { |
| | | internalKnowledge.setCreateBy(SecurityUtils.getUsername()); |
| | | internalKnowledge.setCreateTime(LocalDateTime.now()); |
| | | i = internalKnowledgeMapper.insert(internalKnowledge); |
| | | |
| | | }else { |
| | | } else { |
| | | internalKnowledge.setUpdateBy(SecurityUtils.getUsername()); |
| | | internalKnowledge.setUpdateTime(LocalDateTime.now()); |
| | | i = internalKnowledgeMapper.updateById(internalKnowledge); |
| | |
| | | public CommonResult deletedInternalKnowledge(Integer id) { |
| | | internalKnowledgeMapper.update(new InternalKnowledge(), |
| | | new LambdaUpdateWrapper<InternalKnowledge>().eq(InternalKnowledge::getId, id) |
| | | .set(InternalKnowledge::getDelFlag, UserConstant.DEPT_DISABLE) |
| | | .set(InternalKnowledge::getDelFlag, UserConstant.DISENABLE) |
| | | .set(InternalKnowledge::getUpdateTime, LocalDateTime.now()) |
| | | .set(InternalKnowledge::getUpdateBy, SecurityUtils.getUsername())); |
| | | return CommonResult.success(); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public ImportResult importInternalKnowledge(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 { |
| | | // 转换为实体对象 |
| | | InternalKnowledge knowledge = new InternalKnowledge(); |
| | | knowledge.setName(dto.getName()); |
| | | switch (dto.getKnowledgeType()) { |
| | | case "体系文件": |
| | | knowledge.setKnowledgeType(1); |
| | | break; |
| | | case "项目文件": |
| | | knowledge.setKnowledgeType(2); |
| | | break; |
| | | case "其他": |
| | | knowledge.setKnowledgeType(3); |
| | | break; |
| | | case "技术文件": |
| | | knowledge.setKnowledgeType(4); |
| | | break; |
| | | case "知识产权": |
| | | knowledge.setKnowledgeType(5); |
| | | break; |
| | | case "质量服务标准": |
| | | knowledge.setKnowledgeType(6); |
| | | break; |
| | | default: |
| | | knowledge.setKnowledgeType(7); |
| | | break; |
| | | } |
| | | knowledge.setCompanyId(companyId); |
| | | knowledge.setNumber(dto.getNumber()); |
| | | internalKnowledgeMapper.insert(knowledge); |
| | | 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; |
| | | } |
| | | } |