1
0
ting.yin 1 жил өмнө
parent
commit
c8b6efa1ad

+ 1 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/service/impl/ExamQuestionServiceImpl.java

@@ -310,6 +310,7 @@ public class ExamQuestionServiceImpl extends BaseQueryService<ExamQuestion> impl
     }
 
     @Override
+    @Transactional
     public void deleteById(Integer questionId) {
         questionDao.delete(questionId);
     }

+ 27 - 21
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/MarkServiceImpl.java

@@ -1727,6 +1727,8 @@ public class MarkServiceImpl implements MarkService {
         }
         int examId = list.get(0).getExamId();
         String subjectCode = list.get(0).getSubjectCode();
+        Boolean containObjective = false;
+        Boolean containSubjective = false;
         for (ExamQuestion question : list) {
             SelectiveGroup selectiveGroup = selectiveGroupService.findOne(question.getExamId(),
                     question.getSubjectCode(), question.getMainNumber());
@@ -1739,33 +1741,37 @@ public class MarkServiceImpl implements MarkService {
                 boolean objective = question.isObjective();
                 questionService.deleteById(question.getId());
                 if (objective) {
-                    examService.updateObjectiveStatus(examId, ObjectiveStatus.WAITING);
+                    containObjective = true;
                 } else {
-                    // 未分组的题目
-                    long unGroupQuestionCount = questionService
-                            .countByExamIdAndSubjectAndObjectiveAndGroupNumberIsNull(examId, subjectCode, false);
-                    // 考生整体状态与总分更新
-                    long groupCount = groupDao.countByExamIdAndSubjectCode(examId, subjectCode);
-                    if (groupCount == 0 || unGroupQuestionCount > 0) {
-                        studentService.updateSubjectiveStatusAndScoreAndInspectorId(examId, subjectCode,
-                                SubjectiveStatus.UNMARK, 0, null, null, null);
-                        // studentService.resetSubjectiveStatusAndScoreWithoutTrial(examId,
-                        // subjectCode);
-                        inspectHistoryService.deleteByExamIdAndSubjectCode(examId, subjectCode);
-                    } else {
-                        List<Integer> studentList = studentService.findIdByExamIdAndSubjectCodeAndSubjectiveStatus(
-                                examId, subjectCode, SubjectiveStatus.UNMARK, SubjectiveStatus.MARKED);
-                        for (Integer studentId : studentList) {
-                            checkStudentSubjective(studentId, groupCount, unGroupQuestionCount);
-                        }
-                    }
+                    containSubjective = true;
                 }
             }
-            subjectService.updateScore(examId, subjectCode, false,
-                    questionService.sumTotalScore(examId, subjectCode, false));
+        }
+        if (containObjective) {
+            examService.updateObjectiveStatus(examId, ObjectiveStatus.WAITING);
             subjectService.updateScore(examId, subjectCode, true,
                     questionService.sumTotalScore(examId, subjectCode, true));
         }
+        if (containSubjective) {
+            // 未分组的题目
+            long unGroupQuestionCount = questionService.countByExamIdAndSubjectAndObjectiveAndGroupNumberIsNull(examId,
+                    subjectCode, false);
+            // 考生整体状态与总分更新
+            long groupCount = groupDao.countByExamIdAndSubjectCode(examId, subjectCode);
+            if (groupCount == 0 || unGroupQuestionCount > 0) {
+                studentService.updateSubjectiveStatusAndScoreAndInspectorId(examId, subjectCode,
+                        SubjectiveStatus.UNMARK, 0, null, null, null);
+                inspectHistoryService.deleteByExamIdAndSubjectCode(examId, subjectCode);
+            } else {
+                List<Integer> studentList = studentService.findIdByExamIdAndSubjectCodeAndSubjectiveStatus(examId,
+                        subjectCode, SubjectiveStatus.UNMARK, SubjectiveStatus.MARKED);
+                for (Integer studentId : studentList) {
+                    checkStudentSubjective(studentId, groupCount, unGroupQuestionCount);
+                }
+            }
+            subjectService.updateScore(examId, subjectCode, false,
+                    questionService.sumTotalScore(examId, subjectCode, false));
+        }
         return true;
     }
 

+ 2 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/mark/service/Impl/ProblemTypeServiceImpl.java

@@ -4,6 +4,7 @@ import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import cn.com.qmth.stmms.biz.common.BaseQueryService;
 import cn.com.qmth.stmms.biz.mark.dao.ProblemTypeDao;
@@ -26,6 +27,7 @@ public class ProblemTypeServiceImpl extends BaseQueryService<ProblemType> implem
         return problemDao.findOne(id);
     }
 
+    @Transactional
     @Override
     public void deleteById(Integer id) {
         problemDao.delete(id);

+ 8 - 5
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/MarkGroupController.java

@@ -146,10 +146,12 @@ public class MarkGroupController extends BaseExamController {
             group.setPercent(percent);
             group.setDeleting(lockService.isLocked(LockType.GROUP_DELETE, group.getExamId(), group.getSubjectCode(),
                     group.getNumber()));
-            SelectiveGroup selectiveGroup = selectiveGroupService.findOne(examId, group.getSubjectCode(), qList.get(0)
-                    .getMainNumber());
-            if (selectiveGroup != null) {
-                group.setSelectiveIndex(selectiveGroup.getSelectiveIndex());
+            if (!qList.isEmpty() && group.isSelective()) {
+                SelectiveGroup selectiveGroup = selectiveGroupService.findOne(examId, group.getSubjectCode(), qList
+                        .get(0).getMainNumber());
+                if (selectiveGroup != null) {
+                    group.setSelectiveIndex(selectiveGroup.getSelectiveIndex());
+                }
             }
         }
         model.addAttribute("resultList", list);
@@ -398,6 +400,7 @@ public class MarkGroupController extends BaseExamController {
             model.addAttribute("thirdPolicyList", ThirdPolicy.values());
             model.addAttribute("subject", subjectService.find(examId, subjectCode));
             model.addAttribute("exam", examService.findById(examId));
+            model.addAttribute("deleteCheck", StringUtils.isNotBlank(markDeleteCode));
             return "modules/exam/groupEditFull";
         } else {
             redirectAttributes.addAttribute("subjectCode", subjectCode);
@@ -417,7 +420,7 @@ public class MarkGroupController extends BaseExamController {
             redirectAttributes.addAttribute("subjectCode", subjectCode);
             return "redirect:/admin/exam/group";
         }
-        if (group.getLibraryCount() == group.getMarkedCount() && !markDeleteCode.equals(deleteCode)) {
+        if (group.getLibraryCount() != 0 && group.getLeftCount() == 0 && !markDeleteCode.equals(deleteCode)) {
             addMessage(redirectAttributes, "删除分组授权码不正确");
             redirectAttributes.addAttribute("subjectCode", subjectCode);
             return "redirect:/admin/exam/group";

+ 6 - 0
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/groupEditFull.jsp

@@ -387,6 +387,12 @@
     });
 
     $('.delete-button').click(function () {
+    	var deleteCheck = '${deleteCheck}';
+    	debugger;
+    	if(deleteCheck=='false'){
+    		$("#inputForm").attr("action","${ctx}/admin/exam/group/delete");
+    		$("#inputForm").submit();
+    	}
     	var subjectCode = '${group.subjectCode}';
     	var groupNumber = '${group.number}';
     	var progress = '${group.percent}';

BIN
stmms-web/src/main/webapp/static/download/研究生项目验收报告模板.docx