瀏覽代碼

fix:成绩归档同步(未测试)

caozixuan 3 年之前
父節點
當前提交
d4d4075147

+ 15 - 5
distributed-print/src/main/java/com/qmth/distributed/print/api/TSyncExamStudentScoreController.java

@@ -10,14 +10,17 @@ import com.qmth.distributed.print.business.entity.TBSyncTask;
 import com.qmth.distributed.print.business.entity.TSyncExamStudentScore;
 import com.qmth.distributed.print.business.enums.ExamPrintPlanSyncStatusEnum;
 import com.qmth.distributed.print.business.enums.ImageTrajectoryEnum;
+import com.qmth.distributed.print.business.service.BasicExamService;
 import com.qmth.distributed.print.business.service.ExamPrintPlanService;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.service.TSyncExamStudentScoreService;
 import com.qmth.distributed.print.business.templete.execute.AsyncScoreBatchDownloadService;
 import com.qmth.distributed.print.business.templete.execute.AsyncScoreExportService;
 import com.qmth.distributed.print.business.templete.execute.AsyncScorePushService;
+import com.qmth.teachcloud.common.base.BaseEntity;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.entity.BasicExam;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.TBTask;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
@@ -35,10 +38,8 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import javax.validation.constraints.Max;
 import javax.validation.constraints.Min;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -76,6 +77,9 @@ public class TSyncExamStudentScoreController {
     @Resource
     ExamPrintPlanService examPrintPlanService;
 
+    @Resource
+    BasicExamService basicExamService;
+
     @ApiOperation(value = "成绩归档查询列表")
     @ApiResponses({@ApiResponse(code = 200, message = "成绩查询信息", response = TSyncExamStudentScoreResult.class)})
     @RequestMapping(value = "/score/list", method = RequestMethod.POST)
@@ -106,9 +110,15 @@ public class TSyncExamStudentScoreController {
     public Result sync(@ApiParam(value = "学期id", required = true) @RequestParam String semesterId,
                        @ApiParam(value = "课程编码", required = true) @RequestParam String courseCode) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        Set<Long> examIdSet = basicExamService.list(new QueryWrapper<BasicExam>()
+                .lambda()
+                .eq(BasicExam::getSemesterId,semesterId))
+                .stream()
+                .map(BaseEntity::getId)
+                .collect(Collectors.toSet());
         QueryWrapper<ExamPrintPlan> examPrintPlanQueryWrapper = new QueryWrapper<ExamPrintPlan>();
         examPrintPlanQueryWrapper.select(" DISTINCT third_relate_id ").eq("school_id", sysUser.getSchoolId())
-                .eq("semester_id", SystemConstant.convertIdToLong(semesterId))
+                .in("exam_id", examIdSet)
                 .eq("sync_status", ExamPrintPlanSyncStatusEnum.FINISH);
         List<ExamPrintPlan> examPrintPlanList = examPrintPlanService.list(examPrintPlanQueryWrapper);
         if (Objects.isNull(examPrintPlanList) || examPrintPlanList.size() == 0) {