fix(82596): 文档拆分--拆分文档上传--【<】后方的文本未拆出

This commit is contained in:
yjz
2024-03-27 09:43:34 +08:00
parent 4340de8e7e
commit 5b8d00a8e1
2 changed files with 19 additions and 5 deletions
@@ -93,6 +93,7 @@ import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus; import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.DefaultTransactionDefinition; import org.springframework.transaction.support.DefaultTransactionDefinition;
import org.springframework.web.util.HtmlUtils;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
@@ -384,7 +385,7 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
// 企标权限校验 // 企标权限校验
enterpriseCheck(sarFileSplitInfoEO); enterpriseCheck(sarFileSplitInfoEO);
// 唯一校验 // 唯一校验
uniqueCheck(sarFileSplitInfoEO); // uniqueCheck(sarFileSplitInfoEO);
// 保存文本拆分数据 // 保存文本拆分数据
saveDocumentSplitInfo(sarFileSplitInfoEO); saveDocumentSplitInfo(sarFileSplitInfoEO);
//拆分 //拆分
@@ -632,6 +633,10 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
for (SarFileSplitItemsValEO sarFileSplitItemsValEO : valList) { for (SarFileSplitItemsValEO sarFileSplitItemsValEO : valList) {
// 条文内容拼接 // 条文内容拼接
if (DocumentSplitCommon.TEXT.equals(sarFileSplitItemsValEO.getType())) { if (DocumentSplitCommon.TEXT.equals(sarFileSplitItemsValEO.getType())) {
if (StringUtils.isNotBlank(sarFileSplitItemsValEO.getItemContent())){
sarFileSplitItemsValEO.setItemContent(sarFileSplitItemsValEO.getItemContent()
.replace("<", "&lt;").replace(">", "&gt;"));
}
valContent.append("<p>").append(sarFileSplitItemsValEO.getItemContent()).append("</p>"); valContent.append("<p>").append(sarFileSplitItemsValEO.getItemContent()).append("</p>");
} else if (DocumentSplitCommon.IMG.equals(sarFileSplitItemsValEO.getType())) { } else if (DocumentSplitCommon.IMG.equals(sarFileSplitItemsValEO.getType())) {
valContent.append("<img class=\"wordImg\" style=\"width:100%;height:100%\" src=\"") valContent.append("<img class=\"wordImg\" style=\"width:100%;height:100%\" src=\"")
@@ -907,6 +912,9 @@ public class DocumentSplitServiceImpl implements IDocumentSplitService {
String imgName = imgPath.substring(imgPath.lastIndexOf("/") + 1); String imgName = imgPath.substring(imgPath.lastIndexOf("/") + 1);
sarFileSplitItemsValEO.setImgName(imgName); sarFileSplitItemsValEO.setImgName(imgName);
} }
if (DocumentSplitCommon.TEXT.equals(sarFileSplitItemsValEO.getType()) && org.apache.commons.lang.StringUtils.isNotEmpty(imgPath)){
sarFileSplitItemsValEO.setItemContent(HtmlUtils.htmlUnescape(sarFileSplitItemsValEO.getItemContent()));
}
} }
} }
return sarFileSplitItemsValEOS; return sarFileSplitItemsValEOS;
@@ -2,7 +2,6 @@ package com.jero.modules.split.service.impl;
import cn.hutool.http.Header; import cn.hutool.http.Header;
import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.exception.JeroBootException; import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
@@ -22,13 +21,15 @@ import com.jero.modules.split.enums.SplitFileTypeTypeEnum;
import com.jero.modules.split.mapper.SarFileSplitMenuEOMapper; import com.jero.modules.split.mapper.SarFileSplitMenuEOMapper;
import com.jero.modules.split.service.IFileSplitItemsEOService; import com.jero.modules.split.service.IFileSplitItemsEOService;
import com.jero.modules.split.service.ISarFileSplitItemsValEOService; import com.jero.modules.split.service.ISarFileSplitItemsValEOService;
import com.jero.modules.split.util.*; import com.jero.modules.split.util.AsposeUtil;
import com.jero.modules.split.util.FileSplitUtils;
import com.jero.modules.split.util.ParagraphChildOrderManager;
import com.jero.modules.split.util.ReadWordTable;
import com.jero.modules.split.vo.TitleNumberVO; import com.jero.modules.split.vo.TitleNumberVO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.http.entity.ContentType; import org.apache.http.entity.ContentType;
import org.apache.poi.hwpf.usermodel.PictureType;
import org.apache.poi.openxml4j.opc.PackagePart; import org.apache.poi.openxml4j.opc.PackagePart;
import org.apache.poi.openxml4j.util.ZipSecureFile; import org.apache.poi.openxml4j.util.ZipSecureFile;
import org.apache.poi.xwpf.usermodel.*; import org.apache.poi.xwpf.usermodel.*;
@@ -56,7 +57,6 @@ import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node; import org.w3c.dom.Node;
import org.w3c.dom.NodeList; import org.w3c.dom.NodeList;
import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.*; import java.util.*;
@@ -1040,6 +1040,9 @@ public class FileSpiltService {
// 像每个条款中依次插入每一段的内容 // 像每个条款中依次插入每一段的内容
public static void addItermsConditionsText(SarFileSplitItemsEO message, List<SarFileSplitItemsValEO> itemsValList, String p, ParagraphAlignment alignment) { public static void addItermsConditionsText(SarFileSplitItemsEO message, List<SarFileSplitItemsValEO> itemsValList, String p, ParagraphAlignment alignment) {
if (StringUtils.isNotBlank(p)){
p = p.replace("<", "&lt;").replace(">", "&gt;");
}
message.getItemsCondi().add(p); message.getItemsCondi().add(p);
if (ParagraphAlignment.CENTER.equals(alignment)){ if (ParagraphAlignment.CENTER.equals(alignment)){
message.setItemContent(message.getItemContent() + "<p style=\"text-align: center;\">" + p + "</p>"); message.setItemContent(message.getItemContent() + "<p style=\"text-align: center;\">" + p + "</p>");
@@ -1124,6 +1127,9 @@ public class FileSpiltService {
for (XWPFRun xwrun : paragraph.getRuns()) { for (XWPFRun xwrun : paragraph.getRuns()) {
VerticalAlign subscript = xwrun.getSubscript(); VerticalAlign subscript = xwrun.getSubscript();
String smalltext = xwrun.getText(0); String smalltext = xwrun.getText(0);
if (StringUtils.isNotBlank(smalltext)){
smalltext = smalltext.replace("<", "&lt;").replace(">", "&gt;");
}
if (smalltext==null){ if (smalltext==null){
continue; continue;
} }