ting.yin 2 年 前
コミット
49e47e7a57

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

@@ -11,10 +11,12 @@ import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
 import cn.com.qmth.stmms.biz.config.service.impl.SystemCache;
+import cn.com.qmth.stmms.biz.exam.model.Exam;
 import cn.com.qmth.stmms.biz.exam.model.ExamStudent;
 import cn.com.qmth.stmms.biz.exam.model.ExamSubject;
 import cn.com.qmth.stmms.biz.exam.model.MarkGroup;
 import cn.com.qmth.stmms.biz.exam.model.Marker;
+import cn.com.qmth.stmms.biz.exam.service.ExamService;
 import cn.com.qmth.stmms.biz.exam.service.ExamStudentService;
 import cn.com.qmth.stmms.biz.exam.service.ExamSubjectService;
 import cn.com.qmth.stmms.biz.exam.service.MarkGroupService;
@@ -22,6 +24,7 @@ import cn.com.qmth.stmms.biz.exam.service.MarkerService;
 import cn.com.qmth.stmms.biz.lock.LockService;
 import cn.com.qmth.stmms.biz.mark.service.MarkService;
 import cn.com.qmth.stmms.biz.utils.TaskLockUtil;
+import cn.com.qmth.stmms.common.enums.ExamStatus;
 import cn.com.qmth.stmms.common.enums.LockType;
 import cn.com.qmth.stmms.common.enums.MarkStatus;
 import cn.com.qmth.stmms.common.enums.SubjectiveStatus;
