【修改】 word第一个考点较完整版
This commit is contained in:
@@ -9,4 +9,5 @@ import lombok.Data;
|
||||
public class WpsWordJudgementDto {
|
||||
private String function;
|
||||
private String contentIn;
|
||||
private String type;
|
||||
}
|
||||
|
@@ -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 = "参数类型(0:值;1:判断)")
|
||||
private String parameter;
|
||||
|
||||
@Schema(description = "子标签")
|
||||
private List<WpsWordChineseFunctionDto> function;
|
||||
|
||||
}
|
||||
|
@@ -18,6 +18,6 @@ public class WordListReqVO {
|
||||
private Integer type;
|
||||
|
||||
private String nodeFunction;
|
||||
|
||||
private Integer isboo;
|
||||
private Integer belongTo;
|
||||
}
|
||||
|
@@ -37,4 +37,5 @@ public class WordRespVO {
|
||||
*/
|
||||
private Integer type;
|
||||
private Integer belongTo;
|
||||
private Integer isboo;
|
||||
}
|
||||
|
@@ -41,5 +41,6 @@ public class WordSaveReqVO {
|
||||
@NotNull(message = "状态不能为空")
|
||||
@InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}")
|
||||
private Integer status;
|
||||
private Integer isboo;
|
||||
|
||||
}
|
||||
|
@@ -24,4 +24,5 @@ public class WordSimpleRespVO {
|
||||
*/
|
||||
private Integer type;
|
||||
private Integer belongTo;
|
||||
private Integer isboo;
|
||||
}
|
||||
|
@@ -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<>();
|
||||
|
@@ -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();
|
||||
|
@@ -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);
|
||||
// 参数类型(0:值;1:判断)
|
||||
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 {
|
||||
// 参数类型(0:值;1:判断)
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user