fix(asms): 同步问题修复
This commit is contained in:
+6
-3
@@ -1,11 +1,12 @@
|
||||
package com.jero.modules.docking.asms.service;
|
||||
|
||||
import com.jero.modules.docking.asms.entity.LawsAsmsOpenApi;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.modules.docking.asms.entity.LawsAsmsOpenApi;
|
||||
import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -92,4 +93,6 @@ public interface ILawsAsmsOpenApiService extends IService<LawsAsmsOpenApi> {
|
||||
* @Description: 批量删除原字典配置项
|
||||
**/
|
||||
void removeDictItemBatch(List<String> idList);
|
||||
|
||||
void disposeItemVal(LawsDocumentSplit lawsDocumentSplit, String articleContent);
|
||||
}
|
||||
|
||||
+90
-50
File diff suppressed because one or more lines are too long
+43
-33
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.util.MinioUtil;
|
||||
import com.jero.common.util.SnowflakeUtils;
|
||||
import com.jero.common.util.UUIDUtils;
|
||||
import com.jero.modules.docking.asms.entity.LawsAsmsDomestic;
|
||||
import com.jero.modules.docking.asms.mapper.LawsAsmsOpenApiMapper;
|
||||
@@ -37,18 +38,14 @@ import com.jero.modules.system.service.ISysDictItemService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jsoup.Jsoup;
|
||||
import org.jsoup.nodes.Document;
|
||||
import org.jsoup.nodes.Element;
|
||||
import org.jsoup.select.Elements;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.*;
|
||||
import org.springframework.mock.web.MockMultipartFile;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.io.InputStream;
|
||||
@@ -188,6 +185,9 @@ public class SynchronizationAsmsService {
|
||||
String[] parts = lawsAsmsDomestic.getCode().split("[-\\s]"); // 使用空格或破折号作为分隔符
|
||||
if (parts.length < 3) {
|
||||
parts = lawsAsmsDomestic.getCode().split("[—\\s]"); // 使用空格或破折号作为分隔符
|
||||
if (parts.length < 3) {
|
||||
parts = lawsAsmsDomestic.getCode().split("[一\\s]"); // 使用一或破折号作为分隔符
|
||||
}
|
||||
}
|
||||
// 封装实例
|
||||
LawsDomesticStandard lawsDomesticStandard = new LawsDomesticStandard();
|
||||
@@ -234,7 +234,7 @@ public class SynchronizationAsmsService {
|
||||
// 代替标准号
|
||||
lawsReplacedStandardService.addRelation(lawsAsmsDomestic.getReplaceCode(), lawsAsmsDomestic.getCode(), 1);
|
||||
// 标准性质
|
||||
/*itemValues = getItemValues(lawsAsmsDomestic.getStandardNature(),
|
||||
/*itemValues = getItemValues(lawsAsmsDomestic.getStandardNature(),
|
||||
"1695010513489833985", sysDictItemList);*/
|
||||
lawsDomesticStandard.setStandardProperty("SN002");
|
||||
// 标准状态
|
||||
@@ -275,18 +275,23 @@ public class SynchronizationAsmsService {
|
||||
Map<String, Object> objectMap = asmsPostUtil.sendGetReq2(fileUrl, fileParamMap);
|
||||
if (!Objects.isNull(objectMap)) {
|
||||
Map<String, String> standardTextPdf = (Map<String, String>) objectMap.get("standardTextPdf");
|
||||
String fileName = standardTextPdf.get("fileName");
|
||||
String fileType = standardTextPdf.get("fileType");
|
||||
String uri = standardTextPdf.get("url");
|
||||
if (StringUtils.isNotBlank(uri)) {
|
||||
upload(uri, fileName, fileType, id, code);
|
||||
if (!Objects.isNull(standardTextPdf)){
|
||||
String fileName = standardTextPdf.get("fileName");
|
||||
String fileType = standardTextPdf.get("fileType");
|
||||
String urls = standardTextPdf.get("url");
|
||||
if (StringUtils.isNotBlank(urls)) {
|
||||
upload(urls, fileName, fileType, id, code);
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, String> standardTextWord = (Map<String, String>) objectMap.get("standardTextWord");
|
||||
fileName = standardTextWord.get("fileName");
|
||||
fileType = standardTextWord.get("fileType");
|
||||
uri = standardTextWord.get("url");
|
||||
if (StringUtils.isNotBlank(uri)) {
|
||||
upload(uri, fileName, fileType, id, code);
|
||||
if (!Objects.isNull(standardTextWord)){
|
||||
String fileName = standardTextWord.get("fileName");
|
||||
String fileType = standardTextWord.get("fileType");
|
||||
String urls = standardTextWord.get("url");
|
||||
if (StringUtils.isNotBlank(urls)) {
|
||||
upload(urls, fileName, fileType, id, code);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -396,6 +401,7 @@ public class SynchronizationAsmsService {
|
||||
Map<String, Object> objectMap2 = asmsPostUtil.sendGetReq2("xiaobodata/openApi/article/label/details", paramMap3);
|
||||
|
||||
LawsDocumentSplit lawsDocumentSplit = new LawsDocumentSplit();
|
||||
lawsDocumentSplit.setId(String.valueOf(SnowflakeUtils.snowflake()));
|
||||
lawsDocumentSplit.setInfoId(sarFileSplitInfoEO.getId());
|
||||
lawsDocumentSplit.setItemNum(eMap.get("termsNum"));
|
||||
lawsDocumentSplit.setItemTitle(eMap.get("termsName"));
|
||||
@@ -408,25 +414,11 @@ public class SynchronizationAsmsService {
|
||||
log.error(e.getMessage());
|
||||
log.error("图片处理失败!");
|
||||
}
|
||||
// 处理表格
|
||||
if (articleContent.contains("<table style=")){
|
||||
articleContent = "<p>" + articleContent + "</p>";
|
||||
}
|
||||
// 处理条文详情
|
||||
lawsAsmsOpenApiService.disposeItemVal(lawsDocumentSplit, articleContent);
|
||||
// 重复性校验
|
||||
LawsDocumentSplit lawsDocumentSplits = lawsDocumentSplitMapper.selectOne(
|
||||
new LambdaQueryWrapper<LawsDocumentSplit>()
|
||||
.eq(LawsDocumentSplit::getInfoId, lawsDocumentSplit.getInfoId())
|
||||
.eq(LawsDocumentSplit::getItemNum, lawsDocumentSplit.getItemNum())
|
||||
.eq(LawsDocumentSplit::getItemTitle, lawsDocumentSplit.getItemTitle()));
|
||||
if (!Objects.isNull(lawsDocumentSplits)){
|
||||
// 合并
|
||||
String itemContent = StringUtils.isNotBlank(lawsDocumentSplits.getItemContent()) ? lawsDocumentSplits.getItemContent() : "";
|
||||
lawsDocumentSplitMapper.update(null,
|
||||
new LambdaUpdateWrapper<LawsDocumentSplit>()
|
||||
.set(LawsDocumentSplit::getItemContent, itemContent + articleContent)
|
||||
.eq(LawsDocumentSplit::getId, lawsDocumentSplits.getId()));
|
||||
return;
|
||||
}
|
||||
// if (duplicateCheck(lawsDocumentSplit, articleContent)) {return;}
|
||||
|
||||
lawsDocumentSplit.setItemContent(articleContent);
|
||||
lawsDocumentSplit.setCreateTime(getSimpleDate2(eMap.get("createTime")));
|
||||
lawsDocumentSplit.setUpdateTime(getSimpleDate2(eMap.get("updateTime")));
|
||||
@@ -589,6 +581,24 @@ public class SynchronizationAsmsService {
|
||||
log.info("=====================定时任务同步结束=====================");
|
||||
}
|
||||
|
||||
private boolean duplicateCheck(LawsDocumentSplit lawsDocumentSplit, String articleContent) {
|
||||
LawsDocumentSplit lawsDocumentSplits = lawsDocumentSplitMapper.selectOne(
|
||||
new LambdaQueryWrapper<LawsDocumentSplit>()
|
||||
.eq(LawsDocumentSplit::getInfoId, lawsDocumentSplit.getInfoId())
|
||||
.eq(LawsDocumentSplit::getItemNum, lawsDocumentSplit.getItemNum())
|
||||
.eq(LawsDocumentSplit::getItemTitle, lawsDocumentSplit.getItemTitle()));
|
||||
if (!Objects.isNull(lawsDocumentSplits)){
|
||||
// 合并
|
||||
String itemContent = StringUtils.isNotBlank(lawsDocumentSplits.getItemContent()) ? lawsDocumentSplits.getItemContent() : "";
|
||||
lawsDocumentSplitMapper.update(null,
|
||||
new LambdaUpdateWrapper<LawsDocumentSplit>()
|
||||
.set(LawsDocumentSplit::getItemContent, itemContent + articleContent)
|
||||
.eq(LawsDocumentSplit::getId, lawsDocumentSplits.getId()));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public void syncSplitByStandardNumber(String standardNumber) {
|
||||
log.info("=====================定时同步文档拆分=====================");
|
||||
long start = System.currentTimeMillis();
|
||||
|
||||
Reference in New Issue
Block a user