From f77b7b297154e8bddfa529c1765258590283db40 Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Mon, 29 Jul 2024 10:59:07 +0800 Subject: [PATCH] =?UTF-8?q?fix(87338):=20=E6=96=87=E6=A1=A3=E6=8B=86?= =?UTF-8?q?=E5=88=86--=E7=BC=96=E8=BE=91--=E5=AF=BC=E5=85=A5=E6=8B=86?= =?UTF-8?q?=E5=88=86=E7=BB=93=E6=9E=9C=EF=BC=8C=E9=98=BB=E5=A1=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oss/controller/SplitFileController.java | 6 +- laws-modules/pom.xml | 5 +- .../controller/DocumentSplitController.java | 3 +- .../impl/DocumentSplitServiceImpl.java | 3 +- .../SarFileSplitMenuEOController.java | 10 + .../mapper/SarFileSplitMenuEOMapper.java | 8 + .../mapper/xml/SarFileSplitMenuEOMapper.xml | 28 +- .../service/ISarFileSplitMenuEOService.java | 2 + .../split/service/impl/FileSpiltService.java | 64 ++--- .../impl/FileSplitItemsEOServiceImpl.java | 244 +++++++++++++++--- .../impl/SarFileSplitMenuEOServiceImpl.java | 56 ++++ 11 files changed, 349 insertions(+), 80 deletions(-) diff --git a/laws-module-system/src/main/java/com/jero/modules/oss/controller/SplitFileController.java b/laws-module-system/src/main/java/com/jero/modules/oss/controller/SplitFileController.java index abe7008b..6182e187 100644 --- a/laws-module-system/src/main/java/com/jero/modules/oss/controller/SplitFileController.java +++ b/laws-module-system/src/main/java/com/jero/modules/oss/controller/SplitFileController.java @@ -32,14 +32,14 @@ public class SplitFileController { @ResponseBody @GetMapping("/getImage") public void queryPageList(@RequestParam("fileName") String fileName, HttpServletResponse response, HttpServletRequest request) { - String fileUrl = "/" + filePathCos + "\\" + fileName; + String fileUrl = ("temp\\" + fileName).replace("\\\\", "\\"); response.setHeader("Content-Disposition", "attachment; filename=\"" + SplitFileUtils.encodeFileName(fileName, request) + "\""); response.setContentType("application/force-download"); // if (MinioUtil.doesObjectExist(fileUrl)) { - try (OutputStream os = response.getOutputStream(); + try (OutputStream os = response.getOutputStream(); // InputStream fis = MinioUtil.download(fileUrl)) { - InputStream fis = ObsBootUtil.getOssFile(fileUrl)) { + InputStream fis = ObsBootUtil.getOssFile(fileUrl)) { int len = 0; while ((len = fis.read()) != -1) { os.write(len); diff --git a/laws-modules/pom.xml b/laws-modules/pom.xml index a1aed2c4..ab2697df 100644 --- a/laws-modules/pom.xml +++ b/laws-modules/pom.xml @@ -175,8 +175,9 @@ org.bouncycastle - bcprov-jdk15to18 - 1.64 + bcprov-jdk15on + 1.56 + compile 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 2e28f24a..4f3859d4 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,7 +303,8 @@ public class DocumentSplitController { @GetMapping("/queryItemsValList") @ApiOperationSupport(order = 12) public Result> queryItemsValList(String id) { - return Result.OK(documentSplitService.queryItemsValList(id)); + List data = documentSplitService.queryItemsValList(id); + return Result.OK(data); } /** 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 99b81aa5..2b34f020 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 @@ -969,8 +969,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { for (SarFileSplitItemsValEO sarFileSplitItemsValEO : sarFileSplitItemsValEOS) { String imgPath = sarFileSplitItemsValEO.getItemContent(); if (DocumentSplitCommon.IMG.equals(sarFileSplitItemsValEO.getType()) && org.apache.commons.lang.StringUtils.isNotEmpty(imgPath)) { - String imgName = imgPath.substring(imgPath.lastIndexOf("/") + 1); - sarFileSplitItemsValEO.setImgName(imgName); + sarFileSplitItemsValEO.setImgName(imgPath); } if (DocumentSplitCommon.TEXT.equals(sarFileSplitItemsValEO.getType()) && org.apache.commons.lang.StringUtils.isNotEmpty(imgPath)){ sarFileSplitItemsValEO.setItemContent(HtmlUtils.htmlUnescape(sarFileSplitItemsValEO.getItemContent())); diff --git a/laws-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitMenuEOController.java b/laws-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitMenuEOController.java index c87b0424..0af87117 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitMenuEOController.java +++ b/laws-modules/src/main/java/com/jero/modules/split/controller/SarFileSplitMenuEOController.java @@ -2,7 +2,9 @@ package com.jero.modules.split.controller; import com.alibaba.fastjson.JSONObject; import com.jero.common.api.vo.Result; +import com.jero.common.api.vo.ResultCommon; import com.jero.common.system.base.controller.JeroController; +import com.jero.common.util.MessageUtils; import com.jero.modules.laws.documenttool.service.IDocumentSplitService; import com.jero.modules.split.entity.SarFileSplitMenuEO; import com.jero.modules.split.mapper.SarFileSplitMenuEOMapper; @@ -66,6 +68,14 @@ public class SarFileSplitMenuEOController extends JeroController updateMenuLevel(String id, String parentId) { + sarFileSplitMenuEOService.updateMenuLevel(id, parentId); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } + @ApiOperation(value = "标准拆分条款目录-向上或向下移动") @PostMapping("/moveUpOrDown") @RequiresPermissions(value = {"split:sarFileSplitMenu:moveUp","split:sarFileSplitMenu:moveDown"}, logical = Logical.OR) diff --git a/laws-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitMenuEOMapper.java b/laws-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitMenuEOMapper.java index 0e49c932..5e0246d5 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitMenuEOMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/split/mapper/SarFileSplitMenuEOMapper.java @@ -25,6 +25,8 @@ public interface SarFileSplitMenuEOMapper extends BaseMapper int updateDisplaySeqCut(SarFileSplitMenuEO sarFileSplitMenuEO); + List queryByPidAndSelf(SarFileSplitMenuEO sarFileSplitMenuEO); + List queryByPidExcpetSelf(SarFileSplitMenuEO sarFileSplitMenuEO); int deleteByPId(@Param("idList") List idList); @@ -71,4 +73,10 @@ public interface SarFileSplitMenuEOMapper extends BaseMapper List selectBatchIds(@Param("idList") List idList); SarFileSplitMenuEO findById(String id); + + SarFileSplitMenuEO findLastByParentId(String parentId); + + List queryByGTDisplaySeq(@Param("infoId") String infoId, @Param("displaySeq") Long displaySeq); + + List findByParentId(String pId); } diff --git a/laws-modules/src/main/java/com/jero/modules/split/mapper/xml/SarFileSplitMenuEOMapper.xml b/laws-modules/src/main/java/com/jero/modules/split/mapper/xml/SarFileSplitMenuEOMapper.xml index fa171aa4..ec90e908 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/mapper/xml/SarFileSplitMenuEOMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/split/mapper/xml/SarFileSplitMenuEOMapper.xml @@ -178,7 +178,7 @@ + select m.* + from SAR_FILE_SPLIT_MENU m,( SELECT ( @nodes := querySplitMenuChildren (#{id})) AS pids ) t + WHERE + FIND_IN_SET( m.id, t.pids ) + AND valid_flag = '0' + + + + + + + diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitMenuEOService.java b/laws-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitMenuEOService.java index 07647548..25abf27c 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitMenuEOService.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/ISarFileSplitMenuEOService.java @@ -57,4 +57,6 @@ public interface ISarFileSplitMenuEOService extends IService List queryByInfoId(String infoId); Result moveUpOrDown(JSONObject json); + + void updateMenuLevel(String id, String parentId); } diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSpiltService.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSpiltService.java index 0e0f5814..3feaea3a 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSpiltService.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSpiltService.java @@ -2,6 +2,8 @@ package com.jero.modules.split.service.impl; import cn.hutool.core.lang.RegexPool; import cn.hutool.core.util.ReUtil; +import cn.hutool.http.Header; +import cn.hutool.http.HttpRequest; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; @@ -39,6 +41,8 @@ import org.openxmlformats.schemas.drawingml.x2006.main.CTGraphicalObject; import org.openxmlformats.schemas.drawingml.x2006.picture.CTPicture; import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTAnchor; import org.openxmlformats.schemas.drawingml.x2006.wordprocessingDrawing.CTInline; +import org.openxmlformats.schemas.officeDocument.x2006.math.CTOMath; +import org.openxmlformats.schemas.officeDocument.x2006.math.CTOMathPara; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTDrawing; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTLevelText; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR; @@ -218,34 +222,34 @@ public class FileSpiltService { // //处理段落中的文本以及图片 // handleParagraphRun(content, (XWPFRun) child, imageParser); //} else -// if (child instanceof CTOMath) { -// CTOMath ctoMath = (CTOMath) child; -// String xmlText = ctoMath.xmlText().replaceAll("xml-fragment","m:oMath"); -// Map map = new HashMap<>(); -// map.put("encode", xmlText); -// String post = HttpRequest.post(mathToImgUrl) -// .header(Header.CONTENT_TYPE, "application/json") -// .body(xmlText) -// .execute().body(); -// //String post = HttpUtil.post(mathToImgUrl, map); -// if (messageList.size() > 0) { -// addItermsMathImage(messageList.get(messageList.size() - 1), itemValList, post); -// } -// } -// else if (child instanceof CTOMathPara) { -// CTOMathPara ctoMathPara = (CTOMathPara) child; -// String xmlText = ctoMathPara.xmlText().replaceAll("xml-fragment","m:oMath");; -// Map map = new HashMap<>(); -// map.put("encode",xmlText); -// String post = HttpRequest.post(mathToImgUrl) -// .header(Header.CONTENT_TYPE, "application/json") -// .body(xmlText) -// .execute().body(); -// //String post = HttpUtil.post(mathToImgUrl, map); -// if (messageList.size() > 0) { -// addItermsMathImage(messageList.get(messageList.size() - 1), itemValList, post); -// } -// } + if (child instanceof CTOMath) { + CTOMath ctoMath = (CTOMath) child; + String xmlText = ctoMath.xmlText().replaceAll("xml-fragment","m:oMath"); + Map map = new HashMap<>(); + map.put("encode", xmlText); + String post = HttpRequest.post(mathToImgUrl) + .header(Header.CONTENT_TYPE, "application/json") + .body(xmlText) + .execute().body(); + //String post = HttpUtil.post(mathToImgUrl, map); + if (messageList.size() > 0) { + addItermsMathImage(messageList.get(messageList.size() - 1), itemValList, post); + } + } + else if (child instanceof CTOMathPara) { + CTOMathPara ctoMathPara = (CTOMathPara) child; + String xmlText = ctoMathPara.xmlText().replaceAll("xml-fragment","m:oMath");; + Map map = new HashMap<>(); + map.put("encode",xmlText); + String post = HttpRequest.post(mathToImgUrl) + .header(Header.CONTENT_TYPE, "application/json") + .body(xmlText) + .execute().body(); + //String post = HttpUtil.post(mathToImgUrl, map); + if (messageList.size() > 0) { + addItermsMathImage(messageList.get(messageList.size() - 1), itemValList, post); + } + } } for (XWPFRun xwrun : p.getRuns()) { @@ -1040,10 +1044,6 @@ public class FileSpiltService { return startDigitList; } - public static void main(String[] args) { - getOneStartDigit("Scope", SplitFileTypeTypeEnum.UN); - } - public static String getOneStartDigit(String arr, SplitFileTypeTypeEnum enumByValue) { //\p{Punct} 标点符号:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ //\p{Space} 空白字符:[ \t\n\x0B\f\r] diff --git a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java index 8ecdc913..e8bacf6d 100644 --- a/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/split/service/impl/FileSplitItemsEOServiceImpl.java @@ -24,6 +24,7 @@ import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServi import com.jero.modules.document.enums.FieldTypeEnum; import com.jero.modules.document.service.IBussDocumentLibraryEOService; import com.jero.modules.laws.common.mapper.LawsCommonMapper; +import com.jero.modules.laws.documenttool.common.DirectoryComparator; import com.jero.modules.laws.documenttool.mapper.DocumentSplitMapper; import com.jero.modules.laws.documenttool.service.IDocumentSplitService; import com.jero.modules.laws.labeldatabase.entity.LawsLabelDatabase; @@ -94,6 +95,7 @@ import sun.misc.BASE64Decoder; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; +import java.math.BigDecimal; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; @@ -1468,20 +1470,37 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl"; - valEO.setType("IMG"); -// valEO.setItemContent(imgCon); - valEO.setItemContent(path); - } +//// BASE64Encoder base64Encoder = new BASE64Encoder(); +//// String encode = base64Encoder.encode(oSSFile.getUrl().getBytes(StandardCharsets.UTF_8)); +// String path = oSSFile.getUrl(); +//// String path = imgpath + oSSFile.getUrl().substring(oSSFile.getUrl().lastIndexOf(File.separator)+1); +//// String imgCon = ""; +// valEO.setType("IMG"); +//// valEO.setItemContent(imgCon); +// valEO.setItemContent(path); +// +// String imageName = UUIDUtils.randomUUID10() + multipartFile.getName(); +// String filepathandname = uploadCospath + "/" + imageName; + try { +// String paths = splitUrl+imageName; +// MinioUtil.uploadByte(bytev, filepathandname); + String upload = ObsBootUtil.upload(multipartFile, "temp"); + OSSFile ossFile = new OSSFile(); + ossFile.setId(String.valueOf(SnowflakeUtils.snowflake())); + ossFile.setFileName(multipartFile.getName()); + ossFile.setUrl(upload); + ossFileService.save(ossFile); + valEO.setType("IMG"); + valEO.setItemContent(splitUrl+upload.replace("temp\\", "")); + } catch (Exception e) { + e.printStackTrace(); + } +// } } if (isText) { valEO.setType("TEXT"); @@ -1518,20 +1537,34 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl"; +//// BASE64Encoder base64Encoder = new BASE64Encoder(); +//// String encode = base64Encoder.encode(oSSFile.getUrl().getBytes(StandardCharsets.UTF_8)); +// String path = oSSFile.getUrl(); +//// String path = imgpath + oSSFile.getUrl().substring(oSSFile.getUrl().lastIndexOf(File.separator)+1); +//// String imgCon = ""; +// valEO.setType("IMG"); +//// valEO.setItemContent(imgCon); +// valEO.setItemContent(path); +// } + try { +// String paths = splitUrl+imageName; +// MinioUtil.uploadByte(bytev, filepathandname); + String upload = ObsBootUtil.upload(multipartFile, "temp"); + OSSFile ossFile = new OSSFile(); + ossFile.setId(String.valueOf(SnowflakeUtils.snowflake())); + ossFile.setFileName(multipartFile.getName()); + ossFile.setUrl(upload); + ossFileService.save(ossFile); valEO.setType("IMG"); -// valEO.setItemContent(imgCon); - valEO.setItemContent(path); + valEO.setItemContent(splitUrl+upload.replace("temp\\", "")); + } catch (Exception e) { + e.printStackTrace(); } } if (isText) { @@ -1567,19 +1600,33 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl"; +//// BASE64Encoder base64Encoder = new BASE64Encoder(); +//// String encode = base64Encoder.encode(oSSFile.getUrl().getBytes(StandardCharsets.UTF_8)); +// String path = oSSFile.getUrl(); +//// String path = imgpath + oSSFile.getUrl().substring(oSSFile.getUrl().lastIndexOf(File.separator)+1); +//// String imgCon = ""; +// valEO.setType("IMG"); +//// valEO.setItemContent(imgCon); +// valEO.setItemContent(path); +// } + try { +// String paths = splitUrl+imageName; +// MinioUtil.uploadByte(bytev, filepathandname); + String upload = ObsBootUtil.upload(multipartFile, "temp"); + OSSFile ossFile = new OSSFile(); + ossFile.setId(String.valueOf(SnowflakeUtils.snowflake())); + ossFile.setFileName(multipartFile.getName()); + ossFile.setUrl(upload); + ossFileService.save(ossFile); valEO.setType("IMG"); -// valEO.setItemContent(imgCon); - valEO.setItemContent(path); + valEO.setItemContent(splitUrl+upload.replace("temp\\", "")); + } catch (Exception e) { + e.printStackTrace(); } } if (isText) { @@ -2080,11 +2127,22 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl path = - sysDictItemList.stream().filter(o -> treePath.equals(o.getLevelPath()) - || treePath.equals(o.getItemText())) + sysDictItemList.stream().filter(o -> treePath.equals(o.getLevelPath())) .collect(Collectors.toList()); if (!path.isEmpty()){ if (path.size() > 1) { @@ -2934,6 +2991,13 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl buildTree(List> addItemsEOList, Long treeListDisplay, String menuId){ //排序 Collections.sort(addItemsEOList, new Comparator>() { @@ -2948,10 +3012,105 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl itemEO : addItemsEOList) { String itemNum = itemEO.get("item_num").toString(); // if(itemNum.matches(regex) || itemNum.contains("附录")) { // TODO 解除条款号格式限制 + SarFileSplitMenuTreeNode treeNode = new SarFileSplitMenuTreeNode(); + treeNode.setId(UUIDUtils.randomUUID20()); + treeNode.setName(itemNum); + if(itemNum.matches(regex)) { + //父级是 总目录时,不做处理 + if(itemNum.contains(".")) { + String parentName = itemNum.substring(0, itemNum.lastIndexOf(".")); + treeNode.setParentName(parentName); + List p = treeNodeList.stream().filter(e -> e.getName().equals(parentName)).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(p)) { + //其他节点 + treeNode.setParentId(p.get(0).getId()); + }else{ + //一级节点 + treeNode.setParentId(menuId); + } + }else{ + treeNode.setParentId(menuId); + } + }else{ + treeNode.setParentId(menuId); + } + ++treeListDisplay; + treeNode.setOrderNum(treeListDisplay); + treeNode.setItemName(itemEO.get("item_title").toString()); + treeNode.setItemId(itemEO.get("id").toString()); + treeNodeList.add(treeNode); +// } + } + //其他节点 + /*for (SarFileSplitItemsEO itemEO : addItemsEOList) { + String itemNum = itemEO.getItemsNum(); + if (itemNum.matches(regex)) { SarFileSplitMenuTreeNode treeNode = new SarFileSplitMenuTreeNode(); + String parentName = itemNum.substring(0, itemNum.lastIndexOf(".")); + List p = treeNodeList.stream().filter(e -> e.getName().equals(parentName)).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(p)) { + treeNode.setParentId(p.get(0).getId()); + } treeNode.setId(UUIDUtils.randomUUID20()); treeNode.setName(itemNum); - if(itemNum.matches(regex)) { + treeNode.setParentName(parentName); + //判断格式 + if (itemNum.lastIndexOf(".") + 1 < itemNum.length()) { +// treeNode.setOrderNum(Long.valueOf(itemNum.substring(itemNum.lastIndexOf(".") + 1, itemNum.length()))); + treeNode.setOrderNum(p.get(0).getOrderNum() + Long.valueOf(itemNum.substring(itemNum.lastIndexOf(".") + 1, itemNum.length()))); + } + + treeNode.setItemName(itemEO.getItemsName()); + treeNode.setItemId(itemEO.getId()); + treeNodeList.add(treeNode); + } + }*/ + + return treeNodeList; + } + + /** + * 欧标用 + * @param addItemsEOList + * @param treeListDisplay + * @param menuId + * @return + */ + + private List buildTree2(List> addItemsEOList, Long treeListDisplay, String menuId){ + // 过滤出 非正常编号的数据 + String regexs = "^[0-9]{0}([0-9]|[.])+$"; + List> otherList = + addItemsEOList.stream() + .filter(v -> !String.valueOf(v.get("item_num")).matches(regexs)) + .collect(Collectors.toList()); + + otherList.stream().map(v -> v.get("item_num")) + .collect(Collectors.toList()).forEach(v -> { + System.out.println(v); + }); + + // 排序 + addItemsEOList.removeAll(otherList); + addItemsEOList.sort(new DirectoryComparator()); + addItemsEOList.addAll(otherList); + + + List treeNodeList = new ArrayList<>(); + List dotList = new ArrayList<>(); + String regex = "^[0-9]{0}([0-9]|[.])+$"; //TODO 待优化:数字和点必须交替 + for (Map itemEO : addItemsEOList) { + String itemNum = itemEO.get("item_num").toString(); +// if(itemNum.matches(regex) || itemNum.contains("附录")) { // TODO 解除条款号格式限制 + SarFileSplitMenuTreeNode treeNode = new SarFileSplitMenuTreeNode(); + treeNode.setId(UUIDUtils.randomUUID20()); + if (itemNum.endsWith(".")){ + // 处理末尾为小数点的数据 + itemNum = itemNum.substring(0, itemNum.length() - 1); + dotList.add(treeNode.getId()); + } + treeNode.setName(itemNum); +// if(itemNum.matches(regex)) { //父级是 总目录时,不做处理 if(itemNum.contains(".")) { String parentName = itemNum.substring(0, itemNum.lastIndexOf(".")); @@ -2967,9 +3126,9 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl sarFileSplitMenuEO1List = new ArrayList<>(); + sarFileSplitMenuEO1List.add(sarFileSplitMenuEO1); + List allList = new ArrayList<>(); + getChildren(allList, sarFileSplitMenuEO1List); + + // 获取要移动节点的数量 + int childCount = allList.size(); + + // 更新下节点排序 + SarFileSplitMenuEO parentSarFileSplitMenu = baseMapper.findById(parentId); + List sarFileSplitMenuEOList = + baseMapper.queryByGTDisplaySeq(parentSarFileSplitMenu.getInfoId(), lastMenu.getDisplaySeq()); + for (SarFileSplitMenuEO fileSplitMenuEO : sarFileSplitMenuEOList) { + // 更新排序 + fileSplitMenuEO.setDisplaySeq(fileSplitMenuEO.getDisplaySeq() + childCount); + baseMapper.updateByPrimaryKeySelective(fileSplitMenuEO); + } + + // 更新要移动节点的排序 + for (int i = 0; i allList, List sarFileSplitMenuEOList) { + for (SarFileSplitMenuEO sarFileSplitMenuEO : sarFileSplitMenuEOList) { + allList.add(sarFileSplitMenuEO); + List childrenList = baseMapper.findByParentId(sarFileSplitMenuEO.getId()); + if (CollectionUtils.isNotEmpty(childrenList)){ + getChildren(allList, childrenList); + } + } + } + + private SarFileSplitMenuEO getLastMenu(String parentId) { + SarFileSplitMenuEO sarFileSplitMenuEO1 = baseMapper.findLastByParentId(parentId); + if(sarFileSplitMenuEO1 != null){ + getLastMenu(sarFileSplitMenuEO1.getId()); + } + return sarFileSplitMenuEO1; + } }