diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java index 1490fcfa..c86c82e8 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/controller/DocumentSplitController.java @@ -303,4 +303,16 @@ public class DocumentSplitController { public void downloadImportTemplate(HttpServletRequest request, HttpServletResponse response) { documentSplitService.downloadImportTemplate(request, response); } + + /** + * 文档拆分详情-导出 + * @param request + * @param response + */ + @AutoLog(value = "文档拆分详情-导出") + @ApiOperation(value = "文档拆分详情-导出") + @GetMapping("/exportDocumentSplitDetail") + public void exportDocumentSplitDetail(@RequestBody Map parameter, HttpServletRequest request, HttpServletResponse response) { + documentSplitService.exportDocumentSplitDetail(parameter, request, response); + } } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/xml/DocumentSplitMapper.xml b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/xml/DocumentSplitMapper.xml index 971591c6..f857a03d 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/xml/DocumentSplitMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/mapper/xml/DocumentSplitMapper.xml @@ -24,8 +24,8 @@ - insert into sar_file_split_info(id, create_by, create_time, update_by, update_time, sys_org_code, serial_number, title, file_type, file_name, split_result, file_id, connect_id, title_en, author, split_status, standard_id, del_flag) - values (#{id}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, #{sysOrgCode}, #{serialNumber}, #{title}, #{fileType}, #{fileName}, #{splitResult}, #{fileId}, #{connectId}, #{titleEn}, #{author}, #{splitStatus}, #{standardId}, #{delFlag}) + insert into sar_file_split_info(id, create_by, create_time, update_by, update_time, sys_org_code, serial_number, title, file_type, file_name, split_result, file_id, connect_id, title_en, author, split_status, standard_id, del_flag, publish_before_id) + values (#{id}, #{createBy}, #{createTime}, #{updateBy}, #{updateTime}, #{sysOrgCode}, #{serialNumber}, #{title}, #{fileType}, #{fileName}, #{splitResult}, #{fileId}, #{connectId}, #{titleEn}, #{author}, #{splitStatus}, #{standardId}, #{delFlag}, #{publishBeforeId}) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/IDocumentSplitService.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/IDocumentSplitService.java index ed5e81e4..706205fa 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/IDocumentSplitService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/IDocumentSplitService.java @@ -149,4 +149,11 @@ public interface IDocumentSplitService { * @param parameter */ void revocation(Map parameter); + + /** + * 文档拆分详情-导出 + * @param request + * @param response + */ + void exportDocumentSplitDetail(Map parameter, HttpServletRequest request, HttpServletResponse response); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java index 3bc2cf35..8ce013f6 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/service/impl/DocumentSplitServiceImpl.java @@ -696,7 +696,8 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { splitMenuEOPage.setOrderBy("display_seq"); splitMenuEOPage.setInfoId(id); List sarFileSplitMenuEOS = sarFileSplitMenuEOService.queryByList(splitMenuEOPage); - lawsDocumentSplitView.setSarFileSplitMenuEO(sarFileSplitMenuEOS); + // 不需要总目录层级 + lawsDocumentSplitView.setSarFileSplitMenuEO(sarFileSplitMenuEOS.get(0).getChildren()); // 文档拆分详情 parameter.remove(ID); @@ -711,6 +712,15 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { String id = (String) parameter.get(ID); // 文档拆分信息(旧) DocumentSplitInfo oldInfo = documentSplitMapper.queryDocumentSplitInfoById(id); + // 判断是否发布过 + SarFileSplitInfoEO sarFileSplitInfoEO = sarFileSplitInfoService.getOne( + new QueryWrapper().lambda() + .eq(SarFileSplitInfoEO::getPublishBeforeId, id)); + if (!Objects.isNull(sarFileSplitInfoEO)){ + // 删除旧发布数据 + sarFileSplitInfoService.deleteById(sarFileSplitInfoEO.getId()); + } + // 修改发布状态 LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(SarFileSplitInfoEO::getId, oldInfo.getId()); @@ -734,8 +744,6 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { oldMenuIdList.add(sarFileSplitMenu.getId()); String newId = UUID.randomUUID().toString().replace("-", ""); newMenuIdList.add(newId); - sarFileSplitMenu.setId(newId); - sarFileSplitMenu.setInfoId(newInfo.getId()); // 父子级关系处理 oldMenuList.stream() @@ -745,6 +753,9 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { return v; }) .forEach(v -> log.info(v.getParentId())); + + sarFileSplitMenu.setId(newId); + sarFileSplitMenu.setInfoId(newInfo.getId()); } // 新增数据 documentSplitMapper.insertBatchSarFileSplitMenuByInfoId(oldMenuList); @@ -806,6 +817,42 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { sarFileSplitInfoService.update(updateWrapper); } + @Override + public void exportDocumentSplitDetail(Map parameter, HttpServletRequest request, HttpServletResponse response) { + // 文档拆分详情数据 + List> mapList = queryDocumentSplitDetailByList(parameter); + // 创建工作簿 + Workbook workbook = new XSSFWorkbook(); + // 创建sheet页 + Sheet sheet = workbook.createSheet("条款内容"); + // 字段名 + List keyList = new ArrayList<>(); + if(!Objects.isNull(mapList) && !mapList.isEmpty()){ + Map map = mapList.get(0); + keyList = map.entrySet().stream().map(Map.Entry::getKey).collect(Collectors.toList()); + } + + // 样式1 + CellStyle cellStyleOne = workbook.createCellStyle(); + cellStyleOne.setWrapText(true); + cellStyleOne.setVerticalAlignment(VerticalAlignment.CENTER); + // 样式2 + CellStyle cellStyleTwo = workbook.createCellStyle(); + cellStyleTwo.setWrapText(true); + cellStyleTwo.setAlignment(HorizontalAlignment.CENTER); + // 样式3 + CellStyle cellStyleThree = workbook.createCellStyle(); + Font font = workbook.createFont(); + font.setColor(IndexedColors.LIGHT_BLUE.getIndex()); + cellStyleThree.setWrapText(true); + cellStyleThree.setVerticalAlignment(VerticalAlignment.CENTER); + + // 设置表头 + for (String key : keyList) { + + } + } + private void manageData(Map resultMap, StringBuilder fieldsBuilder, StringBuilder valuesBuilder) { // 所有key(字段名) resultMap.forEach((k, v) -> {