@@ -57,6 +60,9 @@ public class MarkCronService {
     @Autowired
     private SystemCache systemCache;
 
+    @Autowired
+    private ExamService examService;
+
     @Value("${mark.activeExpireMinute}")
     private long markerActiveExpireMinute;
 
@@ -94,6 +100,10 @@ public class MarkCronService {
         try {
             List<Integer> examIds = groupService.findExamIdByStatus(MarkStatus.TRIAL, MarkStatus.FORMAL);
             for (Integer examId : examIds) {
+                Exam exam = examService.findById(examId);
+                if (ExamStatus.FINISH.equals(exam.getStatus())) {
+                    continue;
+                }
                 buildLibraryByExam(examId);
             }
         } catch (Exception e) {

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

@@ -302,11 +302,6 @@ public class MarkLibraryServiceImpl extends BaseQueryService<MarkLibrary> implem
                     Predicate predicate2 = cb.le(root.get("markerScore"), query.getEndScore());
                     predicates.add(predicate2);
                 }
-                if (query.getMarkerScore() != null && query.getStartScore() != null) {
-                    Predicate predicate1 = cb.ge(root.get("markerScore"), query.getStartScore());
-                    Predicate predicate2 = cb.le(root.get("markerScore"), query.getEndScore());
-                    predicates.add(cb.and(predicate1, predicate2));
-                }
                 return predicates.isEmpty() ? cb.conjunction() : cb.and(predicates.toArray(new Predicate[predicates
                         .size()]));
             }

+ 3 - 1
stmms-web/src/main/java/cn/com/qmth/stmms/admin/report/ReportSubjectRangeController.java

@@ -115,6 +115,7 @@ public class ReportSubjectRangeController extends BaseExamController {
     public String list(Model model, HttpServletRequest request, ReportSubjectQuery query) {
         WebUser wu = RequestUtils.getWebUser(request);
         int examId = getSessionExamId(request);
+        List<ExamSubject> sList = getExamSubject(examId, wu);
         if (StringUtils.isNotBlank(query.getSubjectCode()) && query.getRange() != null) {
             ReportSubject subject = reportSubjectService.findOne(examId, query.getSubjectCode());
             if (subject != null && subject.getScoreRange() != null && subject.getTotalScore() != null
@@ -126,7 +127,8 @@ public class ReportSubjectRangeController extends BaseExamController {
             }
             model.addAttribute("locked", lockService.isLocked(LockType.SCORE_CALCULATE, examId, query.getSubjectCode()));
         }
-        model.addAttribute("subjectList", getExamSubject(examId, wu));
+        model.addAttribute("oldSubjectCode", query.getSubjectCode());
+        model.addAttribute("subjectList", sList);
         model.addAttribute("query", query);
         return "modules/report/reportSubjectRange";
     }

+ 16 - 4
stmms-web/src/main/java/cn/com/qmth/stmms/report/ReportController.java

@@ -170,7 +170,7 @@ public class ReportController {
                     getDifficulty(examId, subjectCode, paperType, reportSubject, subjectClasses, subjectGroups));
             result.accumulate("range_level", getRangeLevel(query, reportSubject, subjectClasses));
             result.accumulate("range_10_totalScore", getRange10(reportSubject, subjectClasses, isFull));
-            result.accumulate("range_1_totalScore", getRange1(reportSubject, subjectClasses, isFull));
+            result.accumulate("range_1_totalScore", getRange1(reportSubject, subjectClasses, false));
             result.accumulate("range_segment_6", getRange6(reportSubject, subjectClasses));
             return result;
         } catch (Exception e) {
@@ -292,10 +292,22 @@ public class ReportController {
         int range = 10;
         int total = (int) Math.ceil(totalScore / range);
         for (int i = total; i >= 0; i--) {
+            // int start = i * range;
+            // int end = (i - 1) * range + 1;
+            // if (start > totalScore) {
+            // start = (int) Math.ceil(totalScore);
+            // }
+            // if (end < 0) {
+            // end = 0;
+            // }
+            // rangeCount = getSumCount(jsonObject, start, end);
+            // sumCount = sumCount + rangeCount;
+            // result.add(getRangeJson(totalCount, rangeCount, sumCount, i *
+            // range));
             int start = i * range;
-            int end = (i - 1) * range + 1;
-            if (start > totalScore) {
-                start = (int) Math.ceil(totalScore);
+            int end = (i + 1) * range;
+            if (end > totalScore) {
+                end = (int) Math.ceil(totalScore);
             }
             if (end < 0) {
                 end = 0;

+ 26 - 5
stmms-web/src/main/webapp/WEB-INF/views/modules/report/reportSubjectRange.jsp

@@ -44,7 +44,11 @@
                 <option value="10" <c:if test="${query.range ==10 }">selected</c:if>>十分一段</option>
                  <option value="5" <c:if test="${query.range ==5 }">selected</c:if>>五分一段</option>
         </select>
-        <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()"  data-i18n-value="report.group.search"/>
+        &nbsp;
+        <input id="btnSubmit" class="btn btn-primary" type="button" value="查询" onclick="goSearch()" data-i18n-value="report.group.search"/>
+		<c:if test="${query.subjectCode!=null && oldSubjectCode!=null}">
+		<a id="refresh" href="${ctx}/admin/exam/reportSubjectRange/report?subjectCode=${query.subjectCode}" class="btn" <c:if test="${locked}">disabled="disabled"</c:if>>刷新</a>
+		</c:if>
 		&nbsp;
 		<div class="btn-group">
 				<a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
@@ -55,10 +59,6 @@
 					<li><a href="##"  id="exportAll-button">批量导出</a></li>
 				</ul>
 		</div>
-		<c:if test="${query.subjectCode!=null}">
-		&nbsp;
-		<a href="${ctx}/admin/exam/reportSubjectRange/report?subjectCode=${query.subjectCode}" class="btn" <c:if test="${locked}">disabled="disabled"</c:if>>刷新</a>
-		</c:if>
 		&nbsp;
 		<a href="#" onclick="viewEcharts()" class="btn  btn-primary">查看统计图</a>
     </div>
@@ -89,6 +89,27 @@
     </tbody>
 </table>
 <script type="text/javascript">
+$(document).ready(function () {
+	var old = "${oldSubjectCode}";
+	if(old==""){
+	    $('#btnSubmit').attr("type","button");
+	    $('#refresh').hide();
+    }else{
+    	$('#btnSubmit').attr("type","hidden");
+    	$('#refresh').show();
+    }
+});
+$('#subjectCode').change(function () {
+    var code = $(this).val();
+    var old = "${oldSubjectCode}";
+    if(code !=old || old==""){
+	    $('#btnSubmit').attr("type","button");
+	    $('#refresh').hide();
+    }else{
+    	$('#btnSubmit').attr("type","hidden");
+    	$('#refresh').show();
+    }
+});
 
 $("#export-button").click(function(){
 	if ($("#subjectCode").val() == null || $("#subjectCode").val() == '') {