From 0f78bad0f97692ac28f29e8bd832171019abb2ad Mon Sep 17 00:00:00 2001 From: "DESKTOP-932OMT8\\REN" Date: Mon, 26 May 2025 22:20:28 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E3=80=91=20word?= =?UTF-8?q?=E7=AC=AC=E4=B8=80=E4=B8=AA=E8=80=83=E7=82=B9=E8=BE=83=E5=AE=8C?= =?UTF-8?q?=E6=95=B4=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/Wps/dto/WpsWordJudgementDto.java | 1 + .../admin/Wps/dto/WpsWordReqDto.java | 16 ++++ .../admin/Wps/vo/WordListReqVO.java | 2 +- .../controller/admin/Wps/vo/WordRespVO.java | 1 + .../admin/Wps/vo/WordSaveReqVO.java | 1 + .../admin/Wps/vo/WordSimpleRespVO.java | 1 + .../dal/dataobject/wpsword/WpsWordLinkDO.java | 3 +- .../wps_word/JudgementWpsWordServiceImpl.java | 6 +- .../utils/wps_word/WpsWordUtils.java | 77 +++++++++++++++---- 9 files changed, 90 insertions(+), 18 deletions(-) diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/dto/WpsWordJudgementDto.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/dto/WpsWordJudgementDto.java index 3b788742..1c498f5e 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/dto/WpsWordJudgementDto.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/dto/WpsWordJudgementDto.java @@ -9,4 +9,5 @@ import lombok.Data; public class WpsWordJudgementDto { private String function; private String contentIn; + private String type; } diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/dto/WpsWordReqDto.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/dto/WpsWordReqDto.java index 77e4c858..8aa6b36d 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/dto/WpsWordReqDto.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/dto/WpsWordReqDto.java @@ -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 function; } diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/vo/WordListReqVO.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/vo/WordListReqVO.java index e935a712..10bb0604 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/vo/WordListReqVO.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/vo/WordListReqVO.java @@ -18,6 +18,6 @@ public class WordListReqVO { private Integer type; private String nodeFunction; - + private Integer isboo; private Integer belongTo; } diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/vo/WordRespVO.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/vo/WordRespVO.java index b576e48d..db2c5cc9 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/vo/WordRespVO.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/vo/WordRespVO.java @@ -37,4 +37,5 @@ public class WordRespVO { */ private Integer type; private Integer belongTo; + private Integer isboo; } diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/vo/WordSaveReqVO.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/vo/WordSaveReqVO.java index 88815ebd..13d86505 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/vo/WordSaveReqVO.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/vo/WordSaveReqVO.java @@ -41,5 +41,6 @@ public class WordSaveReqVO { @NotNull(message = "状态不能为空") @InEnum(value = CommonStatusEnum.class, message = "修改状态必须是 {value}") private Integer status; + private Integer isboo; } diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/vo/WordSimpleRespVO.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/vo/WordSimpleRespVO.java index 14abe6a7..816f55f8 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/vo/WordSimpleRespVO.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/vo/WordSimpleRespVO.java @@ -24,4 +24,5 @@ public class WordSimpleRespVO { */ private Integer type; private Integer belongTo; + private Integer isboo; } diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/dal/dataobject/wpsword/WpsWordLinkDO.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/dal/dataobject/wpsword/WpsWordLinkDO.java index 51bedb50..4cdc63f6 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/dal/dataobject/wpsword/WpsWordLinkDO.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/dal/dataobject/wpsword/WpsWordLinkDO.java @@ -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 children = new ArrayList<>(); diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/wps_word/JudgementWpsWordServiceImpl.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/wps_word/JudgementWpsWordServiceImpl.java index 35ccda75..f5d40448 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/wps_word/JudgementWpsWordServiceImpl.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/wps_word/JudgementWpsWordServiceImpl.java @@ -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 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 functionList = new ArrayList<>(); for (int i = 1; i < 3; i++) { WpsWordChineseFunctionDto functionDto = new WpsWordChineseFunctionDto(); diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_word/WpsWordUtils.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_word/WpsWordUtils.java index a6a17b33..69492fb6 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_word/WpsWordUtils.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_word/WpsWordUtils.java @@ -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 headers = document.getHeaderList(); List 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 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); + } + } + } } }