提交 7947b288 authored 作者: 任建彩's avatar 任建彩

feat:excel批量上传

1.resource
上级 4bdd8ab5
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.zrqx.core.enums.BookCopyrightTypeEnum;
import com.zrqx.util.excelutil.ExcelResources;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -91,4 +92,6 @@ public class Book {
private Integer departmentId;
@ApiModelProperty(value = "部门")
private String departmentCode;
@ApiModelProperty(value ="物料号")
private String itemNo;
}
......@@ -2,6 +2,7 @@ package com.zrqx.resource.model.vo.ebook;
import com.zrqx.util.excelutil.ExcelResources;
import com.zrqx.util.excelutil.ImportVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
......@@ -9,35 +10,57 @@ import lombok.Data;
*/
@Data
public class ExcelBookExportVo extends ImportVo {
@ExcelResources(title = "名称", order = 1)
private String name;
@ExcelResources(title = "isbn", order = 1)
@ExcelResources(title = "isbn", order = 2)
private String isbn;
@ExcelResources(title = "名称", order = 2)
private String name;
@ExcelResources(title = "出版单位 ", order = 3)
private String publisher;
@ExcelResources(title = "版次", order = 3)
private String revision;
@ExcelResources(title = "出版时间 ", order = 4)
private String publishTime;
@ExcelResources(title = "关键词", order = 4)
private String keywords;
@ExcelResources(title = "译者", order = 5)
private String translator;
@ExcelResources(title = "中图分类 ", order = 5)
private String midpicid;
@ExcelResources(title = "作者", order = 6)
private String author;
@ExcelResources(title = "出版时间 ", order = 5)
private String publishTime;
@ExcelResources(title = "系列", order = 7)
private String project;
@ExcelResources(title = "出版社 ", order = 5)
private String publisher;
@ExcelResources(title = "责任编辑", order = 8)
private String executiveEditor;
@ExcelResources(title = "定价", order = 5)
private String price;
@ExcelResources(title = "丛书名称", order = 9)
private String bookSeries;
@ExcelResources(title = "作者", order = 5)
private String author;
@ExcelResources(title = "版次", order = 10)
private String revision;
@ExcelResources(title = "字数(千字)", order = 11)
private String fontCount;
@ExcelResources(title = "图书封面", order = 12)
private String cover;
@ExcelResources(title = "简介 ", order = 5)
@ExcelResources(title = "语种", order = 13)
private String languagesLabel;
@ExcelResources(title = "学习阶段", order = 14)
private String studyLabel;
@ExcelResources(title = "内容简介", order = 15)
private String synopsis;
@ExcelResources(title = "图书目录", order = 16)
private String bookCatalog;
@ExcelResources(title = "资源分类", order = 17)
private String typeName;
@ExcelResources(title = "物料号", order = 18)
private String itemNo;
}
......@@ -28,6 +28,8 @@ import com.zrqx.resource.mapper.articlelibrary.ChapterLibraryMapper;
import com.zrqx.resource.mapper.audiobook.AudioBookMapper;
import com.zrqx.resource.mapper.diytype.DiyTypeMapper;
import com.zrqx.resource.mapper.ebook.*;
import com.zrqx.resource.mapper.label.LabelContentDiyTypeMapper;
import com.zrqx.resource.mapper.label.LabelMapper;
import com.zrqx.resource.mapper.membercollection.MemberCollectionMapper;
import com.zrqx.resource.mapper.pdffilelibrary.PdfLibraryMapper;
import com.zrqx.resource.mapper.phybook.PhysicalBookMapper;
......@@ -45,6 +47,8 @@ import com.zrqx.resource.model.form.resource.SearchForm;
import com.zrqx.resource.model.po.articlelibrary.ChapterLibrary;
import com.zrqx.resource.model.po.diytype.DiyType;
import com.zrqx.resource.model.po.ebook.*;
import com.zrqx.resource.model.po.label.Label;
import com.zrqx.resource.model.po.label.LabelContentDiyType;
import com.zrqx.resource.model.po.membercollection.MemberCollection;
import com.zrqx.resource.model.po.pdflibrary.PdfLibrary;
import com.zrqx.resource.model.po.phybook.PhysicalBookImgs;
......@@ -172,6 +176,10 @@ public class EbookServiceImpl extends ServiceImpl<EbookMapper, Ebook> implements
private ProjectLibraryMapper projectLibraryMapper;
@Resource
private ProjectModelResourceMapper prMapper;
@Resource
private LabelContentDiyTypeMapper labelContentDiyTypeMapper;
@Resource
private LabelMapper labelMapper;
@Override
......@@ -460,12 +468,12 @@ public class EbookServiceImpl extends ServiceImpl<EbookMapper, Ebook> implements
*/
@Override
public ImportLabelVO importLabelExcel(MultipartFile file) {
List<ExcelEbookImportVo> ebookImportList = null;
List<ExcelBookExportVo> ebookImportList = null;
// 结果集
ImportLabelVO vo = new ImportLabelVO();
//解析Excel文件
try {
ebookImportList = ExcelUtil.importExcel(file.getInputStream(), ExcelEbookImportVo.class, file.getOriginalFilename());
ebookImportList = ExcelUtil.importExcel(file.getInputStream(), ExcelBookExportVo.class, file.getOriginalFilename());
} catch (IOException e) {
e.printStackTrace();
}
......@@ -474,30 +482,98 @@ public class EbookServiceImpl extends ServiceImpl<EbookMapper, Ebook> implements
vo.setMsg("文件解析数据为0");
return vo;
}
ObjectMapper mapper1 = new ObjectMapper();
String jsonString = systemAdminClient.infoJson(Integer.parseInt(tokenManager.getUserId()));
SystemAdmin systemAdmin =null;
try {
systemAdmin = mapper1.readValue(jsonString, SystemAdmin.class);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
List<Book> list = bookMapper.selectList(new LambdaQueryWrapper<>());
for (ExcelEbookImportVo excelEbookImportVo : ebookImportList) {
String isbn = null;
if (StringUtils.isNoneBlank(excelEbookImportVo.getIsbn())) {
isbn = excelEbookImportVo.getIsbn().replace("-", "");
for (ExcelBookExportVo excelBookExportVo : ebookImportList) {
String itemNo = null;
if (StringUtils.isNoneBlank(excelBookExportVo.getIsbn())) {
itemNo = excelBookExportVo.getItemNo();
}
for (Book book : list) {
if (book.getIsbn().equals(isbn)) {
if (!book.getItemNo().equals(itemNo)) {
Book b = new Book();
Ebook ebook = new Ebook();
BeanUtils.copyProperties(excelEbookImportVo, b);
BeanUtils.copyProperties(excelEbookImportVo, ebook);
b.setId(book.getId());
b.setIsbn(isbn.replace("-", ""));
BeanUtils.copyProperties(excelBookExportVo, b);
b.setIsbn(excelBookExportVo.getIsbn().replace("-", ""));
b.setExecutiveEditor(b.getAuthor());
ebook.setId(book.getId());
ebook.setRealPrice(ebook.getPrice());
LambdaQueryWrapper<Book> bookLambdaQueryWrapper = new LambdaQueryWrapper<>();
bookLambdaQueryWrapper.eq(Book::getId, book.getId());
bookMapper.update(b, bookLambdaQueryWrapper);
LambdaQueryWrapper<Ebook> ebookLambdaQueryWrapper = new LambdaQueryWrapper<>();
ebookLambdaQueryWrapper.eq(Ebook::getId, ebook.getId());
ebookMapper.update(ebook, ebookLambdaQueryWrapper);
book.setDepartmentId(systemAdmin.getDepartmentId());
book.setDepartmentCode(systemAdmin.getDepartmentCode());
bookMapper.insert(b);
ebook.setId(b.getId());
BeanUtils.copyProperties(excelBookExportVo, ebook);
ebookMapper.insert(ebook);
//添加与关联系列
if(StringUtils.isNotBlank(excelBookExportVo.getProject())){
LambdaQueryWrapper<ProjectLibrary> projectLambdaQueryWrapper=new LambdaQueryWrapper<>();
projectLambdaQueryWrapper.eq(ProjectLibrary::getName,excelBookExportVo.getProject());
projectLambdaQueryWrapper.eq(ProjectLibrary::getType,"2");
ProjectLibrary projectLibrary = projectLibraryMapper.selectOne(projectLambdaQueryWrapper);
if(projectLibrary!=null){
ProjectModelResource obj = new ProjectModelResource();
obj.setResourceType(GoodsTypeEnum.EBOOK.getCode());
obj.setResourceId(ebook.getId());
obj.setSort(prMapper.getMaxSort(projectLibrary.getId()));
obj.initAuditFields(tokenManager.getUserId(), new Date());
obj.setProjectId(projectLibrary.getId());
prMapper.insert(obj);
}
}
// 添加与分类的关系
LambdaQueryWrapper<DiyType> diyTypeLambdaQueryWrapper=new LambdaQueryWrapper<>();
diyTypeLambdaQueryWrapper.eq(DiyType::getTypeName,excelBookExportVo.getTypeName());
DiyType diyType = diyTypeMapper.selectOne(diyTypeLambdaQueryWrapper);
if(diyType!=null){
EbookDiyType ed = new EbookDiyType();
ed.setEbookId(ebook.getId());
ed.setCode(diyType.getCode());
ed.setDtId(diyType.getId());
ebookDiyTypeMapper.insert(ed);
}
// 添加与标签的关系语种
LambdaQueryWrapper<Label> labelLambdaQueryWrapper=new LambdaQueryWrapper<>();
labelLambdaQueryWrapper.eq(Label::getName,"语种");
Label label = labelMapper.selectOne(labelLambdaQueryWrapper);
if(label!=null){
LambdaQueryWrapper<LabelContentDiyType> labelContentLambdaQueryWrapper=new LambdaQueryWrapper<>();
labelContentLambdaQueryWrapper.eq(LabelContentDiyType::getLabelId,label.getId());
labelContentLambdaQueryWrapper.eq(LabelContentDiyType::getLabelContent,excelBookExportVo.getLanguagesLabel());
LabelContentDiyType labelContentDiyType = labelContentDiyTypeMapper.selectOne(labelContentLambdaQueryWrapper);
if(labelContentDiyType!=null){
EbookLabelContentDiyType ebookLabelContentDiyType= new EbookLabelContentDiyType();
ebookLabelContentDiyType.setEbookId(ebook.getId());
ebookLabelContentDiyType.setLabelContentDiyTypeCode(labelContentDiyType.getCode());
ebookLabelContentDiyType.setLabelContentDiyTypeId(labelContentDiyType.getId());
ebookLabelContentDiyType.setLabelId(labelContentDiyType.getLabelId());
ebookLabelDiyTypeMapper.insert(ebookLabelContentDiyType);
}
}
// 添加与标签的关系学习阶段
LambdaQueryWrapper<Label> labelLambdaQueryWrapper1=new LambdaQueryWrapper<>();
labelLambdaQueryWrapper1.eq(Label::getName,"学习阶段");
Label label1 = labelMapper.selectOne(labelLambdaQueryWrapper1);
if(label1!=null){
LambdaQueryWrapper<LabelContentDiyType> labelContentLambdaQueryWrapper=new LambdaQueryWrapper<>();
labelContentLambdaQueryWrapper.eq(LabelContentDiyType::getLabelId,label.getId());
labelContentLambdaQueryWrapper.eq(LabelContentDiyType::getLabelContent,excelBookExportVo.getLanguagesLabel());
LabelContentDiyType labelContentDiyType = labelContentDiyTypeMapper.selectOne(labelContentLambdaQueryWrapper);
if(labelContentDiyType!=null){
EbookLabelContentDiyType ebookLabelContentDiyType= new EbookLabelContentDiyType();
ebookLabelContentDiyType.setEbookId(ebook.getId());
ebookLabelContentDiyType.setLabelContentDiyTypeCode(labelContentDiyType.getCode());
ebookLabelContentDiyType.setLabelContentDiyTypeId(labelContentDiyType.getId());
ebookLabelContentDiyType.setLabelId(labelContentDiyType.getLabelId());
ebookLabelDiyTypeMapper.insert(ebookLabelContentDiyType);
}
}
}
}
}
return vo;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论