diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/FileSplitItemsEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/FileSplitItemsEOController.java index 2de4836e7..cafab1241 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/FileSplitItemsEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/FileSplitItemsEOController.java @@ -192,11 +192,12 @@ public class FileSplitItemsEOController extends JeroController parameterMap = JSONObject.parseObject(parameter); + fileSplitItemsEOService.exportSplitInfo(cut, idList, parameterMap, exportName, response, request); } @ApiOperation(value = "文档拆分条款信息-导入拆分结果") diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitInfoController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitInfoController.java index 5139a7987..cc44b5306 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitInfoController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitInfoController.java @@ -87,7 +87,7 @@ public class SarFileSplitInfoController extends JeroController List> queryByOrdersForExport(@Param("field") String field, @Param("idList")List idList, - @Param("infoId") String infoId); + @Param("condition") String condition); int deleteByMenuIds(@Param("idList") List idList); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/mapper/xml/FileSplitItemsEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/mapper/xml/FileSplitItemsEOMapper.xml index 65f4048a1..3f680fa11 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/mapper/xml/FileSplitItemsEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/mapper/xml/FileSplitItemsEOMapper.xml @@ -81,7 +81,7 @@ select sar_file_split_items.id,${field} from sar_file_split_items left join SAR_FILE_SPLIT_MENU on sar_file_split_items.MENU_ID = SAR_FILE_SPLIT_MENU.id - where 1=1 and sar_file_split_items.info_id = #{infoId} + ${condition} and sar_file_split_items.id in diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/IFileSplitItemsEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/IFileSplitItemsEOService.java index fcbf8e94f..9e48744dc 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/IFileSplitItemsEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/IFileSplitItemsEOService.java @@ -3,6 +3,7 @@ package com.jero.modules.split.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.common.api.vo.Result; +import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.split.common.SplitTableInfo; import com.jero.modules.split.dto.FileSpiltValTableExportDto; import com.jero.modules.split.dto.FileSplitValExportDto; @@ -61,11 +62,13 @@ public interface IFileSplitItemsEOService extends IService Map filterMap(Map map); - List> queryByOrdersForExport(String cut, String field, List idList, String infoId); + List> queryByOrdersForExport(String cut, String field, List idList, Map parameter); void downLoadImgList(List allImgList,String fileNowPath) throws IOException; - void exportSplitInfo(String cut, String idList, String infoId,String exportName, HttpServletResponse response, HttpServletRequest request); + void downLoadFileList(List allRelevFileList, String fileNowPath) throws IOException; + + void exportSplitInfo(String cut, String idList, Map parameter,String exportName, HttpServletResponse response, HttpServletRequest request); List combineItemValInfo(List getValList, List allTableList, diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index 52a80e951..6eb8fb384 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -158,7 +158,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl"; // valContent = valEO.getItemContent(); @@ -237,7 +237,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl"; @@ -498,7 +498,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl parameter) { + private String getConditionStr(Map parameter, String type) { //查询条件 StringBuilder conditionSb = new StringBuilder("where 1 = 1"); @@ -719,7 +719,9 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl"; valEO.setType("IMG"); // valEO.setItemContent(imgCon); @@ -1147,16 +1149,17 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl"; valEO.setType("IMG"); // valEO.setItemContent(imgCon); @@ -1192,10 +1195,14 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl nowfilelist = FileUnZip.readFileByFilename(filepath, valArr[i]); if (nowfilelist != null && !nowfilelist.isEmpty()) { - OSSFile oSSFile = ossFileService.uploadLocal((MultipartFile) nowfilelist.get(0), "", "1"); + String url = nowfilelist.get(0).getPath(); + MultipartFile multipartFile = createMfileByPath(url); + String state = "0"; + OSSFile oSSFile = ossFileService.uploadLocal(multipartFile, "", state); + oSSFile = ossFileService.getById(oSSFile.getId()); if (oSSFile != null) { isText = false; - String path = imgpath + oSSFile.getUrl().substring(oSSFile.getUrl().lastIndexOf("/")); + String path = imgpath + oSSFile.getUrl().substring(oSSFile.getUrl().lastIndexOf(File.separator)+1); String imgCon = ""; valEO.setType("IMG"); // valEO.setItemContent(imgCon); @@ -1342,10 +1349,10 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl excelfilelist = FileUnZip.readExcelFile(zipEntryName); @@ -1386,6 +1393,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl itemEO : addItemsEOList) { String itemNum = itemEO.get("items_num").toString(); - if(itemNum.matches(regex) || itemNum.contains("附录")) { +// if(itemNum.matches(regex) || itemNum.contains("附录")) { // TODO 解除条款号格式限制 SarFileSplitMenuTreeNode treeNode = new SarFileSplitMenuTreeNode(); treeNode.setId(UUIDUtils.randomUUID20()); treeNode.setName(itemNum); @@ -2128,7 +2136,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl> queryByOrdersForExport(String cut, String field, List idList, String infoId){ + public List> queryByOrdersForExport(String cut, String field, List idList, Map parameter){ if (CollectionUtil.isEmpty(idList)) { idList = null; } - List> itemsDataForExport = dao.queryByOrdersForExport(field,idList, infoId); + //sql查询条件 + String condition = getConditionStr(parameter, "export"); + List> itemsDataForExport = dao.queryByOrdersForExport(field, idList, condition); + // 查询条款表所有字段 List fieldList = onlCgformFieldService.getFieldList(ModuleEnum.FILE_SPLIT_ITEMS.getValue()); // 日期类型字段 @@ -2601,10 +2612,10 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl fieldStanList = onlCgformFieldStanList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); // 文件字段 - List onlCgformFieldFileList = fieldList.stream() - .filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())) - .collect(Collectors.toList()); - List fileList = onlCgformFieldFileList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); +// List onlCgformFieldFileList = fieldList.stream() +// .filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())) +// .collect(Collectors.toList()); +// List fileList = onlCgformFieldFileList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); // 过滤导出字段 if (fieldList.size() != 0) { @@ -2634,9 +2645,9 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl sysUserList = sysUserService.listByIds(Arrays.asList(entry.getValue().toString().split(","))); - StringBuilder stringBuilder = new StringBuilder(); - for(SysUser user : sysUserList){ - stringBuilder.append(user.getRealname()).append("(").append(user.getUsername()).append("),"); + if(CollectionUtil.isNotEmpty(sysUserList)){ + StringBuilder stringBuilder = new StringBuilder(); + for(SysUser user : sysUserList){ + stringBuilder.append(user.getRealname()).append("(").append(user.getUsername()).append("),"); + } + String value = stringBuilder.substring(0, stringBuilder.lastIndexOf(",")); + entry.setValue(value); } - String value = stringBuilder.substring(0, stringBuilder.lastIndexOf(",")); - entry.setValue(value); } // 标准选择 if(fieldStanList.contains(entry.getKey()) && StringUtils.isNotBlank((String)entry.getValue())) { @@ -2663,24 +2676,24 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl fileInfos = ossFileService.getFileInfos(StringUtils.join(fileIdList, ",")); - if(fileInfos.size() != 0){ - for (Map record : itemsDataForExport) { - Map record1 = (Map) record; - for (Map.Entry entry : record1.entrySet()) { - if(fileList.contains(entry.getKey()) && StringUtils.isNotBlank((String) entry.getValue())){ - String value = (String) entry.getValue(); - List ossFileList = fileInfos.stream().filter(e -> value.equals(e.getConnectId())).collect(Collectors.toList()); - if(ossFileList.size() != 0){ - List fileNameList = ossFileList.stream().map(OSSFile::getFileName).collect(Collectors.toList()); - entry.setValue(StringUtils.join(fileNameList,",")); - } - } - } - } - } - } +// if(fileIdList.size() != 0){ +// List fileInfos = ossFileService.getFileInfos(StringUtils.join(fileIdList, ",")); +// if(fileInfos.size() != 0){ +// for (Map record : itemsDataForExport) { +// Map record1 = (Map) record; +// for (Map.Entry entry : record1.entrySet()) { +// if(fileList.contains(entry.getKey()) && StringUtils.isNotBlank((String) entry.getValue())){ +// String value = (String) entry.getValue(); +// List ossFileList = fileInfos.stream().filter(e -> value.equals(e.getConnectId())).collect(Collectors.toList()); +// if(ossFileList.size() != 0){ +// List fileNameList = ossFileList.stream().map(OSSFile::getFileName).collect(Collectors.toList()); +// entry.setValue(StringUtils.join(fileNameList,",")); +// } +// } +// } +// } +// } +// } return itemsDataForExport; } @@ -2724,7 +2737,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl allImgList, String fileNowPath) throws IOException { for(FileSplitValImgExportDto imgExportDto : allImgList){ - String oldPath = uploadpath+ "/" + imgExportDto.getImgPath(); - String newPath = fileNowPath + "/" + imgExportDto.getImgName(); + String oldPath = uploadpath+ File.separator + imgExportDto.getImgPath(); + String newPath = fileNowPath + File.separator + imgExportDto.getImgName(); + File oldFile = new File(oldPath); + if (oldFile.exists()){ + copyFile1(oldPath, newPath); + } + } + + } + + public void downLoadFileList(List allRelevFileList,String fileNowPath) throws IOException { + for(OSSFile fileExportDto : allRelevFileList){ + String oldPath = fileExportDto.getUrl(); + String newPath = fileNowPath + File.separator + fileExportDto.getFileName(); File oldFile = new File(oldPath); if (oldFile.exists()){ copyFile1(oldPath, newPath); @@ -2790,7 +2815,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl parameter,String exportName, HttpServletResponse response, HttpServletRequest request) { OutputStream os = null; OutputStream excelOS = null; HSSFWorkbook workbook = new HSSFWorkbook(); @@ -2800,7 +2825,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl itemIdList = new ArrayList<>(); SarFileSplitItemsEOPage page = new SarFileSplitItemsEOPage(); - page.setInfoId(infoId); - page.setOrderBy("SAR_FILE_SPLIT_MENU.display_seq asc"); - if (org.apache.commons.lang.StringUtils.isNotEmpty(idList)) { - String[] idArr = idList.split(","); - itemIdList = Arrays.asList(idArr); - page.setIdList(itemIdList); - } +// page.setInfoId(infoId); +// page.setOrderBy("SAR_FILE_SPLIT_MENU.display_seq asc"); +// if (org.apache.commons.lang.StringUtils.isNotEmpty(idList)) { +// String[] idArr = idList.split(","); +// itemIdList = Arrays.asList(idArr); +// page.setIdList(itemIdList); +// } // 查询需要导出的字段 String field = getFieldForExport(); // 字符串形式 List fieldList = Arrays.asList(field.split(",")); // list形式 // 查询导出数据 - List> allItemsList = queryByOrdersForExport(cut, field, itemIdList, infoId); // id记得去掉 + List> allItemsList = queryByOrdersForExport(cut, field, itemIdList, parameter); // id记得去掉 + // 文件类型字段 + List allFieldList = onlCgformFieldService.getFieldList(ModuleEnum.FILE_SPLIT_ITEMS.getValue()); // 查询条款表所有字段 + List onlCgformFieldFileList = allFieldList.stream() + .filter(e -> FieldTypeEnum.FILE.getValue().equals(e.getFieldShowType())) + .collect(Collectors.toList()); + List fileList = onlCgformFieldFileList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList()); // 开始处理工作表 List allTableList = new ArrayList<>(); // 存储表格数据 List allImgList = new ArrayList<>(); // 存储文件数据 + List allRelevFileList = new ArrayList<>(); int countMaxFile = 1; if (allItemsList != null && !allItemsList.isEmpty()) { for (Map itemsExportDto : allItemsList) { @@ -2881,8 +2913,37 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl ossFileList = ossFileService.getFileInfosByConnectId(connectId); + List fileNameList = new ArrayList<>(); + if (ossFileList != null && !ossFileList.isEmpty()) { + fileNameList = ossFileList.stream().map(OSSFile :: getFileName).collect(Collectors.toList()); + row1.createCell(cellNum).setCellValue(StringUtils.join(fileNameList, ",")); + row1.getCell(cellNum).setCellStyle(cellStyle); +// if (countMaxFile < fileList.size()) { +// countMaxFile = fileList.size(); +// } +// countFile = 0; +// for (OSSFile ossFile : ossFileList) { + /* 连接跳转*/ // 搞不了 +// String releFileName = ossFile.getFileName(); +// CreationHelper createHelper = workbook.getCreationHelper(); +// Hyperlink hyperlink1 = createHelper.createHyperlink(HyperlinkType.URL); +// hyperlink1.setAddress(releFileName); +// row1.createCell(9 + countFile).setHyperlink(hyperlink1); +// row1.createCell(9 + countFile).setCellValue(releFileName); +// row1.getCell(9 + countFile).setCellStyle(cellStyleLink); +// countFile++; +// } + allRelevFileList.addAll(ossFileList); + } + } else { + row1.createCell(cellNum).setCellValue(exportDto.get(fieldList.get(cellNum)).toString()); + row1.getCell(cellNum).setCellStyle(cellStyle); + } + } else if ("iterms_conditions".equals(fieldList.get(cellNum))) { // 条款内容特殊处理 HSSFCell cell2 = row1.createCell(cellNum); @@ -2914,47 +2975,6 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl fileList = attFileEOService.getMultiFileInfos(exportDto.getRelevanceFile()); -// if (fileList != null && !fileList.isEmpty()) { -// if (countMaxFile < fileList.size()) { -// countMaxFile = fileList.size(); -// } -// countFile = 0; -// for (AttFileEO attFileEO : fileList) { -// /* 连接跳转*/ -// String releFileName = attFileEO.getOldFileName(); -// CreationHelper createHelper = workbook.getCreationHelper(); -// Hyperlink hyperlink1 = createHelper.createHyperlink(HyperlinkType.URL); -//// String addr = new String(releFileName.getBytes(),"UTF-8"); -// hyperlink1.setAddress(releFileName); -// row1.createCell(9+countFile).setHyperlink(hyperlink1); -// row1.createCell(9+countFile).setCellValue(releFileName); -// row1.getCell(9+countFile).setCellStyle(cellStyleLink); -// countFile++; -// } -// allRelevFileList.addAll(fileList); -// } -// } if (allRow > startRow) { for(int cellNum = 0; cellNum < fieldList.size(); cellNum++) { @@ -2973,40 +2993,50 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl ossFileList = ossFileService.getFileInfosByConnectId(connectId); + List fileNameList = new ArrayList<>(); + if (ossFileList != null && !ossFileList.isEmpty()) { + fileNameList = ossFileList.stream().map(OSSFile :: getFileName).collect(Collectors.toList()); + row1.createCell(cellNum).setCellValue(StringUtils.join(fileNameList, ",")); + row1.getCell(cellNum).setCellStyle(cellStyle); +// if (countMaxFile < fileList.size()) { +// countMaxFile = fileList.size(); +// } +// countFile = 0; +// for (OSSFile ossFile : ossFileList) { + /* 连接跳转*/ // 搞不了 +// String releFileName = ossFile.getFileName(); +// CreationHelper createHelper = workbook.getCreationHelper(); +// Hyperlink hyperlink1 = createHelper.createHyperlink(HyperlinkType.URL); +// hyperlink1.setAddress(releFileName); +// row1.createCell(9 + countFile).setHyperlink(hyperlink1); +// row1.createCell(9 + countFile).setCellValue(releFileName); +// row1.getCell(9 + countFile).setCellStyle(cellStyleLink); +// countFile++; +// } + allRelevFileList.addAll(ossFileList); + } + } else { + row1.createCell(cellNum).setCellValue(exportDto.get(fieldList.get(cellNum)).toString()); + row1.getCell(cellNum).setCellStyle(cellStyle); + } + } else if ("iterms_conditions".equals(fieldList.get(cellNum))) { row1.createCell(cellNum).setCellValue(""); row1.getCell(cellNum).setCellStyle(cellStyle); } } -// if (StringUtils.isNotEmpty(exportDto.getRelevanceFile())) { -// List fileList = attFileEOService.getMultiFileInfos(exportDto.getRelevanceFile()); -// if (fileList != null && !fileList.isEmpty()) { -// countFile = 0; -// for (AttFileEO attFileEO : fileList) { -// /* 连接跳转*/ -// String releFileName = attFileEO.getOldFileName(); -// CreationHelper createHelper = workbook.getCreationHelper(); -// Hyperlink hyperlink1 = createHelper.createHyperlink(HyperlinkType.URL); -//// String addr = new String(releFileName.getBytes(),"UTF-8"); -// hyperlink1.setAddress(releFileName); -// row1.createCell(9+countFile).setHyperlink(hyperlink1); -// row1.createCell(9+countFile).setCellValue(releFileName); -// row1.getCell(9+countFile).setCellStyle(cellStyleLink); -// countFile++; -// } -// allRelevFileList.addAll(fileList); -// } -// } } } - if (countMaxFile > 1) { - for (int i=1;i 1) { +// for (int i=1;i