【修改】 word第一个考点较完整版
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -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 = "参数类型(0:值;1:判断)")
|
||||||
|
private String parameter;
|
||||||
|
|
||||||
|
@Schema(description = "子标签")
|
||||||
private List<WpsWordChineseFunctionDto> function;
|
private List<WpsWordChineseFunctionDto> function;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
@@ -37,4 +37,5 @@ public class WordRespVO {
|
|||||||
*/
|
*/
|
||||||
private Integer type;
|
private Integer type;
|
||||||
private Integer belongTo;
|
private Integer belongTo;
|
||||||
|
private Integer isboo;
|
||||||
}
|
}
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -24,4 +24,5 @@ public class WordSimpleRespVO {
|
|||||||
*/
|
*/
|
||||||
private Integer type;
|
private Integer type;
|
||||||
private Integer belongTo;
|
private Integer belongTo;
|
||||||
|
private Integer isboo;
|
||||||
}
|
}
|
||||||
|
@@ -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<>();
|
||||||
|
@@ -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();
|
||||||
|
@@ -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()) {
|
||||||
String value = wpCursor.getTextValue();
|
if ("1".equals(wpsWordReqDto.getParameter())) {
|
||||||
judgement.setContentIn(wpsWordReqDto.getChineseName() + "-" + chineseName + value);
|
judgement.setContentIn(wpsWordReqDto.getChineseName() + "-" + chineseName + "true");
|
||||||
judgement.setFunction(wpsWordReqDto.getEnglishName() + functionAll + "-/" + value);
|
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);
|
judgementList.add(judgement);
|
||||||
} else {
|
} 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<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 {
|
||||||
|
// 参数类型(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