|
@@ -8,14 +8,13 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.qmth.boot.core.exception.ParameterException;
|
|
|
import com.qmth.teachcloud.common.bean.dto.mark.PictureConfig;
|
|
|
+import com.qmth.teachcloud.mark.bean.vo.parseCard.pic.SubPictureConfig;
|
|
|
|
|
|
import javax.imageio.ImageIO;
|
|
|
import java.awt.*;
|
|
|
import java.io.ByteArrayInputStream;
|
|
|
import java.io.IOException;
|
|
|
-import java.util.Base64;
|
|
|
-import java.util.Collections;
|
|
|
-import java.util.LinkedList;
|
|
|
+import java.util.*;
|
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
@@ -63,7 +62,7 @@ public class CardFile {
|
|
|
this.pages = pages;
|
|
|
}
|
|
|
|
|
|
- public static String getMarkConfigAdd(List<PictureConfig> list, double position) {
|
|
|
+ public static String getMarkConfigAddPic(List<PictureConfig> list, double position) {
|
|
|
for (PictureConfig configItem : list) {
|
|
|
if (configItem.getX() < position) {
|
|
|
double calcW = configItem.getX() + configItem.getW() + position;
|
|
@@ -86,6 +85,40 @@ public class CardFile {
|
|
|
return JSON.toJSONString(list);
|
|
|
}
|
|
|
|
|
|
+ public static String getMarkConfigAdd(List<SubPictureConfig> list, double position) {
|
|
|
+ List<PictureConfig> configList = new ArrayList<>();
|
|
|
+ for (SubPictureConfig configItem : list) {
|
|
|
+ // 填空题,不扩宽评卷区
|
|
|
+ if (configItem.getQuestionType() != 4) {
|
|
|
+ if (configItem.getX() < position) {
|
|
|
+ double calcW = configItem.getX() + configItem.getW() + position;
|
|
|
+ configItem.setW(calcW <= 1 ? configItem.getW() + position : 1 - configItem.getX());
|
|
|
+ } else {
|
|
|
+ configItem.setX(configItem.getX() - position);
|
|
|
+ double calcW = configItem.getX() + configItem.getW() + position * 2;
|
|
|
+ configItem.setW(calcW <= 1 ? configItem.getW() + position * 2 : 1 - configItem.getX());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (configItem.getY() < position) {
|
|
|
+ double calcH = configItem.getY() + configItem.getH() + position;
|
|
|
+ configItem.setH(calcH <= 1 ? configItem.getH() + position : 1 - configItem.getY());
|
|
|
+ } else {
|
|
|
+ configItem.setY(configItem.getY() - position);
|
|
|
+ double calcH = configItem.getY() + configItem.getH() + position * 2;
|
|
|
+ configItem.setH(calcH <= 1 ? configItem.getH() + position * 2 : 1 - configItem.getH());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ PictureConfig pictureConfig = new PictureConfig();
|
|
|
+ pictureConfig.setI(configItem.getI());
|
|
|
+ pictureConfig.setX(configItem.getX());
|
|
|
+ pictureConfig.setY(configItem.getY());
|
|
|
+ pictureConfig.setW(configItem.getW());
|
|
|
+ pictureConfig.setH(configItem.getH());
|
|
|
+ configList.add(pictureConfig);
|
|
|
+ }
|
|
|
+ return JSON.toJSONString(configList);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 解析卡格式文件中的裁切图坐标,用于云阅卷同步
|
|
|
*
|
|
@@ -215,7 +248,7 @@ public class CardFile {
|
|
|
// System.out.println(JSON.toJSONString(cardFile));
|
|
|
String position = "[{\"h\":0.0958003565,\"i\":1,\"w\":0.4472534678,\"x\":0.0484413619,\"y\":0.8019215686},{\"h\":0.054802139,\"i\":1,\"w\":0.4472534678,\"x\":0.0484413619,\"y\":0.8937219251}]";
|
|
|
List<PictureConfig> list = JSON.parseArray(position, PictureConfig.class);
|
|
|
- String markConfigAdd = getMarkConfigAdd(list, 0.015);
|
|
|
+// String markConfigAdd = getMarkConfigAdd(list, 0.015);
|
|
|
System.out.println(11);
|
|
|
} catch (Exception e) {
|
|
|
throw new RuntimeException(e);
|