diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java index 64ab11e5c..1ff4ec1e7 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/document/service/impl/BussDocumentLibraryEOServiceImpl.java @@ -5890,7 +5890,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl importExcel(HttpServletRequest request, HttpServletResponse response) { - return super.importExcel(request, response, ProjectRxswinEO.class); + public Result importExcel(MultipartFile file,String cut,String version,String projectId) { + projectRxswinEOService.importExcel(file,cut,version,projectId); + return Result.OK(""); } /** diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/RxswinEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/RxswinEnum.java new file mode 100644 index 000000000..69f744bbb --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/RxswinEnum.java @@ -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; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRxswinEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRxswinEOService.java index 3d8f87098..9e282e461 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRxswinEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectRxswinEOService.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.entity.ProjectRxswinEO; +import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; @@ -108,4 +109,6 @@ public interface IProjectRxswinEOService extends IService { ModelAndView exportXls(HttpServletRequest request, ProjectRxswinEO projectRxswinEO); void exportTemplate(Map map, HttpServletResponse response, HttpServletRequest request); + + void importExcel(MultipartFile file, String cut, String version, String projectId); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRxswinEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRxswinEOServiceImpl.java index 739592327..f2453664e 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRxswinEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectRxswinEOServiceImpl.java @@ -15,15 +15,22 @@ import com.jero.modules.dummy.enums.OrderEnum; import com.jero.modules.project.entity.ProjectLibraryBase; import com.jero.modules.project.entity.ProjectRxswinEO; 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.mapper.ProjectRxswinEOMapper; import com.jero.modules.project.service.IProjectRxswinEOService; +import lombok.SneakyThrows; 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.HSSFSheet; 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.Sheet; 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.jeecgframework.poi.excel.def.NormalExcelConstants; 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.Value; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; @@ -52,531 +60,755 @@ import java.util.stream.Collectors; /** * @Description: rxswin表 * @Author: jero-boot - * @Date: 2023-08-28 + * @Date: 2023-08-28 * @Version: V1.0 */ @Service public class ProjectRxswinEOServiceImpl extends ServiceImpl implements IProjectRxswinEOService { - @Autowired - private ProjectRxswinEOMapper projectRxswinEOMapper; - @Autowired - private BussDocumentLibraryEOServiceImpl bussDocumentLibraryEOService; - @Autowired - private ProjectLibraryBaseServiceImpl projectLibraryBaseService; - @Value(value = "${jero.path.upload}") - private String uploadpath; - /** - * 保存 - * - * @param projectRxswinEO - * @return - */ - @Override + @Autowired + private ProjectRxswinEOMapper projectRxswinEOMapper; + @Autowired + private BussDocumentLibraryEOServiceImpl bussDocumentLibraryEOService; + @Autowired + private ProjectLibraryBaseServiceImpl projectLibraryBaseService; + @Value(value = "${jero.path.upload}") + private String uploadpath; + + /** + * 保存 + * + * @param projectRxswinEO + * @return + */ + @Override public void add(ProjectRxswinEO projectRxswinEO) { - //判断主题是否已存在 - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(ProjectRxswinEO::getProjectId,projectRxswinEO.getProjectId()); - wrapper.eq(ProjectRxswinEO::getTheme,projectRxswinEO.getTheme()); - List rxswinEOList = this.list(wrapper); - if(!rxswinEOList.isEmpty()){ - throw new JeroBootException("主题:"+projectRxswinEO.getTheme()+"已存在,请重新添加"); - } - Date now = new Date(); + //判断主题是否已存在 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProjectRxswinEO::getProjectId, projectRxswinEO.getProjectId()); + wrapper.eq(ProjectRxswinEO::getTheme, projectRxswinEO.getTheme()); + List rxswinEOList = this.list(wrapper); + if (!rxswinEOList.isEmpty()) { + throw new JeroBootException("主题:" + projectRxswinEO.getTheme() + "已存在,请重新添加"); + } + Date now = new Date(); projectRxswinEO.setCreateTime(now); projectRxswinEO.setUpdateTime(now); - projectRxswinEO.setState(StatusEnum.SAVE.getValue()); + projectRxswinEO.setState(StatusEnum.SAVE.getValue()); save(projectRxswinEO); } - /** - * 更新 - * - * @param projectRxswinEO - * @return - */ - @Override + /** + * 更新 + * + * @param projectRxswinEO + * @return + */ + @Override public void editById(ProjectRxswinEO projectRxswinEO) { - //判断主题是否存在 - LambdaQueryWrapper wrapper =new LambdaQueryWrapper<>(); - wrapper.eq(ProjectRxswinEO::getProjectId,projectRxswinEO.getProjectId()); - wrapper.eq(ProjectRxswinEO::getTheme,projectRxswinEO.getTheme()); - wrapper.ne(ProjectRxswinEO::getId,projectRxswinEO.getId()); - List rxswinEOList = this.list(wrapper); - if(!rxswinEOList.isEmpty()){ - throw new JeroBootException("主题:"+projectRxswinEO.getTheme()+"已存在,请重新添加"); - } - Date now = new Date(); + //判断主题是否存在 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProjectRxswinEO::getProjectId, projectRxswinEO.getProjectId()); + wrapper.eq(ProjectRxswinEO::getTheme, projectRxswinEO.getTheme()); + wrapper.ne(ProjectRxswinEO::getId, projectRxswinEO.getId()); + List rxswinEOList = this.list(wrapper); + if (!rxswinEOList.isEmpty()) { + throw new JeroBootException("主题:" + projectRxswinEO.getTheme() + "已存在,请重新添加"); + } + Date now = new Date(); projectRxswinEO.setUpdateTime(now); - projectRxswinEO.setState(StatusEnum.SAVE.getValue()); - saveOrUpdate(projectRxswinEO); + projectRxswinEO.setState(StatusEnum.SAVE.getValue()); + saveOrUpdate(projectRxswinEO); } - /** - * 通过id删除 - * - * @param id - * @return - */ - @Override + /** + * 通过id删除 + * + * @param id + * @return + */ + @Override public void deleteById(String id) { removeById(id); } - /** - * 批量删除 - * - * @param ids - * @return - */ - @Override + /** + * 批量删除 + * + * @param ids + * @return + */ + @Override public void deleteByIds(List ids) { removeByIds(ids); } - /** - * 通过id查询 - * - * @param id - * @return - */ - @Override + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override public ProjectRxswinEO queryById(String id) { return getById(id); } /** - * 列表查询 - * - * @return - */ - @Override + * 列表查询 + * + * @return + */ + @Override public List queryList() { return list(); } - @Override - public List getPageInfo(ProjectRxswinEO projectRxswinEO) { - LambdaQueryWrapper wrapper =new LambdaQueryWrapper<>(); - if(StringUtils.isBlank(projectRxswinEO.getProjectId())){ - return new ArrayList<>(); - } - wrapper.eq(ProjectRxswinEO::getProjectId,projectRxswinEO.getProjectId()); + @Override + public List getPageInfo(ProjectRxswinEO projectRxswinEO) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + if (StringUtils.isBlank(projectRxswinEO.getProjectId())) { + return new ArrayList<>(); + } + wrapper.eq(ProjectRxswinEO::getProjectId, projectRxswinEO.getProjectId()); - if(StringUtils.isNotBlank(projectRxswinEO.getTheme())){ - wrapper.like(ProjectRxswinEO::getTheme,projectRxswinEO.getTheme()); - } - if(StringUtils.isNotBlank(projectRxswinEO.getVersion())){ - wrapper.eq(ProjectRxswinEO::getVersion,projectRxswinEO.getVersion()); - } - if(StringUtils.isNotBlank(projectRxswinEO.getRxswin())){ - wrapper.like(ProjectRxswinEO::getRxswin,projectRxswinEO.getRxswin()); - } - if(StringUtils.isBlank(projectRxswinEO.getOrderByField())){ - wrapper.orderByDesc(ProjectRxswinEO::getCreateTime); - } - List projectRxswinEOList = this.list(wrapper); + if (StringUtils.isNotBlank(projectRxswinEO.getTheme())) { + wrapper.like(ProjectRxswinEO::getTheme, projectRxswinEO.getTheme()); + } + if (StringUtils.isNotBlank(projectRxswinEO.getVersion())) { + wrapper.eq(ProjectRxswinEO::getVersion, projectRxswinEO.getVersion()); + } + if (StringUtils.isNotBlank(projectRxswinEO.getRxswin())) { + wrapper.like(ProjectRxswinEO::getRxswin, projectRxswinEO.getRxswin()); + } + if (StringUtils.isBlank(projectRxswinEO.getOrderByField())) { + wrapper.orderByDesc(ProjectRxswinEO::getCreateTime); + } + List projectRxswinEOList = this.list(wrapper); - if(!projectRxswinEOList.isEmpty()){ - List documentIdList = projectRxswinEOList.stream().map(ProjectRxswinEO::getDocumentId).distinct().collect(Collectors.toList()); - List bussDocumentLibraryEOList = getBussDocumentLibraryEOList(documentIdList); - for (ProjectRxswinEO projectRxswinEOTemp : projectRxswinEOList) { - List collect = bussDocumentLibraryEOList.stream() - .filter(e -> e.getId().equals(projectRxswinEOTemp.getDocumentId())).collect(Collectors.toList()); - if(!collect.isEmpty()){ - projectRxswinEOTemp.setSerialNumber(collect.get(0).getSerialNumber()); - } - } - if(StringUtils.isNotBlank(projectRxswinEO.getSerialNumber())){ - projectRxswinEOList = projectRxswinEOList.stream() - .filter(e -> e.getSerialNumber().contains(projectRxswinEO.getSerialNumber())).collect(Collectors.toList()); - } - heartSort(projectRxswinEO,projectRxswinEOList); - } - return projectRxswinEOList; - } + if (!projectRxswinEOList.isEmpty()) { + List documentIdList = projectRxswinEOList.stream().map(ProjectRxswinEO::getDocumentId).distinct().collect(Collectors.toList()); + List bussDocumentLibraryEOList = getBussDocumentLibraryEOList(documentIdList); + for (ProjectRxswinEO projectRxswinEOTemp : projectRxswinEOList) { + List collect = bussDocumentLibraryEOList.stream() + .filter(e -> e.getId().equals(projectRxswinEOTemp.getDocumentId())).collect(Collectors.toList()); + if (!collect.isEmpty()) { + projectRxswinEOTemp.setSerialNumber(collect.get(0).getSerialNumber()); + } + } + if (StringUtils.isNotBlank(projectRxswinEO.getSerialNumber())) { + projectRxswinEOList = projectRxswinEOList.stream() + .filter(e -> e.getSerialNumber().contains(projectRxswinEO.getSerialNumber())).collect(Collectors.toList()); + } + heartSort(projectRxswinEO, projectRxswinEOList); + } + return projectRxswinEOList; + } - /** - * 调取--第一层 - * @param pageNo - * @param pageSize - * @param projectRxswinEO - * @return - */ - @Override - public Page getOnePage(Integer pageNo,Integer pageSize,ProjectRxswinEO projectRxswinEO) { - ProjectLibraryBase libraryBase = projectLibraryBaseService.getById(projectRxswinEO.getProjectId()); - String id = ""; - String parentId = ""; - if(StringUtils.isBlank(libraryBase.getParentId())){ - id = libraryBase.getId(); - parentId = libraryBase.getId(); - }else{ - id = libraryBase.getParentId(); - parentId = libraryBase.getParentId(); - } - List libraryBaseList = projectRxswinEOMapper.queryProjectLibraryBaseList(id,parentId); - for (ProjectLibraryBase projectLibraryBase : libraryBaseList) { - //项目名称 - String projectName = ""; - if(CutEnum.CN.getValue().equals(projectRxswinEO.getCut())){ - projectName = projectLibraryBase.getProjectName() + " " + projectLibraryBase.getYearName() - + "-" + projectLibraryBase.getTargetMarketNameCn() + "-" + projectLibraryBase.getProjectVersion(); - }else{ - projectName = projectLibraryBase.getProjectName() + " " + projectLibraryBase.getYearName() - + "-" + projectLibraryBase.getTargetMarketNameEn() + "-" + projectLibraryBase.getProjectVersion(); - } - projectLibraryBase.setProjectName(projectName); - } - Collections.sort(libraryBaseList); - return PageUtil.getPages(pageNo,pageSize,libraryBaseList); - } + /** + * 调取--第一层 + * + * @param pageNo + * @param pageSize + * @param projectRxswinEO + * @return + */ + @Override + public Page getOnePage(Integer pageNo, Integer pageSize, ProjectRxswinEO projectRxswinEO) { + ProjectLibraryBase libraryBase = projectLibraryBaseService.getById(projectRxswinEO.getProjectId()); + String id = ""; + String parentId = ""; + if (StringUtils.isBlank(libraryBase.getParentId())) { + id = libraryBase.getId(); + parentId = libraryBase.getId(); + } else { + id = libraryBase.getParentId(); + parentId = libraryBase.getParentId(); + } + List libraryBaseList = projectRxswinEOMapper.queryProjectLibraryBaseList(id, parentId); + for (ProjectLibraryBase projectLibraryBase : libraryBaseList) { + //项目名称 + String projectName = ""; + if (CutEnum.CN.getValue().equals(projectRxswinEO.getCut())) { + projectName = projectLibraryBase.getProjectName() + " " + projectLibraryBase.getYearName() + + "-" + projectLibraryBase.getTargetMarketNameCn() + "-" + projectLibraryBase.getProjectVersion(); + } else { + projectName = projectLibraryBase.getProjectName() + " " + projectLibraryBase.getYearName() + + "-" + projectLibraryBase.getTargetMarketNameEn() + "-" + projectLibraryBase.getProjectVersion(); + } + projectLibraryBase.setProjectName(projectName); + } + Collections.sort(libraryBaseList); + return PageUtil.getPages(pageNo, pageSize, libraryBaseList); + } - /** - * 调取--第二层 - * @param pageNo - * @param pageSize - * @param projectRxswinEO - * @return - */ - @Override - public Page getTwoPage(Integer pageNo,Integer pageSize,ProjectRxswinEO projectRxswinEO) { + /** + * 调取--第二层 + * + * @param pageNo + * @param pageSize + * @param projectRxswinEO + * @return + */ + @Override + public Page getTwoPage(Integer pageNo, Integer pageSize, ProjectRxswinEO projectRxswinEO) { - LambdaQueryWrapper wrapper =new LambdaQueryWrapper<>(); - wrapper.eq(ProjectRxswinEO::getProjectId,projectRxswinEO.getProjectId()); - wrapper.eq(ProjectRxswinEO::getState, StatusEnum.SUBMIT.getValue());//提交的 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProjectRxswinEO::getProjectId, projectRxswinEO.getProjectId()); + wrapper.eq(ProjectRxswinEO::getState, StatusEnum.SUBMIT.getValue());//提交的 - if(StringUtils.isNotBlank(projectRxswinEO.getTheme())){ - wrapper.like(ProjectRxswinEO::getTheme,projectRxswinEO.getTheme()); - } - if(StringUtils.isNotBlank(projectRxswinEO.getVersion())){ - wrapper.eq(ProjectRxswinEO::getVersion,projectRxswinEO.getVersion()); - } - if(StringUtils.isNotBlank(projectRxswinEO.getRxswin())){ - wrapper.like(ProjectRxswinEO::getRxswin,projectRxswinEO.getRxswin()); - } - if(StringUtils.isBlank(projectRxswinEO.getOrderByField())){ - wrapper.orderByDesc(ProjectRxswinEO::getCreateTime); - } + if (StringUtils.isNotBlank(projectRxswinEO.getTheme())) { + wrapper.like(ProjectRxswinEO::getTheme, projectRxswinEO.getTheme()); + } + if (StringUtils.isNotBlank(projectRxswinEO.getVersion())) { + wrapper.eq(ProjectRxswinEO::getVersion, projectRxswinEO.getVersion()); + } + if (StringUtils.isNotBlank(projectRxswinEO.getRxswin())) { + wrapper.like(ProjectRxswinEO::getRxswin, projectRxswinEO.getRxswin()); + } + if (StringUtils.isBlank(projectRxswinEO.getOrderByField())) { + wrapper.orderByDesc(ProjectRxswinEO::getCreateTime); + } - List projectRxswinEOList = this.list(wrapper); + List projectRxswinEOList = this.list(wrapper); - if(!projectRxswinEOList.isEmpty()){ - List documentIdList = projectRxswinEOList.stream().map(ProjectRxswinEO::getDocumentId).distinct().collect(Collectors.toList()); - List bussDocumentLibraryEOList = getBussDocumentLibraryEOList(documentIdList); - for (ProjectRxswinEO projectRxswinEOTemp : projectRxswinEOList) { - List collect = bussDocumentLibraryEOList.stream() - .filter(e -> e.getId().equals(projectRxswinEOTemp.getDocumentId())).collect(Collectors.toList()); - if(!collect.isEmpty()){ - projectRxswinEOTemp.setSerialNumber(collect.get(0).getSerialNumber()); - } - } - if(StringUtils.isNotBlank(projectRxswinEO.getSerialNumber())){ - projectRxswinEOList = projectRxswinEOList.stream() - .filter(e -> e.getSerialNumber().contains(projectRxswinEO.getSerialNumber())).collect(Collectors.toList()); - } - heartSort(projectRxswinEO,projectRxswinEOList); - } - return PageUtil.getPages(pageNo,pageSize,projectRxswinEOList); - } + if (!projectRxswinEOList.isEmpty()) { + List documentIdList = projectRxswinEOList.stream().map(ProjectRxswinEO::getDocumentId).distinct().collect(Collectors.toList()); + List bussDocumentLibraryEOList = getBussDocumentLibraryEOList(documentIdList); + for (ProjectRxswinEO projectRxswinEOTemp : projectRxswinEOList) { + List collect = bussDocumentLibraryEOList.stream() + .filter(e -> e.getId().equals(projectRxswinEOTemp.getDocumentId())).collect(Collectors.toList()); + if (!collect.isEmpty()) { + projectRxswinEOTemp.setSerialNumber(collect.get(0).getSerialNumber()); + } + } + if (StringUtils.isNotBlank(projectRxswinEO.getSerialNumber())) { + projectRxswinEOList = projectRxswinEOList.stream() + .filter(e -> e.getSerialNumber().contains(projectRxswinEO.getSerialNumber())).collect(Collectors.toList()); + } + heartSort(projectRxswinEO, projectRxswinEOList); + } + return PageUtil.getPages(pageNo, pageSize, projectRxswinEOList); + } - /** - * 提交 - * @param projectId - * @param ids - */ - @Override - public void submitInfo(String projectId, String ids) { - LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.in(ProjectRxswinEO::getId, Arrays.asList(ids.split(","))); - List rxswinEOList = this.list(wrapper); - for (ProjectRxswinEO projectRxswinEO : rxswinEOList) { - projectRxswinEO.setUpdateBy(user.getUsername()); - projectRxswinEO.setState(StatusEnum.SUBMIT.getValue()); - } - this.updateBatchById(rxswinEOList); - } - /** - * 覆盖验证 - * @param projectId - * @param ids - */ - @Override - public String iSExist(String projectId, String ids) { - LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + /** + * 提交 + * + * @param projectId + * @param ids + */ + @Override + public void submitInfo(String projectId, String ids) { + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(ProjectRxswinEO::getId, Arrays.asList(ids.split(","))); + List rxswinEOList = this.list(wrapper); + for (ProjectRxswinEO projectRxswinEO : rxswinEOList) { + projectRxswinEO.setUpdateBy(user.getUsername()); + projectRxswinEO.setState(StatusEnum.SUBMIT.getValue()); + } + this.updateBatchById(rxswinEOList); + } - //新增的 - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + /** + * 覆盖验证 + * + * @param projectId + * @param ids + */ + @Override + public String iSExist(String projectId, String ids) { + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + //新增的 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); // wrapper.eq(ProjectRxswinEO::getProjectId, projectId); - wrapper.in(ProjectRxswinEO::getId, Arrays.asList(ids.split(","))); - List rxswinEOList = this.list(wrapper); + wrapper.in(ProjectRxswinEO::getId, Arrays.asList(ids.split(","))); + List rxswinEOList = this.list(wrapper); - //已存在的 - LambdaQueryWrapper wrapperTemp = new LambdaQueryWrapper<>(); - wrapperTemp.eq(ProjectRxswinEO::getProjectId, projectId); - List rxswinEOS = this.list(wrapperTemp); + //已存在的 + LambdaQueryWrapper wrapperTemp = new LambdaQueryWrapper<>(); + wrapperTemp.eq(ProjectRxswinEO::getProjectId, projectId); + List rxswinEOS = this.list(wrapperTemp); - if(!rxswinEOS.isEmpty()){ - List themeList = rxswinEOS.stream().map(ProjectRxswinEO::getTheme).collect(Collectors.toList()); - List projectRxswinEOS = rxswinEOList.stream().filter(e -> themeList.contains(e.getTheme())).collect(Collectors.toList()); - if(projectRxswinEOS.isEmpty()){ - //直接新增 - saveBatchInfo(projectId, user, rxswinEOList); - }else{ - return "YES"; - } - }else{ - //直接新增 - saveBatchInfo(projectId, user, rxswinEOList); - } - return "NO"; - } + if (!rxswinEOS.isEmpty()) { + List themeList = rxswinEOS.stream().map(ProjectRxswinEO::getTheme).collect(Collectors.toList()); + List projectRxswinEOS = rxswinEOList.stream().filter(e -> themeList.contains(e.getTheme())).collect(Collectors.toList()); + if (projectRxswinEOS.isEmpty()) { + //直接新增 + saveBatchInfo(projectId, user, rxswinEOList); + } else { + return "YES"; + } + } else { + //直接新增 + saveBatchInfo(projectId, user, rxswinEOList); + } + return "NO"; + } - private void saveBatchInfo(String projectId, LoginUser user, List rxswinEOList) { - for (ProjectRxswinEO projectRxswinEO : rxswinEOList) { - projectRxswinEO.setId(UUID.randomUUID().toString().replaceAll("-","")); - projectRxswinEO.setProjectId(projectId); - projectRxswinEO.setCreateTime(new Date()); - projectRxswinEO.setCreateBy(user.getUsername()); - projectRxswinEO.setState(StatusEnum.SAVE.getValue()); - } - this.saveBatch(rxswinEOList); - } + private void saveBatchInfo(String projectId, LoginUser user, List rxswinEOList) { + for (ProjectRxswinEO projectRxswinEO : rxswinEOList) { + projectRxswinEO.setId(UUID.randomUUID().toString().replaceAll("-", "")); + projectRxswinEO.setProjectId(projectId); + projectRxswinEO.setCreateTime(new Date()); + projectRxswinEO.setCreateBy(user.getUsername()); + projectRxswinEO.setState(StatusEnum.SAVE.getValue()); + } + this.saveBatch(rxswinEOList); + } - /** - * 调取后保存数据 - * @param projectId - * @param ids - * @param flag - */ - @Override - public void addBatch(String projectId, String ids,String flag) { - LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + /** + * 调取后保存数据 + * + * @param projectId + * @param ids + * @param flag + */ + @Override + public void addBatch(String projectId, String ids, String flag) { + LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - //新增的 - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.in(ProjectRxswinEO::getId, Arrays.asList(ids.split(","))); - List rxswinEOList = this.list(wrapper); + //新增的 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(ProjectRxswinEO::getId, Arrays.asList(ids.split(","))); + List rxswinEOList = this.list(wrapper); - //已存在的 - LambdaQueryWrapper wrapperTemp = new LambdaQueryWrapper<>(); - wrapperTemp.eq(ProjectRxswinEO::getProjectId, projectId); - List rxswinEOS = this.list(wrapperTemp); + //已存在的 + LambdaQueryWrapper wrapperTemp = new LambdaQueryWrapper<>(); + wrapperTemp.eq(ProjectRxswinEO::getProjectId, projectId); + List rxswinEOS = this.list(wrapperTemp); - List themeList = rxswinEOS.stream().map(ProjectRxswinEO::getTheme).collect(Collectors.toList()); - List yesList = rxswinEOList.stream().filter(e -> themeList.contains(e.getTheme())).collect(Collectors.toList()); - List noList = rxswinEOList.stream().filter(e -> !themeList.contains(e.getTheme())).collect(Collectors.toList()); + List themeList = rxswinEOS.stream().map(ProjectRxswinEO::getTheme).collect(Collectors.toList()); + List yesList = rxswinEOList.stream().filter(e -> themeList.contains(e.getTheme())).collect(Collectors.toList()); + List noList = rxswinEOList.stream().filter(e -> !themeList.contains(e.getTheme())).collect(Collectors.toList()); - if(StatusEnum.COVER_YES.getValue().equals(flag)){ - //未存在的进行新增 - saveBatchInfo(projectId, user, noList); + if (StatusEnum.COVER_YES.getValue().equals(flag)) { + //未存在的进行新增 + saveBatchInfo(projectId, user, noList); - for (ProjectRxswinEO projectRxswinEO : yesList) { - List collect = rxswinEOS.stream() - .filter(e -> projectRxswinEO.getTheme().equals(e.getTheme())).collect(Collectors.toList()); - if(!collect.isEmpty()){ - projectRxswinEO.setId(collect.get(0).getId()); - projectRxswinEO.setCreateTime(collect.get(0).getCreateTime()); - } - projectRxswinEO.setUpdateTime(new Date()); - projectRxswinEO.setCreateBy(user.getUsername()); - projectRxswinEO.setState(StatusEnum.SAVE.getValue()); - projectRxswinEO.setProjectId(projectId); - } - //已存在的进行覆盖 - this.updateBatchById(yesList); + for (ProjectRxswinEO projectRxswinEO : yesList) { + List collect = rxswinEOS.stream() + .filter(e -> projectRxswinEO.getTheme().equals(e.getTheme())).collect(Collectors.toList()); + if (!collect.isEmpty()) { + projectRxswinEO.setId(collect.get(0).getId()); + projectRxswinEO.setCreateTime(collect.get(0).getCreateTime()); + } + projectRxswinEO.setUpdateTime(new Date()); + projectRxswinEO.setCreateBy(user.getUsername()); + projectRxswinEO.setState(StatusEnum.SAVE.getValue()); + projectRxswinEO.setProjectId(projectId); + } + //已存在的进行覆盖 + this.updateBatchById(yesList); - }else if(StatusEnum.COVER_NO.getValue().equals(flag)){ - saveBatchInfo(projectId, user, noList); - } - } + } else if (StatusEnum.COVER_NO.getValue().equals(flag)) { + saveBatchInfo(projectId, user, noList); + } + } - @Override - public List getVersionList(String projectId) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(ProjectRxswinEO::getProjectId,projectId); - List rxswinEOList = this.list(wrapper); - List versionList = rxswinEOList.stream() - .filter(e->StringUtils.isNotBlank(e.getVersion())) - .map(ProjectRxswinEO::getVersion).distinct().collect(Collectors.toList()); - Collections.sort(versionList,(a,b)->{ - return Integer.parseInt(a) - Integer.parseInt(b); - }); - return versionList; - } + @Override + public List getVersionList(String projectId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProjectRxswinEO::getProjectId, projectId); + List rxswinEOList = this.list(wrapper); + List versionList = rxswinEOList.stream() + .filter(e -> StringUtils.isNotBlank(e.getVersion())) + .map(ProjectRxswinEO::getVersion).distinct().collect(Collectors.toList()); + Collections.sort(versionList, (a, b) -> { + return Integer.parseInt(a) - Integer.parseInt(b); + }); + return versionList; + } - @Override - public ModelAndView exportXls(HttpServletRequest request, ProjectRxswinEO projectRxswinEO) { - // Step.2 获取导出数据 - List pageList = getPageInfo(projectRxswinEO); - List exportList = null; + @Override + public ModelAndView exportXls(HttpServletRequest request, ProjectRxswinEO projectRxswinEO) { + // Step.2 获取导出数据 + List pageList = getPageInfo(projectRxswinEO); + List exportList = null; - // 过滤选中数据 - String selections = request.getParameter("selections"); - if (oConvertUtils.isNotEmpty(selections)) { - List selectionList = Arrays.asList(selections.split(",")); - exportList = pageList.stream().filter(e -> selectionList.contains(e.getId())).collect(Collectors.toList()); - } else { - exportList = pageList; - } + // 过滤选中数据 + String selections = request.getParameter("selections"); + if (oConvertUtils.isNotEmpty(selections)) { + List selectionList = Arrays.asList(selections.split(",")); + exportList = pageList.stream().filter(e -> selectionList.contains(e.getId())).collect(Collectors.toList()); + } else { + exportList = pageList; + } - // Step.3 AutoPoi 导出Excel - ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); - if (CutEnum.CN.getValue().equals(projectRxswinEO.getCut())) { - mv.addObject(NormalExcelConstants.CLASS, ProjectRxswinEO.class); - mv.addObject(NormalExcelConstants.DATA_LIST, exportList); - ExportParams exportParams = new ExportParams(null, null, "RXSWIN"); - mv.addObject(NormalExcelConstants.PARAMS, exportParams); - } else { - List dataList = new ArrayList<>(); - for (ProjectRxswinEO projectRxswinEOTemp : exportList) { - ProjectRxswinEOEn projectRxswinEOEn = new ProjectRxswinEOEn(); - BeanUtils.copyProperties(projectRxswinEOTemp, projectRxswinEOEn); - dataList.add(projectRxswinEOEn); - } - mv.addObject(NormalExcelConstants.CLASS, ProjectRxswinEOEn.class); - mv.addObject(NormalExcelConstants.DATA_LIST, dataList); - ExportParams exportParams = new ExportParams(null, null, "RXSWIN"); - mv.addObject(NormalExcelConstants.PARAMS, exportParams); - } - return mv; - } + // Step.3 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + if (CutEnum.CN.getValue().equals(projectRxswinEO.getCut())) { + mv.addObject(NormalExcelConstants.CLASS, ProjectRxswinEO.class); + mv.addObject(NormalExcelConstants.DATA_LIST, exportList); + ExportParams exportParams = new ExportParams(null, null, "RXSWIN"); + mv.addObject(NormalExcelConstants.PARAMS, exportParams); + } else { + List dataList = new ArrayList<>(); + for (ProjectRxswinEO projectRxswinEOTemp : exportList) { + ProjectRxswinEOEn projectRxswinEOEn = new ProjectRxswinEOEn(); + BeanUtils.copyProperties(projectRxswinEOTemp, projectRxswinEOEn); + dataList.add(projectRxswinEOEn); + } + mv.addObject(NormalExcelConstants.CLASS, ProjectRxswinEOEn.class); + mv.addObject(NormalExcelConstants.DATA_LIST, dataList); + ExportParams exportParams = new ExportParams(null, null, "RXSWIN"); + mv.addObject(NormalExcelConstants.PARAMS, exportParams); + } + return mv; + } - public List getBussDocumentLibraryEOList(List documentIdList){ - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.in(BussDocumentLibraryEO::getId,documentIdList); - return bussDocumentLibraryEOService.list(wrapper); - } + public List getBussDocumentLibraryEOList(List documentIdList) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(BussDocumentLibraryEO::getId, documentIdList); + return bussDocumentLibraryEOService.list(wrapper); + } - private void heartSort(ProjectRxswinEO projectRxswinEO, List projectRxswinEOList) { - Collator comparator = Collator.getInstance(Locale.CHINESE); - // 编号 - if ("serialNumber".equals(projectRxswinEO.getOrderByField())) { - if (OrderEnum.POSITIVE.getValue().equals(projectRxswinEO.getOrderBy())) { - Collections.sort(projectRxswinEOList, (e1, e2) -> { - String e1PlannedBpLaunchBatch = com.jero.modules.system.util.StringUtils.isNotBlank(e1.getSerialNumber()) ? e1.getSerialNumber() : ""; - String e2PlannedBpLaunchBatch = com.jero.modules.system.util.StringUtils.isNotBlank(e2.getSerialNumber()) ? e2.getSerialNumber() : ""; - return comparator.compare(e1PlannedBpLaunchBatch, e2PlannedBpLaunchBatch); - }); - } else if (OrderEnum.REVERSE.getValue().equals(projectRxswinEO.getOrderBy())) { - Collections.sort(projectRxswinEOList, (e1, e2) -> { - String e1PlannedBpLaunchBatch = com.jero.modules.system.util.StringUtils.isNotBlank(e1.getSerialNumber()) ? e1.getSerialNumber() : ""; - String e2PlannedBpLaunchBatch = com.jero.modules.system.util.StringUtils.isNotBlank(e2.getSerialNumber()) ? e2.getSerialNumber() : ""; - return comparator.compare(e2PlannedBpLaunchBatch, e1PlannedBpLaunchBatch); - }); - } - } - // 主题 - if ("theme".equals(projectRxswinEO.getOrderByField())) { - if (OrderEnum.POSITIVE.getValue().equals(projectRxswinEO.getOrderBy())) { - Collections.sort(projectRxswinEOList, (e1, e2) -> { - String e1Market = com.jero.modules.system.util.StringUtils.isNotBlank(e1.getTheme()) ? e1.getTheme() : ""; - String e2Market = com.jero.modules.system.util.StringUtils.isNotBlank(e2.getTheme()) ? e2.getTheme() : ""; - return comparator.compare(e1Market, e2Market); - }); - } else if (OrderEnum.REVERSE.getValue().equals(projectRxswinEO.getOrderBy())) { - Collections.sort(projectRxswinEOList, (e1, e2) -> { - String e1Market = com.jero.modules.system.util.StringUtils.isNotBlank(e1.getTheme()) ? e1.getTheme() : ""; - String e2Market = com.jero.modules.system.util.StringUtils.isNotBlank(e2.getTheme()) ? e2.getTheme() : ""; - return comparator.compare(e2Market, e1Market); - }); - } - } - //RXSWIN - if ("rxswin".equals(projectRxswinEO.getOrderByField())) { - if (OrderEnum.POSITIVE.getValue().equals(projectRxswinEO.getOrderBy())) { - Collections.sort(projectRxswinEOList, (e1, e2) -> { - String e1Market = com.jero.modules.system.util.StringUtils.isNotBlank(e1.getRxswin()) ? e1.getRxswin() : ""; - String e2Market = com.jero.modules.system.util.StringUtils.isNotBlank(e2.getRxswin()) ? e2.getRxswin() : ""; - return comparator.compare(e1Market, e2Market); - }); - } else if (OrderEnum.REVERSE.getValue().equals(projectRxswinEO.getOrderBy())) { - Collections.sort(projectRxswinEOList, (e1, e2) -> { - String e1Market = com.jero.modules.system.util.StringUtils.isNotBlank(e1.getRxswin()) ? e1.getRxswin() : ""; - String e2Market = com.jero.modules.system.util.StringUtils.isNotBlank(e2.getRxswin()) ? e2.getRxswin() : ""; - return comparator.compare(e2Market, e1Market); - }); - } - } + private void heartSort(ProjectRxswinEO projectRxswinEO, List projectRxswinEOList) { + Collator comparator = Collator.getInstance(Locale.CHINESE); + // 编号 + if ("serialNumber".equals(projectRxswinEO.getOrderByField())) { + if (OrderEnum.POSITIVE.getValue().equals(projectRxswinEO.getOrderBy())) { + Collections.sort(projectRxswinEOList, (e1, e2) -> { + String e1PlannedBpLaunchBatch = com.jero.modules.system.util.StringUtils.isNotBlank(e1.getSerialNumber()) ? e1.getSerialNumber() : ""; + String e2PlannedBpLaunchBatch = com.jero.modules.system.util.StringUtils.isNotBlank(e2.getSerialNumber()) ? e2.getSerialNumber() : ""; + return comparator.compare(e1PlannedBpLaunchBatch, e2PlannedBpLaunchBatch); + }); + } else if (OrderEnum.REVERSE.getValue().equals(projectRxswinEO.getOrderBy())) { + Collections.sort(projectRxswinEOList, (e1, e2) -> { + String e1PlannedBpLaunchBatch = com.jero.modules.system.util.StringUtils.isNotBlank(e1.getSerialNumber()) ? e1.getSerialNumber() : ""; + String e2PlannedBpLaunchBatch = com.jero.modules.system.util.StringUtils.isNotBlank(e2.getSerialNumber()) ? e2.getSerialNumber() : ""; + return comparator.compare(e2PlannedBpLaunchBatch, e1PlannedBpLaunchBatch); + }); + } + } + // 主题 + if ("theme".equals(projectRxswinEO.getOrderByField())) { + if (OrderEnum.POSITIVE.getValue().equals(projectRxswinEO.getOrderBy())) { + Collections.sort(projectRxswinEOList, (e1, e2) -> { + String e1Market = com.jero.modules.system.util.StringUtils.isNotBlank(e1.getTheme()) ? e1.getTheme() : ""; + String e2Market = com.jero.modules.system.util.StringUtils.isNotBlank(e2.getTheme()) ? e2.getTheme() : ""; + return comparator.compare(e1Market, e2Market); + }); + } else if (OrderEnum.REVERSE.getValue().equals(projectRxswinEO.getOrderBy())) { + Collections.sort(projectRxswinEOList, (e1, e2) -> { + String e1Market = com.jero.modules.system.util.StringUtils.isNotBlank(e1.getTheme()) ? e1.getTheme() : ""; + String e2Market = com.jero.modules.system.util.StringUtils.isNotBlank(e2.getTheme()) ? e2.getTheme() : ""; + return comparator.compare(e2Market, e1Market); + }); + } + } + //RXSWIN + if ("rxswin".equals(projectRxswinEO.getOrderByField())) { + if (OrderEnum.POSITIVE.getValue().equals(projectRxswinEO.getOrderBy())) { + Collections.sort(projectRxswinEOList, (e1, e2) -> { + String e1Market = com.jero.modules.system.util.StringUtils.isNotBlank(e1.getRxswin()) ? e1.getRxswin() : ""; + String e2Market = com.jero.modules.system.util.StringUtils.isNotBlank(e2.getRxswin()) ? e2.getRxswin() : ""; + return comparator.compare(e1Market, e2Market); + }); + } else if (OrderEnum.REVERSE.getValue().equals(projectRxswinEO.getOrderBy())) { + Collections.sort(projectRxswinEOList, (e1, e2) -> { + String e1Market = com.jero.modules.system.util.StringUtils.isNotBlank(e1.getRxswin()) ? e1.getRxswin() : ""; + String e2Market = com.jero.modules.system.util.StringUtils.isNotBlank(e2.getRxswin()) ? e2.getRxswin() : ""; + return comparator.compare(e2Market, e1Market); + }); + } + } - //对应版本 - if ("version".equals(projectRxswinEO.getOrderByField())) { - if (OrderEnum.POSITIVE.getValue().equals(projectRxswinEO.getOrderBy())) { - Collections.sort(projectRxswinEOList, (e1, e2) -> { - String e1Market = com.jero.modules.system.util.StringUtils.isNotBlank(e1.getVersion()) ? e1.getVersion() : ""; - String e2Market = com.jero.modules.system.util.StringUtils.isNotBlank(e2.getVersion()) ? e2.getVersion() : ""; - return comparator.compare(e1Market, e2Market); - }); - } else if (OrderEnum.REVERSE.getValue().equals(projectRxswinEO.getOrderBy())) { - Collections.sort(projectRxswinEOList, (e1, e2) -> { - String e1Market = com.jero.modules.system.util.StringUtils.isNotBlank(e1.getVersion()) ? e1.getVersion() : ""; - String e2Market = com.jero.modules.system.util.StringUtils.isNotBlank(e2.getVersion()) ? e2.getVersion() : ""; - return comparator.compare(e2Market, e1Market); - }); - } - } - } + //对应版本 + if ("version".equals(projectRxswinEO.getOrderByField())) { + if (OrderEnum.POSITIVE.getValue().equals(projectRxswinEO.getOrderBy())) { + Collections.sort(projectRxswinEOList, (e1, e2) -> { + String e1Market = com.jero.modules.system.util.StringUtils.isNotBlank(e1.getVersion()) ? e1.getVersion() : ""; + String e2Market = com.jero.modules.system.util.StringUtils.isNotBlank(e2.getVersion()) ? e2.getVersion() : ""; + return comparator.compare(e1Market, e2Market); + }); + } else if (OrderEnum.REVERSE.getValue().equals(projectRxswinEO.getOrderBy())) { + Collections.sort(projectRxswinEOList, (e1, e2) -> { + String e1Market = com.jero.modules.system.util.StringUtils.isNotBlank(e1.getVersion()) ? e1.getVersion() : ""; + String e2Market = com.jero.modules.system.util.StringUtils.isNotBlank(e2.getVersion()) ? e2.getVersion() : ""; + return comparator.compare(e2Market, e1Market); + }); + } + } + } - @Override - public void exportTemplate(Map map, HttpServletResponse response, HttpServletRequest request) { - OutputStream os = null; - HSSFWorkbook workbook = new HSSFWorkbook(); - String cut = (String) map.get("cut"); - String sheetName = ""; - if(com.jero.modules.system.util.StringUtils.equals(cut,CutEnum.CN.getValue())){ - sheetName = "RXSWIN"; - }else { - sheetName = "RXSWIN"; - } - String fileOriName = "文档库导入模板.xls"; - String filePath = uploadpath + File.separator + fileOriName; - try { - List list = new ArrayList<>(); - if(CutEnum.CN.getValue().equals((String) map.get("cut"))){ - list.add("编号,主题,RXSWIN,对应版本"); - }else{ - list.add("No.,Theme,RXSWIN,Corresponding version"); - } - //创建临时文件夹 - File nowFile = new File(filePath); - if (nowFile.exists()) { - nowFile.delete(); - } - nowFile.mkdirs(); - HSSFSheet sheet = workbook.createSheet(sheetName); - sheet.setDefaultColumnWidth(16);//列宽 - HSSFCellStyle cellStyle = workbook.createCellStyle(); - cellStyle.setWrapText(true);//自动换行 - cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); + @Override + public void exportTemplate(Map map, HttpServletResponse response, HttpServletRequest request) { + OutputStream os = null; + HSSFWorkbook workbook = new HSSFWorkbook(); + String cut = (String) map.get("cut"); + String sheetName = ""; + if (com.jero.modules.system.util.StringUtils.equals(cut, CutEnum.CN.getValue())) { + sheetName = "RXSWIN"; + } else { + sheetName = "RXSWIN"; + } + String fileOriName = "文档库导入模板.xls"; + String filePath = uploadpath + File.separator + fileOriName; + try { + List list = new ArrayList<>(); + if (CutEnum.CN.getValue().equals((String) map.get("cut"))) { + list.add("编号,主题,RXSWIN,对应版本"); + } else { + list.add("No.,Theme,RXSWIN,Corresponding version"); + } + //创建临时文件夹 + File nowFile = new File(filePath); + if (nowFile.exists()) { + nowFile.delete(); + } + nowFile.mkdirs(); + HSSFSheet sheet = workbook.createSheet(sheetName); + sheet.setDefaultColumnWidth(16);//列宽 + HSSFCellStyle cellStyle = workbook.createCellStyle(); + cellStyle.setWrapText(true);//自动换行 + cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); - for (int i = 0; i < 1; i++) { - //表头 - Row row = sheet.createRow(i);//开始创建标题行 - String exportFieldName = list.get(i); - if (i == 0) { - if (com.jero.modules.system.util.StringUtils.isNotBlank(exportFieldName)) { - String[] headerArr = exportFieldName.split(","); - for (int j = 0; j < headerArr.length; j++) { - row.createCell(j).setCellValue(headerArr[j]); - } - } - } - } - response.setHeader("Content-Disposition", - "attachment; filename=\"" + fileOriName + ".xls"); - response.setContentType("application/force-download"); - response.flushBuffer(); - os = response.getOutputStream(); - workbook.write(os); - } catch (Exception e) { - throw new JeroBootException("下载文件失败,请重试"); - } finally { - IOUtils.closeQuietly(os); - } + for (int i = 0; i < 1; i++) { + //表头 + Row row = sheet.createRow(i);//开始创建标题行 + String exportFieldName = list.get(i); + if (i == 0) { + if (com.jero.modules.system.util.StringUtils.isNotBlank(exportFieldName)) { + String[] headerArr = exportFieldName.split(","); + for (int j = 0; j < headerArr.length; j++) { + row.createCell(j).setCellValue(headerArr[j]); + } + } + } + } + response.setHeader("Content-Disposition", + "attachment; filename=\"" + fileOriName + ".xls"); + response.setContentType("application/force-download"); + response.flushBuffer(); + os = response.getOutputStream(); + workbook.write(os); + } catch (Exception e) { + throw new JeroBootException("下载文件失败,请重试"); + } finally { + IOUtils.closeQuietly(os); + } - } + } + + @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 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 libraryEOList = bussDocumentLibraryEOService.list(); + List serialNumberList = libraryEOList.stream().map(BussDocumentLibraryEO::getSerialNumber).collect(Collectors.toList()); + + List msgList = new ArrayList<>(); + //数据验证 + dataVerify(cut, projectId, projectRxswinEOList, serialNumberList, msgList); + + if (msgList.size() > 0) { + //返回报错信息 + String html = ""; + for (String s : msgList) { + html += s + "
"; + } + throw new JeroBootException(html); + } else { + for (ProjectRxswinEO projectRxswinEO : projectRxswinEOList) { + projectRxswinEO.setProjectId(projectId); + projectRxswinEO.setState(StatusEnum.SAVE.getValue()); + List 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 projectRxswinEOList, List serialNumberList, List 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 wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProjectRxswinEO::getProjectId, projectId); + wrapper.eq(ProjectRxswinEO::getTheme, theme); + List 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); + } + } }