【新增】 PPTX考点优化(查询方式优化)

This commit is contained in:
dlaren
2025-08-18 15:16:03 +08:00
parent d4e6dbc78f
commit e7b4bf91ba
2 changed files with 30 additions and 27 deletions

View File

@@ -37,7 +37,7 @@ public class SlideConversion {
for (SlidePart slidePart : slideParts) { for (SlidePart slidePart : slideParts) {
slideIndexFoFile ++; slideIndexFoFile ++;
String secondId = getStringRandom(); String secondId = getStringRandom();
setSlideDataInfo(secondId, firstId, ""+slideIndexFoFile+"", "sld", String.valueOf(slideIndexFoFile), true, dataInfoVOS); setSlideDataInfo(secondId, firstId, ""+slideIndexFoFile+"", "sld", String.valueOf(slideIndexFoFile), false, dataInfoVOS);
// 获取形状 // 获取形状
GroupShape spTree = slidePart.getJaxbElement().getCSld().getSpTree(); GroupShape spTree = slidePart.getJaxbElement().getCSld().getSpTree();
List<Object> shapes = spTree.getSpOrGrpSpOrGraphicFrame(); List<Object> shapes = spTree.getSpOrGrpSpOrGraphicFrame();

View File

@@ -50,9 +50,9 @@ public class SlideMaster {
List<SlidePart> slideParts = ppt.getMainPresentationPart().getSlideParts(); List<SlidePart> slideParts = ppt.getMainPresentationPart().getSlideParts();
int slideIndexFoFile = 0; int slideIndexFoFile = 0;
for (SlidePart slidePart : slideParts) { for (SlidePart slidePart : slideParts) {
slideIndexFoFile++;
if (method.equals("shape")) { if (method.equals("shape")) {
// 获取幻灯片内容 // 获取幻灯片内容
slideIndexFoFile++;
if (slideIndex.equals(String.valueOf(slideIndexFoFile))) { if (slideIndex.equals(String.valueOf(slideIndexFoFile))) {
// 查询幻灯片 // 查询幻灯片
// 遍历 shape tree 中的 spshape元素 // 遍历 shape tree 中的 spshape元素
@@ -73,11 +73,13 @@ public class SlideMaster {
// 实际参数值 // 实际参数值
Object[] arguments = {shape, timing}; Object[] arguments = {shape, timing};
String value = (String) methodWithArgs.invoke(shapeFunction, arguments); String value = (String) methodWithArgs.invoke(shapeFunction, arguments);
JudgementSlidesVO judgementSlidesVO = new JudgementSlidesVO(); if (!value.isEmpty()) {
judgementSlidesVO.setContent(content + "@" + value); JudgementSlidesVO judgementSlidesVO = new JudgementSlidesVO();
judgementSlidesVO.setContentIn(firstName + examName + value); judgementSlidesVO.setContent(content + "@" + value);
judgementSlidesVO.setScoreRate(1); judgementSlidesVO.setContentIn(firstName + examName + value);
judgementSlidesVOS.add(judgementSlidesVO); judgementSlidesVO.setScoreRate(1);
judgementSlidesVOS.add(judgementSlidesVO);
}
} }
} else if (shapeObj instanceof Pic pic) { } else if (shapeObj instanceof Pic pic) {
if (shapeIndex.equals(String.valueOf(shapeIndexFoFile))) { if (shapeIndex.equals(String.valueOf(shapeIndexFoFile))) {
@@ -90,38 +92,39 @@ public class SlideMaster {
// 实际参数值 // 实际参数值
Object[] arguments = {pic, timing}; Object[] arguments = {pic, timing};
String value = (String) methodWithArgs.invoke(shapePicFunction, arguments); String value = (String) methodWithArgs.invoke(shapePicFunction, arguments);
JudgementSlidesVO judgementSlidesVO = new JudgementSlidesVO(); if (!value.isEmpty()) {
judgementSlidesVO.setContent(content + "@" + value); JudgementSlidesVO judgementSlidesVO = new JudgementSlidesVO();
judgementSlidesVO.setContentIn(firstName + examName + value); judgementSlidesVO.setContent(content + "@" + value);
judgementSlidesVO.setScoreRate(1); judgementSlidesVO.setContentIn(firstName + examName + value);
judgementSlidesVOS.add(judgementSlidesVO); judgementSlidesVO.setScoreRate(1);
judgementSlidesVOS.add(judgementSlidesVO);
}
} }
} }
} }
} }
} }
if (method.equals("slideSetting")) { if (method.equals("slideSetting")) {
SlideSetting slideSettingFunction = new SlideSetting(); if (slideIndex.equals(String.valueOf(slideIndexFoFile))) {
Class<?>[] paramTypes = {SlidePart.class, PresentationMLPackage.class}; SlideSetting slideSettingFunction = new SlideSetting();
Method methodWithArgs = slideSettingFunction.getClass().getMethod(function, paramTypes); Class<?>[] paramTypes = {SlidePart.class, PresentationMLPackage.class};
Object[] arguments = {slidePart, ppt}; Method methodWithArgs = slideSettingFunction.getClass().getMethod(function, paramTypes);
String value = (String) methodWithArgs.invoke(slideSettingFunction, arguments); Object[] arguments = {slidePart, ppt};
JudgementSlidesVO judgementSlidesVO = new JudgementSlidesVO(); String value = (String) methodWithArgs.invoke(slideSettingFunction, arguments);
judgementSlidesVO.setContent(content + "@" + value); if (!value.isEmpty()) {
judgementSlidesVO.setContentIn(firstName + examName + value); JudgementSlidesVO judgementSlidesVO = new JudgementSlidesVO();
judgementSlidesVO.setScoreRate(1); judgementSlidesVO.setContent(content + "@" + value);
judgementSlidesVOS.add(judgementSlidesVO); judgementSlidesVO.setContentIn(firstName + examName + value);
judgementSlidesVO.setScoreRate(1);
judgementSlidesVOS.add(judgementSlidesVO);
}
}
} }
} }
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return judgementSlidesVOS; return judgementSlidesVOS;
} }
} }