Browse Source

fix:命题计划统计更改

caozixuan 3 years ago
parent
commit
d6d99caac4

+ 103 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ClazzContentDto.java

@@ -0,0 +1,103 @@
+package com.qmth.distributed.print.business.bean.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.distributed.print.business.enums.ClazzContentEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Description: 命题计划统计表班级内容详细细心
+ * @Author: CaoZixuan
+ * @Date: 2022-04-26
+ */
+public class ClazzContentDto {
+    @ApiModelProperty(value = "班级id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long clazzId;
+
+    @ApiModelProperty(value = "班级名称")
+    private String clazzName;
+
+    @ApiModelProperty(value = "任课老师名称")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long examPrintPlanId;
+
+    @ApiModelProperty(value = "任课老师名称")
+    private String examPrintPlanName;
+
+    @ApiModelProperty(value = "任课老师名称")
+    private String paperNumber;
+
+    @ApiModelProperty(value = "任课老师名称")
+    private ClazzContentEnum status;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "学生数量")
+    private Integer studentCount;
+
+    public Long getClazzId() {
+        return clazzId;
+    }
+
+    public void setClazzId(Long clazzId) {
+        this.clazzId = clazzId;
+    }
+
+    public String getClazzName() {
+        return clazzName;
+    }
+
+    public void setClazzName(String clazzName) {
+        this.clazzName = clazzName;
+    }
+
+    public Long getExamPrintPlanId() {
+        return examPrintPlanId;
+    }
+
+    public void setExamPrintPlanId(Long examPrintPlanId) {
+        this.examPrintPlanId = examPrintPlanId;
+    }
+
+    public String getExamPrintPlanName() {
+        return examPrintPlanName;
+    }
+
+    public void setExamPrintPlanName(String examPrintPlanName) {
+        this.examPrintPlanName = examPrintPlanName;
+    }
+
+    public String getPaperNumber() {
+        return paperNumber;
+    }
+
+    public void setPaperNumber(String paperNumber) {
+        this.paperNumber = paperNumber;
+    }
+
+    public ClazzContentEnum getStatus() {
+        return status;
+    }
+
+    public void setStatus(ClazzContentEnum status) {
+        this.status = status;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Integer getStudentCount() {
+        return studentCount;
+    }
+
+    public void setStudentCount(Integer studentCount) {
+        this.studentCount = studentCount;
+    }
+}

+ 141 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ExamTaskPlanStatisticDto.java

@@ -0,0 +1,141 @@
+package com.qmth.distributed.print.business.bean.dto;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 命题计划统计Dto
+ * @Author: CaoZixuan
+ * @Date: 2022-04-25
+ */
+public class ExamTaskPlanStatisticDto implements Serializable {
+
+    @ApiModelProperty(value = "考试id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long examId;
+
+    @ApiModelProperty(value = "印刷计划id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long examPrintPlanId;
+
+    @ApiModelProperty(value = "印刷计划名称")
+    private String examPrintPlanName;
+
+    @ApiModelProperty(value = "考场表id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long examDetailId;
+
+    @ApiModelProperty(value = "考场表印刷状态")
+    private ExamDetailStatusEnum examDetailStatus;
+
+    @ApiModelProperty(value = "考试科目表id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long examDetailCourseId;
+
+    @ApiModelProperty(value = "试卷编号")
+    private String paperNumber;
+
+    @ApiModelProperty(value = "课程编号")
+    private String courseCode;
+
+    @ApiModelProperty(value = "课程名称")
+    private String courseName;
+
+    @ApiModelProperty(value = "班级名称逗号隔开")
+    private String clazzIds;
+
+    @ApiModelProperty(value = "学生数量")
+    private Integer studentCount;
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
+    public Long getExamPrintPlanId() {
+        return examPrintPlanId;
+    }
+
+    public void setExamPrintPlanId(Long examPrintPlanId) {
+        this.examPrintPlanId = examPrintPlanId;
+    }
+
+    public String getExamPrintPlanName() {
+        return examPrintPlanName;
+    }
+
+    public void setExamPrintPlanName(String examPrintPlanName) {
+        this.examPrintPlanName = examPrintPlanName;
+    }
+
+    public Long getExamDetailId() {
+        return examDetailId;
+    }
+
+    public void setExamDetailId(Long examDetailId) {
+        this.examDetailId = examDetailId;
+    }
+
+    public ExamDetailStatusEnum getExamDetailStatus() {
+        return examDetailStatus;
+    }
+
+    public void setExamDetailStatus(ExamDetailStatusEnum examDetailStatus) {
+        this.examDetailStatus = examDetailStatus;
+    }
+
+    public Long getExamDetailCourseId() {
+        return examDetailCourseId;
+    }
+
+    public void setExamDetailCourseId(Long examDetailCourseId) {
+        this.examDetailCourseId = examDetailCourseId;
+    }
+
+    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 String getClazzIds() {
+        return clazzIds;
+    }
+
+    public void setClazzIds(String clazzIds) {
+        this.clazzIds = clazzIds;
+    }
+
+    public Integer getStudentCount() {
+        return studentCount;
+    }
+
+    public void setStudentCount(Integer studentCount) {
+        this.studentCount = studentCount;
+    }
+}

+ 171 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/TCStatisticResult.java

@@ -0,0 +1,171 @@
+package com.qmth.distributed.print.business.bean.result;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.distributed.print.business.enums.StatisticsStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 命题计划统计返回对象
+ * @Author: CaoZixuan
+ * @Date: 2022-04-26
+ */
+public class TCStatisticResult implements Serializable {
+    @ApiModelProperty(value = "命题计划统计表id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "考试id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long examId;
+
+    @ApiModelProperty(value = "考试名称")
+    private String examName;
+
+    @ApiModelProperty(value = "开课学院")
+    private String collegeName;
+
+    @ApiModelProperty(value = "开课教研室")
+    private String teachingRoom;
+
+    @ApiModelProperty(value = "课程代码")
+    private String courseCode;
+
+    @ApiModelProperty(value = "课程名称")
+    private String courseName;
+
+    @ApiModelProperty(value = "任课教师")
+    private String teacher;
+
+    @ApiModelProperty(value = "班级名称")
+    private String clazzNames;
+
+    @ApiModelProperty(value = "试卷编号")
+    private String paperNumber;
+
+    @ApiModelProperty(value = "印刷计划")
+    private String examPrintPlanName;
+
+    @ApiModelProperty(value = "总印份数(学生数)")
+    private String studentCount;
+
+    @ApiModelProperty(value = "总控状态")
+    private StatisticsStatusEnum status;
+
+    @ApiModelProperty(value = "班级详细信息")
+    private String clazzContent;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
+    public String getExamName() {
+        return examName;
+    }
+
+    public void setExamName(String examName) {
+        this.examName = examName;
+    }
+
+    public String getCollegeName() {
+        return collegeName;
+    }
+
+    public void setCollegeName(String collegeName) {
+        this.collegeName = collegeName;
+    }
+
+    public String getTeachingRoom() {
+        return teachingRoom;
+    }
+
+    public void setTeachingRoom(String teachingRoom) {
+        this.teachingRoom = teachingRoom;
+    }
+
+    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 String getTeacher() {
+        return teacher;
+    }
+
+    public void setTeacher(String teacher) {
+        this.teacher = teacher;
+    }
+
+    public String getClazzNames() {
+        return clazzNames;
+    }
+
+    public void setClazzNames(String clazzNames) {
+        this.clazzNames = clazzNames;
+    }
+
+    public String getPaperNumber() {
+        return paperNumber;
+    }
+
+    public void setPaperNumber(String paperNumber) {
+        this.paperNumber = paperNumber;
+    }
+
+    public String getExamPrintPlanName() {
+        return examPrintPlanName;
+    }
+
+    public void setExamPrintPlanName(String examPrintPlanName) {
+        this.examPrintPlanName = examPrintPlanName;
+    }
+
+    public String getStudentCount() {
+        return studentCount;
+    }
+
+    public void setStudentCount(String studentCount) {
+        this.studentCount = studentCount;
+    }
+
+    public StatisticsStatusEnum getStatus() {
+        return status;
+    }
+
+    public void setStatus(StatisticsStatusEnum status) {
+        this.status = status;
+    }
+
+    public String getClazzContent() {
+        return clazzContent;
+    }
+
+    public void setClazzContent(String clazzContent) {
+        this.clazzContent = clazzContent;
+    }
+}

+ 37 - 12
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TCStatistics.java

@@ -2,12 +2,14 @@ package com.qmth.distributed.print.business.entity;
 
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.distributed.print.business.bean.dto.ClazzContentDto;
 import com.qmth.distributed.print.business.enums.StatisticsStatusEnum;
 import com.qmth.distributed.print.business.enums.StatisticsStatusEnum;
 import com.qmth.teachcloud.common.base.BaseEntity;
 import com.qmth.teachcloud.common.base.BaseEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 
 
 import java.io.Serializable;
 import java.io.Serializable;
+import java.util.List;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -22,6 +24,10 @@ public class TCStatistics extends BaseEntity implements Serializable {
 
 
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 
+    @ApiModelProperty(value = "考试id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long examId;
+
     @ApiModelProperty(value = "开课学院id")
     @ApiModelProperty(value = "开课学院id")
     @JsonSerialize(using = ToStringSerializer.class)
     @JsonSerialize(using = ToStringSerializer.class)
     private Long collegeId;
     private Long collegeId;
@@ -47,7 +53,7 @@ public class TCStatistics extends BaseEntity implements Serializable {
 
 
     @ApiModelProperty(value = "班级id")
     @ApiModelProperty(value = "班级id")
     @JsonSerialize(using = ToStringSerializer.class)
     @JsonSerialize(using = ToStringSerializer.class)
-    private Long clazzId;
+    private String clazzIds;
 
 
     @ApiModelProperty(value = "班级名称")
     @ApiModelProperty(value = "班级名称")
     private String clazzName;
     private String clazzName;
@@ -61,11 +67,11 @@ public class TCStatistics extends BaseEntity implements Serializable {
 
 
     @ApiModelProperty(name = "考务数据明细id")
     @ApiModelProperty(name = "考务数据明细id")
     @JsonSerialize(using = ToStringSerializer.class)
     @JsonSerialize(using = ToStringSerializer.class)
-    String examDetailCourseIds;
+    private String examDetailCourseIds;
 
 
     @ApiModelProperty(name = "命题任务明细id")
     @ApiModelProperty(name = "命题任务明细id")
     @JsonSerialize(using = ToStringSerializer.class)
     @JsonSerialize(using = ToStringSerializer.class)
-    String examTaskDetailIds;
+    private String examTaskDetailIds;
 
 
     @ApiModelProperty(value = "批次号")
     @ApiModelProperty(value = "批次号")
     private String batchNo;
     private String batchNo;
@@ -78,7 +84,10 @@ public class TCStatistics extends BaseEntity implements Serializable {
 
 
     @ApiModelProperty(name = "命题明细id")
     @ApiModelProperty(name = "命题明细id")
     @JsonSerialize(using = ToStringSerializer.class)
     @JsonSerialize(using = ToStringSerializer.class)
-    Long examDetailId;
+    private Long examDetailId;
+
+    @ApiModelProperty(name = "班级详细信息")
+    private String clazzContent;
 
 
     public TCStatistics() {
     public TCStatistics() {
 
 
@@ -91,7 +100,7 @@ public class TCStatistics extends BaseEntity implements Serializable {
                         String courseName,
                         String courseName,
                         String courseCode,
                         String courseCode,
                         String teacherName,
                         String teacherName,
-                        Long clazzId,
+                        String clazzIds,
                         String clazzName,
                         String clazzName,
                         String batchNo,
                         String batchNo,
                         Long userId) {
                         Long userId) {
@@ -103,7 +112,7 @@ public class TCStatistics extends BaseEntity implements Serializable {
         this.courseName = courseName;
         this.courseName = courseName;
         this.courseCode = courseCode;
         this.courseCode = courseCode;
         this.teacherName = teacherName;
         this.teacherName = teacherName;
-        this.clazzId = clazzId;
+        this.clazzIds = clazzIds;
         this.clazzName = clazzName;
         this.clazzName = clazzName;
         this.batchNo = batchNo;
         this.batchNo = batchNo;
     }
     }
@@ -115,7 +124,7 @@ public class TCStatistics extends BaseEntity implements Serializable {
                         String courseName,
                         String courseName,
                         String courseCode,
                         String courseCode,
                         String teacherName,
                         String teacherName,
-                        Long clazzId,
+                        String clazzIds,
                         String clazzName,
                         String clazzName,
                         String batchNo,
                         String batchNo,
                         String paperNumber,
                         String paperNumber,
@@ -131,7 +140,7 @@ public class TCStatistics extends BaseEntity implements Serializable {
         this.courseName = courseName;
         this.courseName = courseName;
         this.courseCode = courseCode;
         this.courseCode = courseCode;
         this.teacherName = teacherName;
         this.teacherName = teacherName;
-        this.clazzId = clazzId;
+        this.clazzIds = clazzIds;
         this.clazzName = clazzName;
         this.clazzName = clazzName;
         this.batchNo = batchNo;
         this.batchNo = batchNo;
         this.paperNumber = paperNumber;
         this.paperNumber = paperNumber;
@@ -148,6 +157,14 @@ public class TCStatistics extends BaseEntity implements Serializable {
         updateInfo(userId);
         updateInfo(userId);
     }
     }
 
 
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
     public Long getExamDetailId() {
     public Long getExamDetailId() {
         return examDetailId;
         return examDetailId;
     }
     }
@@ -264,12 +281,12 @@ public class TCStatistics extends BaseEntity implements Serializable {
         this.teacherName = teacherName;
         this.teacherName = teacherName;
     }
     }
 
 
-    public Long getClazzId() {
-        return clazzId;
+    public String getClazzIds() {
+        return clazzIds;
     }
     }
 
 
-    public void setClazzId(Long clazzId) {
-        this.clazzId = clazzId;
+    public void setClazzIds(String clazzIds) {
+        this.clazzIds = clazzIds;
     }
     }
 
 
     public String getPaperNumber() {
     public String getPaperNumber() {
@@ -287,4 +304,12 @@ public class TCStatistics extends BaseEntity implements Serializable {
     public void setPrintPlanId(Long printPlanId) {
     public void setPrintPlanId(Long printPlanId) {
         this.printPlanId = printPlanId;
         this.printPlanId = printPlanId;
     }
     }
+
+    public String getClazzContent() {
+        return clazzContent;
+    }
+
+    public void setClazzContent(String clazzContent) {
+        this.clazzContent = clazzContent;
+    }
 }
 }

+ 24 - 10
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TCStatisticsTemp.java

@@ -22,6 +22,10 @@ public class TCStatisticsTemp extends BaseEntity implements Serializable {
 
 
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 
+    @ApiModelProperty(value = "考试id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long examId;
+
     @ApiModelProperty(value = "开课学院id")
     @ApiModelProperty(value = "开课学院id")
     @JsonSerialize(using = ToStringSerializer.class)
     @JsonSerialize(using = ToStringSerializer.class)
     private Long collegeId;
     private Long collegeId;
@@ -47,7 +51,7 @@ public class TCStatisticsTemp extends BaseEntity implements Serializable {
 
 
     @ApiModelProperty(value = "班级id")
     @ApiModelProperty(value = "班级id")
     @JsonSerialize(using = ToStringSerializer.class)
     @JsonSerialize(using = ToStringSerializer.class)
-    private Long clazzId;
+    private String clazzIds;
 
 
     @ApiModelProperty(value = "班级名称")
     @ApiModelProperty(value = "班级名称")
     private String clazzName;
     private String clazzName;
@@ -81,18 +85,20 @@ public class TCStatisticsTemp extends BaseEntity implements Serializable {
 
 
     }
     }
 
 
-    public TCStatisticsTemp(Long collegeId,
+    public TCStatisticsTemp(Long examId,
+                            Long collegeId,
                             String collegeName,
                             String collegeName,
                             Long teachingRoomId,
                             Long teachingRoomId,
                             String teachingRoomName,
                             String teachingRoomName,
                             String courseName,
                             String courseName,
                             String courseCode,
                             String courseCode,
                             String teacherName,
                             String teacherName,
-                            Long clazzId,
+                            String clazzIds,
                             String clazzName,
                             String clazzName,
                             String batchNo,
                             String batchNo,
                             Long userId) {
                             Long userId) {
         insertInfo(userId);
         insertInfo(userId);
+        this.examId = examId;
         this.collegeId = collegeId;
         this.collegeId = collegeId;
         this.collegeName = collegeName;
         this.collegeName = collegeName;
         this.teachingRoomId = teachingRoomId;
         this.teachingRoomId = teachingRoomId;
@@ -100,7 +106,7 @@ public class TCStatisticsTemp extends BaseEntity implements Serializable {
         this.courseName = courseName;
         this.courseName = courseName;
         this.courseCode = courseCode;
         this.courseCode = courseCode;
         this.teacherName = teacherName;
         this.teacherName = teacherName;
-        this.clazzId = clazzId;
+        this.clazzIds = clazzIds;
         this.clazzName = clazzName;
         this.clazzName = clazzName;
         this.batchNo = batchNo;
         this.batchNo = batchNo;
         this.dataSource = DataSourceEnum.IMPORT;
         this.dataSource = DataSourceEnum.IMPORT;
@@ -113,7 +119,7 @@ public class TCStatisticsTemp extends BaseEntity implements Serializable {
                             String courseName,
                             String courseName,
                             String courseCode,
                             String courseCode,
                             String teacherName,
                             String teacherName,
-                            Long clazzId,
+                            String clazzIds,
                             String clazzName,
                             String clazzName,
                             String batchNo,
                             String batchNo,
                             String paperNumber,
                             String paperNumber,
@@ -129,7 +135,7 @@ public class TCStatisticsTemp extends BaseEntity implements Serializable {
         this.courseName = courseName;
         this.courseName = courseName;
         this.courseCode = courseCode;
         this.courseCode = courseCode;
         this.teacherName = teacherName;
         this.teacherName = teacherName;
-        this.clazzId = clazzId;
+        this.clazzIds = clazzIds;
         this.clazzName = clazzName;
         this.clazzName = clazzName;
         this.batchNo = batchNo;
         this.batchNo = batchNo;
         this.paperNumber = paperNumber;
         this.paperNumber = paperNumber;
@@ -146,6 +152,14 @@ public class TCStatisticsTemp extends BaseEntity implements Serializable {
         updateInfo(userId);
         updateInfo(userId);
     }
     }
 
 
+    public Long getExamId() {
+        return examId;
+    }
+
+    public void setExamId(Long examId) {
+        this.examId = examId;
+    }
+
     public Long getExamDetailId() {
     public Long getExamDetailId() {
         return examDetailId;
         return examDetailId;
     }
     }
@@ -254,12 +268,12 @@ public class TCStatisticsTemp extends BaseEntity implements Serializable {
         this.teacherName = teacherName;
         this.teacherName = teacherName;
     }
     }
 
 
-    public Long getClazzId() {
-        return clazzId;
+    public String getClazzIds() {
+        return clazzIds;
     }
     }
 
 
-    public void setClazzId(Long clazzId) {
-        this.clazzId = clazzId;
+    public void setClazzIds(String clazzIds) {
+        this.clazzIds = clazzIds;
     }
     }
 
 
     public String getPaperNumber() {
     public String getPaperNumber() {

+ 22 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/ClazzContentEnum.java

@@ -0,0 +1,22 @@
+package com.qmth.distributed.print.business.enums;
+
+/**
+ * @Description: 班级内容状态枚举类
+ * @Author: CaoZixuan
+ * @Date: 2022-04-26
+ */
+public enum ClazzContentEnum {
+    FINISH("班级命题任务已完成印刷"),
+    UN_FINISH("班级命题任务未完成印刷"),
+    EXCEPTION("异常:包含该班级的命题任务提交了多次")
+    ;
+    private final String desc;
+
+    ClazzContentEnum(String desc) {
+        this.desc = desc;
+    }
+
+    public String getDesc() {
+        return desc;
+    }
+}

+ 38 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TCStatisticsMapper.java

@@ -2,8 +2,13 @@ package com.qmth.distributed.print.business.mapper;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.qmth.distributed.print.business.bean.dto.ExamTaskPlanStatisticDto;
 import com.qmth.distributed.print.business.bean.dto.TCStatisticsDto;
 import com.qmth.distributed.print.business.bean.dto.TCStatisticsDto;
+import com.qmth.distributed.print.business.bean.result.TCStatisticResult;
+import com.qmth.distributed.print.business.bean.result.TeachCourseResult;
 import com.qmth.distributed.print.business.entity.TCStatistics;
 import com.qmth.distributed.print.business.entity.TCStatistics;
+import com.qmth.distributed.print.business.enums.StatisticsStatusEnum;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
 import java.util.List;
 import java.util.List;
@@ -33,6 +38,7 @@ public interface TCStatisticsMapper extends BaseMapper<TCStatistics> {
      * @param userId
      * @param userId
      * @return
      * @return
      */
      */
+    @Deprecated
     public IPage<TCStatisticsDto> list(IPage<Map> iPage,
     public IPage<TCStatisticsDto> list(IPage<Map> iPage,
                                        @Param("semesterId") Long semesterId,
                                        @Param("semesterId") Long semesterId,
                                        @Param("examId") Long examId,
                                        @Param("examId") Long examId,
@@ -44,6 +50,30 @@ public interface TCStatisticsMapper extends BaseMapper<TCStatistics> {
                                        @Param("schoolId") Long schoolId,
                                        @Param("schoolId") Long schoolId,
                                        @Param("userId") Long userId);
                                        @Param("userId") Long userId);
 
 
+    /**
+     * 查询命题计划统计表
+     * @param iPage 分页参数
+     * @param examId 考试id
+     * @param collegeId 学院id
+     * @param teachingRoomId 教研室id
+     * @param status 状态
+     * @param courseName 课程名称
+     * @param teacherName 任课教师名称
+     * @param userId 用户
+     * @return 查询结果
+     */
+    public IPage<TCStatisticResult> findExamTaskPrintStatistic(@Param("iPage") Page<TCStatisticResult> iPage,
+                                         @Param("examId") Long examId,
+                                         @Param("collegeId") Long collegeId,
+                                         @Param("teachingRoomId") Long teachingRoomId,
+                                         @Param("status") StatisticsStatusEnum status,
+                                         @Param("courseName") String courseName,
+                                         @Param("teacherName") String teacherName,
+                                         @Param("userId") Long userId);
+
+
+
+
     /**
     /**
      * 根据batchNo统计信息
      * 根据batchNo统计信息
      *
      *
@@ -63,4 +93,12 @@ public interface TCStatisticsMapper extends BaseMapper<TCStatistics> {
      * @return
      * @return
      */
      */
     public List<TCStatisticsDto> findByBatchNoCountJoin(@Param("schoolId") Long schoolId, @Param("batchNo") String batchNo, @Param("orgIds") Set<Long> orgIds);
     public List<TCStatisticsDto> findByBatchNoCountJoin(@Param("schoolId") Long schoolId, @Param("batchNo") String batchNo, @Param("orgIds") Set<Long> orgIds);
+
+    /**
+     * 根据考试id和课程编号查询命题计划统计数据
+     * @param examId 考试id
+     * @param courseCode 课程编号
+     * @return 命题计划统计数据
+     */
+    List<ExamTaskPlanStatisticDto> findByExamIdCourseCode(@Param("examId")Long examId, @Param("courseCode") String courseCode);
 }
 }

+ 40 - 8
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TCStatisticsService.java

@@ -3,7 +3,9 @@ package com.qmth.distributed.print.business.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.distributed.print.business.bean.dto.TCStatisticsDto;
 import com.qmth.distributed.print.business.bean.dto.TCStatisticsDto;
+import com.qmth.distributed.print.business.bean.result.TCStatisticResult;
 import com.qmth.distributed.print.business.entity.TCStatistics;
 import com.qmth.distributed.print.business.entity.TCStatistics;
+import com.qmth.distributed.print.business.entity.TCStatisticsTemp;
 import com.qmth.distributed.print.business.enums.StatisticsStatusEnum;
 import com.qmth.distributed.print.business.enums.StatisticsStatusEnum;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.util.Result;
 import com.qmth.teachcloud.common.util.Result;
@@ -47,28 +49,28 @@ public interface TCStatisticsService extends IService<TCStatistics> {
                                        Long schoolId,
                                        Long schoolId,
                                        Long userId);
                                        Long userId);
 
 
+
     /**
     /**
-     * 导入关联数据
+     * 导入关联数据(保存正式数据核心方法)
      *
      *
-     * @param sysUser
-     * @param batchNo
+     * @param tcStatisticsTempList 导入的基础数据
      */
      */
-    public void importJoinData(SysUser sysUser, String batchNo);
+    public void importJoinData(List<TCStatisticsTemp> tcStatisticsTempList);
 
 
     /**
     /**
      * 删除导入数据
      * 删除导入数据
      *
      *
-     * @param userId
-     * @param courseSet
-     * @param setCollections
+     * @param examId 考试id
+     * @param userId 用户id
      */
      */
-    public void removeImportData(Long userId, Set<String> courseSet, Set<Long>... setCollections);
+    public void removeImportData(Long examId, Long userId);
 
 
     /**
     /**
      * 刷新数据
      * 刷新数据
      *
      *
      * @return
      * @return
      */
      */
+    @Deprecated
     public Result freshenData();
     public Result freshenData();
 
 
     /**
     /**
@@ -78,4 +80,34 @@ public interface TCStatisticsService extends IService<TCStatistics> {
      * @return
      * @return
      */
      */
     public Result deleteData(List<Long> ids);
     public Result deleteData(List<Long> ids);
+
+    // ------------------------------------------↓ 3.0.1 ↓ ------------------------------------------------
+
+    /**
+     * 分页查询命题计划统计
+     *
+     * @param semesterId     学期id
+     * @param examId         考试id
+     * @param collegeId      开课学院id
+     * @param teachingRoomId 开课教研室id
+     * @param status         总控状态
+     * @param courseName     课程名称
+     * @param teacherName    任课教师名称
+     * @param schoolId       学校id
+     * @param userId         用户id
+     * @param pageNumber     分页页数
+     * @param pageSize       分页容量
+     * @return 分页结果
+     */
+    IPage<TCStatisticResult> findExamTaskPrintStatistic(Long semesterId, Long examId, Long collegeId,
+                                                        Long teachingRoomId, StatisticsStatusEnum status, String courseName,
+                                                        String teacherName, Long schoolId, Long userId, Integer pageNumber, Integer pageSize);
+
+    /**
+     * 根据考试id和请求用户id刷新命题计划统计表数据
+     *
+     * @param examId      考试id
+     * @param requestUser 请求用户
+     */
+    void refreshTCStatisticByExamIdAndRequestUser(Long examId, SysUser requestUser);
 }
 }

+ 156 - 56
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TCStatisticsServiceImpl.java

@@ -1,23 +1,32 @@
 package com.qmth.distributed.print.business.service.impl;
 package com.qmth.distributed.print.business.service.impl;
 
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.reflect.TypeToken;
 import com.google.common.reflect.TypeToken;
 import com.google.gson.Gson;
 import com.google.gson.Gson;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.boot.api.exception.ApiException;
+import com.qmth.distributed.print.business.bean.dto.ClazzContentDto;
+import com.qmth.distributed.print.business.bean.dto.ExamTaskPlanStatisticDto;
 import com.qmth.distributed.print.business.bean.dto.TCStatisticsDto;
 import com.qmth.distributed.print.business.bean.dto.TCStatisticsDto;
+import com.qmth.distributed.print.business.bean.result.TCStatisticResult;
 import com.qmth.distributed.print.business.entity.TCStatistics;
 import com.qmth.distributed.print.business.entity.TCStatistics;
 import com.qmth.distributed.print.business.entity.TCStatisticsTemp;
 import com.qmth.distributed.print.business.entity.TCStatisticsTemp;
+import com.qmth.distributed.print.business.entity.TeachStudent;
+import com.qmth.distributed.print.business.enums.ClazzContentEnum;
+import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
 import com.qmth.distributed.print.business.enums.StatisticsStatusEnum;
 import com.qmth.distributed.print.business.enums.StatisticsStatusEnum;
 import com.qmth.distributed.print.business.mapper.TCStatisticsMapper;
 import com.qmth.distributed.print.business.mapper.TCStatisticsMapper;
-import com.qmth.distributed.print.business.service.TCStatisticsService;
-import com.qmth.distributed.print.business.service.TCStatisticsTempService;
+import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicStudent;
 import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.SysOrg;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.service.BasicStudentService;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.util.*;
 import com.qmth.teachcloud.common.util.*;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -26,6 +35,7 @@ import org.springframework.transaction.annotation.Transactional;
 import javax.annotation.Resource;
 import javax.annotation.Resource;
 import java.util.*;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -50,77 +60,129 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
     @Resource
     @Resource
     RedisUtil redisUtil;
     RedisUtil redisUtil;
 
 
-    /**
-     * 查找印刷计划信息
-     *
-     * @param iPage
-     * @param collegeId
-     * @param teachingRoomId
-     * @param status
-     * @param courseName
-     * @param teacherName
-     * @param schoolId
-     * @param userId
-     * @return
-     */
+    @Resource
+    TeachStudentService teachStudentService;
+
+    @Resource
+    BasicStudentService basicStudentService;
+
+    @Resource
+    ExamDetailService examDetailService;
+
+
+    @Deprecated
     @Override
     @Override
     public IPage<TCStatisticsDto> list(IPage<Map> iPage, Long semesterId, Long examId, Long collegeId, Long teachingRoomId, StatisticsStatusEnum status, String courseName, String teacherName, Long schoolId, Long userId) {
     public IPage<TCStatisticsDto> list(IPage<Map> iPage, Long semesterId, Long examId, Long collegeId, Long teachingRoomId, StatisticsStatusEnum status, String courseName, String teacherName, Long schoolId, Long userId) {
         return tcStatisticsMapper.list(iPage, semesterId, examId, collegeId, teachingRoomId, Objects.nonNull(status) ? status.name() : null, courseName, teacherName, schoolId, userId);
         return tcStatisticsMapper.list(iPage, semesterId, examId, collegeId, teachingRoomId, Objects.nonNull(status) ? status.name() : null, courseName, teacherName, schoolId, userId);
     }
     }
 
 
-    /**
-     * 导入关联数据
-     *
-     * @param sysUser
-     * @param batchNo
-     */
+
+
     @Override
     @Override
     @Transactional
     @Transactional
-    public void importJoinData(SysUser sysUser, String batchNo) {
-        List<TCStatisticsTemp> tcStatisticsTempList = tcStatisticsTempService.findByBatchNo(sysUser.getSchoolId(), batchNo);
+    public void importJoinData(List<TCStatisticsTemp> tcStatisticsTempList) {
+        List<TCStatistics> insertTCStatisticsList = new ArrayList<>();
         if (Objects.nonNull(tcStatisticsTempList) && tcStatisticsTempList.size() > 0) {
         if (Objects.nonNull(tcStatisticsTempList) && tcStatisticsTempList.size() > 0) {
-            batchNo = SystemConstant.getUuid();
-            Set<Long> orgIds = this.joinDataGetOrgIds(sysUser, batchNo, tcStatisticsTempList);
-            List<TCStatisticsDto> tcStatisticsDtoList = this.findByBatchNoCount(sysUser.getSchoolId(), batchNo, orgIds);
-            if (Objects.nonNull(tcStatisticsDtoList) && tcStatisticsDtoList.size() > 0) {
-                this.saveJoinData(sysUser, tcStatisticsDtoList);
+            Long requestUserId = tcStatisticsTempList.get(0).getCreateId();
+            Long examId = tcStatisticsTempList.get(0).getExamId();
+
+            for (TCStatisticsTemp tcStatisticsTemp : tcStatisticsTempList) {
+                List<ClazzContentDto> clazzContentDtoList = new ArrayList<>();
+                String courseCode = tcStatisticsTemp.getCourseCode();
+                String clazzIds = tcStatisticsTemp.getClazzIds();
+                // 总印份数(只是学生数不包含备份)
+                int printSum;
+                StatisticsStatusEnum status = StatisticsStatusEnum.FINISH;
+                // 导入的班级
+                Set<Long> clazzIdSet = Arrays.stream(clazzIds.split(",")).map(SystemConstant::convertIdToLong).collect(Collectors.toSet());
+                // 根据课程和考试查到的命题计划数据
+                List<ExamTaskPlanStatisticDto> examTaskPlanStatisticDtoList = this.baseMapper.findByExamIdCourseCode(examId,courseCode);
+                for (Long clazzId : clazzIdSet) {
+                    // 匹配到班级的所有命题计划
+                    List<ExamTaskPlanStatisticDto> matchClazzList = examTaskPlanStatisticDtoList.stream().filter(e -> {
+                        Set<Long> ebcClazzIdSet = Arrays.stream(e.getClazzIds().split(",")).map(SystemConstant::convertIdToLong).collect(Collectors.toSet());
+                        return ebcClazzIdSet.contains(clazzId);
+                    }).collect(Collectors.toList());
+
+                    ClazzContentDto clazzContent = new ClazzContentDto();
+                    clazzContent.setClazzId(clazzId);
+                    clazzContent.setClazzName(examDetailService.findClazzNamesByClazzIds(String.valueOf(clazzId), ","));
+                    if (matchClazzList.size() > 1) {
+                        // 同一个班级课程的命题任务多次提交
+                        status = StatisticsStatusEnum.UN_FINISH;
+                        clazzContent.setStatus(ClazzContentEnum.EXCEPTION);
+                    } else if (matchClazzList.size() == 1) {
+                        ExamTaskPlanStatisticDto matchClazz = matchClazzList.get(0);
+                        // 查询考场表状态为已印刷的被匹配数据
+                        clazzContent.setExamPrintPlanId(matchClazz.getExamPrintPlanId());
+                        clazzContent.setExamPrintPlanName(matchClazz.getExamPrintPlanName());
+                        clazzContent.setPaperNumber(matchClazz.getPaperNumber());
+                        clazzContent.setStudentCount(matchClazz.getStudentCount());
+
+                        ExamDetailStatusEnum examDetailStatus = matchClazz.getExamDetailStatus();
+                        if (ExamDetailStatusEnum.FINISH.equals(examDetailStatus)) {
+                            // 改版机对应的命题任务完成印刷
+                            clazzContent.setStatus(ClazzContentEnum.FINISH);
+                        } else {
+                            // 该班级对应的命题任务还未完成印刷
+                            status = StatisticsStatusEnum.UN_FINISH;
+                            clazzContent.setStatus(ClazzContentEnum.UN_FINISH);
+                        }
+                    } else {
+                        // 连考场都没查到 -> 未完成
+                        status = StatisticsStatusEnum.UN_FINISH;
+                        clazzContent.setStatus(ClazzContentEnum.UN_FINISH);
+                    }
+                    clazzContentDtoList.add(clazzContent);
+                }
+                Integer teachClazzStudentCount = teachStudentService.count(new QueryWrapper<TeachStudent>().lambda().in(TeachStudent::getTeachClazzId,clazzIdSet));
+                Integer basicClazzStudentCount = basicStudentService.count(new QueryWrapper<BasicStudent>().lambda().in(BasicStudent::getClazzId,clazzIdSet));
+                printSum = teachClazzStudentCount + basicClazzStudentCount;
+
+                TCStatistics tcStatistics = new TCStatistics();
+                tcStatistics.setExamId(examId);
+                tcStatistics.setBatchNo(tcStatisticsTemp.getBatchNo());
+                tcStatistics.setCollegeId(tcStatisticsTemp.getCollegeId());
+                tcStatistics.setCollegeName(tcStatisticsTemp.getCollegeName());
+                tcStatistics.setTeachingRoomId(tcStatisticsTemp.getTeachingRoomId());
+                tcStatistics.setTeachingRoomName(tcStatisticsTemp.getTeachingRoomName());
+                tcStatistics.setCourseName(tcStatisticsTemp.getCourseName());
+                tcStatistics.setCourseCode(tcStatisticsTemp.getCourseCode());
+                tcStatistics.setTeacherName(tcStatisticsTemp.getTeacherName());
+                tcStatistics.setClazzIds(clazzIds);
+                tcStatistics.setClazzName(examDetailService.findClazzNamesByClazzIds(clazzIds,","));
+                tcStatistics.setClazzContent(JSON.toJSONString(clazzContentDtoList));
+                tcStatistics.setPrintSum(printSum);
+                tcStatistics.setStatus(status);
+                tcStatistics.insertInfo(requestUserId);
+                if (StatisticsStatusEnum.FINISH.equals(status)){
+                    ClazzContentDto cell = clazzContentDtoList.get(0);
+                    tcStatistics.setPrintPlanId(cell.getExamPrintPlanId());
+                    tcStatistics.setPaperNumber(cell.getPaperNumber());
+                }
+                insertTCStatisticsList.add(tcStatistics);
             }
             }
         }
         }
+        this.saveBatch(insertTCStatisticsList);
     }
     }
 
 
-    /**
-     * 删除导入数据
-     *
-     * @param userId
-     * @param courseSet
-     * @param setCollections
-     */
     @Override
     @Override
     @Transactional
     @Transactional
-    public void removeImportData(Long userId, Set<String> courseSet, Set<Long>... setCollections) {
+    public void removeImportData(Long examId, Long userId) {
         TCStatisticsService tcStatisticsService = SpringContextHolder.getBean(TCStatisticsService.class);
         TCStatisticsService tcStatisticsService = SpringContextHolder.getBean(TCStatisticsService.class);
         QueryWrapper<TCStatistics> tcStatisticsQueryWrapper = new QueryWrapper<>();
         QueryWrapper<TCStatistics> tcStatisticsQueryWrapper = new QueryWrapper<>();
-        tcStatisticsQueryWrapper.lambda().in(TCStatistics::getCollegeId, setCollections[0])
-                .in(TCStatistics::getTeachingRoomId, setCollections[1])
-                .in(TCStatistics::getCourseCode, courseSet)
-                .in(TCStatistics::getClazzId, setCollections[2])
+        tcStatisticsQueryWrapper.lambda()
+                .eq(TCStatistics::getExamId, examId)
                 .eq(TCStatistics::getCreateId, userId);
                 .eq(TCStatistics::getCreateId, userId);
         tcStatisticsService.remove(tcStatisticsQueryWrapper);
         tcStatisticsService.remove(tcStatisticsQueryWrapper);
 
 
         QueryWrapper<TCStatisticsTemp> tcStatisticsTempQueryWrapper = new QueryWrapper<>();
         QueryWrapper<TCStatisticsTemp> tcStatisticsTempQueryWrapper = new QueryWrapper<>();
-        tcStatisticsTempQueryWrapper.lambda().in(TCStatisticsTemp::getCollegeId, setCollections[0])
-                .in(TCStatisticsTemp::getTeachingRoomId, setCollections[1])
-                .in(TCStatisticsTemp::getCourseCode, courseSet)
-                .in(TCStatisticsTemp::getClazzId, setCollections[2])
+        tcStatisticsTempQueryWrapper.lambda()
+                .eq(TCStatisticsTemp::getExamId, examId)
                 .eq(TCStatisticsTemp::getCreateId, userId);
                 .eq(TCStatisticsTemp::getCreateId, userId);
         tcStatisticsTempService.remove(tcStatisticsTempQueryWrapper);
         tcStatisticsTempService.remove(tcStatisticsTempQueryWrapper);
     }
     }
 
 
-    /**
-     * 刷新数据
-     *
-     * @return
-     */
     @Override
     @Override
     @Transactional
     @Transactional
     public Result freshenData() {
     public Result freshenData() {
@@ -150,12 +212,6 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
         return ResultUtil.ok(true);
         return ResultUtil.ok(true);
     }
     }
 
 
-    /**
-     * 删除数据
-     *
-     * @param ids
-     * @return
-     */
     @Override
     @Override
     @Transactional
     @Transactional
     public Result deleteData(List<Long> ids) {
     public Result deleteData(List<Long> ids) {
@@ -164,6 +220,50 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
         return ResultUtil.ok(true);
         return ResultUtil.ok(true);
     }
     }
 
 
+    @Override
+    public IPage<TCStatisticResult> findExamTaskPrintStatistic(Long semesterId, Long examId, Long collegeId, Long teachingRoomId, StatisticsStatusEnum status, String courseName, String teacherName, Long schoolId, Long userId, Integer pageNumber, Integer pageSize) {
+        return tcStatisticsMapper.findExamTaskPrintStatistic(new Page<>(pageNumber,pageSize), examId, collegeId, teachingRoomId, status, courseName, teacherName, userId);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void refreshTCStatisticByExamIdAndRequestUser(Long examId, SysUser requestUser) {
+        Long requestUserId =  requestUser.getId();
+        List<TCStatistics> tcStatisticsList = this.list(new QueryWrapper<TCStatistics>().lambda().eq(TCStatistics::getExamId,examId).eq(TCStatistics::getCreateId,requestUserId));
+        if (tcStatisticsList != null && tcStatisticsList.size() > 0){
+            String key = SystemConstant.REDIS_LOCK_BATCH_NO_PREFIX + Math.abs((examId + String.valueOf(requestUserId)).hashCode());
+            boolean lock = redisUtil.lock(key, SystemConstant.REDIS_LOCK_BATCH_NO_TIME_OUT);
+            if (!lock){
+                throw ExceptionResultEnum.ERROR.exception("正在刷新数据,请稍候再试!");
+            }
+            try {
+                // 删除该用户现在的本次考试的统计数据
+                this.removeImportData(examId,requestUserId);
+                List<TCStatisticsTemp> tcStatisticsTempList = tcStatisticsList.stream().flatMap(e ->{
+                    TCStatisticsTemp tcStatisticsTemp = new TCStatisticsTemp(
+                            examId,
+                            e.getCollegeId(),
+                            e.getCollegeName(),
+                            e.getTeachingRoomId(),
+                            e.getTeachingRoomName(),
+                            e.getCourseName(),
+                            e.getCourseCode(),
+                            e.getTeacherName(),
+                            e.getClazzIds(),
+                            e.getClazzName(),
+                            e.getBatchNo(),
+                            requestUserId);
+                    return Stream.of(tcStatisticsTemp);
+                }).collect(Collectors.toList());
+                this.importJoinData(tcStatisticsTempList);
+            }catch (Exception e){
+                log.error(SystemConstant.LOG_ERROR, e);
+            } finally {
+                redisUtil.releaseLock(key);
+            }
+        }
+    }
+
     /**
     /**
      * 关联数据获取orgIds
      * 关联数据获取orgIds
      *
      *
@@ -205,7 +305,7 @@ public class TCStatisticsServiceImpl extends ServiceImpl<TCStatisticsMapper, TCS
                     t.getCourseCode() + ":" +
                     t.getCourseCode() + ":" +
                     t.getPaperNumber() + ":" +
                     t.getPaperNumber() + ":" +
                     t.getPrintPlanId() + ":" +
                     t.getPrintPlanId() + ":" +
-                    t.getClazzId();
+                    t.getClazzIds();
             if (!map.containsKey(key)) {
             if (!map.containsKey(key)) {
                 map.computeIfAbsent(key, v -> t);
                 map.computeIfAbsent(key, v -> t);
             } else {
             } else {

+ 48 - 50
distributed-print-business/src/main/java/com/qmth/distributed/print/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -1419,17 +1419,12 @@ public class TaskLogicServiceImpl implements TaskLogicService {
         return basicClazzService.executeBasicClazzImportLogic(finalList, map);
         return basicClazzService.executeBasicClazzImportLogic(finalList, map);
     }
     }
 
 
-    /**
-     * 处理命题统计导入数据
-     *
-     * @param map 数据源
-     * @return
-     * @throws Exception
-     */
+
     @Override
     @Override
     @Transactional
     @Transactional
     public Map<String, Object> executeImportStatisticsLogic(Map<String, Object> map) throws Exception {
     public Map<String, Object> executeImportStatisticsLogic(Map<String, Object> map) throws Exception {
         InputStream inputStream = (InputStream) map.get("inputStream");
         InputStream inputStream = (InputStream) map.get("inputStream");
+        Long examId = SystemConstant.convertIdToLong(String.valueOf(map.get("examId")));
         SysUser sysUser = (SysUser) map.get(SystemConstant.USER);
         SysUser sysUser = (SysUser) map.get(SystemConstant.USER);
 
 
         List<LinkedMultiValueMap<Integer, Object>> finalList = ExcelUtil.excelReader(inputStream, Lists.newArrayList(StatisticsImportDto.class), (finalExcelList, finalColumnNameList, finalExcelErrorList) -> {
         List<LinkedMultiValueMap<Integer, Object>> finalList = ExcelUtil.excelReader(inputStream, Lists.newArrayList(StatisticsImportDto.class), (finalExcelList, finalColumnNameList, finalExcelErrorList) -> {
@@ -1441,39 +1436,46 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 throw ExceptionResultEnum.ERROR.exception(JSONObject.toJSONString(finalExcelErrorList));
                 throw ExceptionResultEnum.ERROR.exception(JSONObject.toJSONString(finalExcelErrorList));
             }
             }
             List<ExcelError> excelErrorTemp = new ArrayList<>();
             List<ExcelError> excelErrorTemp = new ArrayList<>();
-            Map<String, SysOrg> collegeOrgMap = new HashMap<>(), teachingRoomMap = new HashMap<>();//学院,部门
-            Map<String, BasicCourse> courseMap = new HashMap<>();//课程
-            Map<String, DictionaryResult> clazzMap = new HashMap<>();//班级
+            // 校验系统中是否存在
+            Map<String, SysOrg> collegeOrgMap = new HashMap<>();
+            Map<String,SysOrg> teachingRoomMap = new HashMap<>();
+            Map<String, BasicCourse> courseMap = new HashMap<>();
+            Map<String, DictionaryResult> clazzMap = new HashMap<>();
             String batchNo = SystemConstant.getUuid();
             String batchNo = SystemConstant.getUuid();
             List<TCStatisticsTemp> tcStatisticsImportTempList = new ArrayList<>();
             List<TCStatisticsTemp> tcStatisticsImportTempList = new ArrayList<>();
-            Set<Long> collegeIdSet = new HashSet<>(), teachingRoomIdSet = new HashSet<>(), ClazzIdSet = new HashSet<>();
-            Set<String> courseSet = new HashSet<>();
+
             for (int i = 0; i < finalExcelList.size(); i++) {
             for (int i = 0; i < finalExcelList.size(); i++) {
                 LinkedMultiValueMap<Integer, Object> excelMap = finalExcelList.get(i);
                 LinkedMultiValueMap<Integer, Object> excelMap = finalExcelList.get(i);
                 List<Object> statisticsTempList = excelMap.get(i);
                 List<Object> statisticsTempList = excelMap.get(i);
-                for (int y = 0; y < statisticsTempList.size(); y++) {
+                for (int y = 0; y < Objects.requireNonNull(statisticsTempList).size(); y++) {
                     StatisticsImportDto statisticsImportDto = (StatisticsImportDto) statisticsTempList.get(y);
                     StatisticsImportDto statisticsImportDto = (StatisticsImportDto) statisticsTempList.get(y);
                     SysOrg collegeOrg = this.validSysOrgExists(collegeOrgMap, statisticsImportDto.getCollegeName(), sysUser.getSchoolId(), OrgTypeEnum.COLLEGE, excelErrorTemp, (y + 1), (i + 1), "开课学院");
                     SysOrg collegeOrg = this.validSysOrgExists(collegeOrgMap, statisticsImportDto.getCollegeName(), sysUser.getSchoolId(), OrgTypeEnum.COLLEGE, excelErrorTemp, (y + 1), (i + 1), "开课学院");
                     SysOrg teachingRoomOrg = this.validSysOrgExists(teachingRoomMap, statisticsImportDto.getTeachingRoomName(), sysUser.getSchoolId(), OrgTypeEnum.TEACHING_ROOM, excelErrorTemp, (y + 1), (i + 1), "开课部门");
                     SysOrg teachingRoomOrg = this.validSysOrgExists(teachingRoomMap, statisticsImportDto.getTeachingRoomName(), sysUser.getSchoolId(), OrgTypeEnum.TEACHING_ROOM, excelErrorTemp, (y + 1), (i + 1), "开课部门");
-                    BasicCourse basicCourse = this.validBasicCourseExists(courseMap, statisticsImportDto.getCourseName(), sysUser.getSchoolId(), statisticsImportDto.getCourseCode(), excelErrorTemp, (y + 1), (i + 1), "课程代码");
+                    BasicCourse basicCourse = this.validBasicCourseExists(courseMap, statisticsImportDto.getCourseName(), sysUser.getSchoolId(), statisticsImportDto.getCourseCode(), excelErrorTemp, (y + 1), (i + 1));
                     String teacherName = statisticsImportDto.getTeacherName();
                     String teacherName = statisticsImportDto.getTeacherName();
-                    DictionaryResult clazz = this.validBasicClazzExists(clazzMap, statisticsImportDto.getClazzName(), sysUser.getSchoolId(), excelErrorTemp, (y + 1), (i + 1), "班级名称");
+                    String clazzNames= statisticsImportDto.getClazzName();
+                    List<DictionaryResult> dictionaryResultList = new ArrayList<>();
+                    for (String clazzName : clazzNames.split(",")) {
+                        DictionaryResult clazz = this.validBasicClazzExists(clazzMap, clazzName, sysUser.getSchoolId(), excelErrorTemp, (y + 1), (i + 1));
+                        dictionaryResultList.add(clazz);
+                    }
+                    String clazzIds = dictionaryResultList.stream().map(e -> String.valueOf(e.getId())).collect(Collectors.joining(","));
+
+
 
 
                     if (excelErrorTemp.size() == 0) {
                     if (excelErrorTemp.size() == 0) {
-                        collegeIdSet.add(collegeOrg.getId());
-                        teachingRoomIdSet.add(teachingRoomOrg.getId());
-                        courseSet.add(basicCourse.getCode());
-                        ClazzIdSet.add(clazz.getId());
 
 
-                        TCStatisticsTemp tcStatistics = new TCStatisticsTemp(collegeOrg.getId(),
+                        TCStatisticsTemp tcStatistics = new TCStatisticsTemp(
+                                examId,
+                                collegeOrg.getId(),
                                 collegeOrg.getName(),
                                 collegeOrg.getName(),
                                 teachingRoomOrg.getId(),
                                 teachingRoomOrg.getId(),
                                 teachingRoomOrg.getName(),
                                 teachingRoomOrg.getName(),
                                 basicCourse.getName(),
                                 basicCourse.getName(),
                                 basicCourse.getCode(),
                                 basicCourse.getCode(),
                                 teacherName,
                                 teacherName,
-                                clazz.getId(),
-                                clazz.getName(),
+                                clazzIds,
+                                clazzNames,
                                 batchNo,
                                 batchNo,
                                 sysUser.getId());
                                 sysUser.getId());
                         tcStatisticsImportTempList.add(tcStatistics);
                         tcStatisticsImportTempList.add(tcStatistics);
@@ -1484,11 +1486,11 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                 List<String> errors = excelErrorTemp.stream().map(ExcelError::getExcelErrorType).collect(Collectors.toList());
                 List<String> errors = excelErrorTemp.stream().map(ExcelError::getExcelErrorType).collect(Collectors.toList());
                 throw ExceptionResultEnum.ERROR.exception(JSONObject.toJSONString(errors));
                 throw ExceptionResultEnum.ERROR.exception(JSONObject.toJSONString(errors));
             }
             }
-            //加入删除
-            tcStatisticsService.removeImportData(sysUser.getId(), courseSet, collegeIdSet, teachingRoomIdSet, ClazzIdSet);
+            //加入删除(根据考试id和当前登录人)
+            tcStatisticsService.removeImportData(examId,sysUser.getId());
             tcStatisticsTempService.saveBatch(tcStatisticsImportTempList);
             tcStatisticsTempService.saveBatch(tcStatisticsImportTempList);
             map.put("dataCount", tcStatisticsImportTempList.size());
             map.put("dataCount", tcStatisticsImportTempList.size());
-            tcStatisticsService.importJoinData(sysUser, batchNo);
+            tcStatisticsService.importJoinData(tcStatisticsImportTempList);
             tcStatisticsTempService.removeByIds(tcStatisticsImportTempList.stream().map(BaseEntity::getId).collect(Collectors.toSet()));
             tcStatisticsTempService.removeByIds(tcStatisticsImportTempList.stream().map(BaseEntity::getId).collect(Collectors.toSet()));
             return finalExcelList;
             return finalExcelList;
         });
         });
@@ -1858,15 +1860,15 @@ public class TaskLogicServiceImpl implements TaskLogicService {
     /**
     /**
      * 验证机构是否存在
      * 验证机构是否存在
      *
      *
-     * @param orgMap
-     * @param key
-     * @param schoolId
-     * @param orgTypeEnum
-     * @param excelErrorTemp
-     * @param row
-     * @param sheet
-     * @param cloumnName
-     * @return
+     * @param orgMap 机构map
+     * @param key 机构名称
+     * @param schoolId 学校id
+     * @param orgTypeEnum  机构类型
+     * @param excelErrorTemp 错误信息
+     * @param row
+     * @param sheet
+     * @param cloumnName cloumnName
+     * @return 机构
      */
      */
     private SysOrg validSysOrgExists(Map<String, SysOrg> orgMap,
     private SysOrg validSysOrgExists(Map<String, SysOrg> orgMap,
                                      String key,
                                      String key,
@@ -1899,15 +1901,14 @@ public class TaskLogicServiceImpl implements TaskLogicService {
     /**
     /**
      * 验证课程是否存在
      * 验证课程是否存在
      *
      *
-     * @param courseMap
-     * @param key
-     * @param schoolId
-     * @param value
-     * @param excelErrorTemp
-     * @param row
-     * @param sheet
-     * @param cloumnName
-     * @return
+     * @param courseMap courseMap
+     * @param key 课程名称
+     * @param schoolId 学校id
+     * @param value 课程编号
+     * @param excelErrorTemp 错误信息
+     * @param row 行
+     * @param sheet 区
+     * @return 基础课程
      */
      */
     private BasicCourse validBasicCourseExists(Map<String, BasicCourse> courseMap,
     private BasicCourse validBasicCourseExists(Map<String, BasicCourse> courseMap,
                                                String key,
                                                String key,
@@ -1915,8 +1916,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                                                String value,
                                                String value,
                                                List<ExcelError> excelErrorTemp,
                                                List<ExcelError> excelErrorTemp,
                                                int row,
                                                int row,
-                                               int sheet,
-                                               String cloumnName) {
+                                               int sheet) {
         BasicCourse basicCourse = null;
         BasicCourse basicCourse = null;
         if (!courseMap.containsKey(key)) {//不存在查询
         if (!courseMap.containsKey(key)) {//不存在查询
             QueryWrapper<BasicCourse> basicCourseQueryWrapper = new QueryWrapper<>();
             QueryWrapper<BasicCourse> basicCourseQueryWrapper = new QueryWrapper<>();
@@ -1929,7 +1929,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             basicCourse = courseMap.get(key);
             basicCourse = courseMap.get(key);
         }
         }
         if (Objects.isNull(basicCourse)) {
         if (Objects.isNull(basicCourse)) {
-            excelErrorTemp.add(new ExcelError(row, "excel第" + sheet + "个sheet第" + row + "行[" + cloumnName + "]不存在"));
+            excelErrorTemp.add(new ExcelError(row, "excel第" + sheet + "个sheet第" + row + "行[" + "课程代码" + "]不存在"));
         } else {
         } else {
             BasicCourse finalBasicCourse = basicCourse;
             BasicCourse finalBasicCourse = basicCourse;
             courseMap.computeIfAbsent(key, v -> finalBasicCourse);
             courseMap.computeIfAbsent(key, v -> finalBasicCourse);
@@ -1984,7 +1984,6 @@ public class TaskLogicServiceImpl implements TaskLogicService {
      * @param excelErrorTemp 错误信息
      * @param excelErrorTemp 错误信息
      * @param row            行
      * @param row            行
      * @param sheet          区
      * @param sheet          区
-     * @param cloumnName     列名
      * @return 班级信息
      * @return 班级信息
      */
      */
     private DictionaryResult validBasicClazzExists(Map<String, DictionaryResult> clazzMap,
     private DictionaryResult validBasicClazzExists(Map<String, DictionaryResult> clazzMap,
@@ -1992,8 +1991,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                                                    Long schoolId,
                                                    Long schoolId,
                                                    List<ExcelError> excelErrorTemp,
                                                    List<ExcelError> excelErrorTemp,
                                                    int row,
                                                    int row,
-                                                   int sheet,
-                                                   String cloumnName) {
+                                                   int sheet) {
         DictionaryResult clazz = null;
         DictionaryResult clazz = null;
         if (!clazzMap.containsKey(key)) {//不存在查询
         if (!clazzMap.containsKey(key)) {//不存在查询
             TeachClazz teachClazz = teachClazzService.getOne(new QueryWrapper<TeachClazz>().lambda().eq(TeachClazz::getSchoolId, schoolId).eq(TeachClazz::getTeachClazzName, key));
             TeachClazz teachClazz = teachClazzService.getOne(new QueryWrapper<TeachClazz>().lambda().eq(TeachClazz::getSchoolId, schoolId).eq(TeachClazz::getTeachClazzName, key));
@@ -2017,7 +2015,7 @@ public class TaskLogicServiceImpl implements TaskLogicService {
             clazz = clazzMap.get(key);
             clazz = clazzMap.get(key);
         }
         }
         if (Objects.isNull(clazz)) {
         if (Objects.isNull(clazz)) {
-            excelErrorTemp.add(new ExcelError(row, "excel第" + sheet + "个sheet第" + row + "行[" + cloumnName + "]不存在"));
+            excelErrorTemp.add(new ExcelError(row, "excel第" + sheet + "个sheet第" + row + "行[" + "班级名称" + "]不存在"));
         } else {
         } else {
             DictionaryResult finalClazz = clazz;
             DictionaryResult finalClazz = clazz;
             clazzMap.computeIfAbsent(key, v -> finalClazz);
             clazzMap.computeIfAbsent(key, v -> finalClazz);

+ 76 - 0
distributed-print-business/src/main/resources/mapper/TCStatisticsMapper.xml

@@ -320,4 +320,80 @@
         t.printPlanId,
         t.printPlanId,
         t.clazzId
         t.clazzId
     </select>
     </select>
+    <select id="findByExamIdCourseCode"
+            resultType="com.qmth.distributed.print.business.bean.dto.ExamTaskPlanStatisticDto">
+        SELECT
+            epp.exam_id as examId,
+            epp.id as examPrintPlanId,
+            epp.name as examPrintPlanName,
+            ed.id as examDetailId,
+            ed.status as examDetailStatus,
+            edc.id as examDetailCourseId,
+            edc.paper_number as paperNumber,
+            edc.course_code as courseCode,
+            edc.course_name as courseName,
+            edc.clazz_id as clazzIds,
+            edc.total_subjects as studentCount
+        FROM
+            exam_detail_course edc
+                LEFT JOIN
+            exam_detail ed ON edc.exam_detail_id = ed.id
+                LEFT JOIN
+            exam_print_plan epp ON ed.print_plan_id = epp.id
+        <where>
+            <if test="examId != null and examId != ''">
+                AND epp.exam_id = #{examId}
+            </if>
+            <if test="courseCode != null and courseCode != ''">
+                AND edc.course_code = #{courseCode}
+            </if>
+        </where>
+    </select>
+    <select id="findExamTaskPrintStatistic"
+            resultType="com.qmth.distributed.print.business.bean.result.TCStatisticResult">
+        SELECT
+            tcs.id AS id,
+            tcs.exam_id AS examId,
+            be.name AS examName,
+            tcs.college_name AS collegeName,
+            tcs.teaching_room_name AS teachingRoom,
+            tcs.course_code AS courseCode,
+            tcs.course_name AS courseName,
+            tcs.teacher_name AS teacher,
+            tcs.clazz_name AS clazzNames,
+            tcs.paper_number AS paperNumber,
+            epp.name AS examPrintPlanName,
+            tcs.print_sum AS studentCount,
+            tcs.status AS status,
+            tcs.clazz_content AS clazzContent
+        FROM
+            t_c_statistics tcs
+                LEFT JOIN
+            basic_exam be ON tcs.exam_id = be.id
+                LEFT JOIN
+            exam_print_plan epp ON tcs.print_plan_id = epp.id
+        <where>
+            <if test="examId != null and examId != ''">
+                and tcs.exam_id = #{examId}
+            </if>
+            <if test="collegeId != null and collegeId != ''">
+                and tcs.college_id = #{collegeId}
+            </if>
+            <if test="teachingRoomId != null and teachingRoomId != ''">
+                and tcs.teaching_room_id = #{teachingRoomId}
+            </if>
+            <if test="status != null and status != ''">
+                and tcs.status = #{status}
+            </if>
+            <if test="courseName != null and courseName != ''">
+                and tcs.course_name like concat('%',#{courseName},'%')
+            </if>
+            <if test="teacherName != null and teacherName != ''">
+                and tcs.teacher_name like concat('%',#{teacherName},'%')
+            </if>
+            <if test="userId != null and userId != ''">
+                and tcs.create_Id = #{userId}
+            </if>
+        </where>
+    </select>
 </mapper>
 </mapper>

+ 15 - 12
distributed-print/src/main/java/com/qmth/distributed/print/api/TCStatisticsController.java

@@ -1,6 +1,5 @@
 package com.qmth.distributed.print.api;
 package com.qmth.distributed.print.api;
 
 
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.dto.TCStatisticsDto;
 import com.qmth.distributed.print.business.bean.dto.TCStatisticsDto;
 import com.qmth.distributed.print.business.bean.result.EditResult;
 import com.qmth.distributed.print.business.bean.result.EditResult;
@@ -60,8 +59,10 @@ public class TCStatisticsController {
     @ApiOperation(value = "命题计划统计-导入")
     @ApiOperation(value = "命题计划统计-导入")
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
     @RequestMapping(value = "/import", method = RequestMethod.POST)
     @RequestMapping(value = "/import", method = RequestMethod.POST)
-    public Result dataImport(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file) throws Exception {
+    public Result dataImport(@ApiParam(value = "上传文件", required = true) @RequestParam MultipartFile file,
+                             @ApiParam(value = "考试id", required = true) @RequestParam String examId) throws Exception {
         Map<String, Object> map = printCommonService.saveTask(file, TaskTypeEnum.STATISTICS_IMPORT);
         Map<String, Object> map = printCommonService.saveTask(file, TaskTypeEnum.STATISTICS_IMPORT);
+        map.put("examId",examId);
         asyncStatisticsDataImportService.importTask(map);
         asyncStatisticsDataImportService.importTask(map);
         TBTask tbTask = Objects.nonNull(map.get(SystemConstant.TASK)) ? (TBTask) map.get(SystemConstant.TASK) : null;
         TBTask tbTask = Objects.nonNull(map.get(SystemConstant.TASK)) ? (TBTask) map.get(SystemConstant.TASK) : null;
         return Objects.nonNull(tbTask) ? ResultUtil.ok(tbTask.getId()) : ResultUtil.error("创建任务失败");
         return Objects.nonNull(tbTask) ? ResultUtil.ok(tbTask.getId()) : ResultUtil.error("创建任务失败");
@@ -70,24 +71,26 @@ public class TCStatisticsController {
     @ApiOperation(value = "命题计划统计-列表")
     @ApiOperation(value = "命题计划统计-列表")
     @ApiResponses({@ApiResponse(code = 200, message = "命题统计信息", response = TCStatisticsDto.class)})
     @ApiResponses({@ApiResponse(code = 200, message = "命题统计信息", response = TCStatisticsDto.class)})
     @RequestMapping(value = "/list", method = RequestMethod.POST)
     @RequestMapping(value = "/list", method = RequestMethod.POST)
-    public Result list(@ApiParam(value = "学期ID", required = false) @RequestParam(required = false) Long semesterId,
-                       @ApiParam(value = "考试ID", required = false) @RequestParam(required = false) Long examId,
-                       @ApiParam(value = "学院id", required = false) @RequestParam(required = false) String collegeId,
-                       @ApiParam(value = "部门id", required = false) @RequestParam(required = false) String teachingRoomId,
-                       @ApiParam(value = "完成状态", required = false) @RequestParam(required = false) StatisticsStatusEnum status,
-                       @ApiParam(value = "课程名称", required = false) @RequestParam(required = false) String courseName,
-                       @ApiParam(value = "任课老师名称", required = false) @RequestParam(required = false) String teacherName,
+    public Result list(@ApiParam(value = "学期id") @RequestParam(required = false) String semesterId,
+                       @ApiParam(value = "考试id") @RequestParam(required = false) String examId,
+                       @ApiParam(value = "学院id") @RequestParam(required = false) String collegeId,
+                       @ApiParam(value = "部门id") @RequestParam(required = false) String teachingRoomId,
+                       @ApiParam(value = "完成状态") @RequestParam(required = false) StatisticsStatusEnum status,
+                       @ApiParam(value = "课程名称") @RequestParam(required = false) String courseName,
+                       @ApiParam(value = "任课老师名称") @RequestParam(required = false) String teacherName,
                        @ApiParam(value = "页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                        @ApiParam(value = "页码", required = true) @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                        @ApiParam(value = "数量", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
                        @ApiParam(value = "数量", required = true) @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        return ResultUtil.ok(tcStatisticsService.list(new Page<>(pageNumber, pageSize), semesterId, examId, SystemConstant.convertIdToLong(collegeId), SystemConstant.convertIdToLong(teachingRoomId), status, courseName, teacherName, sysUser.getSchoolId(), sysUser.getId()));
+        return ResultUtil.ok(tcStatisticsService.findExamTaskPrintStatistic(SystemConstant.convertIdToLong(semesterId), SystemConstant.convertIdToLong(examId), SystemConstant.convertIdToLong(collegeId), SystemConstant.convertIdToLong(teachingRoomId), status, courseName, teacherName, sysUser.getSchoolId(), sysUser.getId(),pageNumber,pageSize));
     }
     }
 
 
     @ApiOperation(value = "命题计划统计-刷新数据")
     @ApiOperation(value = "命题计划统计-刷新数据")
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
     @ApiResponses({@ApiResponse(code = 200, message = "返回信息", response = EditResult.class)})
     @RequestMapping(value = "/freshen", method = RequestMethod.POST)
     @RequestMapping(value = "/freshen", method = RequestMethod.POST)
-    public Result freshen() {
-        return ResultUtil.ok(tcStatisticsService.freshenData());
+    public Result freshen(@ApiParam(value = "考试id", required = true) @RequestParam String examId) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        tcStatisticsService.refreshTCStatisticByExamIdAndRequestUser(SystemConstant.convertIdToLong(examId),sysUser);
+        return ResultUtil.ok();
     }
     }
 
 
     @ApiOperation(value = "命题计划统计-删除数据")
     @ApiOperation(value = "命题计划统计-删除数据")