xiaofei 1 éve
szülő
commit
0b40f8b11a

+ 12 - 3
distributed-print/install/nginx/teachcloud.conf

@@ -1,11 +1,20 @@
 server {
         listen 7400;
         charset utf-8;
- 
+
+        # 知学知考
         location ^~ / {
-				root  ../../teachcloud/web;
+				root  ../../teachcloud/web/print/;
+				index  index.html index.htm;
 				try_files $uri $uri/ /index.html;
 		}
+
+		# 阅卷端
+        location /mark/ {
+            alias  ../../teachcloud/web/mark/;
+            index  index.html index.htm;
+            try_files $uri $uri/ index.html;
+        }
  
         location /static/ {
                 alias ../../teachcloud/static/;
@@ -18,4 +27,4 @@ server {
                 proxy_set_header X-Real-IP $remote_addr;
                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         }
-}
+}

+ 6 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/dto/mark/manage/MarkerTrackDTO.java

@@ -1,5 +1,6 @@
 package com.qmth.teachcloud.mark.dto.mark.manage;
 
+import com.qmth.teachcloud.mark.entity.MarkHeaderTrack;
 import com.qmth.teachcloud.mark.entity.MarkTrack;
 
 public class MarkerTrackDTO extends TrackDTO {
@@ -13,6 +14,11 @@ public class MarkerTrackDTO extends TrackDTO {
         this.userId = track.getUserId();
     }
 
+    public MarkerTrackDTO(MarkHeaderTrack markHeaderTrack) {
+        super(markHeaderTrack);
+        this.userId = markHeaderTrack.getUserId();
+    }
+
     public Long getUserId() {
         return userId;
     }

+ 1 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/mapper/MarkPaperMapper.java

@@ -30,7 +30,7 @@ public interface MarkPaperMapper extends BaseMapper<MarkPaper> {
 
     IPage<CheckScoreListDto> listStudentScoreList(@Param("page") Page<CheckScoreListDto> page, @Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber);
 
-    IPage<MarkPaperPackageDto> listPackage(@Param("page") Page<MarkPaperPackageDto> page, @Param("examId") Long examId, @Param("paperNumber") String paperNumber, @Param("packageCode") String packageCode);
+    IPage<MarkPaperPackageDto> listPackage(@Param("page") Page<MarkPaperPackageDto> page, @Param("examId") Long examId, @Param("coursePaperId") String coursePaperId, @Param("packageCode") String packageCode);
 
     List<MarkSettingDto> listPaperSetting(@Param("examId") Long examId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("groupStatus") boolean groupStatus, @Param("dpr") DataPermissionRule dpr);
 

+ 2 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/MarkStudentService.java

@@ -113,4 +113,6 @@ public interface MarkStudentService extends IService<MarkStudent> {
     void exportUnexist(Long examId, HttpServletResponse response);
 
     long countUnmarkByExamIdAndPaperNumber(Long examId, String paperNumber);
+
+    void updateCheckInfo(Long studentId, Long userId);
 }

+ 1 - 1
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkPaperServiceImpl.java

@@ -197,7 +197,7 @@ public class MarkPaperServiceImpl extends ServiceImpl<MarkPaperMapper, MarkPaper
     public IPage<MarkPaperPackageDto> listPackage(Long examId, String paperNumber, String packageCode, Integer pageNumber, Integer pageSize) {
         MarkPaper markPaper = this.getByExamIdAndPaperNumber(examId, paperNumber);
         Page<MarkPaperPackageDto> page = new Page<>(pageNumber, pageSize);
-        IPage<MarkPaperPackageDto> markPaperPackageDtoIPage = this.baseMapper.listPackage(page, examId, paperNumber, packageCode);
+        IPage<MarkPaperPackageDto> markPaperPackageDtoIPage = this.baseMapper.listPackage(page, examId, markPaper.getCoursePaperId(), packageCode);
         for (MarkPaperPackageDto packageDto : markPaperPackageDtoIPage.getRecords()) {
             List<ScanPackage> scanPackageList = scanPackageService.listByExamIdAndCoursePaperIdAndPackageCode(examId, markPaper.getCoursePaperId(), packageDto.getPackageCode());
             List<String> urls = scanPackageList.stream().map(m -> teachcloudCommonService.filePreview(m.getPath())).collect(Collectors.toList());

+ 3 - 0
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkServiceImpl.java

@@ -886,6 +886,9 @@ public class MarkServiceImpl implements MarkService {
                         groupResult.getGroupNumber(), groupResult.getStudentId(), userId,
                         groupResult.getMarkerScore(), groupResult.getScoreList(), currentTime, MarkTaskStatus.MARKED);
                 updateMarkedCount(markStudent.getExamId(), markStudent.getPaperNumber(), groupResult.getGroupNumber());
+                markStudentService.updateCheckInfo(markStudent.getId(), userId);
+                checkStudentGroup(groupResult.getStudentId(),
+                        markGroupService.getByExamIdAndPaperNumberAndGroupNumber(markStudent.getExamId(), markStudent.getPaperNumber(), groupResult.getGroupNumber()));
             } catch (ApiException e) {
                 throw ExceptionResultEnum.ERROR.exception("打分失败");
             } finally {

+ 13 - 2
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/MarkStudentServiceImpl.java

@@ -4,13 +4,13 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.Update;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 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.qmth.boot.core.concurrent.service.ConcurrentService;
 import com.qmth.boot.core.exception.ParameterException;
+import com.qmth.teachcloud.common.bean.vo.FilePathVo;
 import com.qmth.teachcloud.common.entity.BasicExam;
 import com.qmth.teachcloud.common.entity.MarkQuestion;
 import com.qmth.teachcloud.common.entity.SysUser;
@@ -21,7 +21,6 @@ import com.qmth.teachcloud.common.enums.mark.SubjectiveStatus;
 import com.qmth.teachcloud.common.service.TeachcloudCommonService;
 import com.qmth.teachcloud.common.util.ExcelUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
-import com.qmth.teachcloud.common.bean.vo.FilePathVo;
 import com.qmth.teachcloud.mark.bean.UpdateTimeVo;
 import com.qmth.teachcloud.mark.bean.archivescore.*;
 import com.qmth.teachcloud.mark.bean.omredit.OmrEditDomain;
@@ -378,10 +377,13 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
 
     @Override
     public Boolean saveObjectiveInspectedTask(Long studentId, String answers) {
+        Long userId = ServletUtil.getRequestUserId();
         MarkStudent student = this.getById(studentId);
         answers = StringUtils.trimToEmpty(answers);
         if (student != null) {
             student.setAnswers(answers.toUpperCase());
+            student.setCheckUserId(userId);
+            student.setCheckTime(System.currentTimeMillis());
             return saveUploadStudent(student);
         } else {
             return false;
@@ -843,6 +845,15 @@ public class MarkStudentServiceImpl extends ServiceImpl<MarkStudentMapper, MarkS
         return this.count(queryWrapper);
     }
 
+    @Override
+    public void updateCheckInfo(Long studentId, Long userId) {
+        UpdateWrapper<MarkStudent> updateWrapper = new UpdateWrapper<>();
+        updateWrapper.lambda().set(MarkStudent::getCheckUserId, userId)
+                .set(MarkStudent::getCheckTime, System.currentTimeMillis())
+                .eq(MarkStudent::getId, studentId);
+        this.update(updateWrapper);
+    }
+
     private void fillObjective(ScoreReportVo ret, Long examId, String paperNumber) {
         List<MarkQuestion> qs = markQuestionService.listQuestionByExamIdAndPaperNumber(examId, paperNumber);
         List<MarkStudent> students = listByExamIdAndPaperNumberAndAbsent(examId, paperNumber, false);

+ 15 - 4
teachcloud-mark/src/main/java/com/qmth/teachcloud/mark/service/impl/TaskServiceImpl.java

@@ -1,12 +1,10 @@
 package com.qmth.teachcloud.mark.service.impl;
 
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 import javax.annotation.Resource;
 
+import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 
@@ -151,6 +149,7 @@ public class TaskServiceImpl implements TaskService {
                         questionNumber);
                 for (MarkTrack track : tracks) {
                     step.addTrack(new MarkerTrackDTO(track));
+//                    step.addTrack(replaceTrackFormHeaderTrack(track, headerTracks));
                 }
             }
             // 仲裁轨迹
@@ -164,6 +163,18 @@ public class TaskServiceImpl implements TaskService {
         return list;
     }
 
+    private MarkerTrackDTO replaceTrackFormHeaderTrack(MarkTrack markTrack, List<MarkHeaderTrack> headerTracks) {
+        MarkerTrackDTO markerTrackDTO = new MarkerTrackDTO(markTrack);
+        if(CollectionUtils.isNotEmpty(headerTracks)){
+            Optional<MarkHeaderTrack> optional = headerTracks.stream().filter(m -> m.getStudentId().equals(markTrack.getStudentId()) && m.getQuestionNumber().equals(markTrack.getQuestionNumber())).findFirst();
+            if(optional.isPresent()){
+                MarkHeaderTrack markHeaderTrack = optional.get();
+                markerTrackDTO = new MarkerTrackDTO(markHeaderTrack);
+            }
+        }
+        return markerTrackDTO;
+    }
+
     private List<MarkStepDTO> buildArbitrateStep(MarkGroup group, MarkArbitrateHistory markArbitrateHistory) {
         List<MarkStepDTO> list = new LinkedList<>();
         List<MarkQuestion> markQuestionList = markQuestionService.listQuestionByExamIdAndPaperNumberAndGroupNumber(

+ 8 - 8
teachcloud-mark/src/main/resources/mapper/MarkPaperMapper.xml

@@ -102,17 +102,17 @@
             </if>
     </select>
     <select id="listPackage" resultType="com.qmth.teachcloud.mark.dto.mark.score.MarkPaperPackageDto">
-        SELECT DISTINCT
-            ms.package_code packageCode
+        SELECT distinct
+            sp.package_code packageCode
         FROM
-            mark_student ms
+            scan_package sp
         WHERE
-            ms.exam_id = #{examId}
-            AND ms.paper_number = #{paperNumber}
-            <if test="packageCode =! null and packageCode != ''">
-                AND ms.package_code = #{packageCode}
+            sp.exam_id = #{examId}
+            AND sp.course_paper_id = #{coursePaperId}
+            <if test="packageCode != null and packageCode != ''">
+                AND sp.package_code = #{packageCode}
             </if>
-        ORDER BY ms.package_code
+        ORDER BY sp.package_code
     </select>
     <select id="scoreList" resultType="com.qmth.teachcloud.mark.bean.archivescore.ArchiveScoreVo">
         SELECT t.exam_id,t.course_code,t.course_name,t.paper_number,

+ 3 - 0
teachcloud-mark/src/main/resources/mapper/MarkStudentMapper.xml

@@ -61,10 +61,13 @@
             ifnull(ms.objective_score, 0) +  ifnull(ms.subjective_score, 0) totalScore,
             ms.subjective_score_list subjectiveScoreList,
             ms.check_user_id checkUserId,
+            su.login_name checkUserLoginName,
+            su.real_name checkUserName,
             ms.check_time checkTime,
             ms.sheet_path sheetPath
         FROM
             mark_student ms
+                left join sys_user su on ms.check_user_id = su.id
         where ms.exam_id = #{examId}
             AND ms.paper_number = #{paperNumber}
             <if test="college != null and college != ''">