fix(asms): 拆分定时同步问题修复
This commit is contained in:
+8
-10
@@ -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<OSSFileMapper, OSSFile> implements IOSSFileService {
|
||||
@@ -176,11 +169,16 @@ public class OSSFileServiceImpl extends ServiceImpl<OSSFileMapper, OSSFile> 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);
|
||||
// 文件路径做特殊处理
|
||||
|
||||
+3
-39
@@ -337,7 +337,7 @@ public class SynchronizationAsmsService {
|
||||
if (CollectionUtils.isEmpty(codeList) || !codeList.contains(code)) {
|
||||
LambdaQueryWrapper<LawsDomesticStandard> 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<LawsDocumentSplit> lawsDocumentSplitList = infoMap.get(infoId);
|
||||
lawsDocumentSplitList.forEach(lawsDocumentSplit -> {
|
||||
String itemContent = lawsDocumentSplit.getItemContent();
|
||||
// 使用 jsoup 解析 HTML
|
||||
Document doc = Jsoup.parse(itemContent);
|
||||
|
||||
// 选择所有的 <p> 元素
|
||||
Elements paragraphs = doc.select("p");
|
||||
|
||||
// 存储提取的文本内容
|
||||
List<String> textContents = new java.util.ArrayList<>();
|
||||
|
||||
for (Element paragraph : paragraphs) {
|
||||
// 获取每个 <p> 元素的文本内容并添加到集合中
|
||||
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<String, Object> 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("=====================定时任务同步结束=====================");
|
||||
|
||||
+7
@@ -176,6 +176,13 @@ public interface IDocumentSplitService {
|
||||
*/
|
||||
void publish(Map<String, Object> parameter);
|
||||
|
||||
/**
|
||||
* 文档拆分-发布(不校验水平越权)
|
||||
* @param parameter
|
||||
* @return
|
||||
*/
|
||||
void publishTwo(Map<String, Object> parameter);
|
||||
|
||||
/**
|
||||
* 文档拆分-撤回
|
||||
* @param parameter
|
||||
|
||||
+13
-2
@@ -1106,9 +1106,20 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
|
||||
|
||||
@Override
|
||||
public void publish(Map<String, Object> parameter) {
|
||||
publishs(parameter, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void publishTwo(Map<String, Object> parameter) {
|
||||
publishs(parameter, false);
|
||||
}
|
||||
|
||||
private void publishs(Map<String, Object> parameter, boolean b) {
|
||||
String id = (String) parameter.get(ID);
|
||||
// 水平越权
|
||||
isHorizontalOverstep(id);
|
||||
if (b){
|
||||
// 水平越权
|
||||
isHorizontalOverstep(id);
|
||||
}
|
||||
// 文档拆分信息(旧)
|
||||
DocumentSplitInfo oldInfo = documentSplitMapper.queryDocumentSplitInfoById(id);
|
||||
// 判断是否发布过
|
||||
|
||||
Reference in New Issue
Block a user