From 196829a351cac0c7504a16e314c6f1169d1149e7 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期二, 13 六月 2023 10:19:54 +0800 Subject: [PATCH] 批量上传题库 --- smartor/src/main/java/com/smartor/service/impl/SvyLibTopicServiceImpl.java | 204 +++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 182 insertions(+), 22 deletions(-) diff --git a/smartor/src/main/java/com/smartor/service/impl/SvyLibTopicServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/SvyLibTopicServiceImpl.java index 1be9405..64d7f85 100644 --- a/smartor/src/main/java/com/smartor/service/impl/SvyLibTopicServiceImpl.java +++ b/smartor/src/main/java/com/smartor/service/impl/SvyLibTopicServiceImpl.java @@ -1,96 +1,256 @@ package com.smartor.service.impl; -import java.util.List; +import java.io.IOException; +import java.util.*; + +import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.StringUtils; +import com.smartor.domain.PatArchive; +import com.smartor.domain.SvyLibTopicRes; +import com.smartor.domain.SvyLibTopicoption; +import com.smartor.mapper.SvyLibTopicoptionMapper; +import org.apache.catalina.User; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.smartor.mapper.SvyLibTopicMapper; import com.smartor.domain.SvyLibTopic; import com.smartor.service.ISvyLibTopicService; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.multipart.MultipartFile; /** * 闂嵎棰樼洰Service涓氬姟灞傚鐞� - * + * * @author ruoyi * @date 2023-03-03 */ @Service -public class SvyLibTopicServiceImpl implements ISvyLibTopicService -{ +public class SvyLibTopicServiceImpl implements ISvyLibTopicService { @Autowired private SvyLibTopicMapper svyLibTopicMapper; + @Autowired + private SvyLibTopicoptionMapper svyLibTopicoptionMapper; + /** * 鏌ヨ闂嵎棰樼洰 - * + * * @param topicid 闂嵎棰樼洰涓婚敭 * @return 闂嵎棰樼洰 */ @Override - public SvyLibTopic selectSvyLibTopicByTopicid(Long topicid) - { + public SvyLibTopic selectSvyLibTopicByTopicid(Long topicid) { return svyLibTopicMapper.selectSvyLibTopicByTopicid(topicid); } /** * 鏌ヨ闂嵎棰樼洰鍒楄〃 - * + * * @param svyLibTopic 闂嵎棰樼洰 * @return 闂嵎棰樼洰 */ @Override - public List<SvyLibTopic> selectSvyLibTopicList(SvyLibTopic svyLibTopic) - { + public List<SvyLibTopic> selectSvyLibTopicList(SvyLibTopic svyLibTopic) { return svyLibTopicMapper.selectSvyLibTopicList(svyLibTopic); } /** * 鏂板闂嵎棰樼洰 - * + * * @param svyLibTopic 闂嵎棰樼洰 * @return 缁撴灉 */ @Override - public int insertSvyLibTopic(SvyLibTopic svyLibTopic) - { + public int insertSvyLibTopic(SvyLibTopic svyLibTopic) { svyLibTopic.setCreateTime(DateUtils.getNowDate()); return svyLibTopicMapper.insertSvyLibTopic(svyLibTopic); } /** * 淇敼闂嵎棰樼洰 - * + * * @param svyLibTopic 闂嵎棰樼洰 * @return 缁撴灉 */ @Override - public int updateSvyLibTopic(SvyLibTopic svyLibTopic) - { + public int updateSvyLibTopic(SvyLibTopic svyLibTopic) { svyLibTopic.setUpdateTime(DateUtils.getNowDate()); return svyLibTopicMapper.updateSvyLibTopic(svyLibTopic); } /** * 鎵归噺鍒犻櫎闂嵎棰樼洰 - * + * * @param topicids 闇�瑕佸垹闄ょ殑闂嵎棰樼洰涓婚敭 * @return 缁撴灉 */ @Override - public int deleteSvyLibTopicByTopicids(Long[] topicids) - { + public int deleteSvyLibTopicByTopicids(Long[] topicids) { return svyLibTopicMapper.deleteSvyLibTopicByTopicids(topicids); } /** * 鍒犻櫎闂嵎棰樼洰淇℃伅 - * + * * @param topicid 闂嵎棰樼洰涓婚敭 * @return 缁撴灉 */ @Override - public int deleteSvyLibTopicByTopicid(Long topicid) - { + public int deleteSvyLibTopicByTopicid(Long topicid) { return svyLibTopicMapper.deleteSvyLibTopicByTopicid(topicid); } + + /** + * 鎵归噺瀵煎叆闂棶棰樼洰 + * + * @param multipartFile + * @return + */ + @Override + @Transactional + public List<SvyLibTopicRes> importLitTopic(SysUser user, MultipartFile multipartFile) { + List<SvyLibTopicRes> svyLibTopicErrors = new ArrayList<>(); + + try { + Workbook workbook = new XSSFWorkbook(multipartFile.getInputStream()); + Sheet sheet = workbook.getSheetAt(0); + + //闂嵎棰樼洰瀵硅薄 + SvyLibTopic svyLibTopic = new SvyLibTopic(); + + + for (int i = sheet.getFirstRowNum() + 1; i < sheet.getLastRowNum(); i++) { + SvyLibTopicRes svyLibTopicRes = new SvyLibTopicRes(); + + Row row = sheet.getRow(i); + //濡傛灉琛屼负绌猴紝杩涜涓嬩竴娆″惊鐜� + if (ObjectUtils.isEmpty(row.getCell(0)) && ObjectUtils.isEmpty(row.getCell(1)) && ObjectUtils.isEmpty(row.getCell(2))) { + continue; + } + //鍒ゆ柇鏁版嵁鏄惁鏈夐棶棰� + svyLibTopicRes.setTopic(row.getCell(0).toString()); + if (ObjectUtils.isEmpty(row.getCell(0)) || StringUtils.isEmpty(row.getCell(0).toString())) { + svyLibTopicRes.setRemark("棰樼洰涓虹┖,"); + } else { + //鍒ゆ柇涓�涓嬭棰樻槸鍚﹀凡缁忓湪琛ㄩ噷鍑虹幇 + SvyLibTopic svyLibTopic1 = new SvyLibTopic(); + svyLibTopic1.setTopic(row.getCell(0).toString()); + List<SvyLibTopic> svyLibTopics = svyLibTopicMapper.selectSvyLibTopicList(svyLibTopic1); + if (svyLibTopics.size() > 0) { + //宸茬粡瀛樺湪浜嗭紝灏变笉瀛樹簡 + continue; + } + } + svyLibTopicRes.setTag(row.getCell(1).toString()); + if (ObjectUtils.isEmpty(row.getCell(1)) || StringUtils.isEmpty(row.getCell(1).toString())) { + svyLibTopicRes.setRemark(StringUtils.isNotEmpty(svyLibTopicRes.getRemark()) ? svyLibTopicRes.getRemark() : "" + "绫诲埆涓虹┖,"); + } + svyLibTopicRes.setTopictype(row.getCell(2).toString()); + if (ObjectUtils.isEmpty(row.getCell(2)) || StringUtils.isEmpty(row.getCell(2).toString())) { + svyLibTopicRes.setRemark(StringUtils.isNotEmpty(svyLibTopicRes.getRemark()) ? svyLibTopicRes.getRemark() : "" + "棰樼洰绫诲瀷涓虹┖,"); + } + if (ObjectUtils.isNotEmpty(row.getCell(3))) { + svyLibTopicRes.setAnswer(row.getCell(3).toString()); + } + if (ObjectUtils.isNotEmpty(row.getCell(4))) { + svyLibTopicRes.setOptionA(row.getCell(4).toString()); + } + if (ObjectUtils.isNotEmpty(row.getCell(5))) { + svyLibTopicRes.setOptionB(row.getCell(5).toString()); + } + if (ObjectUtils.isNotEmpty(row.getCell(6))) { + svyLibTopicRes.setOptionC(row.getCell(6).toString()); + } + if (ObjectUtils.isNotEmpty(row.getCell(7))) { + svyLibTopicRes.setOptionD(row.getCell(7).toString()); + } + if (ObjectUtils.isNotEmpty(row.getCell(8))) { + svyLibTopicRes.setScore(row.getCell(8).toString()); + } + if (StringUtils.isNotEmpty(svyLibTopicRes.getRemark())) { + //璇存槑璇ヨ鏁版嵁鏈夐棶棰� + svyLibTopicErrors.add(svyLibTopicRes); + continue; + } + + //鏁版嵁娌℃湁闂锛屽紑濮嬫彃琛� + svyLibTopic.setTopic(row.getCell(0).toString()); + if (row.getCell(2).toString().equals("鍗曢��")) { + svyLibTopic.setTopictype(1L); + } else if (row.getCell(2).toString().equals("澶氶��")) { + svyLibTopic.setTopictype(2L); + } else { + svyLibTopic.setTopictype(3L); + } + svyLibTopic.setTopiccode(UUID.randomUUID().toString().replace("-", "")); + //棰樼洰绫诲埆 + svyLibTopic.setTag(row.getCell(1).toString()); + svyLibTopic.setCreateBy(user.getUserName()); + svyLibTopic.setOrgid(user.getDeptId().toString()); + svyLibTopic.setUpdateBy(user.getUserName()); + svyLibTopic.setUpdateTime(new Date()); + svyLibTopic.setCreateTime(new Date()); + svyLibTopic.setDelFlag("0"); + //鏂板棰樼洰琛� + svyLibTopicMapper.insertSvyLibTopic(svyLibTopic); + + //鏂板棰樼洰閫夐」琛� + SvyLibTopicoption svyLibTopicoption = new SvyLibTopicoption(); + svyLibTopicoption.setTopicid(svyLibTopic.getTopicid()); + svyLibTopicoption.setTopictype(svyLibTopic.getTopictype()); + svyLibTopicoption.setOptioncode(UUID.randomUUID().toString().replace("-", "")); + svyLibTopicoption.setCreateBy(user.getUserName()); + svyLibTopicoption.setCreateTime(new Date()); + svyLibTopicoption.setUpdateBy(user.getUserName()); + svyLibTopicoption.setUpdateTime(new Date()); + svyLibTopicoption.setDelFlag("0"); + if (svyLibTopicoption.getTopictype() == 3) { + //瑙g瓟棰橈紝涓嶉渶瑕佸啀璁剧疆閫夐」 + svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption); + } else { + if (ObjectUtils.isNotEmpty(row.getCell(4)) || StringUtils.isNotEmpty(row.getCell(4).toString())) { + svyLibTopicoption.setOptioncode("A"); + svyLibTopicoption.setOptioncontent(row.getCell(4).toString()); + svyLibTopicoption.setOptionid(null); + svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption); + } + if (ObjectUtils.isNotEmpty(row.getCell(5)) || StringUtils.isNotEmpty(row.getCell(5).toString())) { + svyLibTopicoption.setOptioncode("B"); + svyLibTopicoption.setOptioncontent(row.getCell(5).toString()); + svyLibTopicoption.setOptionid(null); + svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption); + } + if (ObjectUtils.isNotEmpty(row.getCell(6)) || StringUtils.isNotEmpty(row.getCell(6).toString())) { + svyLibTopicoption.setOptioncode("C"); + svyLibTopicoption.setOptioncontent(row.getCell(6).toString()); + svyLibTopicoption.setOptionid(null); + svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption); + } + if (ObjectUtils.isNotEmpty(row.getCell(7)) || StringUtils.isNotEmpty(row.getCell(7).toString())) { + svyLibTopicoption.setOptioncode("D"); + svyLibTopicoption.setOptioncontent(row.getCell(7).toString()); + svyLibTopicoption.setOptionid(null); + svyLibTopicoptionMapper.insertSvyLibTopicoption(svyLibTopicoption); + } + } + } + if (CollectionUtils.isNotEmpty(svyLibTopicErrors)) { + return svyLibTopicErrors; + } + + } catch (Exception e) { + e.printStackTrace(); + } + + return null; + } + + } -- Gitblit v1.9.3