diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/wps/vo/pptx/PptxRespVO.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/wps/vo/pptx/PptxRespVO.java index 9e9a734e..f2d5d824 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/wps/vo/pptx/PptxRespVO.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/wps/vo/pptx/PptxRespVO.java @@ -23,17 +23,9 @@ public class PptxRespVO { private String chineseName; - private String dataType; + private String functions; - private Integer isText; - - private String valueList; - - private Integer isTrue; - - private Integer titleType; - - private Integer isParameter; + private String parameter; private LocalDateTime createTime; diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/wps/vo/pptx/PptxSaveReqVO.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/wps/vo/pptx/PptxSaveReqVO.java index 6b2cbef1..9db95338 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/wps/vo/pptx/PptxSaveReqVO.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/controller/admin/wps/vo/pptx/PptxSaveReqVO.java @@ -27,16 +27,8 @@ public class PptxSaveReqVO { private String chineseName; - private String dataType; + private String parameter; - private Integer isText; - - private String valueList; - - private Integer isTrue; - - private Integer titleType; - - private Integer isParameter; + private String functions; } diff --git a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/wps/ExamWpsPptx.java b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/wps/ExamWpsPptx.java index 569bcb84..f3d84a2d 100644 --- a/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/wps/ExamWpsPptx.java +++ b/exam-module-exam/exam-module-exam-biz/src/main/java/pc/exam/pp/module/exam/dal/dataobject/wps/ExamWpsPptx.java @@ -29,13 +29,9 @@ public class ExamWpsPptx extends TenantBaseDO { private String title; private Integer sort; private String chineseName; - private String dataType; + private String functions; + private String parameter; private Integer status; - private String valueList; - private Integer isTrue; - private Integer isText; - private Integer titleType; - private Integer isParameter; @TableField(exist = false) private List children = new ArrayList<>(); } diff --git a/exam-module-judgement/exam-module-judgement-biz/pom.xml b/exam-module-judgement/exam-module-judgement-biz/pom.xml index db916edc..fd13f8ac 100644 --- a/exam-module-judgement/exam-module-judgement-biz/pom.xml +++ b/exam-module-judgement/exam-module-judgement-biz/pom.xml @@ -153,15 +153,16 @@ 2.4.2-SNAPSHOT compile + org.docx4j docx4j-core - 11.5.3 + 11.5.4 org.docx4j docx4j-JAXB-MOXy - 11.5.3 + 11.5.4 diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/AutoWps/AutoWpsController.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/AutoWps/AutoWpsController.java index 5c55cb76..df3f5738 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/AutoWps/AutoWpsController.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/AutoWps/AutoWpsController.java @@ -17,6 +17,7 @@ import pc.exam.pp.module.judgement.controller.admin.AutoWps.vo.WpsDocxInfoVo; import pc.exam.pp.module.judgement.service.wps_excel.JudgementWpsExcelService; import pc.exam.pp.module.judgement.service.wps_pptx.JudgementWpsPptxService; import pc.exam.pp.module.judgement.service.wps_word.JudgementWpsWordService; +import pc.exam.pp.module.judgement.utils.wps_pptx.pptx4j.vo.SlideDataInfoVO; import pc.exam.pp.module.judgement.utils.wps_word.docx4j.vo.DocxDataInfoVO; import pc.exam.pp.module.judgement.utils.wps_word.docx4j.vo.JudgementWordsVO; @@ -25,12 +26,13 @@ import java.util.List; /** * wps word * rwb + * * @author REN */ @RestController @RequestMapping("/auto/wps") -@Tag( name = "测试判分2 - wps相关操作") +@Tag(name = "测试判分2 - wps相关操作") @Validated public class AutoWpsController { @@ -41,9 +43,29 @@ public class AutoWpsController { @Resource JudgementWpsExcelService judgementWpsExcelService; + /** + * wps word + * + * @return 获取大类 + */ + @PostMapping("/docxDataInfo") + public CommonResult> runWpsWord(FileUploadReqVO file) throws Exception { + return CommonResult.success(judgementWpsWordService.docxDataInfo(file.getFile())); + } + + /** + * wps pptx + * + * @return 获取大类 + */ + @PostMapping("/slideDataInfo") + public CommonResult> runWpsSlide(FileUploadReqVO file) throws Exception { + return CommonResult.success(judgementWpsPptxService.docxDataInfo(file.getFile())); + } /** * 获取指定考点的数据 + * * @return * @throws Exception */ @@ -53,19 +75,11 @@ public class AutoWpsController { ObjectMapper objectMapper = new ObjectMapper(); List wpsDocxInfoVos = objectMapper.readValue( jsonData, - new TypeReference>() {} + new TypeReference>() { + } ); return CommonResult.success(judgementWpsWordService.docxMaster(wpsDocxInfoVos, file)); } - /** - * wps word - * @return 获取大类 - */ - @PostMapping("/docxDataInfo") - public CommonResult> runWpsWord(FileUploadReqVO file) throws Exception { - return CommonResult.success(judgementWpsWordService.docxDataInfo(file.getFile())); - } - } diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/AutoWps/vo/WpsDocxInfoVo.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/AutoWps/vo/WpsDocxInfoVo.java index 6349e85a..7a703be1 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/AutoWps/vo/WpsDocxInfoVo.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/AutoWps/vo/WpsDocxInfoVo.java @@ -1,7 +1,6 @@ package pc.exam.pp.module.judgement.controller.admin.AutoWps.vo; import lombok.Data; -import org.springframework.web.multipart.MultipartFile; @Data public class WpsDocxInfoVo { diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/AutoWps/vo/WpsSlideInfoVo.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/AutoWps/vo/WpsSlideInfoVo.java new file mode 100644 index 00000000..14302193 --- /dev/null +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/AutoWps/vo/WpsSlideInfoVo.java @@ -0,0 +1,25 @@ +package pc.exam.pp.module.judgement.controller.admin.AutoWps.vo; + +import lombok.Data; + +@Data +public class WpsSlideInfoVo { + + // 大类名称 + private String firstName; + + // 序号 + private String index; + + // 方法名称 + private String function; + + // 考点名称 + private String examName; + + // 考点代码 + private String examCode; + + // 方式方法 + private String method; +} diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/WpsController.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/WpsController.java index 3823acdc..ee57d264 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/WpsController.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/Wps/WpsController.java @@ -55,23 +55,23 @@ public class WpsController { // public CommonResult> runWpsWord(String path) throws Exception { // return CommonResult.success(judgementWpsWordService.programmingWpsWord(path)); // } - /** - * wps xlsx - * @return 判分 - */ - @GetMapping("/runWpsPptx") - public CommonResult> runWpsPptx(String path) throws Exception { - return CommonResult.success(judgementWpsPptxService.programmingWpsPptx(path)); - } - - /** - * wps xlsx - * @return 判分 - */ - @PostMapping("/runTestpptx") - public CommonResult> runTestpptx(@RequestBody List judgementReq, String path) throws Exception { - return CommonResult.success(judgementWpsPptxService.judgementWpsPptx(judgementReq, path)); - } +// /** +// * wps xlsx +// * @return 判分 +// */ +// @GetMapping("/runWpsPptx") +// public CommonResult> runWpsPptx(String path) throws Exception { +// return CommonResult.success(judgementWpsPptxService.programmingWpsPptx(path)); +// } +// +// /** +// * wps xlsx +// * @return 判分 +// */ +// @PostMapping("/runTestpptx") +// public CommonResult> runTestpptx(@RequestBody List judgementReq, String path) throws Exception { +// return CommonResult.success(judgementWpsPptxService.judgementWpsPptx(judgementReq, path)); +// } diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/wps_pptx/JudgementWpsPptxService.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/wps_pptx/JudgementWpsPptxService.java index f4f4986c..9ff96c1d 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/wps_pptx/JudgementWpsPptxService.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/wps_pptx/JudgementWpsPptxService.java @@ -1,8 +1,10 @@ package pc.exam.pp.module.judgement.service.wps_pptx; -import pc.exam.pp.module.judgement.controller.admin.Wps.dto.WpsPptxJudgementDto; -import pc.exam.pp.module.judgement.utils.wps_pptx.judgementVO.JudgementReqVo; -import pc.exam.pp.module.judgement.utils.wps_pptx.vo.PptxInfoReqVo; +import org.springframework.web.multipart.MultipartFile; +import pc.exam.pp.module.judgement.controller.admin.AutoWps.vo.WpsSlideInfoVo; +import pc.exam.pp.module.judgement.utils.wps_pptx.pptx4j.vo.JudgementSlidesVO; +import pc.exam.pp.module.judgement.utils.wps_pptx.pptx4j.vo.SlideDataInfoVO; + import java.util.List; /** @@ -10,10 +12,8 @@ import java.util.List; */ public interface JudgementWpsPptxService { - List programmingWpsPptx(String path) throws Exception; + List slideMaster(List wpsSlideInfoVos, MultipartFile file) throws Exception; -// List getWpsPptxInfo(List pptxInfoPointsVos) throws IOException; - - List judgementWpsPptx(List judgementReq, String path) throws Exception; + List docxDataInfo(MultipartFile file) throws Exception; } diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/wps_pptx/JudgementWpsPptxServiceImpl.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/wps_pptx/JudgementWpsPptxServiceImpl.java index a0127bdd..1ed8e283 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/wps_pptx/JudgementWpsPptxServiceImpl.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/service/wps_pptx/JudgementWpsPptxServiceImpl.java @@ -2,12 +2,17 @@ package pc.exam.pp.module.judgement.service.wps_pptx; import jakarta.annotation.Resource; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; import pc.exam.pp.module.infra.dal.dataobject.config.ConfigDO; import pc.exam.pp.module.infra.service.config.ConfigService; +import pc.exam.pp.module.judgement.controller.admin.AutoWps.vo.WpsSlideInfoVo; import pc.exam.pp.module.judgement.controller.admin.Wps.dto.WpsPptxJudgementDto; //import pc.exam.pp.module.judgement.service.auto_tools.AutoToolsService; import pc.exam.pp.module.judgement.utils.wps_pptx.JudgementWpsPPT; import pc.exam.pp.module.judgement.utils.wps_pptx.judgementVO.JudgementReqVo; +import pc.exam.pp.module.judgement.utils.wps_pptx.pptx4j.SlideConversion; +import pc.exam.pp.module.judgement.utils.wps_pptx.pptx4j.vo.JudgementSlidesVO; +import pc.exam.pp.module.judgement.utils.wps_pptx.pptx4j.vo.SlideDataInfoVO; import pc.exam.pp.module.judgement.utils.wps_pptx.vo.PptxInfoReqVo; import pc.exam.pp.module.system.dal.dataobject.user.AdminUserDO; import pc.exam.pp.module.system.service.user.AdminUserService; @@ -25,81 +30,19 @@ import static pc.exam.pp.framework.security.core.util.SecurityFrameworkUtils.get @Service public class JudgementWpsPptxServiceImpl implements JudgementWpsPptxService { -// @Resource -// AutoToolsService autoToolsService; - - @Resource - ConfigService configService; - - @Resource - private AdminUserService userService; - -// @Override -// public List getWpsPptxInfo(List pptxInfoPointsVos) throws IOException { -// List judgementDtos = WpsPptxUtils.getWpsPptxInfos(pptxInfoPointsVos); -// return judgementDtos; -// } - @Override - public List judgementWpsPptx(List judgementReq, String path) throws Exception { - return JudgementWpsPPT.getValues(judgementReq); + public List slideMaster(List wpsSlideInfoVos, MultipartFile file) throws Exception { + return List.of(); } - + /** + * + * @param file pptx文件流 + * @return 所有考点大类 + * @throws Exception 异常 + */ @Override - public List programmingWpsPptx(String path) throws Exception { - String pathName = ""; - String[] strPaht = path.split("/"); - // 1、获取文件临时下载路径 - ConfigDO config = configService.getConfigByKey("file_down_wps_pptx_path"); - AdminUserDO user = userService.getUser(getLoginUserId()); -// Path paths = Paths.get(config.getValue() + "\\" + user.getId()); -// if (Files.exists(paths)) { -// pathName = config.getValue() + "\\" + user.getId() + "\\" + strPaht[strPaht.length - 1]; -// } else { - // 2、下载文件并返回文件完整路径 - pathName = downloadStudentFile(path, config.getValue() + "\\" + user.getId()); -// } - // 4、pptx文件读取并返回考点及说明信息 -// List margins = WpsPptxUtils.wpsPptx(pathName, paragraphList); - List pptxInfoList = JudgementWpsPPT.wpsPptxInfo(pathName); - // 5、已经读取完得考点删除源文件 -// File file = new File(pathName); -// file.delete(); - return pptxInfoList; + public List docxDataInfo(MultipartFile file) throws Exception { + return SlideConversion.SlideDataInfos(file); } - - public String downloadStudentFile(String fileUrl, String filePath) { - try { - URL url = new URL(fileUrl); - URLConnection connection = url.openConnection(); - - String fileName = new File(url.getPath()).getName(); - File dir = new File(filePath); - if (!dir.exists()) dir.mkdirs(); - - File saveFile = new File(dir, fileName); - - try (InputStream in = connection.getInputStream(); - FileOutputStream out = new FileOutputStream(saveFile)) { - - byte[] buffer = new byte[4096]; - int bytesRead; - while ((bytesRead = in.read(buffer)) != -1) { - out.write(buffer, 0, bytesRead); - } - - System.out.println("✅ 下载成功: " + saveFile.getAbsolutePath()); - return saveFile.getAbsolutePath(); - } catch (FileNotFoundException e) { - throw new RuntimeException(e); - } catch (IOException e) { - throw new RuntimeException(e); - } - } catch (IOException e) { - System.err.println("❌ 下载失败: " + e.getMessage()); - return null; - } - } - } diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/SlideConversion.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/SlideConversion.java new file mode 100644 index 00000000..0e16f2bf --- /dev/null +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/SlideConversion.java @@ -0,0 +1,97 @@ +package pc.exam.pp.module.judgement.utils.wps_pptx.pptx4j; + +import org.apache.poi.xslf.usermodel.XMLSlideShow; +import org.apache.poi.xslf.usermodel.XSLFSlide; +import org.apache.xmlbeans.XmlCursor; +import org.springframework.web.multipart.MultipartFile; +import pc.exam.pp.module.judgement.utils.wps_pptx.pptx4j.vo.SlideDataInfoVO; + +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +public class SlideConversion { + // 大纲 + // 1、获取第一层目录 幻灯片 - 母版 - 设置 - 其他 + // 2、获取第二层目录 第x页 - 幻灯片母版/备注母版 - 幻灯片设置 - 文件操作 + // 3、获取第三层目录 幻灯片设置/形状 - 幻灯片母版 - 幻灯片设置 - 文件操作 + public static List SlideDataInfos(MultipartFile file) throws Exception { + List dataInfoVOS = new ArrayList<>(); + try (InputStream inputStream = file.getInputStream(); + XMLSlideShow pptxXml = new XMLSlideShow(inputStream)) { + int index = 0; + String firstId = getStringRandom(); + setSlideDataInfo(firstId, "", "幻灯片", "w:p", "", false, dataInfoVOS); + for (XSLFSlide slides : pptxXml.getSlides()){ + index += 1; + String secondId = getStringRandom(); + setSlideDataInfo(secondId, firstId, "第"+index+"页", "p:sld", String.valueOf(index), true, dataInfoVOS); + // 第三层 + String thirdId = getStringRandom(); + int indexCnvPr = 1; + setSlideDataInfo(thirdId, secondId, "幻灯片设置", "slide", String.valueOf(index), true, dataInfoVOS); + XmlCursor spCursor = slides.getXmlObject().newCursor(); + spCursor.selectPath("declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//p:sp"); + while (spCursor.toNextSelection()) { + XmlCursor cNvPrXml = spCursor.newCursor(); + cNvPrXml.selectPath("declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//p:cNvPr/@name"); + if (cNvPrXml.toNextSelection()) { + String name = cNvPrXml.getTextValue(); + String fourId = getStringRandom(); + setSlideDataInfo(fourId, secondId, "形状"+indexCnvPr+"->"+name, "slides", String.valueOf(indexCnvPr), true, dataInfoVOS); + indexCnvPr += 1; + } + } + XmlCursor picCursor = slides.getXmlObject().newCursor(); + System.out.println(picCursor.xmlText()); + picCursor.selectPath("declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//p:pic"); + int indexCnvPrPic = 1; + while (picCursor.toNextSelection()) { + String fourId = getStringRandom(); + setSlideDataInfo(fourId, secondId, "图像"+indexCnvPrPic+"->图像", "p:pic", String.valueOf(indexCnvPrPic), true, dataInfoVOS); + indexCnvPrPic += 1; + } + } + // 设置 + String firstIds = getStringRandom(); + setSlideDataInfo(firstIds, "", "设置", "p:presentation", String.valueOf(0), false, dataInfoVOS); + String secondIds = getStringRandom(); + setSlideDataInfo(secondIds, firstIds, "幻灯片设置", "p:presentation", String.valueOf(0), true, dataInfoVOS); + + // 母版 +// String dFirstId = getStringRandom(); +// setPptxInfo("母版", "p:sld", "p:sld", filePath, dFirstId, "0", pptxInfoReqVos); + } catch (Exception e) { + throw new RuntimeException(e); + } + return dataInfoVOS; + } + + public static String getStringRandom() { + String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + Random random = new Random(); + StringBuilder sb = new StringBuilder(); + + // 生成指定长度的随机字符字符串 + for (int i = 0; i < 10; i++) { + int randomIndex = random.nextInt(characters.length()); + // 随机字符 + sb.append(characters.charAt(randomIndex)); + } + return sb.toString(); + } + + // 想数组中添加数据 + public static void setSlideDataInfo(String id, String parentId, String text, + String type, String index, boolean isTrue, List dataInfoVOS) throws Exception { + SlideDataInfoVO dataInfo = new SlideDataInfoVO(); + dataInfo.setId(id); + dataInfo.setParentId(parentId); + dataInfo.setName(text); + dataInfo.setType(type); + dataInfo.setIndex(index); + dataInfo.setClick(isTrue); + dataInfoVOS.add(dataInfo); + } +} diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/SlideMaster.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/SlideMaster.java new file mode 100644 index 00000000..70712f9a --- /dev/null +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/SlideMaster.java @@ -0,0 +1,6 @@ +package pc.exam.pp.module.judgement.utils.wps_pptx.pptx4j; + +public class SlideMaster { + + +} diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/vo/JudgementSlidesVO.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/vo/JudgementSlidesVO.java new file mode 100644 index 00000000..6b1e9405 --- /dev/null +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/vo/JudgementSlidesVO.java @@ -0,0 +1,17 @@ +package pc.exam.pp.module.judgement.utils.wps_pptx.pptx4j.vo; + +import lombok.Data; + +/** + * @author REN + */ +@Data +public class JudgementSlidesVO { + + // 考点 + private String content; + + // 考点名称 + private String contentIn; + +} diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/vo/SlideDataInfoVO.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/vo/SlideDataInfoVO.java new file mode 100644 index 00000000..97aa2678 --- /dev/null +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/utils/wps_pptx/pptx4j/vo/SlideDataInfoVO.java @@ -0,0 +1,19 @@ +package pc.exam.pp.module.judgement.utils.wps_pptx.pptx4j.vo; + +import lombok.Data; + +@Data +public class SlideDataInfoVO { + + private String name; + + private String type; + + private String id; + + private String parentId; + + private String index; + + private boolean isClick; +}