【修改】 word第一个考点较完整版

This commit is contained in:
DESKTOP-932OMT8\REN
2025-05-26 22:20:28 +08:00
parent b604e5e76c
commit 0f78bad0f9
9 changed files with 90 additions and 18 deletions

View File

@@ -9,4 +9,5 @@ import lombok.Data;
public class WpsWordJudgementDto { public class WpsWordJudgementDto {
private String function; private String function;
private String contentIn; private String contentIn;
private String type;
} }

View File

@@ -1,5 +1,6 @@
package pc.exam.pp.module.judgement.controller.admin.Wps.dto; package pc.exam.pp.module.judgement.controller.admin.Wps.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data; import lombok.Data;
import java.util.List; import java.util.List;
@@ -10,10 +11,25 @@ import java.util.List;
@Data @Data
public class WpsWordReqDto { public class WpsWordReqDto {
@Schema(description = "主中文名称")
private String chineseName; private String chineseName;
@Schema(description = "主英文名称")
private String englishName; private String englishName;
@Schema(description = "文件路径")
private String filePath; private String filePath;
@Schema(description = "内外参数0内参数1外参数")
private String type; private String type;
@Schema(description = "归属0段落1页眉页脚2图形")
private String belongTo;
@Schema(description = "参数类型01判断")
private String parameter;
@Schema(description = "子标签")
private List<WpsWordChineseFunctionDto> function; private List<WpsWordChineseFunctionDto> function;
} }

View File

@@ -18,6 +18,6 @@ public class WordListReqVO {
private Integer type; private Integer type;
private String nodeFunction; private String nodeFunction;
private Integer isboo;
private Integer belongTo; private Integer belongTo;
} }

View File

@@ -37,4 +37,5 @@ public class WordRespVO {
*/ */
private Integer type; private Integer type;
private Integer belongTo; private Integer belongTo;
private Integer isboo;
} }

View File

@@ -41,5 +41,6 @@ public class WordSaveReqVO {
@NotNull(message = "状态不能为空") @NotNull(message = "状态不能为空")
@InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}")
private Integer status; private Integer status;
private Integer isboo;
} }

View File

@@ -24,4 +24,5 @@ public class WordSimpleRespVO {
*/ */
private Integer type; private Integer type;
private Integer belongTo; private Integer belongTo;
private Integer isboo;
} }

View File

