add 根据标准号同步拆分
This commit is contained in:
+15
-1
@@ -3,12 +3,14 @@ package com.jero.modules.docking.asms.controller;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
import com.jero.common.api.vo.Result;
|
import com.jero.common.api.vo.Result;
|
||||||
import com.jero.modules.docking.asms.entity.LawsAsmsDomestic;
|
import com.jero.modules.docking.asms.entity.LawsAsmsDomestic;
|
||||||
import com.jero.modules.docking.asms.service.ILawsAsmsDomesticService;
|
import com.jero.modules.docking.asms.service.ILawsAsmsDomesticService;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.jero.modules.docking.asms.service.impl.SynchronizationAsmsService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import com.jero.common.system.base.controller.JeroController;
|
import com.jero.common.system.base.controller.JeroController;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -35,7 +37,8 @@ import org.apache.poi.ss.formula.functions.T;
|
|||||||
public class LawsAsmsDomesticController extends JeroController<LawsAsmsDomestic, ILawsAsmsDomesticService> {
|
public class LawsAsmsDomesticController extends JeroController<LawsAsmsDomestic, ILawsAsmsDomesticService> {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ILawsAsmsDomesticService lawsAsmsDomesticService;
|
private ILawsAsmsDomesticService lawsAsmsDomesticService;
|
||||||
|
@Resource
|
||||||
|
private SynchronizationAsmsService synchronizationAsmsService;
|
||||||
/**
|
/**
|
||||||
* 分页列表查询
|
* 分页列表查询
|
||||||
*
|
*
|
||||||
@@ -162,4 +165,15 @@ public class LawsAsmsDomesticController extends JeroController<LawsAsmsDomestic,
|
|||||||
lawsAsmsDomesticService.cleanData();
|
lawsAsmsDomesticService.cleanData();
|
||||||
return Result.OK("清理成功!");
|
return Result.OK("清理成功!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据标准号同步拆分
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GetMapping(value = "/syncSplitByStandardNumber")
|
||||||
|
public Result<LawsAsmsDomestic> syncSplitByStandardNumber(@RequestParam(name="standardNumber") String standardNumber) {
|
||||||
|
synchronizationAsmsService.syncSplitByStandardNumber(standardNumber);
|
||||||
|
return Result.OK("!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+268
-8
@@ -436,17 +436,20 @@ public class SynchronizationAsmsService {
|
|||||||
});
|
});
|
||||||
long time2 = System.currentTimeMillis();
|
long time2 = System.currentTimeMillis();
|
||||||
log.info("=====================同步DocumentSplit条文数据:{}条,耗时:{}毫秒=====================", n[0], time2 - time1);
|
log.info("=====================同步DocumentSplit条文数据:{}条,耗时:{}毫秒=====================", n[0], time2 - time1);
|
||||||
|
String regex = "[^a-zA-Z0-9.]";
|
||||||
insertSplitList.forEach(sarFileSplitInfoEO -> {
|
insertSplitList.forEach(sarFileSplitInfoEO -> {
|
||||||
String infoId = sarFileSplitInfoEO.getId();
|
String infoId = sarFileSplitInfoEO.getId();
|
||||||
List<LawsDocumentSplit> lawsDocumentSplitList = infoMap.get(infoId);
|
List<LawsDocumentSplit> lawsDocumentSplitList = infoMap.get(infoId);
|
||||||
List<String> itemNumList = lawsDocumentSplitList.stream().map(LawsDocumentSplit::getItemNum).collect(Collectors.toList());
|
List<String> itemNumList = new ArrayList<>();
|
||||||
|
for (LawsDocumentSplit lawsDocumentSplit : lawsDocumentSplitList) {
|
||||||
|
String itemNum = lawsDocumentSplit.getItemNum();
|
||||||
|
itemNumList.add(itemNum.replaceAll(regex, ""));
|
||||||
|
}
|
||||||
// 对目录排序
|
// 对目录排序
|
||||||
Collections.sort(itemNumList, new AlphanumericComparator());
|
Collections.sort(itemNumList, new AlphanumericComparator());
|
||||||
Map<String, Long> sortMap = new HashMap<>();
|
Map<String, Long> sortMap = new HashMap<>();
|
||||||
for (int i = 0; i < itemNumList.size(); i++) {
|
for (int i = 0; i < itemNumList.size(); i++) {
|
||||||
sortMap.put(itemNumList.get(i), i+2L);
|
sortMap.put(itemNumList.get(i), i + 2L);
|
||||||
}
|
}
|
||||||
List<SarFileSplitMenuEO> sarFileSplitMenuEOList = new java.util.ArrayList<>();
|
List<SarFileSplitMenuEO> sarFileSplitMenuEOList = new java.util.ArrayList<>();
|
||||||
// 根目录
|
// 根目录
|
||||||
@@ -467,12 +470,12 @@ public class SynchronizationAsmsService {
|
|||||||
sarFileSplitMenuEO.setId(id);
|
sarFileSplitMenuEO.setId(id);
|
||||||
sarFileSplitMenuEO.setInfoId(infoId);
|
sarFileSplitMenuEO.setInfoId(infoId);
|
||||||
sarFileSplitMenuEO.setName(itemNum);
|
sarFileSplitMenuEO.setName(itemNum);
|
||||||
sarFileSplitMenuEO.setDisplaySeq(sortMap.get(itemNum));
|
sarFileSplitMenuEO.setDisplaySeq(sortMap.get(itemNum.replaceAll(regex, "")));
|
||||||
sarFileSplitMenuEO.setValidFlag(0);
|
sarFileSplitMenuEO.setValidFlag(0);
|
||||||
String itemTitle = lawsDocumentSplit.getItemTitle();
|
String itemTitle = lawsDocumentSplit.getItemTitle();
|
||||||
sarFileSplitMenuEO.setItemName(itemTitle.substring(0, Math.min(10, itemTitle.length())));
|
sarFileSplitMenuEO.setItemName(itemTitle.substring(0, Math.min(10, itemTitle.length())));
|
||||||
sarFileSplitMenuEOList.add(sarFileSplitMenuEO);
|
sarFileSplitMenuEOList.add(sarFileSplitMenuEO);
|
||||||
idMap.put(itemNum, id);
|
idMap.put(itemNum.replaceAll(regex, ""), id);
|
||||||
|
|
||||||
lawsDocumentSplit.setMenuId(id);
|
lawsDocumentSplit.setMenuId(id);
|
||||||
lawsDocumentSplitMapper.updateById(lawsDocumentSplit);
|
lawsDocumentSplitMapper.updateById(lawsDocumentSplit);
|
||||||
@@ -480,7 +483,7 @@ public class SynchronizationAsmsService {
|
|||||||
|
|
||||||
// 设置父id
|
// 设置父id
|
||||||
sarFileSplitMenuEOList.forEach(sarFileSplitMenuEO -> {
|
sarFileSplitMenuEOList.forEach(sarFileSplitMenuEO -> {
|
||||||
String itemNum = sarFileSplitMenuEO.getName();
|
String itemNum = sarFileSplitMenuEO.getName().replaceAll(regex, "");
|
||||||
String[] split = itemNum.split("\\.");
|
String[] split = itemNum.split("\\.");
|
||||||
if (split.length == 1) {
|
if (split.length == 1) {
|
||||||
sarFileSplitMenuEO.setPId(rootId);
|
sarFileSplitMenuEO.setPId(rootId);
|
||||||
@@ -545,6 +548,264 @@ public class SynchronizationAsmsService {
|
|||||||
log.info("=====================定时任务同步结束=====================");
|
log.info("=====================定时任务同步结束=====================");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void syncSplitByStandardNumber(String standardNumber) {
|
||||||
|
log.info("=====================定时同步文档拆分=====================");
|
||||||
|
long start = System.currentTimeMillis();
|
||||||
|
|
||||||
|
// 文档拆分
|
||||||
|
String url = "xiaobodata/openApi/article/search";
|
||||||
|
Map<String, String> paramMap = new HashMap<>();
|
||||||
|
paramMap.put("pageNo", "1");
|
||||||
|
paramMap.put("pageSize", "2");
|
||||||
|
Map<String, Object> totalMap = asmsPostUtil.sendGetReq2(url, paramMap);
|
||||||
|
Integer total = (Integer) totalMap.get("total");
|
||||||
|
paramMap.put("pageSize", total.toString());
|
||||||
|
|
||||||
|
List<Map<String, String>> mapList = asmsPostUtil.sendGetReq(url, paramMap);
|
||||||
|
if (Objects.isNull(mapList)) {
|
||||||
|
log.info("=====================没有获取到ASMS系统数据,同步结束=====================");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<SarFileSplitInfoEO> insertSplitList = new ArrayList<>();
|
||||||
|
mapList.forEach(eMap -> {
|
||||||
|
String code = eMap.get("code").trim();
|
||||||
|
String name = eMap.get("name");
|
||||||
|
if (!code.contains(standardNumber)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
LambdaQueryWrapper<LawsDomesticStandard> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper.eq(LawsDomesticStandard::getStandardNumber, code);
|
||||||
|
LawsDomesticStandard lawsDomesticStandard = lawsDomesticStandardService.getOne(queryWrapper);
|
||||||
|
if (Objects.isNull(lawsDomesticStandard)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
LambdaQueryWrapper<OSSFile> queryWrapper1 = new LambdaQueryWrapper<>();
|
||||||
|
queryWrapper1.eq(OSSFile::getStandardId, lawsDomesticStandard.getId());
|
||||||
|
queryWrapper1.eq(OSSFile::getStandardFileType, "publish_of_original");
|
||||||
|
queryWrapper1.like(OSSFile::getFileName, ".docx");
|
||||||
|
OSSFile ossFile = ossFileService.getOne(queryWrapper1);
|
||||||
|
|
||||||
|
SarFileSplitInfoEO sarFileSplitInfoEO = new SarFileSplitInfoEO();
|
||||||
|
sarFileSplitInfoEO.setStandardId(lawsDomesticStandard.getId());
|
||||||
|
sarFileSplitInfoEO.setSerialNumber(lawsDomesticStandard.getStandardNumber());
|
||||||
|
sarFileSplitInfoEO.setTitle(lawsDomesticStandard.getStandardName());
|
||||||
|
sarFileSplitInfoEO.setFileType("publish_of_original");
|
||||||
|
sarFileSplitInfoEO.setFileId(ossFile.getId());
|
||||||
|
sarFileSplitInfoEO.setFileName(ossFile.getFileName());
|
||||||
|
sarFileSplitInfoEO.setSplitStatus("1");
|
||||||
|
sarFileSplitInfoEO.setCreateTime(getSimpleDate2(eMap.get("createTime")));
|
||||||
|
sarFileSplitInfoEO.setUpdateTime(getSimpleDate2(eMap.get("updateTime")));
|
||||||
|
sarFileSplitInfoEO.setIsAsmsImport("1");
|
||||||
|
sarFileSplitInfoEO.setAuthor("云平台");
|
||||||
|
sarFileSplitInfoEO.setSplitResult("成功");
|
||||||
|
|
||||||
|
sarFileSplitInfoEO.setId(UUIDUtils.randomUUID20());
|
||||||
|
|
||||||
|
insertSplitList.add(sarFileSplitInfoEO);
|
||||||
|
});
|
||||||
|
if (CollectionUtils.isEmpty(insertSplitList)) {
|
||||||
|
log.info("=====================昨天新增拆分0条,同步结束=====================");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sarFileSplitInfoService.saveBatch(insertSplitList, insertSplitList.size());
|
||||||
|
long time1 = System.currentTimeMillis();
|
||||||
|
log.info("=====================同步标准拆分数据:{}条,耗时:{}毫秒=====================", insertSplitList.size(), time1 - start);
|
||||||
|
|
||||||
|
// 单条拆分的详情
|
||||||
|
String splitUrl = "xiaobodata/openApi/article/details";
|
||||||
|
List<SysDictItem> sysDictItemList = sysDictItemService.list();
|
||||||
|
Map<String, String> paramMap1 = new HashMap<>();
|
||||||
|
Map<String, String> paramMap2 = new HashMap<>();
|
||||||
|
Map<String, String> paramMap3 = new HashMap<>();
|
||||||
|
Map<String, List<LawsDocumentSplit>> infoMap = new HashMap<>();
|
||||||
|
int[] n = {0};
|
||||||
|
|
||||||
|
for (SarFileSplitInfoEO sarFileSplitInfoEO : insertSplitList) {
|
||||||
|
paramMap.put("standardCode", sarFileSplitInfoEO.getSerialNumber());
|
||||||
|
paramMap1.put("standardCode", sarFileSplitInfoEO.getSerialNumber());
|
||||||
|
List<Map<String, String>> mapListAll = asmsPostUtil.sendGetReq(splitUrl, paramMap1);
|
||||||
|
List<LawsDocumentSplit> insertDocumentList = new ArrayList<>();
|
||||||
|
for (Map<String, String> eMap : mapListAll) {
|
||||||
|
// 单个法规的条文解读详情
|
||||||
|
paramMap2.put("standardCode", sarFileSplitInfoEO.getSerialNumber());
|
||||||
|
|
||||||
|
paramMap2.put("termsCode", eMap.get("termsNum"));
|
||||||
|
Map<String, Object> objectMap = asmsPostUtil.sendGetReq2("xiaobodata/openApi/article/interpretation/details", paramMap2);
|
||||||
|
|
||||||
|
// 单个法规的条文标签详情
|
||||||
|
paramMap3.put("standardCode", sarFileSplitInfoEO.getSerialNumber());
|
||||||
|
paramMap3.put("termsCode", eMap.get("termsNum"));
|
||||||
|
Map<String, Object> objectMap2 = asmsPostUtil.sendGetReq2("xiaobodata/openApi/article/label/details", paramMap3);
|
||||||
|
|
||||||
|
LawsDocumentSplit lawsDocumentSplit = new LawsDocumentSplit();
|
||||||
|
lawsDocumentSplit.setInfoId(sarFileSplitInfoEO.getId());
|
||||||
|
lawsDocumentSplit.setItemNum(eMap.get("termsNum"));
|
||||||
|
lawsDocumentSplit.setItemTitle(eMap.get("termsName"));
|
||||||
|
lawsDocumentSplit.setItemContent(eMap.get("articleContent"));
|
||||||
|
lawsDocumentSplit.setCreateTime(getSimpleDate2(eMap.get("createTime")));
|
||||||
|
lawsDocumentSplit.setUpdateTime(getSimpleDate2(eMap.get("updateTime")));
|
||||||
|
|
||||||
|
lawsDocumentSplit.setInterpretationArticles((String) objectMap.get("termsInterpretation"));
|
||||||
|
|
||||||
|
lawsDocumentSplit.setFunctionClassification((String) objectMap2.get("functionClassification"));
|
||||||
|
lawsDocumentSplit.setFunctionProfessional((String) objectMap2.get("functionProfession"));
|
||||||
|
lawsDocumentSplit.setFunctionGroupCode((String) objectMap2.get("groupingNum"));
|
||||||
|
lawsDocumentSplit.setFunctionGroupName((String) objectMap2.get("groupingNum"));
|
||||||
|
lawsDocumentSplit.setCerImplementDate((String) objectMap2.get("implementDateCertified"));
|
||||||
|
lawsDocumentSplit.setNewCerImplementDate((String) objectMap2.get("implementDateNewCer"));
|
||||||
|
lawsDocumentSplit.setNewRegisterImplementDate((String) objectMap2.get("implementDateNewRegister"));
|
||||||
|
lawsDocumentSplit.setLawsRequireType((String) objectMap2.get("lawsRequireType"));
|
||||||
|
lawsDocumentSplit.setApplications((String) objectMap2.get("modelsType"));
|
||||||
|
lawsDocumentSplit.setDynamicType((String) objectMap2.get("powerType"));
|
||||||
|
|
||||||
|
lawsDocumentSplit.setId(UUIDUtils.randomUUID20());
|
||||||
|
|
||||||
|
if (StringUtils.isNotBlank(lawsDocumentSplit.getLawsRequireType())) {
|
||||||
|
lawsDocumentSplit.setLawsRequireType(getItemValues(lawsDocumentSplit.getLawsRequireType().replace(",", ";"),
|
||||||
|
"1702212236079886338", sysDictItemList)); // 法规要求类型
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(lawsDocumentSplit.getFunctionClassification())) {
|
||||||
|
lawsDocumentSplit.setFunctionClassification(getItemValues(lawsDocumentSplit.getFunctionClassification().replace(",", ";"),
|
||||||
|
"1702212237296234497", sysDictItemList)); // 功能分类
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(lawsDocumentSplit.getFunctionProfessional())) {
|
||||||
|
lawsDocumentSplit.setFunctionProfessional(getItemValues(lawsDocumentSplit.getFunctionProfessional().replace(",", ";"),
|
||||||
|
"1702202280677044226", sysDictItemList)); // 功能专业
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(lawsDocumentSplit.getApplications())) {
|
||||||
|
lawsDocumentSplit.setApplications(getItemValues(lawsDocumentSplit.getApplications().replace(",", ";"),
|
||||||
|
"1702518672924110850", sysDictItemList)); // 适用车型
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(lawsDocumentSplit.getDynamicType())) {
|
||||||
|
lawsDocumentSplit.setDynamicType(getItemValues(lawsDocumentSplit.getDynamicType().replace(",", ";"),
|
||||||
|
"1702518671166697474", sysDictItemList)); // 动力类型
|
||||||
|
}
|
||||||
|
|
||||||
|
insertDocumentList.add(lawsDocumentSplit);
|
||||||
|
lawsDocumentSplitMapper.insert(lawsDocumentSplit);
|
||||||
|
n[0]++;
|
||||||
|
}
|
||||||
|
;
|
||||||
|
infoMap.put(sarFileSplitInfoEO.getId(), insertDocumentList);
|
||||||
|
}
|
||||||
|
;
|
||||||
|
long time2 = System.currentTimeMillis();
|
||||||
|
log.info("=====================同步DocumentSplit条文数据:{}条,耗时:{}毫秒=====================", n[0], time2 - time1);
|
||||||
|
String regex = "[^a-zA-Z0-9.]";
|
||||||
|
insertSplitList.forEach(sarFileSplitInfoEO -> {
|
||||||
|
String infoId = sarFileSplitInfoEO.getId();
|
||||||
|
List<LawsDocumentSplit> lawsDocumentSplitList = infoMap.get(infoId);
|
||||||
|
List<String> itemNumList = new ArrayList<>();
|
||||||
|
for (LawsDocumentSplit lawsDocumentSplit : lawsDocumentSplitList) {
|
||||||
|
String itemNum = lawsDocumentSplit.getItemNum();
|
||||||
|
itemNumList.add(itemNum.replaceAll(regex, ""));
|
||||||
|
}
|
||||||
|
// 对目录排序
|
||||||
|
Collections.sort(itemNumList, new AlphanumericComparator());
|
||||||
|
Map<String, Long> sortMap = new HashMap<>();
|
||||||
|
for (int i = 0; i < itemNumList.size(); i++) {
|
||||||
|
sortMap.put(itemNumList.get(i), i + 2L);
|
||||||
|
}
|
||||||
|
List<SarFileSplitMenuEO> sarFileSplitMenuEOList = new java.util.ArrayList<>();
|
||||||
|
// 根目录
|
||||||
|
SarFileSplitMenuEO rootEO = new SarFileSplitMenuEO();
|
||||||
|
String rootId = UUIDUtils.randomUUID20();
|
||||||
|
rootEO.setId(rootId);
|
||||||
|
rootEO.setInfoId(infoId);
|
||||||
|
rootEO.setName("总目录");
|
||||||
|
rootEO.setDisplaySeq(1L);
|
||||||
|
rootEO.setValidFlag(0);
|
||||||
|
sarFileSplitMenuEOMapper.insertSelective(rootEO);
|
||||||
|
|
||||||
|
Map<String, String> idMap = new HashMap<>();
|
||||||
|
lawsDocumentSplitList.forEach(lawsDocumentSplit -> {
|
||||||
|
SarFileSplitMenuEO sarFileSplitMenuEO = new SarFileSplitMenuEO();
|
||||||
|
String itemNum = lawsDocumentSplit.getItemNum();
|
||||||
|
String id = UUIDUtils.randomUUID20();
|
||||||
|
sarFileSplitMenuEO.setId(id);
|
||||||
|
sarFileSplitMenuEO.setInfoId(infoId);
|
||||||
|
sarFileSplitMenuEO.setName(itemNum);
|
||||||
|
sarFileSplitMenuEO.setDisplaySeq(sortMap.get(itemNum.replaceAll(regex, "")));
|
||||||
|
sarFileSplitMenuEO.setValidFlag(0);
|
||||||
|
String itemTitle = lawsDocumentSplit.getItemTitle();
|
||||||
|
sarFileSplitMenuEO.setItemName(itemTitle.substring(0, Math.min(10, itemTitle.length())));
|
||||||
|
sarFileSplitMenuEOList.add(sarFileSplitMenuEO);
|
||||||
|
idMap.put(itemNum.replaceAll(regex, ""), id);
|
||||||
|
|
||||||
|
lawsDocumentSplit.setMenuId(id);
|
||||||
|
lawsDocumentSplitMapper.updateById(lawsDocumentSplit);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 设置父id
|
||||||
|
sarFileSplitMenuEOList.forEach(sarFileSplitMenuEO -> {
|
||||||
|
String itemNum = sarFileSplitMenuEO.getName().replaceAll(regex, "");
|
||||||
|
String[] split = itemNum.split("\\.");
|
||||||
|
if (split.length == 1) {
|
||||||
|
sarFileSplitMenuEO.setPId(rootId);
|
||||||
|
} else {
|
||||||
|
// 去除数组中的最后一个元素
|
||||||
|
split = Arrays.copyOf(split, split.length - 1);
|
||||||
|
String pid = idMap.get(StringUtils.join(split, "."));
|
||||||
|
if (StringUtils.isBlank(pid)) {
|
||||||
|
pid = rootId;
|
||||||
|
}
|
||||||
|
sarFileSplitMenuEO.setPId(pid);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
sarFileSplitMenuEOMapper.insertForeach(sarFileSplitMenuEOList);
|
||||||
|
});
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
long time4 = System.currentTimeMillis();
|
||||||
|
log.info("=====================生成条文详情耗时:{}毫秒=====================", time4 - time3);
|
||||||
|
|
||||||
|
long end = System.currentTimeMillis();
|
||||||
|
log.info("=====================全部同步完成,耗时:{} 毫秒=====================", end - start);
|
||||||
|
log.info("=====================定时任务同步结束=====================");
|
||||||
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void upload(String url, String fileName, String fileType, String id, String code) {
|
public void upload(String url, String fileName, String fileType, String id, String code) {
|
||||||
InputStream inputStream = asmsPostUtil.getFileByteArray(url);
|
InputStream inputStream = asmsPostUtil.getFileByteArray(url);
|
||||||
@@ -643,5 +904,4 @@ public class SynchronizationAsmsService {
|
|||||||
return StringUtils.join(itemValues, ",");
|
return StringUtils.join(itemValues, ",");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user