wangliang il y a 1 an
Parent
commit
fc1a509f61

+ 21 - 18
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/report/ReportResult.java

@@ -1,12 +1,10 @@
 package com.qmth.distributed.print.business.bean.result.report;
 
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.qmth.distributed.print.business.bean.dto.report.*;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
-import java.util.List;
 
 /**
  * @Description: 报告result
@@ -18,19 +16,24 @@ import java.util.List;
 public class ReportResult implements Serializable {
 
     @ApiModelProperty(value = "公共信息")
+    @TableField(exist = false)
     private ReportCommonDto commonInfo;
 
     @ApiModelProperty(value = "课程基本情况")
+    @TableField(exist = false)
     private ReportCourseBasicInfoDto courseBasicInfo;
 
     @ApiModelProperty(value = "课程目标考核分布")
-    private ReportCourseEvaluationSpreadDto courseEvaluationSpread;
+    @TableField(exist = false)
+    private ReportCourseEvaluationSpreadDto courseEvaluationSpreadInfo;
 
     @ApiModelProperty(value = "课程考核成绩评价结果")
-    private ReportCourseEvaluationResultDto courseEvaluationResult;
+    @TableField(exist = false)
+    private ReportCourseEvaluationResultDto courseEvaluationResultInfo;
 
     @ApiModelProperty(value = "课程目标达成评价明细结果")
-    private ReportCourseEvaluationResultDetailDto courseEvaluationResultDetail;
+    @TableField(exist = false)
+    private ReportCourseEvaluationResultDetailDto courseEvaluationResultDetailInfo;
 
     public ReportCommonDto getCommonInfo() {
         return commonInfo;
@@ -48,27 +51,27 @@ public class ReportResult implements Serializable {
         this.courseBasicInfo = courseBasicInfo;
     }
 
-    public ReportCourseEvaluationSpreadDto getCourseEvaluationSpread() {
-        return courseEvaluationSpread;
+    public ReportCourseEvaluationSpreadDto getCourseEvaluationSpreadInfo() {
+        return courseEvaluationSpreadInfo;
     }
 
-    public void setCourseEvaluationSpread(ReportCourseEvaluationSpreadDto courseEvaluationSpread) {
-        this.courseEvaluationSpread = courseEvaluationSpread;
+    public void setCourseEvaluationSpreadInfo(ReportCourseEvaluationSpreadDto courseEvaluationSpreadInfo) {
+        this.courseEvaluationSpreadInfo = courseEvaluationSpreadInfo;
     }
 
-    public ReportCourseEvaluationResultDto getCourseEvaluationResult() {
-        return courseEvaluationResult;
+    public ReportCourseEvaluationResultDto getCourseEvaluationResultInfo() {
+        return courseEvaluationResultInfo;
     }
 
-    public void setCourseEvaluationResult(ReportCourseEvaluationResultDto courseEvaluationResult) {
-        this.courseEvaluationResult = courseEvaluationResult;
+    public void setCourseEvaluationResultInfo(ReportCourseEvaluationResultDto courseEvaluationResultInfo) {
+        this.courseEvaluationResultInfo = courseEvaluationResultInfo;
     }
 
-    public ReportCourseEvaluationResultDetailDto getCourseEvaluationResultDetail() {
-        return courseEvaluationResultDetail;
+    public ReportCourseEvaluationResultDetailDto getCourseEvaluationResultDetailInfo() {
+        return courseEvaluationResultDetailInfo;
     }
 
-    public void setCourseEvaluationResultDetail(ReportCourseEvaluationResultDetailDto courseEvaluationResultDetail) {
-        this.courseEvaluationResultDetail = courseEvaluationResultDetail;
+    public void setCourseEvaluationResultDetailInfo(ReportCourseEvaluationResultDetailDto courseEvaluationResultDetailInfo) {
+        this.courseEvaluationResultDetailInfo = courseEvaluationResultDetailInfo;
     }
 }

+ 64 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TRBasicInfo.java

@@ -2,6 +2,8 @@ package com.qmth.distributed.print.business.entity;
 
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.distributed.print.business.bean.result.report.ReportResult;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -17,7 +19,7 @@ import java.io.Serializable;
  * @since 2024-02-18
  */
 @ApiModel(value = "TRBasicInfo对象", description = "报告基本情况表")