@@ -60,7 +60,8 @@ public class WpsWordLinkDO extends TenantBaseDO {
* 类型 * 类型
*/ */
private Integer type; private Integer type;
private String belongTo; private Integer belongTo;
private Integer isboo;
@TableField(exist = false) @TableField(exist = false)
private List<WpsWordLinkDO> children = new ArrayList<>(); private List<WpsWordLinkDO> children = new ArrayList<>();

View File

@@ -88,14 +88,18 @@ public class JudgementWpsWordServiceImpl implements JudgementWpsWordService {
// 拆分数据、 // 拆分数据、
String[] wordInfos = examQuestionAnswer.getContent().split("-/"); String[] wordInfos = examQuestionAnswer.getContent().split("-/");
String[] chineseName = examQuestionAnswer.getContentIn().split("-"); String[] chineseName = examQuestionAnswer.getContentIn().split("-");
String[] typeList = examQuestionAnswer.getImage().split("-");
// 创建拼接数据 // 创建拼接数据
// 只取三层结构 // 只取三层结构
List<WpsWordReqDto> wordReqDto = new ArrayList<>(); List<WpsWordReqDto> wordReqDto = new ArrayList<>();
WpsWordReqDto wpsWordReqDto = new WpsWordReqDto(); WpsWordReqDto wpsWordReqDto = new WpsWordReqDto();
wpsWordReqDto.setChineseName(chineseName[0]); wpsWordReqDto.setChineseName(chineseName[0]);
wpsWordReqDto.setEnglishName(wordInfos[0]); wpsWordReqDto.setEnglishName(wordInfos[0]);
wpsWordReqDto.setType(wordInfos[0]);
wpsWordReqDto.setFilePath(path); wpsWordReqDto.setFilePath(path);
// 存放类型
wpsWordReqDto.setType(typeList[0]);
wpsWordReqDto.setBelongTo(typeList[1]);
wpsWordReqDto.setParameter(typeList[2]);
List<WpsWordChineseFunctionDto> functionList = new ArrayList<>(); List<WpsWordChineseFunctionDto> functionList = new ArrayList<>();
for (int i = 1; i < 3; i++) { for (int i = 1; i < 3; i++) {
WpsWordChineseFunctionDto functionDto = new WpsWordChineseFunctionDto(); WpsWordChineseFunctionDto functionDto = new WpsWordChineseFunctionDto();

View File

@@ -71,7 +71,7 @@ public class WpsWordUtils {
// 需要联合查询数据查询位置xml来获取准确的文件 // 需要联合查询数据查询位置xml来获取准确的文件
// 开始查询标签 // 开始查询标签
// 1、段落 // 1、段落
if (wpsWordReqDto.getEnglishName().contains("w:p")) { if ("0".equals(wpsWordReqDto.getBelongTo())) {
StringBuilder function = new StringBuilder(); StringBuilder function = new StringBuilder();
StringBuilder functionAll = new StringBuilder(); StringBuilder functionAll = new StringBuilder();
StringBuilder chineseName = new StringBuilder(); StringBuilder chineseName = new StringBuilder();
@@ -85,25 +85,37 @@ public class WpsWordUtils {
XmlCursor wpCursor = cursor.newCursor(); XmlCursor wpCursor = cursor.newCursor();
wpCursor.selectPath(nameSpace + "(//" + wpsWordReqDto.getEnglishName() + function); wpCursor.selectPath(nameSpace + "(//" + wpsWordReqDto.getEnglishName() + function);
if (wpCursor.toNextSelection()) { if (wpCursor.toNextSelection()) {
if ("1".equals(wpsWordReqDto.getParameter())) {
judgement.setContentIn(wpsWordReqDto.getChineseName() + "-" + chineseName + "true");
judgement.setFunction(wpsWordReqDto.getEnglishName() + functionAll + "-/" + "true");
} else {
String value = wpCursor.getTextValue(); String value = wpCursor.getTextValue();
judgement.setContentIn(wpsWordReqDto.getChineseName() + "-" + chineseName + value); judgement.setContentIn(wpsWordReqDto.getChineseName() + "-" + chineseName + value);
judgement.setFunction(wpsWordReqDto.getEnglishName() + functionAll + "-/" + value); judgement.setFunction(wpsWordReqDto.getEnglishName() + functionAll + "-/" + value);
}
judgement.setType(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
// 查询指定值,返回固定的文本 // 查询指定值,返回固定的文本
judgementList.add(judgement); judgementList.add(judgement);
} else { } else {
System.out.println("没有找到:" + chineseName); // 参数类型01判断
if ("1".equals(wpsWordReqDto.getParameter())) {
judgement.setContentIn(wpsWordReqDto.getChineseName() + "-" + chineseName + "false");
judgement.setFunction(wpsWordReqDto.getEnglishName() + functionAll + "-/" + "false");
judgement.setType(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgementList.add(judgement);
}
} }
} }
List<XWPFHeader> headers = document.getHeaderList(); List<XWPFHeader> headers = document.getHeaderList();
List<XWPFFooter> footers = document.getFooterList(); List<XWPFFooter> footers = document.getFooterList();
// 2、节 // 2、节
if (wpsWordReqDto.getType().contains("sectPr")) { if ("1".equals(wpsWordReqDto.getBelongTo())) {
// 先要获取ID // 先要获取ID
XmlCursor sectPrCursor = docXml.newCursor(); XmlCursor sectPrCursor = docXml.newCursor();
String[] strTypes = new String[]{"/w:headerReference","/w:footerReference"}; // 内外参数0内参数1外参数
boolean exists = Arrays.asList(strTypes).contains(wpsWordReqDto.getFunction().get(0).getFunction()); if ("1".equals(wpsWordReqDto.getType())) {
if (exists) { sectPrCursor.selectPath(nameSpace + "(//" + wpsWordReqDto.getEnglishName() + wpsWordReqDto.getFunction().get(0).getFunction());
sectPrCursor.selectPath(nameSpace + "//" + wpsWordReqDto.getEnglishName() + wpsWordReqDto.getFunction().get(0).getFunction());
String rId = ""; String rId = "";
String type = ""; String type = "";
List<WordHeaderFooterVo> headerFooterVos = new ArrayList<>(); List<WordHeaderFooterVo> headerFooterVos = new ArrayList<>();
@@ -135,6 +147,7 @@ public class WpsWordUtils {
String value = headerXml.getTextValue(); String value = headerXml.getTextValue();
judgement.setContentIn(wpsWordReqDto.getChineseName()+"-"+wpsWordReqDto.getFunction().get(0).getChineseName()+ "-"+ chineseType +"-" +wpsWordReqDto.getFunction().get(1).getChineseName()+"-"+value); judgement.setContentIn(wpsWordReqDto.getChineseName()+"-"+wpsWordReqDto.getFunction().get(0).getChineseName()+ "-"+ chineseType +"-" +wpsWordReqDto.getFunction().get(1).getChineseName()+"-"+value);
judgement.setFunction(wpsWordReqDto.getEnglishName()+"-"+wpsWordReqDto.getFunction().get(0).getFunction()+"-" +wpsWordReqDto.getFunction().get(1).getFunction()+"-/"+value+ "-"+ headerVo.getType()); judgement.setFunction(wpsWordReqDto.getEnglishName()+"-"+wpsWordReqDto.getFunction().get(0).getFunction()+"-" +wpsWordReqDto.getFunction().get(1).getFunction()+"-/"+value+ "-"+ headerVo.getType());
judgement.setType(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgementList.add(judgement); judgementList.add(judgement);
} }
} }
@@ -153,13 +166,12 @@ public class WpsWordUtils {
String value = headerXml.getTextValue(); String value = headerXml.getTextValue();
judgement.setContentIn(wpsWordReqDto.getChineseName()+"-"+wpsWordReqDto.getFunction().get(0).getChineseName()+ "-"+ chineseType +"-" +wpsWordReqDto.getFunction().get(1).getChineseName()+"-"+value); judgement.setContentIn(wpsWordReqDto.getChineseName()+"-"+wpsWordReqDto.getFunction().get(0).getChineseName()+ "-"+ chineseType +"-" +wpsWordReqDto.getFunction().get(1).getChineseName()+"-"+value);
judgement.setFunction(wpsWordReqDto.getEnglishName()+"-"+wpsWordReqDto.getFunction().get(0).getFunction()+"-" +wpsWordReqDto.getFunction().get(1).getFunction()+"-/"+value+ "-"+ headerVo.getType()); judgement.setFunction(wpsWordReqDto.getEnglishName()+"-"+wpsWordReqDto.getFunction().get(0).getFunction()+"-" +wpsWordReqDto.getFunction().get(1).getFunction()+"-/"+value+ "-"+ headerVo.getType());
judgement.setType(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgementList.add(judgement); judgementList.add(judgement);
} }
} }
} }
} }
} }
} }
} }
@@ -172,14 +184,49 @@ public class WpsWordUtils {
WpsWordJudgementDto judgement = new WpsWordJudgementDto(); WpsWordJudgementDto judgement = new WpsWordJudgementDto();
judgement.setContentIn(wpsWordReqDto.getChineseName()+"-"+wpsWordReqDto.getFunction().get(0).getChineseName() +"-" +wpsWordReqDto.getFunction().get(1).getChineseName()+"-/"+value); judgement.setContentIn(wpsWordReqDto.getChineseName()+"-"+wpsWordReqDto.getFunction().get(0).getChineseName() +"-" +wpsWordReqDto.getFunction().get(1).getChineseName()+"-/"+value);
judgement.setFunction(wpsWordReqDto.getEnglishName()+"-"+wpsWordReqDto.getFunction().get(0).getFunction()+"-" +wpsWordReqDto.getFunction().get(1).getFunction()+"-/" + value); judgement.setFunction(wpsWordReqDto.getEnglishName()+"-"+wpsWordReqDto.getFunction().get(0).getFunction()+"-" +wpsWordReqDto.getFunction().get(1).getFunction()+"-/" + value);
judgement.setType(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgementList.add(judgement); judgementList.add(judgement);
} }
} }
} }
//尾注 // 3、图形
if ("2".equals(wpsWordReqDto.getBelongTo())) {
StringBuilder function = new StringBuilder();
StringBuilder functionAll = new StringBuilder();
StringBuilder chineseName = new StringBuilder();
for (WpsWordChineseFunctionDto functions : wpsWordReqDto.getFunction()) {
function.append(functions.getFunction());
functionAll.append("-").append(functions.getFunction());
chineseName.append(functions.getChineseName()).append("-");
}
WpsWordJudgementDto judgement = new WpsWordJudgementDto();
// 1-1、创建新的数据组
XmlCursor wpCursor = cursor.newCursor();
System.out.println("(//" + wpsWordReqDto.getEnglishName() + function);
wpCursor.selectPath(nameSpace + "(//" + wpsWordReqDto.getEnglishName() + function);
if (wpCursor.toNextSelection()) {
if ("1".equals(wpsWordReqDto.getParameter())) {
judgement.setContentIn(wpsWordReqDto.getChineseName() + "-" + chineseName + "true");
judgement.setFunction(wpsWordReqDto.getEnglishName() + functionAll + "-/" + "true");
// endnoteReference } else {
// 查询所有对应的中文 String value = wpCursor.getTextValue();
judgement.setContentIn(wpsWordReqDto.getChineseName() + "-" + chineseName + value);
judgement.setFunction(wpsWordReqDto.getEnglishName() + functionAll + "-/" + value);
}
judgement.setType(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
// 查询指定值,返回固定的文本
judgementList.add(judgement);
} else {
// 参数类型01判断
if ("1".equals(wpsWordReqDto.getParameter())) {
judgement.setContentIn(wpsWordReqDto.getChineseName() + "-" + chineseName + "false");
judgement.setFunction(wpsWordReqDto.getEnglishName() + functionAll + "-/" + "false");
judgement.setType(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgementList.add(judgement);
}
}
}
} }
} }