Răsfoiți Sursa

Merge remote-tracking branch 'origin/dev_v3.0.0' into dev_v3.0.0

wangliang 3 ani în urmă
părinte
comite
7fe8838d94

+ 32 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/ExamDetailList.java

@@ -5,11 +5,14 @@ package com.qmth.distributed.print.business.bean.params;
  */
 public class ExamDetailList {
 
-    String classId;
-    String className;
-    Integer studentCount;
-    Long printHouseId;
-    String extendFields;
+    private String examPlace;
+    private String examRoom;
+    private String classId;
+    private String className;
+    private Integer studentCount;
+    private Long printHouseId;
+    private String printHouseName;
+    private String extendFields;
 
     public String getClassId() {
         return classId;
@@ -43,6 +46,30 @@ public class ExamDetailList {
         this.printHouseId = printHouseId;
     }
 
+    public String getExamPlace() {
+        return examPlace;
+    }
+
+    public void setExamPlace(String examPlace) {
+        this.examPlace = examPlace;
+    }
+
+    public String getExamRoom() {
+        return examRoom;
+    }
+
+    public void setExamRoom(String examRoom) {
+        this.examRoom = examRoom;
+    }
+
+    public String getPrintHouseName() {
+        return printHouseName;
+    }
+
+    public void setPrintHouseName(String printHouseName) {
+        this.printHouseName = printHouseName;
+    }
+
     public String getExtendFields() {
         return extendFields;
     }

+ 27 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/params/ExamDetailParams.java

@@ -9,6 +9,9 @@ public class ExamDetailParams {
 
     private Long examStartTime;
     private Long examEndTime;
+    private String paperNumber;
+    private String courseCode;
+    private String courseName;
     private List<ExamDetailList> list;
 
     public Long getExamStartTime() {
@@ -27,6 +30,30 @@ public class ExamDetailParams {
         this.examEndTime = examEndTime;
     }
 
+    public String getPaperNumber() {
+        return paperNumber;
+    }
+
+    public void setPaperNumber(String paperNumber) {
+        this.paperNumber = paperNumber;
+    }
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
     public List<ExamDetailList> getList() {
         return list;
     }

+ 11 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamStudent.java

@@ -66,6 +66,9 @@ public class ExamStudent extends BaseEntity implements Serializable {
     @TableField("clazz_name")
     private String clazzName;
 
+    @TableField("campus_name")
+    private String campusName;
+
     @JsonSerialize(using = ToStringSerializer.class)
     @ApiModelProperty(value = "附件id")
     @TableField(value = "attachment_id")
@@ -197,4 +200,12 @@ public class ExamStudent extends BaseEntity implements Serializable {
     public void setSyncStatus(Boolean syncStatus) {
         this.syncStatus = syncStatus;
     }
+
+    public String getCampusName() {
+        return campusName;
+    }
+
+    public void setCampusName(String campusName) {
+        this.campusName = campusName;
+    }
 }

+ 0 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/BasicExamServiceImpl.java

@@ -75,7 +75,6 @@ public class BasicExamServiceImpl extends ServiceImpl<BasicExamMapper, BasicExam
     @Transactional
     @Override
     public boolean deleteBasicExamById(Long id) {
-        // todo 学期改为考试ID
         List<ExamPrintPlan> examPrintPlanList = examPrintPlanService.list(new QueryWrapper<ExamPrintPlan>().lambda().eq(ExamPrintPlan::getExamId, id));
         if (examPrintPlanList.size() > 0) {
             throw ExceptionResultEnum.ERROR.exception("考试已被绑定,不能删除");

+ 3 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -728,7 +728,6 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         }
         this.saveBatch(list);
         for (ExamTask examTask : list) {
-            // TODO: 2022/2/23 先不走流程
             examTask.setReview(false);
             if (examTask.getReview() && Objects.nonNull(examTask.getUserId()) && Objects.isNull(examTask.getFlowId())) {
                 Map<String, Object> map = new HashMap<>();
@@ -1722,15 +1721,15 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 examDetail.setOrgId(sysUser.getOrgId());
                 examDetail.setPrintPlanId(examPrintPlan.getId());
                 examDetail.setPrintPlanName(examPrintPlan.getName());
-                examDetail.setExamPlace("考点" + i);
-                examDetail.setExamRoom("考场" + i);
+                examDetail.setExamPlace(StringUtils.isBlank(examDetailList.getExamPlace()) ? "考点" + i : examDetailList.getExamPlace()); // 默认填充班级所在校区
+                examDetail.setExamRoom(StringUtils.isBlank(examDetailList.getExamRoom()) ? examDetailList.getClassName() : examDetailList.getExamRoom()); // 默认填充班级
                 examDetail.setStatus(ExamDetailStatusEnum.NEW);
                 examDetail.setExamStartTime(examDetailParams.getExamStartTime());
                 examDetail.setExamEndTime(examDetailParams.getExamEndTime());
                 examDetail.setTotalSubjects(examDetailList.getStudentCount());
                 examDetail.setExamDataSource(ExamDataSourceEnum.EXAM_TASK);
                 examDetail.setNormal(true);
-                examDetail.setPrintHouseId(Long.valueOf(examDetailList.getPrintHouseId()));
+                examDetail.setPrintHouseId(examDetailList.getPrintHouseId());
                 examDetail.setCreateId(sysUser.getId());
                 examDetail.setCreateTime(System.currentTimeMillis());
                 examDetailService.save(examDetail);

+ 16 - 13
distributed-print-business/src/main/java/com/qmth/distributed/print/business/util/CreatePdfUtil.java

@@ -813,7 +813,7 @@ public class CreatePdfUtil {
         studentHtml = studentHtml.replaceAll("\\$\\{examTime\\}", examTime);
         studentHtml = studentHtml.replaceAll("\\$\\{ticketNumber\\}", t.getTicketNumber());
         studentHtml = studentHtml.replaceAll("\\$\\{siteNumber\\}", t.getSiteNumber());
-        if(StringUtils.isNotEmpty(t.getPaperType())) {
+        if (StringUtils.isNotEmpty(t.getPaperType())) {
             studentHtml = studentHtml.replaceAll("\\$\\{paperTypeName\\}", t.getPaperType());
         }
         studentHtml = studentHtml.replaceAll("\\$\\{studentCode\\}", t.getStudentCode());
@@ -826,7 +826,7 @@ public class CreatePdfUtil {
 
         List<StudentExtendDto> studentExtendDtos = createExtendObject(t, basicCardRule);
         for (StudentExtendDto extendDto : studentExtendDtos) {
-            studentHtml = studentHtml.replaceAll("\\$\\{"+extendDto.getFieldName()+"\\}", String.valueOf(extendDto.getValue()));
+            studentHtml = studentHtml.replaceAll("\\$\\{" + extendDto.getFieldName() + "\\}", String.valueOf(extendDto.getValue()));
         }
 
         //学生题卡
@@ -837,37 +837,40 @@ public class CreatePdfUtil {
 
     /**
      * 题卡规则字段
-     * @param examStudent 考生对象
+     *
+     * @param examStudent   考生对象
      * @param basicCardRule 题卡规则对象
      * @return
      */
-    private List<StudentExtendDto> createExtendObject(ExamStudent examStudent, BasicCardRule basicCardRule){
+    private List<StudentExtendDto> createExtendObject(ExamStudent examStudent, BasicCardRule basicCardRule) {
         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){
+        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);
+                Object value = ReflectUtil.getFieldValue(examStudent, code);
+                studentExtendDto.setValue(value == null ? "" : value);
                 studentExtendDtos.add(studentExtendDto);
             }
         }
         List<JSONObject> extendFieldsJson = JSONArray.parseArray(basicCardRule.getExtendFields(), JSONObject.class);
-        if(extendFieldsJson.size() > 0){
+        if (extendFieldsJson.size() > 0) {
             for (JSONObject jsonObject : extendFieldsJson) {
+                boolean enable = Boolean.parseBoolean(jsonObject.get("enable").toString());
+                if (!enable) {
+                    continue;
+                }
                 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){
+                Object value = ReflectUtil.getFieldValue(examStudent, code);
+                if (value == null) {
                     value = studentExtendMap.get(code);
                 }
-                ReflectUtil.setFieldValue(studentExtendDto, "set"+ upperCode, value);
+                studentExtendDto.setValue(value == null ? "" : value);
                 studentExtendDtos.add(studentExtendDto);
             }
         }

+ 8 - 4
distributed-print-business/src/main/resources/mapper/ExamStudentMapper.xml

@@ -23,9 +23,9 @@
         school_id, exam_detail_course_id, student_name, student_code, ticket_number, site_number, print_paper, print_card, extend_fields, paper_type
     </sql>
     <insert id="insertBatch">
-        insert into exam_student (id, school_id, org_id, exam_detail_course_id, student_name, student_code, ticket_number, site_number, extend_fields, clazz_id, clazz_name, create_id) values
+        insert into exam_student (id, school_id, org_id, exam_detail_course_id, student_name, student_code, ticket_number, site_number, extend_fields, clazz_id, clazz_name, campus_name, create_id) values
         <foreach collection="examStudents" separator="," item="item">
-            (#{item.id}, #{item.schoolId}, #{item.orgId}, #{item.examDetailCourseId}, #{item.studentName}, #{item.studentCode}, #{item.ticketNumber}, #{item.siteNumber}, #{item.extendFields}, #{item.clazzId}, #{item.clazzName}, #{item.createId})
+            (#{item.id}, #{item.schoolId}, #{item.orgId}, #{item.examDetailCourseId}, #{item.studentName}, #{item.studentCode}, #{item.ticketNumber}, #{item.siteNumber}, #{item.extendFields}, #{item.clazzId}, #{item.clazzName}, #{item.campusName}, #{item.createId})
         </foreach>
     </insert>
     <select id="getStudentDetail" resultType="java.util.Map">
@@ -129,10 +129,12 @@
                  bs.student_code AS studentCode,
                  bs.student_name AS studentName,
                  bs.clazz_id AS clazzId,
-                 bc.clazz_name AS clazzName
+                 bc.clazz_name AS clazzName,
+                 bca.campus_name campusName
              FROM
                  basic_student bs
                      INNER JOIN basic_clazz bc ON bs.clazz_id = bc.id
+                    LEFT JOIN basic_campus bca ON bs.campus_id = bca.id
             <where>
                 <if test="schoolId != null and schoolId != ''">
                     AND bs.school_id = #{schoolId}
@@ -147,10 +149,12 @@
                 ts.student_code AS studentCode,
                 ts.student_name AS studentName,
                 ts.teach_clazz_id AS clazzId,
-                tc.teach_clazz_name AS clazzName
+                tc.teach_clazz_name AS clazzName,
+                bca.campus_name campusName
              FROM
                  teach_student ts
                     INNER JOIN teach_clazz tc ON ts.teach_clazz_id = tc.id
+                    LEFT JOIN basic_campus bca ON ts.campus_id = bca.id
             <where>
                 <if test="schoolId != null and schoolId != ''">
                     AND ts.school_id = #{schoolId}