【新增】 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) {
slideIndexFoFile ++;
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();
List<Object> shapes = spTree.getSpOrGrpSpOrGraphicFrame();

View File

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