rxswin导入

This commit is contained in:
zhn
2023-08-30 16:43:33 +08:00
parent d1b0066c87
commit 83fb6e5111
5 changed files with 748 additions and 471 deletions
@@ -5890,7 +5890,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
if (sheet != null) { if (sheet != null) {
StringBuilder headerSb = new StringBuilder(); StringBuilder headerSb = new StringBuilder();
int rowNos = sheet.getLastRowNum();// 得到excel的总记录条数 int rowNos = sheet.getLastRowNum();// 得到excel的总记录条数
for (int i = 0; i <= rowNos; i++) {// 遍历行 for (int i = 0; i <= rowNos; i++) {
if (i == 1) { if (i == 1) {
continue; continue;
} }
@@ -25,6 +25,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@@ -170,14 +171,17 @@ public class ProjectRxswinEOController extends JeroController<ProjectRxswinEO, I
/** /**
* 通过excel导入数据 * 通过excel导入数据
* * @param file
* @param request * @param cut
* @param response * @param version
* @param projectId
* @return * @return
*/ */
@ApiOperation(value="导入", notes="导入")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST) @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { public Result<?> importExcel(MultipartFile file,String cut,String version,String projectId) {
return super.importExcel(request, response, ProjectRxswinEO.class); projectRxswinEOService.importExcel(file,cut,version,projectId);
return Result.OK("");
} }
/** /**
@@ -0,0 +1,38 @@
package com.jero.modules.project.enums;
/**
* 当前状态枚举类
*/
public enum RxswinEnum {
ONE("编号","No."),
TWO("主题","Theme"),
THREE("RXSWIN","RXSWIN"),
FOUR("对应版本","Corresponding version")
;
String nameCn;
String nameEn;
private RxswinEnum(String nameCn,String nameEn) {
this.nameCn = nameCn;
this.nameEn = nameEn;
}
public String getNameCn() {
return nameCn;
}
public void setNameCn(String nameCn) {
this.nameCn = nameCn;
}
public String getNameEn() {
return nameEn;
}
public void setNameEn(String nameEn) {
this.nameEn = nameEn;
}
}
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.entity.ProjectRxswinEO; import com.jero.modules.project.entity.ProjectRxswinEO;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@@ -108,4 +109,6 @@ public interface IProjectRxswinEOService extends IService<ProjectRxswinEO> {
ModelAndView exportXls(HttpServletRequest request, ProjectRxswinEO projectRxswinEO); ModelAndView exportXls(HttpServletRequest request, ProjectRxswinEO projectRxswinEO);
void exportTemplate(Map<String, Object> map, HttpServletResponse response, HttpServletRequest request); void exportTemplate(Map<String, Object> map, HttpServletResponse response, HttpServletRequest request);
void importExcel(MultipartFile file, String cut, String version, String projectId);
} }
@@ -15,15 +15,22 @@ import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.entity.ProjectRxswinEO; import com.jero.modules.project.entity.ProjectRxswinEO;
import com.jero.modules.project.entity.ProjectRxswinEOEn; import com.jero.modules.project.entity.ProjectRxswinEOEn;
import com.jero.modules.project.enums.RxswinEnum;
import com.jero.modules.project.enums.StatusEnum; import com.jero.modules.project.enums.StatusEnum;
import com.jero.modules.project.mapper.ProjectRxswinEOMapper; import com.jero.modules.project.mapper.ProjectRxswinEOMapper;
import com.jero.modules.project.service.IProjectRxswinEOService; import com.jero.modules.project.service.IProjectRxswinEOService;
import lombok.SneakyThrows;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.VerticalAlignment; import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -32,6 +39,7 @@ import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@@ -66,6 +74,7 @@ public class ProjectRxswinEOServiceImpl extends ServiceImpl<ProjectRxswinEOMappe
private ProjectLibraryBaseServiceImpl projectLibraryBaseService; private ProjectLibraryBaseServiceImpl projectLibraryBaseService;
@Value(value = "${jero.path.upload}") @Value(value = "${jero.path.upload}")
private String uploadpath; private String uploadpath;
/** /**
* 保存 * 保存
* *
@@ -76,11 +85,11 @@ public class ProjectRxswinEOServiceImpl extends ServiceImpl<ProjectRxswinEOMappe
public void add(ProjectRxswinEO projectRxswinEO) { public void add(ProjectRxswinEO projectRxswinEO) {
//判断主题是否已存在 //判断主题是否已存在
LambdaQueryWrapper<ProjectRxswinEO> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ProjectRxswinEO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProjectRxswinEO::getProjectId,projectRxswinEO.getProjectId()); wrapper.eq(ProjectRxswinEO::getProjectId, projectRxswinEO.getProjectId());
wrapper.eq(ProjectRxswinEO::getTheme,projectRxswinEO.getTheme()); wrapper.eq(ProjectRxswinEO::getTheme, projectRxswinEO.getTheme());
List<ProjectRxswinEO> rxswinEOList = this.list(wrapper); List<ProjectRxswinEO> rxswinEOList = this.list(wrapper);
if(!rxswinEOList.isEmpty()){ if (!rxswinEOList.isEmpty()) {
throw new JeroBootException("主题:"+projectRxswinEO.getTheme()+"已存在,请重新添加"); throw new JeroBootException("主题:" + projectRxswinEO.getTheme() + "已存在,请重新添加");
} }
Date now = new Date(); Date now = new Date();
projectRxswinEO.setCreateTime(now); projectRxswinEO.setCreateTime(now);
@@ -98,13 +107,13 @@ public class ProjectRxswinEOServiceImpl extends ServiceImpl<ProjectRxswinEOMappe
@Override @Override
public void editById(ProjectRxswinEO projectRxswinEO) { public void editById(ProjectRxswinEO projectRxswinEO) {
//判断主题是否存在 //判断主题是否存在
LambdaQueryWrapper<ProjectRxswinEO> wrapper =new LambdaQueryWrapper<>(); LambdaQueryWrapper<ProjectRxswinEO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProjectRxswinEO::getProjectId,projectRxswinEO.getProjectId()); wrapper.eq(ProjectRxswinEO::getProjectId, projectRxswinEO.getProjectId());
wrapper.eq(ProjectRxswinEO::getTheme,projectRxswinEO.getTheme()); wrapper.eq(ProjectRxswinEO::getTheme, projectRxswinEO.getTheme());
wrapper.ne(ProjectRxswinEO::getId,projectRxswinEO.getId()); wrapper.ne(ProjectRxswinEO::getId, projectRxswinEO.getId());
List<ProjectRxswinEO> rxswinEOList = this.list(wrapper); List<ProjectRxswinEO> rxswinEOList = this.list(wrapper);
if(!rxswinEOList.isEmpty()){ if (!rxswinEOList.isEmpty()) {
throw new JeroBootException("主题:"+projectRxswinEO.getTheme()+"已存在,请重新添加"); throw new JeroBootException("主题:" + projectRxswinEO.getTheme() + "已存在,请重新添加");
} }
Date now = new Date(); Date now = new Date();
projectRxswinEO.setUpdateTime(now); projectRxswinEO.setUpdateTime(now);
@@ -157,131 +166,134 @@ public class ProjectRxswinEOServiceImpl extends ServiceImpl<ProjectRxswinEOMappe
@Override @Override
public List<ProjectRxswinEO> getPageInfo(ProjectRxswinEO projectRxswinEO) { public List<ProjectRxswinEO> getPageInfo(ProjectRxswinEO projectRxswinEO) {
LambdaQueryWrapper<ProjectRxswinEO> wrapper =new LambdaQueryWrapper<>(); LambdaQueryWrapper<ProjectRxswinEO> wrapper = new LambdaQueryWrapper<>();
if(StringUtils.isBlank(projectRxswinEO.getProjectId())){ if (StringUtils.isBlank(projectRxswinEO.getProjectId())) {
return new ArrayList<>(); return new ArrayList<>();
} }
wrapper.eq(ProjectRxswinEO::getProjectId,projectRxswinEO.getProjectId()); wrapper.eq(ProjectRxswinEO::getProjectId, projectRxswinEO.getProjectId());
if(StringUtils.isNotBlank(projectRxswinEO.getTheme())){ if (StringUtils.isNotBlank(projectRxswinEO.getTheme())) {
wrapper.like(ProjectRxswinEO::getTheme,projectRxswinEO.getTheme()); wrapper.like(ProjectRxswinEO::getTheme, projectRxswinEO.getTheme());
} }
if(StringUtils.isNotBlank(projectRxswinEO.getVersion())){ if (StringUtils.isNotBlank(projectRxswinEO.getVersion())) {
wrapper.eq(ProjectRxswinEO::getVersion,projectRxswinEO.getVersion()); wrapper.eq(ProjectRxswinEO::getVersion, projectRxswinEO.getVersion());
} }
if(StringUtils.isNotBlank(projectRxswinEO.getRxswin())){ if (StringUtils.isNotBlank(projectRxswinEO.getRxswin())) {
wrapper.like(ProjectRxswinEO::getRxswin,projectRxswinEO.getRxswin()); wrapper.like(ProjectRxswinEO::getRxswin, projectRxswinEO.getRxswin());
} }
if(StringUtils.isBlank(projectRxswinEO.getOrderByField())){ if (StringUtils.isBlank(projectRxswinEO.getOrderByField())) {
wrapper.orderByDesc(ProjectRxswinEO::getCreateTime); wrapper.orderByDesc(ProjectRxswinEO::getCreateTime);
} }
List<ProjectRxswinEO> projectRxswinEOList = this.list(wrapper); List<ProjectRxswinEO> projectRxswinEOList = this.list(wrapper);
if(!projectRxswinEOList.isEmpty()){ if (!projectRxswinEOList.isEmpty()) {
List<String> documentIdList = projectRxswinEOList.stream().map(ProjectRxswinEO::getDocumentId).distinct().collect(Collectors.toList()); List<String> documentIdList = projectRxswinEOList.stream().map(ProjectRxswinEO::getDocumentId).distinct().collect(Collectors.toList());
List<BussDocumentLibraryEO> bussDocumentLibraryEOList = getBussDocumentLibraryEOList(documentIdList); List<BussDocumentLibraryEO> bussDocumentLibraryEOList = getBussDocumentLibraryEOList(documentIdList);
for (ProjectRxswinEO projectRxswinEOTemp : projectRxswinEOList) { for (ProjectRxswinEO projectRxswinEOTemp : projectRxswinEOList) {
List<BussDocumentLibraryEO> collect = bussDocumentLibraryEOList.stream() List<BussDocumentLibraryEO> collect = bussDocumentLibraryEOList.stream()
.filter(e -> e.getId().equals(projectRxswinEOTemp.getDocumentId())).collect(Collectors.toList()); .filter(e -> e.getId().equals(projectRxswinEOTemp.getDocumentId())).collect(Collectors.toList());
if(!collect.isEmpty()){ if (!collect.isEmpty()) {
projectRxswinEOTemp.setSerialNumber(collect.get(0).getSerialNumber()); projectRxswinEOTemp.setSerialNumber(collect.get(0).getSerialNumber());
} }
} }
if(StringUtils.isNotBlank(projectRxswinEO.getSerialNumber())){ if (StringUtils.isNotBlank(projectRxswinEO.getSerialNumber())) {
projectRxswinEOList = projectRxswinEOList.stream() projectRxswinEOList = projectRxswinEOList.stream()
.filter(e -> e.getSerialNumber().contains(projectRxswinEO.getSerialNumber())).collect(Collectors.toList()); .filter(e -> e.getSerialNumber().contains(projectRxswinEO.getSerialNumber())).collect(Collectors.toList());
} }
heartSort(projectRxswinEO,projectRxswinEOList); heartSort(projectRxswinEO, projectRxswinEOList);
} }
return projectRxswinEOList; return projectRxswinEOList;
} }
/** /**
* 调取--第一层 * 调取--第一层
*
* @param pageNo * @param pageNo
* @param pageSize * @param pageSize
* @param projectRxswinEO * @param projectRxswinEO
* @return * @return
*/ */
@Override @Override
public Page<ProjectLibraryBase> getOnePage(Integer pageNo,Integer pageSize,ProjectRxswinEO projectRxswinEO) { public Page<ProjectLibraryBase> getOnePage(Integer pageNo, Integer pageSize, ProjectRxswinEO projectRxswinEO) {
ProjectLibraryBase libraryBase = projectLibraryBaseService.getById(projectRxswinEO.getProjectId()); ProjectLibraryBase libraryBase = projectLibraryBaseService.getById(projectRxswinEO.getProjectId());
String id = ""; String id = "";
String parentId = ""; String parentId = "";
if(StringUtils.isBlank(libraryBase.getParentId())){ if (StringUtils.isBlank(libraryBase.getParentId())) {
id = libraryBase.getId(); id = libraryBase.getId();
parentId = libraryBase.getId(); parentId = libraryBase.getId();
}else{ } else {
id = libraryBase.getParentId(); id = libraryBase.getParentId();
parentId = libraryBase.getParentId(); parentId = libraryBase.getParentId();
} }
List<ProjectLibraryBase> libraryBaseList = projectRxswinEOMapper.queryProjectLibraryBaseList(id,parentId); List<ProjectLibraryBase> libraryBaseList = projectRxswinEOMapper.queryProjectLibraryBaseList(id, parentId);
for (ProjectLibraryBase projectLibraryBase : libraryBaseList) { for (ProjectLibraryBase projectLibraryBase : libraryBaseList) {
//项目名称 //项目名称
String projectName = ""; String projectName = "";
if(CutEnum.CN.getValue().equals(projectRxswinEO.getCut())){ if (CutEnum.CN.getValue().equals(projectRxswinEO.getCut())) {
projectName = projectLibraryBase.getProjectName() + " " + projectLibraryBase.getYearName() projectName = projectLibraryBase.getProjectName() + " " + projectLibraryBase.getYearName()
+ "-" + projectLibraryBase.getTargetMarketNameCn() + "-" + projectLibraryBase.getProjectVersion(); + "-" + projectLibraryBase.getTargetMarketNameCn() + "-" + projectLibraryBase.getProjectVersion();
}else{ } else {
projectName = projectLibraryBase.getProjectName() + " " + projectLibraryBase.getYearName() projectName = projectLibraryBase.getProjectName() + " " + projectLibraryBase.getYearName()
+ "-" + projectLibraryBase.getTargetMarketNameEn() + "-" + projectLibraryBase.getProjectVersion(); + "-" + projectLibraryBase.getTargetMarketNameEn() + "-" + projectLibraryBase.getProjectVersion();
} }
projectLibraryBase.setProjectName(projectName); projectLibraryBase.setProjectName(projectName);
} }
Collections.sort(libraryBaseList); Collections.sort(libraryBaseList);
return PageUtil.getPages(pageNo,pageSize,libraryBaseList); return PageUtil.getPages(pageNo, pageSize, libraryBaseList);
} }
/** /**
* 调取--第二层 * 调取--第二层
*
* @param pageNo * @param pageNo
* @param pageSize * @param pageSize
* @param projectRxswinEO * @param projectRxswinEO
* @return * @return
*/ */
@Override @Override
public Page<ProjectRxswinEO> getTwoPage(Integer pageNo,Integer pageSize,ProjectRxswinEO projectRxswinEO) { public Page<ProjectRxswinEO> getTwoPage(Integer pageNo, Integer pageSize, ProjectRxswinEO projectRxswinEO) {
LambdaQueryWrapper<ProjectRxswinEO> wrapper =new LambdaQueryWrapper<>(); LambdaQueryWrapper<ProjectRxswinEO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProjectRxswinEO::getProjectId,projectRxswinEO.getProjectId()); wrapper.eq(ProjectRxswinEO::getProjectId, projectRxswinEO.getProjectId());
wrapper.eq(ProjectRxswinEO::getState, StatusEnum.SUBMIT.getValue());//提交的 wrapper.eq(ProjectRxswinEO::getState, StatusEnum.SUBMIT.getValue());//提交的
if(StringUtils.isNotBlank(projectRxswinEO.getTheme())){ if (StringUtils.isNotBlank(projectRxswinEO.getTheme())) {
wrapper.like(ProjectRxswinEO::getTheme,projectRxswinEO.getTheme()); wrapper.like(ProjectRxswinEO::getTheme, projectRxswinEO.getTheme());
} }
if(StringUtils.isNotBlank(projectRxswinEO.getVersion())){ if (StringUtils.isNotBlank(projectRxswinEO.getVersion())) {
wrapper.eq(ProjectRxswinEO::getVersion,projectRxswinEO.getVersion()); wrapper.eq(ProjectRxswinEO::getVersion, projectRxswinEO.getVersion());
} }
if(StringUtils.isNotBlank(projectRxswinEO.getRxswin())){ if (StringUtils.isNotBlank(projectRxswinEO.getRxswin())) {
wrapper.like(ProjectRxswinEO::getRxswin,projectRxswinEO.getRxswin()); wrapper.like(ProjectRxswinEO::getRxswin, projectRxswinEO.getRxswin());
} }
if(StringUtils.isBlank(projectRxswinEO.getOrderByField())){ if (StringUtils.isBlank(projectRxswinEO.getOrderByField())) {
wrapper.orderByDesc(ProjectRxswinEO::getCreateTime); wrapper.orderByDesc(ProjectRxswinEO::getCreateTime);
} }
List<ProjectRxswinEO> projectRxswinEOList = this.list(wrapper); List<ProjectRxswinEO> projectRxswinEOList = this.list(wrapper);
if(!projectRxswinEOList.isEmpty()){ if (!projectRxswinEOList.isEmpty()) {
List<String> documentIdList = projectRxswinEOList.stream().map(ProjectRxswinEO::getDocumentId).distinct().collect(Collectors.toList()); List<String> documentIdList = projectRxswinEOList.stream().map(ProjectRxswinEO::getDocumentId).distinct().collect(Collectors.toList());
List<BussDocumentLibraryEO> bussDocumentLibraryEOList = getBussDocumentLibraryEOList(documentIdList); List<BussDocumentLibraryEO> bussDocumentLibraryEOList = getBussDocumentLibraryEOList(documentIdList);
for (ProjectRxswinEO projectRxswinEOTemp : projectRxswinEOList) { for (ProjectRxswinEO projectRxswinEOTemp : projectRxswinEOList) {
List<BussDocumentLibraryEO> collect = bussDocumentLibraryEOList.stream() List<BussDocumentLibraryEO> collect = bussDocumentLibraryEOList.stream()
.filter(e -> e.getId().equals(projectRxswinEOTemp.getDocumentId())).collect(Collectors.toList()); .filter(e -> e.getId().equals(projectRxswinEOTemp.getDocumentId())).collect(Collectors.toList());
if(!collect.isEmpty()){ if (!collect.isEmpty()) {
projectRxswinEOTemp.setSerialNumber(collect.get(0).getSerialNumber()); projectRxswinEOTemp.setSerialNumber(collect.get(0).getSerialNumber());
} }
} }
if(StringUtils.isNotBlank(projectRxswinEO.getSerialNumber())){ if (StringUtils.isNotBlank(projectRxswinEO.getSerialNumber())) {
projectRxswinEOList = projectRxswinEOList.stream() projectRxswinEOList = projectRxswinEOList.stream()
.filter(e -> e.getSerialNumber().contains(projectRxswinEO.getSerialNumber())).collect(Collectors.toList()); .filter(e -> e.getSerialNumber().contains(projectRxswinEO.getSerialNumber())).collect(Collectors.toList());
} }
heartSort(projectRxswinEO,projectRxswinEOList); heartSort(projectRxswinEO, projectRxswinEOList);
} }
return PageUtil.getPages(pageNo,pageSize,projectRxswinEOList); return PageUtil.getPages(pageNo, pageSize, projectRxswinEOList);
} }
/** /**
* 提交 * 提交
*
* @param projectId * @param projectId
* @param ids * @param ids
*/ */
@@ -297,8 +309,10 @@ public class ProjectRxswinEOServiceImpl extends ServiceImpl<ProjectRxswinEOMappe
} }
this.updateBatchById(rxswinEOList); this.updateBatchById(rxswinEOList);
} }
/** /**
* 覆盖验证 * 覆盖验证
*
* @param projectId * @param projectId
* @param ids * @param ids
*/ */
@@ -317,16 +331,16 @@ public class ProjectRxswinEOServiceImpl extends ServiceImpl<ProjectRxswinEOMappe
wrapperTemp.eq(ProjectRxswinEO::getProjectId, projectId); wrapperTemp.eq(ProjectRxswinEO::getProjectId, projectId);
List<ProjectRxswinEO> rxswinEOS = this.list(wrapperTemp); List<ProjectRxswinEO> rxswinEOS = this.list(wrapperTemp);
if(!rxswinEOS.isEmpty()){ if (!rxswinEOS.isEmpty()) {
List<String> themeList = rxswinEOS.stream().map(ProjectRxswinEO::getTheme).collect(Collectors.toList()); List<String> themeList = rxswinEOS.stream().map(ProjectRxswinEO::getTheme).collect(Collectors.toList());
List<ProjectRxswinEO> projectRxswinEOS = rxswinEOList.stream().filter(e -> themeList.contains(e.getTheme())).collect(Collectors.toList()); List<ProjectRxswinEO> projectRxswinEOS = rxswinEOList.stream().filter(e -> themeList.contains(e.getTheme())).collect(Collectors.toList());
if(projectRxswinEOS.isEmpty()){ if (projectRxswinEOS.isEmpty()) {
//直接新增 //直接新增
saveBatchInfo(projectId, user, rxswinEOList); saveBatchInfo(projectId, user, rxswinEOList);
}else{ } else {
return "YES"; return "YES";
} }
}else{ } else {
//直接新增 //直接新增
saveBatchInfo(projectId, user, rxswinEOList); saveBatchInfo(projectId, user, rxswinEOList);
} }
@@ -335,7 +349,7 @@ public class ProjectRxswinEOServiceImpl extends ServiceImpl<ProjectRxswinEOMappe
private void saveBatchInfo(String projectId, LoginUser user, List<ProjectRxswinEO> rxswinEOList) { private void saveBatchInfo(String projectId, LoginUser user, List<ProjectRxswinEO> rxswinEOList) {
for (ProjectRxswinEO projectRxswinEO : rxswinEOList) { for (ProjectRxswinEO projectRxswinEO : rxswinEOList) {
projectRxswinEO.setId(UUID.randomUUID().toString().replaceAll("-","")); projectRxswinEO.setId(UUID.randomUUID().toString().replaceAll("-", ""));
projectRxswinEO.setProjectId(projectId); projectRxswinEO.setProjectId(projectId);
projectRxswinEO.setCreateTime(new Date()); projectRxswinEO.setCreateTime(new Date());
projectRxswinEO.setCreateBy(user.getUsername()); projectRxswinEO.setCreateBy(user.getUsername());
@@ -346,12 +360,13 @@ public class ProjectRxswinEOServiceImpl extends ServiceImpl<ProjectRxswinEOMappe
/** /**
* 调取后保存数据 * 调取后保存数据
*
* @param projectId * @param projectId
* @param ids * @param ids
* @param flag * @param flag
*/ */
@Override @Override
public void addBatch(String projectId, String ids,String flag) { public void addBatch(String projectId, String ids, String flag) {
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//新增的 //新增的
@@ -369,14 +384,14 @@ public class ProjectRxswinEOServiceImpl extends ServiceImpl<ProjectRxswinEOMappe
List<ProjectRxswinEO> noList = rxswinEOList.stream().filter(e -> !themeList.contains(e.getTheme())).collect(Collectors.toList()); List<ProjectRxswinEO> noList = rxswinEOList.stream().filter(e -> !themeList.contains(e.getTheme())).collect(Collectors.toList());
if(StatusEnum.COVER_YES.getValue().equals(flag)){ if (StatusEnum.COVER_YES.getValue().equals(flag)) {
//未存在的进行新增 //未存在的进行新增
saveBatchInfo(projectId, user, noList); saveBatchInfo(projectId, user, noList);
for (ProjectRxswinEO projectRxswinEO : yesList) { for (ProjectRxswinEO projectRxswinEO : yesList) {
List<ProjectRxswinEO> collect = rxswinEOS.stream() List<ProjectRxswinEO> collect = rxswinEOS.stream()
.filter(e -> projectRxswinEO.getTheme().equals(e.getTheme())).collect(Collectors.toList()); .filter(e -> projectRxswinEO.getTheme().equals(e.getTheme())).collect(Collectors.toList());
if(!collect.isEmpty()){ if (!collect.isEmpty()) {
projectRxswinEO.setId(collect.get(0).getId()); projectRxswinEO.setId(collect.get(0).getId());
projectRxswinEO.setCreateTime(collect.get(0).getCreateTime()); projectRxswinEO.setCreateTime(collect.get(0).getCreateTime());
} }
@@ -389,7 +404,7 @@ public class ProjectRxswinEOServiceImpl extends ServiceImpl<ProjectRxswinEOMappe
this.updateBatchById(yesList); this.updateBatchById(yesList);
}else if(StatusEnum.COVER_NO.getValue().equals(flag)){ } else if (StatusEnum.COVER_NO.getValue().equals(flag)) {
saveBatchInfo(projectId, user, noList); saveBatchInfo(projectId, user, noList);
} }
} }
@@ -397,12 +412,12 @@ public class ProjectRxswinEOServiceImpl extends ServiceImpl<ProjectRxswinEOMappe
@Override @Override
public List<String> getVersionList(String projectId) { public List<String> getVersionList(String projectId) {
LambdaQueryWrapper<ProjectRxswinEO> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ProjectRxswinEO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProjectRxswinEO::getProjectId,projectId); wrapper.eq(ProjectRxswinEO::getProjectId, projectId);
List<ProjectRxswinEO> rxswinEOList = this.list(wrapper); List<ProjectRxswinEO> rxswinEOList = this.list(wrapper);
List<String> versionList = rxswinEOList.stream() List<String> versionList = rxswinEOList.stream()
.filter(e->StringUtils.isNotBlank(e.getVersion())) .filter(e -> StringUtils.isNotBlank(e.getVersion()))
.map(ProjectRxswinEO::getVersion).distinct().collect(Collectors.toList()); .map(ProjectRxswinEO::getVersion).distinct().collect(Collectors.toList());
Collections.sort(versionList,(a,b)->{ Collections.sort(versionList, (a, b) -> {
return Integer.parseInt(a) - Integer.parseInt(b); return Integer.parseInt(a) - Integer.parseInt(b);
}); });
return versionList; return versionList;
@@ -446,9 +461,9 @@ public class ProjectRxswinEOServiceImpl extends ServiceImpl<ProjectRxswinEOMappe
} }
public List<BussDocumentLibraryEO> getBussDocumentLibraryEOList(List<String> documentIdList){ public List<BussDocumentLibraryEO> getBussDocumentLibraryEOList(List<String> documentIdList) {
LambdaQueryWrapper<BussDocumentLibraryEO> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<BussDocumentLibraryEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(BussDocumentLibraryEO::getId,documentIdList); wrapper.in(BussDocumentLibraryEO::getId, documentIdList);
return bussDocumentLibraryEOService.list(wrapper); return bussDocumentLibraryEOService.list(wrapper);
} }
@@ -527,18 +542,18 @@ public class ProjectRxswinEOServiceImpl extends ServiceImpl<ProjectRxswinEOMappe
HSSFWorkbook workbook = new HSSFWorkbook(); HSSFWorkbook workbook = new HSSFWorkbook();
String cut = (String) map.get("cut"); String cut = (String) map.get("cut");
String sheetName = ""; String sheetName = "";
if(com.jero.modules.system.util.StringUtils.equals(cut,CutEnum.CN.getValue())){ if (com.jero.modules.system.util.StringUtils.equals(cut, CutEnum.CN.getValue())) {
sheetName = "RXSWIN"; sheetName = "RXSWIN";
}else { } else {
sheetName = "RXSWIN"; sheetName = "RXSWIN";
} }
String fileOriName = "文档库导入模板.xls"; String fileOriName = "文档库导入模板.xls";
String filePath = uploadpath + File.separator + fileOriName; String filePath = uploadpath + File.separator + fileOriName;
try { try {
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
if(CutEnum.CN.getValue().equals((String) map.get("cut"))){ if (CutEnum.CN.getValue().equals((String) map.get("cut"))) {
list.add("编号,主题,RXSWIN,对应版本"); list.add("编号,主题,RXSWIN,对应版本");
}else{ } else {
list.add("No.,Theme,RXSWIN,Corresponding version"); list.add("No.,Theme,RXSWIN,Corresponding version");
} }
//创建临时文件夹 //创建临时文件夹
@@ -579,4 +594,221 @@ public class ProjectRxswinEOServiceImpl extends ServiceImpl<ProjectRxswinEOMappe
} }
} }
@SneakyThrows
@Override
public void importExcel(MultipartFile file, String cut, String version, String projectId) {
String title = "";
if (CutEnum.CN.getValue().equals(cut)) {
title = "编号,主题,RXSWIN,对应版本";
} else {
title = "No.,Theme,RXSWIN,Corresponding version";
}
// 获取文件名
String fileName = file.getOriginalFilename();
// 获取文件后缀
String prefix = fileName.substring(fileName.lastIndexOf("."));
if (!(prefix.equals(".xls") || prefix.equals(".xlsx"))) {
if (CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("文件格式错误,请导入.xls或.xlsx格式");
} else {
throw new JeroBootException("The file format is wrong, please import. xls or. xlsx format.");
}
}
Workbook workbook = null;
try {
File excelFile = File.createTempFile(fileName, prefix);
file.transferTo(excelFile);
workbook = WorkbookFactory.create(excelFile);
} catch (Exception e) {
e.printStackTrace();
}
List<ProjectRxswinEO> projectRxswinEOList = new ArrayList<>();
if (workbook != null) {
Sheet sheet = workbook.getSheetAt(0);
if (sheet != null) {
StringBuilder headerSb = new StringBuilder();
int rowNos = sheet.getLastRowNum();// 得到excel的总记录条数
for (int i = 0; i <= rowNos; i++) {
Row row = sheet.getRow(i);
Row headerRow = sheet.getRow(0);
boolean isBlank = bussDocumentLibraryEOService.isRowEmpty(row);
ProjectRxswinEO projectRxswinEO = new ProjectRxswinEO();
if (row != null && !isBlank) {
int columNos = headerRow.getLastCellNum();// 表头总共的列数
for (int j = 0; j < columNos; j++) {
Cell cell = row.getCell(j);
Cell headerCell = headerRow.getCell(j);
if (cell != null) {
if (i == 0) {
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
headerSb.append(cell.getStringCellValue() + ",");
} else {
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
String stringCellValue = cell.getStringCellValue();
if (StringUtils.isNotBlank(stringCellValue)) {
String replace = stringCellValue.replace(",", ",");
rxswinEOSet(projectRxswinEO, headerCell, replace);
} else {
rxswinEOSet(projectRxswinEO, headerCell, "");
}
}
} else {
if (i != 0) {
rxswinEOSet(projectRxswinEO, headerCell, "");
}
}
}
if (i != 0) {
projectRxswinEOList.add(projectRxswinEO);
// dataList.add(rowList);
}
}
}
String substring = headerSb.toString();
if (substring.endsWith(",") || substring.endsWith(",")) {
substring = headerSb.substring(0, headerSb.length() - 1);
}
String excelHeader = substring.toString();
if (!title.equals(excelHeader)) {
workbook.close();
//删除原上传文件
if (CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("读取失败,请严格按照模板文件导入数据");
} else {
throw new JeroBootException("The data fails to be read. Import data strictly according to the template file");
}
}
}
}
List<BussDocumentLibraryEO> libraryEOList = bussDocumentLibraryEOService.list();
List<String> serialNumberList = libraryEOList.stream().map(BussDocumentLibraryEO::getSerialNumber).collect(Collectors.toList());
List<String> msgList = new ArrayList<>();
//数据验证
dataVerify(cut, projectId, projectRxswinEOList, serialNumberList, msgList);
if (msgList.size() > 0) {
//返回报错信息
String html = "";
for (String s : msgList) {
html += s + "</br>";
}
throw new JeroBootException(html);
} else {
for (ProjectRxswinEO projectRxswinEO : projectRxswinEOList) {
projectRxswinEO.setProjectId(projectId);
projectRxswinEO.setState(StatusEnum.SAVE.getValue());
List<BussDocumentLibraryEO> collect = libraryEOList.stream()
.filter(e -> e.getSerialNumber().equals(projectRxswinEO.getSerialNumber()))
.collect(Collectors.toList());
if (!collect.isEmpty()) {
projectRxswinEO.setDocumentId(collect.get(0).getId());
}
}
this.saveBatch(projectRxswinEOList);
}
}
private void dataVerify(String cut, String projectId, List<ProjectRxswinEO> projectRxswinEOList, List<String> serialNumberList, List<String> msgList) {
int count = 2;
for (ProjectRxswinEO projectRxswinEO : projectRxswinEOList) {
int countError = 0;
StringBuilder errorMsg = new StringBuilder();
if (CutEnum.CN.getValue().equals(cut)) {
errorMsg.append("第" + count + "行:");
// errorMsg = "第" + count + "行:";
} else {
errorMsg.append(count + " line:");
// errorMsg = count + " line:";
}
String serialNumber = projectRxswinEO.getSerialNumber();
String theme = projectRxswinEO.getTheme();
String rxswin = projectRxswinEO.getRxswin();
String versionTemp = projectRxswinEO.getVersion();
LambdaQueryWrapper<ProjectRxswinEO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProjectRxswinEO::getProjectId, projectId);
wrapper.eq(ProjectRxswinEO::getTheme, theme);
List<ProjectRxswinEO> rxswinEOList = this.list(wrapper);
if (CutEnum.CN.getValue().equals(cut)) {
countError = isMust(errorMsg, RxswinEnum.ONE.getNameCn(), serialNumber, "不能为空,", countError);
//验证编号是否存在
if (StringUtils.isNotBlank(serialNumber) && !serialNumberList.contains(serialNumber)) {
errorMsg.append(RxswinEnum.ONE.getNameCn() + "不存在,");
// errorMsg += RxswinEnum.ONE.getNameCn()+"不存在,";
countError++;
}
countError = isMust(errorMsg, RxswinEnum.TWO.getNameCn(), theme, "不能为空,", countError);
//验证主题是否存在
if (!rxswinEOList.isEmpty()) {
errorMsg.append(RxswinEnum.TWO.getNameCn() + "已存在,");
// errorMsg += RxswinEnum.TWO.getNameCn()+"已存在,";
countError++;
}
countError = isMust(errorMsg, RxswinEnum.THREE.getNameCn(), rxswin, "不能为空,", countError);
countError = isMust(errorMsg, RxswinEnum.FOUR.getNameCn(), versionTemp, "不能为空,", countError);
} else {
countError = isMust(errorMsg, RxswinEnum.ONE.getNameEn(), serialNumber, " cannot be empty,", countError);
//验证编号是否存在
if (StringUtils.isNotBlank(serialNumber) && !serialNumberList.contains(serialNumber)) {
errorMsg.append(RxswinEnum.ONE.getNameEn() + " absent,");
// errorMsg += RxswinEnum.ONE.getNameEn()+" absent,";
countError++;
}
countError = isMust(errorMsg, RxswinEnum.TWO.getNameEn(), theme, " cannot be empty,", countError);
//验证主题是否存在
if (!rxswinEOList.isEmpty()) {
errorMsg.append(RxswinEnum.TWO.getNameCn() + " already exists,");
// errorMsg += RxswinEnum.TWO.getNameCn()+" already exists,";
countError++;
}
countError = isMust(errorMsg, RxswinEnum.THREE.getNameEn(), rxswin, " cannot be empty,", countError);
countError = isMust(errorMsg, RxswinEnum.FOUR.getNameEn(), versionTemp, " cannot be empty,", countError);
}
if (countError > 0) {
if (errorMsg.toString().endsWith(",")) {
String substring = errorMsg.substring(0, errorMsg.length() - 1);
msgList.add(substring);
} else {
msgList.add(errorMsg.toString());
}
}
count++;
}
}
private int isMust(StringBuilder errorMsg, String field, String value, String reminder, int countError) {
if (StringUtils.isBlank(value)) {
errorMsg.append(field + reminder);
// errorMsg += field + reminder;
countError++;
}
return countError;
}
private void rxswinEOSet(ProjectRxswinEO projectRxswinEO, Cell headerCell, String replace) {
if (RxswinEnum.ONE.getNameCn().equals(headerCell.getStringCellValue())
|| RxswinEnum.ONE.getNameEn().equals(headerCell.getStringCellValue())) {
projectRxswinEO.setSerialNumber(replace);
} else if (RxswinEnum.TWO.getNameCn().equals(headerCell.getStringCellValue())
|| RxswinEnum.TWO.getNameEn().equals(headerCell.getStringCellValue())) {
projectRxswinEO.setTheme(replace);
} else if (RxswinEnum.THREE.getNameCn().equals(headerCell.getStringCellValue())
|| RxswinEnum.THREE.getNameEn().equals(headerCell.getStringCellValue())) {
projectRxswinEO.setRxswin(replace);
} else if (RxswinEnum.FOUR.getNameCn().equals(headerCell.getStringCellValue())
|| RxswinEnum.FOUR.getNameEn().equals(headerCell.getStringCellValue())) {
projectRxswinEO.setVersion(replace);
}
}
} }