【修改】 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 {
private String function;
private String contentIn;
private String type;
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -71,7 +71,7 @@ public class WpsWordUtils {
// 需要联合查询数据查询位置xml来获取准确的文件
// 开始查询标签
// 1、段落
if (wpsWordReqDto.getEnglishName().contains("w:p")) {
if ("0".equals(wpsWordReqDto.getBelongTo())) {
StringBuilder function = new StringBuilder();
StringBuilder functionAll = new StringBuilder();
StringBuilder chineseName = new StringBuilder();
@@ -85,25 +85,37 @@ public class WpsWordUtils {
XmlCursor wpCursor = cursor.newCursor();
wpCursor.selectPath(nameSpace + "(//" + wpsWordReqDto.getEnglishName() + function);
if (wpCursor.toNextSelection()) {
String value = wpCursor.getTextValue();
judgement.setContentIn(wpsWordReqDto.getChineseName() + "-" + chineseName + value);
judgement.setFunction(wpsWordReqDto.getEnglishName() + functionAll + "-/" + value);
if ("1".equals(wpsWordReqDto.getParameter())) {
judgement.setContentIn(wpsWordReqDto.getChineseName() + "-" + chineseName + "true");
judgement.setFunction(wpsWordReqDto.getEnglishName() + functionAll + "-/" + "true");
} 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 {
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<XWPFFooter> footers = document.getFooterList();
// 2、节
if (wpsWordReqDto.getType().contains("sectPr")) {
if ("1".equals(wpsWordReqDto.getBelongTo())) {
// 先要获取ID
XmlCursor sectPrCursor = docXml.newCursor();
String[] strTypes = new String[]{"/w:headerReference","/w:footerReference"};
boolean exists = Arrays.asList(strTypes).contains(wpsWordReqDto.getFunction().get(0).getFunction());
if (exists) {
sectPrCursor.selectPath(nameSpace + "//" + wpsWordReqDto.getEnglishName() + wpsWordReqDto.getFunction().get(0).getFunction());
// 内外参数0内参数1外参数
if ("1".equals(wpsWordReqDto.getType())) {
sectPrCursor.selectPath(nameSpace + "(//" + wpsWordReqDto.getEnglishName() + wpsWordReqDto.getFunction().get(0).getFunction());
String rId = "";
String type = "";
List<WordHeaderFooterVo> headerFooterVos = new ArrayList<>();
@@ -135,6 +147,7 @@ public class WpsWordUtils {
String value = headerXml.getTextValue();
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.setType(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgementList.add(judgement);
}
}
@@ -153,13 +166,12 @@ public class WpsWordUtils {
String value = headerXml.getTextValue();
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.setType(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
judgementList.add(judgement);
}
}
}
}
}
}
}
@@ -172,14 +184,49 @@ public class WpsWordUtils {
WpsWordJudgementDto judgement = new WpsWordJudgementDto();
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.setType(wpsWordReqDto.getType()+"-"+wpsWordReqDto.getBelongTo()+"-"+wpsWordReqDto.getParameter());
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);
}
}
}
}
}