From f85f43f777cdda19caacbc0b0de356a2d7fb23d3 Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Tue, 5 Mar 2024 11:13:27 +0800 Subject: [PATCH] =?UTF-8?q?fix(asms):=20=E6=8B=86=E5=88=86=E5=AE=9A?= =?UTF-8?q?=E6=97=B6=E5=90=8C=E6=AD=A5=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oss/service/impl/OSSFileServiceImpl.java | 18 ++++---- .../impl/SynchronizationAsmsService.java | 42 ++----------------- .../service/IDocumentSplitService.java | 7 ++++ .../impl/DocumentSplitServiceImpl.java | 15 ++++++- 4 files changed, 31 insertions(+), 51 deletions(-) diff --git a/laws-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java b/laws-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java index b37c3823..20dabfad 100644 --- a/laws-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java +++ b/laws-module-system/src/main/java/com/jero/modules/oss/service/impl/OSSFileServiceImpl.java @@ -1,33 +1,26 @@ package com.jero.modules.oss.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.jero.common.constant.enums.LanguageEnum; import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; import com.jero.common.util.CommonUtils; import com.jero.common.util.MinioUtil; -import com.jero.common.util.UUIDUtils; import com.jero.common.util.oss.OssBootUtil; import com.jero.modules.oss.entity.OSSFile; import com.jero.modules.oss.mapper.OSSFileMapper; import com.jero.modules.oss.service.IOSSFileService; import com.jero.modules.system.util.MyStringUtils; import me.zhyd.oauth.utils.UuidUtils; -import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; -import java.io.File; import java.io.IOException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; @Service("ossFileService") public class OSSFileServiceImpl extends ServiceImpl implements IOSSFileService { @@ -176,11 +169,16 @@ public class OSSFileServiceImpl extends ServiceImpl impl // 将文件上传至腾讯云 cos String upload = MinioUtil.upload(mf, "/" + uploadCospath); - LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + LoginUser loginUser = null; + try { + loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + } catch (Exception e) { + log.error(e.getMessage()); + } //存入文件表 oSSFile.setFileName(orgName); oSSFile.setId(UuidUtils.getUUID()); - oSSFile.setCreateBy(loginUser.getUsername()); + oSSFile.setCreateBy(!Objects.isNull(loginUser) ? loginUser.getUsername() : "admin"); oSSFile.setCreateTime(new Date()); this.save(oSSFile); // 文件路径做特殊处理 diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/SynchronizationAsmsService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/SynchronizationAsmsService.java index f9bfc22b..228d54ef 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/SynchronizationAsmsService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/asms/service/impl/SynchronizationAsmsService.java @@ -337,7 +337,7 @@ public class SynchronizationAsmsService { if (CollectionUtils.isEmpty(codeList) || !codeList.contains(code)) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(LawsDomesticStandard::getStandardNumber, code); - LawsDomesticStandard lawsDomesticStandard = lawsDomesticStandardService.getOne(queryWrapper); + LawsDomesticStandard lawsDomesticStandard = lawsDomesticStandardService.getOne(queryWrapper, false); if(Objects.isNull(lawsDomesticStandard)){ return; } @@ -346,7 +346,7 @@ public class SynchronizationAsmsService { queryWrapper1.eq(OSSFile::getStandardId, lawsDomesticStandard.getId()); queryWrapper1.eq(OSSFile::getStandardFileType, "publish_of_original"); queryWrapper1.like(OSSFile::getFileName, ".docx"); - OSSFile ossFile = ossFileService.getOne(queryWrapper1); + OSSFile ossFile = ossFileService.getOne(queryWrapper1, false); SarFileSplitInfoEO sarFileSplitInfoEO = new SarFileSplitInfoEO(); sarFileSplitInfoEO.setStandardId(lawsDomesticStandard.getId()); @@ -535,47 +535,11 @@ public class SynchronizationAsmsService { long time3 = System.currentTimeMillis(); log.info("=====================生成拆分详情左侧目录耗时:{}毫秒=====================", time3 - time2); - insertSplitList.forEach(sarFileSplitInfoEO -> { - String infoId = sarFileSplitInfoEO.getId(); - List lawsDocumentSplitList = infoMap.get(infoId); - lawsDocumentSplitList.forEach(lawsDocumentSplit -> { - String itemContent = lawsDocumentSplit.getItemContent(); - // 使用 jsoup 解析 HTML - Document doc = Jsoup.parse(itemContent); - - // 选择所有的

元素 - Elements paragraphs = doc.select("p"); - - // 存储提取的文本内容 - List textContents = new java.util.ArrayList<>(); - - for (Element paragraph : paragraphs) { - // 获取每个

元素的文本内容并添加到集合中 - String textContent = paragraph.text(); - textContents.add(textContent); - } - - for (int i = 0; i < textContents.size(); i++) { - SarFileSplitItemsValEO sarFileSplitItemsValEO = new SarFileSplitItemsValEO(); - sarFileSplitItemsValEO.setId(UUIDUtils.randomUUID20()); - sarFileSplitItemsValEO.setType("TEXT"); - sarFileSplitItemsValEO.setItemId(lawsDocumentSplit.getId()); - sarFileSplitItemsValEO.setItemContent(textContents.get(i)); - sarFileSplitItemsValEO.setDisplaySeq(i+1); - sarFileSplitItemsValEO.setValidFlag(0); - sarFileSplitItemsValEOService.insertSelective(sarFileSplitItemsValEO); - } - }); - }); - for (SarFileSplitInfoEO sarFileSplitInfoEO : insertSplitList) { HashMap parameter = new HashMap<>(); parameter.put("id", sarFileSplitInfoEO.getId()); - documentSplitService.publish(parameter); + documentSplitService.publishTwo(parameter); } - long time4 = System.currentTimeMillis(); - log.info("=====================生成条文详情耗时:{}毫秒=====================", time4 - time3); - long end = System.currentTimeMillis(); log.info("=====================全部同步完成,耗时:{} 毫秒=====================", end - start); log.info("=====================定时任务同步结束====================="); 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 4f50993a..28d17a96 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 @@ -176,6 +176,13 @@ public interface IDocumentSplitService { */ void publish(Map parameter); + /** + * 文档拆分-发布(不校验水平越权) + * @param parameter + * @return + */ + void publishTwo(Map parameter); + /** * 文档拆分-撤回 * @param parameter 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 fc9c4c94..bd773965 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 @@ -1106,9 +1106,20 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService { @Override public void publish(Map parameter) { + publishs(parameter, true); + } + + @Override + public void publishTwo(Map parameter) { + publishs(parameter, false); + } + + private void publishs(Map parameter, boolean b) { String id = (String) parameter.get(ID); - // 水平越权 - isHorizontalOverstep(id); + if (b){ + // 水平越权 + isHorizontalOverstep(id); + } // 文档拆分信息(旧) DocumentSplitInfo oldInfo = documentSplitMapper.queryDocumentSplitInfoById(id); // 判断是否发布过