-public class TRBasicInfo implements Serializable {
+public class TRBasicInfo extends ReportResult implements Serializable {
 
     private static final long serialVersionUID = 1L;
 
@@ -64,7 +66,7 @@ public class TRBasicInfo implements Serializable {
     private Integer selectionCount;
 
     @ApiModelProperty(value = "参评人数")
-    private Integer participantCount;
+    private Integer participantCount = 0;
 
     @ApiModelProperty(value = "课程目标达成度期望值")
     private Double courseDegree;
@@ -104,6 +106,66 @@ public class TRBasicInfo implements Serializable {
     @ApiModelProperty(value = "课程考核成绩评价明细结果")
     private String courseEvaluationResultDetail;
 
+    public TRBasicInfo() {
+
+    }
+
+    public TRBasicInfo(Long examId, String courseCode, String courseName, String paperNumber, String openTime, String teachingObject, String teacher, Integer participantCount, Long userId) {
+        this.id = SystemConstant.getDbUuid();
+        this.examId = examId;
+        this.courseCode = courseCode;
+        this.courseName = courseName;
+        this.paperNumber = paperNumber;
+        this.openTime = openTime;
+        this.teachingObject = teachingObject;
+        this.teacher = teacher;
+        this.participantCount = participantCount;
+        this.enable = true;
+        this.createId = userId;
+        this.createTime = System.currentTimeMillis();
+    }
+
+    public TRBasicInfo(TRBasicInfo trBasicInfo, Long userId) {
+        this.id = SystemConstant.getDbUuid();
+        this.setValue(trBasicInfo);
+        this.enable = true;
+        this.createId = userId;
+        this.createTime = System.currentTimeMillis();
+    }
+
+    public void updateInfo(TRBasicInfo trBasicInfo, Long userId) {
+        this.setValue(trBasicInfo);
+        this.updateId = userId;
+        this.updateTime = System.currentTimeMillis();
+    }
+
+    public void updateInfo(Long userId) {
+        this.updateId = userId;
+        this.updateTime = System.currentTimeMillis();
+    }
+
+    protected void setValue(TRBasicInfo trBasicInfo) {
+        this.examId = trBasicInfo.getExamId();
+        this.courseCode = trBasicInfo.getCourseCode();
+        this.courseName = trBasicInfo.getCourseName();
+        this.paperNumber = trBasicInfo.getPaperNumber();
+        this.courseType = trBasicInfo.getCourseType();
+        this.credit = trBasicInfo.getCredit();
+        this.period = trBasicInfo.getPeriod();
+        this.evaluationMode = trBasicInfo.getEvaluationMode();
+        this.openTime = trBasicInfo.getOpenTime();
+        this.teachingObject = trBasicInfo.getTeachingObject();
+        this.selectionCount = trBasicInfo.getSelectionCount();
+        this.participantCount = trBasicInfo.getParticipantCount();
+        this.courseDegree = trBasicInfo.getCourseDegree();
+        this.teacher = trBasicInfo.getTeacher();
+        this.director = trBasicInfo.getDirector();
+        this.participant = trBasicInfo.getParticipant();
+        this.courseEvaluationSpread = trBasicInfo.getCourseEvaluationSpread();
+        this.courseEvaluationResult = trBasicInfo.getCourseEvaluationResult();
+        this.courseEvaluationResultDetail = trBasicInfo.getCourseEvaluationResultDetail();
+    }
+
     public String getCredit() {
         return credit;
     }

+ 48 - 6
distributed-print/src/main/java/com/qmth/distributed/print/api/TRBasicInfoController.java

@@ -1,18 +1,28 @@
 package com.qmth.distributed.print.api;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.distributed.print.business.bean.result.ScoreResult;
 import com.qmth.distributed.print.business.bean.result.report.ReportResult;
 import com.qmth.distributed.print.business.entity.TRBasicInfo;
+import com.qmth.distributed.print.business.service.BasicExamService;
+import com.qmth.distributed.print.business.service.ExamStudentService;
 import com.qmth.distributed.print.business.service.PrintCommonService;
+import com.qmth.distributed.print.business.service.TRBasicInfoService;
 import com.qmth.teachcloud.common.annotation.OperationLogDetail;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicExam;
+import com.qmth.teachcloud.common.entity.BasicSemester;
+import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.log.CustomizedOperationTypeEnum;
+import com.qmth.teachcloud.common.service.BasicSemesterService;
 import com.qmth.teachcloud.common.util.ResultUtil;
+import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.mark.entity.MarkPaper;
 import com.qmth.teachcloud.mark.service.MarkPaperService;
 import io.swagger.annotations.*;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 
@@ -42,6 +52,18 @@ public class TRBasicInfoController {
     @Resource
     MarkPaperService markPaperService;
 
+    @Resource
+    TRBasicInfoService trBasicInfoService;
+
+    @Resource
+    BasicSemesterService basicSemesterService;
+
+    @Resource
+    ExamStudentService examStudentService;
+
+    @Resource
+    BasicExamService basicExamService;
+
     @ApiOperation(value = "报告管理列表")
     @RequestMapping(value = "/report/list", method = RequestMethod.POST)
     @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
@@ -57,12 +79,27 @@ public class TRBasicInfoController {
     @RequestMapping(value = "/report/view", method = RequestMethod.POST)
     @OperationLogDetail(customizedOperationType = CustomizedOperationTypeEnum.SEARCH)
     @ApiResponses({@ApiResponse(code = 200, message = "查看报告", response = ReportResult.class)})
+    @Transactional
     public Object reportView(@ApiParam(value = "考试id", required = true) @RequestParam Long examId,
                              @ApiParam(value = "科目编码", required = true) @RequestParam String courseCode,
                              @ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber) {
         MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, paperNumber);
         Objects.requireNonNull(markPaper, "未找到科目信息");
-        return ResultUtil.ok(true);
+
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        TRBasicInfo trBasicInfo = trBasicInfoService.getOne(new QueryWrapper<TRBasicInfo>().lambda().eq(TRBasicInfo::getExamId, examId).eq(TRBasicInfo::getCourseCode, courseCode).eq(TRBasicInfo::getPaperNumber, paperNumber));
+        if (Objects.isNull(trBasicInfo)) {
+            BasicExam basicExam = basicExamService.getById(examId);
+            Objects.requireNonNull(basicExam, "未找到考试信息");
+
+            BasicSemester basicSemester = basicSemesterService.getById(basicExam.getSemesterId());
+            Objects.requireNonNull(basicSemester, "未找到学期信息");
+
+            //TODO 有测试数据,待肖飞补充授课对象和任课老师数据
+            trBasicInfo = new TRBasicInfo(examId, courseCode, markPaper.getCourseName(), paperNumber, basicSemester.getName(), "测试班级1", "测试老师1", 40, sysUser.getId());
+            trBasicInfoService.save(trBasicInfo);
+        }
+        return ResultUtil.ok(trBasicInfo);
     }
 
     @ApiOperation(value = "保存报告")
@@ -73,9 +110,14 @@ public class TRBasicInfoController {
         if (bindingResult.hasErrors()) {
             return ResultUtil.error(bindingResult.getAllErrors().get(0).getDefaultMessage());
         }
-        MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(trBasicInfo.getExamId(), trBasicInfo.getPaperNumber());
-        Objects.requireNonNull(markPaper, "未找到科目信息");
-        return ResultUtil.ok(true);
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        TRBasicInfo trBasicInfoDb = trBasicInfoService.getOne(new QueryWrapper<TRBasicInfo>().lambda().eq(TRBasicInfo::getExamId, trBasicInfo.getExamId()).eq(TRBasicInfo::getCourseCode, trBasicInfo.getCourseCode()).eq(TRBasicInfo::getPaperNumber, trBasicInfo.getPaperNumber()));
+        if (Objects.isNull(trBasicInfoDb)) {
+            trBasicInfoDb = new TRBasicInfo(trBasicInfoDb, sysUser.getId());
+        } else {
+            trBasicInfoDb.updateInfo(trBasicInfo, sysUser.getId());
+        }
+        return ResultUtil.ok(trBasicInfoService.saveOrUpdate(trBasicInfo));
     }
 
     @ApiOperation(value = "导出报告")
@@ -85,7 +127,7 @@ public class TRBasicInfoController {
     public void reportExport(@ApiParam(value = "考试id", required = true) @RequestParam Long examId,
                              @ApiParam(value = "科目编码", required = true) @RequestParam String courseCode,
                              @ApiParam(value = "试卷编号", required = true) @RequestParam String paperNumber) throws IOException {
-        MarkPaper markPaper = markPaperService.getByExamIdAndPaperNumber(examId, paperNumber);
-        Objects.requireNonNull(markPaper, "未找到科目信息");
+        TRBasicInfo trBasicInfo = trBasicInfoService.getOne(new QueryWrapper<TRBasicInfo>().lambda().eq(TRBasicInfo::getExamId, examId).eq(TRBasicInfo::getCourseCode, courseCode).eq(TRBasicInfo::getPaperNumber, paperNumber));
+        Objects.requireNonNull(trBasicInfo, "没有报告信息");
     }
 }