|
@@ -1,6 +1,7 @@
|
|
package com.qmth.distributed.print.business.util;
|
|
package com.qmth.distributed.print.business.util;
|
|
|
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
|
+import cn.hutool.core.util.ReflectUtil;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
@@ -8,7 +9,6 @@ import com.google.gson.Gson;
|
|
import com.qmth.distributed.print.business.bean.dto.*;
|
|
import com.qmth.distributed.print.business.bean.dto.*;
|
|
import com.qmth.distributed.print.business.cache.CreatePdfCacheUtil;
|
|
import com.qmth.distributed.print.business.cache.CreatePdfCacheUtil;
|
|
import com.qmth.distributed.print.business.entity.*;
|
|
import com.qmth.distributed.print.business.entity.*;
|
|
-import com.qmth.distributed.print.business.service.BasicCardRuleService;
|
|
|
|
import com.qmth.teachcloud.common.enums.DrawRuleEnum;
|
|
import com.qmth.teachcloud.common.enums.DrawRuleEnum;
|
|
import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
|
|
import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
|
|
import com.qmth.distributed.print.business.enums.PrintMethodEnum;
|
|
import com.qmth.distributed.print.business.enums.PrintMethodEnum;
|
|
@@ -824,14 +824,54 @@ public class CreatePdfUtil {
|
|
studentHtml = studentHtml.replaceAll("\\$\\{examRoom\\}", examDetail.getExamRoom());
|
|
studentHtml = studentHtml.replaceAll("\\$\\{examRoom\\}", examDetail.getExamRoom());
|
|
studentHtml = studentHtml.replaceAll("\\$\\{paperNumber\\}", examDetailCourse.getPaperNumber());
|
|
studentHtml = studentHtml.replaceAll("\\$\\{paperNumber\\}", examDetailCourse.getPaperNumber());
|
|
|
|
|
|
|
|
+ List<StudentExtendDto> studentExtendDtos = createExtendObject(t, basicCardRule);
|
|
|
|
+ for (StudentExtendDto extendDto : studentExtendDtos) {
|
|
|
|
+ studentHtml = studentHtml.replaceAll("\\$\\{"+extendDto.getFieldName()+"\\}", String.valueOf(extendDto.getValue()));
|
|
|
|
+ }
|
|
|
|
+
|
|
//学生题卡
|
|
//学生题卡
|
|
BasicAttachment examStudentAttachment = printCommonService.saveAttachmentHtml(examDetail.getSchoolId() + "|" + examDetailCourse.getCourseCode() + "|" + t.getTicketNumber(), studentHtml, userId, examStudentPdfList);
|
|
BasicAttachment examStudentAttachment = printCommonService.saveAttachmentHtml(examDetail.getSchoolId() + "|" + examDetailCourse.getCourseCode() + "|" + t.getTicketNumber(), studentHtml, userId, examStudentPdfList);
|
|
t.setAttachmentId(examStudentAttachment.getId());
|
|
t.setAttachmentId(examStudentAttachment.getId());
|
|
return examStudentAttachment;
|
|
return examStudentAttachment;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 题卡规则字段
|
|
|
|
+ * @param examStudent 考生对象
|
|
|
|
+ * @param basicCardRule 题卡规则对象
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
private List<StudentExtendDto> createExtendObject(ExamStudent examStudent, BasicCardRule basicCardRule){
|
|
private List<StudentExtendDto> createExtendObject(ExamStudent examStudent, BasicCardRule basicCardRule){
|
|
- return null;
|
|
|
|
|
|
+ List<JSONObject> requiredFieldsJson = JSONArray.parseArray(basicCardRule.getRequiredFields(), JSONObject.class);
|
|
|
|
+ Map<String, Object> studentExtendMap = JSONArray.parseArray(examStudent.getExtendFields(), JSONObject.class).stream().collect(Collectors.toMap(k -> String.valueOf(k.get("code")), v -> v.get("value")));
|
|
|
|
+ List<StudentExtendDto> studentExtendDtos = new ArrayList<>();
|
|
|
|
+ if(requiredFieldsJson.size() > 0){
|
|
|
|
+ for (JSONObject jsonObject : requiredFieldsJson) {
|
|
|
|
+ StudentExtendDto studentExtendDto = new StudentExtendDto();
|
|
|
|
+ String code = String.valueOf(jsonObject.get("code"));
|
|
|
|
+ studentExtendDto.setFieldName(code);
|
|
|
|
+ String upperCode = code.substring(0, 1).toUpperCase() + code.substring(1);
|
|
|
|
+ Object value = ReflectUtil.getFieldValue(examStudent, "get"+upperCode);
|
|
|
|
+ ReflectUtil.setFieldValue(studentExtendDto, "set"+ upperCode, value);
|
|
|
|
+ studentExtendDtos.add(studentExtendDto);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ List<JSONObject> extendFieldsJson = JSONArray.parseArray(basicCardRule.getExtendFields(), JSONObject.class);
|
|
|
|
+ if(extendFieldsJson.size() > 0){
|
|
|
|
+ for (JSONObject jsonObject : extendFieldsJson) {
|
|
|
|
+ StudentExtendDto studentExtendDto = new StudentExtendDto();
|
|
|
|
+ String code = String.valueOf(jsonObject.get("code"));
|
|
|
|
+ studentExtendDto.setFieldName(code);
|
|
|
|
+ String upperCode = code.substring(0, 1).toUpperCase() + code.substring(1);
|
|
|
|
+ Object value = ReflectUtil.getFieldValue(examStudent, "get"+upperCode);
|
|
|
|
+ if(value == null){
|
|
|
|
+ value = studentExtendMap.get(code);
|
|
|
|
+ }
|
|
|
|
+ ReflectUtil.setFieldValue(studentExtendDto, "set"+ upperCode, value);
|
|
|
|
+ studentExtendDtos.add(studentExtendDto);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return studentExtendDtos;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|