Forráskód Böngészése

云阅卷可由管理员进行评卷员的任务数指定,在评卷员完成任务数后,系统给出提示“已完成任务数,是否继续阅卷”

nikang 7 éve
szülő
commit
708859a694

+ 10 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/model/Marker.java

@@ -73,6 +73,9 @@ public class Marker implements Serializable {
 
     @Transient
     private long currentCount;
+
+    @Column(name = "top_count")
+    private String topCount;
     
     public Integer getId() {
         return id;
@@ -231,4 +234,11 @@ public class Marker implements Serializable {
         this.mode = mode;
     }
 
+    public String getTopCount() {
+        return topCount;
+    }
+
+    public void setTopCount(String topCount) {
+        this.topCount = topCount;
+    }
 }

+ 20 - 0
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/exam/query/MarkerSearchQuery.java

@@ -8,6 +8,8 @@ import cn.com.qmth.stmms.biz.exam.model.Marker;
 
 public class MarkerSearchQuery extends BaseQuery<Marker> {
 
+    private int id;
+
     private int examId;
 
     private String subjectCode;
@@ -16,6 +18,8 @@ public class MarkerSearchQuery extends BaseQuery<Marker> {
 
     private String name;
 
+    private String topCount;
+
     public void orderByLoginName() {
         setSort(new Sort(Direction.ASC, "loginName"));
     }
@@ -55,4 +59,20 @@ public class MarkerSearchQuery extends BaseQuery<Marker> {
     public void setName(String name) {
         this.name = name;
     }
+
+    public String getTopCount() {
+        return topCount;
+    }
+
+    public void setTopCount(String topCount) {
+        this.topCount = topCount;
+    }
+
+    public int getId() {
+        return id;
+    }
+
+    public void setId(int id) {
+        this.id = id;
+    }
 }

+ 16 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/parameter/ExamMarkerController.java

@@ -408,4 +408,20 @@ public class ExamMarkerController extends BaseParameterController {
         }
         return obj;
     }
+
+    @RequestMapping(value = "/setTaskCount", method = RequestMethod.POST)
+    @ResponseBody
+    public JSONObject setTaskCount(@RequestParam Integer id,@RequestParam Integer taskCount) {
+        Marker marker = markerService.findById(id);
+        JSONObject obj = new JSONObject();
+        if (marker != null) {
+            marker.setTopCount(taskCount.toString());
+            marker = markerService.save(marker);
+            obj.accumulate("success", true);
+        } else {
+            obj.accumulate("success", false);
+            obj.accumulate("message", "该评卷员不存在");
+        }
+        return obj;
+    }
 }

+ 1 - 0
stmms-web/src/main/java/cn/com/qmth/stmms/mark/MarkController.java

@@ -198,6 +198,7 @@ public class MarkController extends BaseController {
 
         status.accumulate("personCount", personCount);
         status.accumulate("totalCount", totalCount);
+        status.accumulate("topCount", marker.getTopCount() == null ?0:marker.getTopCount());
         status.accumulate("markedCount", markedCount);
         status.accumulate("exceptionCount", 0);
         status.accumulate("valid", totalCount > 0);

+ 108 - 1
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/param/markerList.jsp

@@ -5,7 +5,63 @@
 	<title>评卷员管理</title>
 	<meta name="decorator" content="default"/>
 	<%@include file="/WEB-INF/views/include/head.jsp" %>
-	<style type="text/css">.sort{color:#0663A2;cursor:pointer;}</style>
+	<style type="text/css">
+        .sort{color:#0663A2;cursor:pointer;}
+        .taskWindow{
+            width: 400px;
+            min-height: 150px;
+            background: #fff;
+            font-family: "微软雅黑", Fixedsys;
+            border: #5d6d7d solid 1px;
+            position: absolute;
+            left: 50%;
+            top: 50%;
+            margin: -150px 0 0 -200px;
+            text-align: center;
+        }
+        .taskWindow .task-header{
+            width: 100%;
+            height: 46px;
+            background: #5d6d7d;
+            color: #fff;
+        }
+        .taskWindow .task-content{
+            font-size: 18px;
+            color: #005277;
+            text-align: left;
+            padding: 15px;
+            line-height: 30px;
+            word-wrap: break-word;
+        }
+        .image-close {
+            margin-top: 15px;
+            margin-right: 15px;
+            cursor: pointer;
+            float: right;
+        }
+        .title {
+            font-size: 22px;
+            font-weight: bold;
+            color: #fff;
+            margin: 0px;
+            padding: 13px 0 0 13px;
+            float: left;
+        }
+        .task-count{
+            width: 150px;
+        }
+        .btn-info{
+            height: 25px;
+            margin-left: 320px;
+            margin-bottom: 20px;
+        }
+        .wrong{
+            font-size: 12px;
+            color: #f00;
+            line-height: 30px;
+            padding-left: 20px;
+        }
+    </style>
 </head>
 <body>
 	<ul class="nav nav-tabs">
@@ -42,6 +98,7 @@
 				<th>科目</th>
 				<th>登录名</th>
 				<th>姓名</th>
+				<th>任务数</th>
 				<th>密码</th>
 				<th>状态</th>
 				<th>操作</th>
@@ -60,23 +117,32 @@
 				</td>
 				<td>${marker.loginName}</td>
 				<td>${marker.name}</td>
+				<td>${marker.topCount}</td>
 				<td>${marker.password}</td>
 				<td>${marker.enable eq true ? "启用" : "禁用"}</td>
 				<td>
 					<a href="javascript:void(0)" class="delete-button" data-id="${marker.id}">删除</a>
+                    <a href="javascript:void(0)" class="task-button" data-id="${marker.id}" onclick="showTaskWin('${marker.id}','${marker.subject.leftCount}');">评卷数</a>
 					<c:if test="${marker.enable==true}">
 					<a href="javascript:void(0)" class="toggle-button" data-id="${marker.id}" data-value="false">禁用</a>
 					</c:if>
 					<c:if test="${marker.enable==false}">
 					<a href="javascript:void(0)" class="toggle-button" data-id="${marker.id}" data-value="true">启用</a>
 					</c:if>
+
 				</td>
 			</tr>
 		</c:forEach>
 		</tbody>
 	</table>
+    <div class="taskWindow" style="display:none"><div class="task-header">
+        <p class="title">设置任务数</p><p class="image-close"><img src="${ctxStatic}/mark-new/images/images-close.png" /></p></div>
+        <div class="task-content"><input type="text" class="task-count" placeholder="请输入任务数"/><i class="wrong"></i></div>
+        <a href="#" class="btn btn-small btn-info">确定</a>
+    </div>
 	<div class="pagination">${query}</div>
 <script type="text/javascript">
+    var markerId ;var leftCount;
 $("#btnExport").click(function(){
 	top.$.jBox.confirm("确认要导出评卷员数据吗?","系统提示",function(v,h,f){
 		if(v=="ok"){
@@ -115,6 +181,47 @@ $('.toggle-button').click(function(){
 		}
 	});
 });
+function showTaskWin(obj,obj1){
+  if(parseInt(obj1) == 0){
+    alert('该科目下任务已全部评完!');
+    return false;
+  }
+  $('.wrong').html('');
+  $('.task-count').val('');
+  $('.taskWindow').show();
+  markerId = obj;
+  leftCount = obj1;
+}
+$('.image-close').click(function () {
+  $('.taskWindow').hide();
+});
+$('.btn-info').click(function () {
+  var taskCount = $('.task-count').val();
+  var wrongMessage = $('.wrong');
+       taskCount = taskCount.replace(/(^\s*)|(\s*$)/g, "");
+       if(taskCount.length == 0){
+         wrongMessage.html('任务数不能为空!');
+         return false;
+       }else {
+         if(!/^[0-9]*$/.test(taskCount)){
+           wrongMessage.html('请输入数字!');
+           return false;
+         }else {
+           if(parseInt(taskCount)>parseInt(leftCount)){
+             wrongMessage.html('任务数不能大于剩下未评数:'+leftCount);
+             return false;
+           }
+         }
+       }
+  $.post('${ctx}/admin/exam-param/marker/setTaskCount', {id: markerId,taskCount:taskCount}, function(result){
+    if(result.success==true){
+      $("#searchForm").submit();
+    }else{
+      alert(result.message);
+    }
+    $('.taskWindow').hide();
+  });
+});
 function page(n,s){
 	$("#pageNumber").val(n);
 	$("#pageSize").val(s);

+ 1 - 1
stmms-web/src/main/webapp/static/mark-new/js/modules/mark-status.js

@@ -24,7 +24,7 @@ function MarkStatus(option) {
         } else {
             this.objectiveArea.hide();
         }
-        //this.checkTopCount(task);
+        this.checkTopCount(task);
     });
     this.markControl.on('task.get.none', this, function(event, context, status) {
         this.topStatus.find('#stage-name').html('');

+ 1 - 1
stmms-web/src/main/webapp/static/mark-track/js/modules/mark-status.js

@@ -24,7 +24,7 @@ function MarkStatus(option) {
         } else {
             this.objectiveArea.hide();
         }
-        //this.checkTopCount(task);
+        this.checkTopCount(task);
     });
     this.markControl.on('task.get.none', this, function(event, context, status) {
         this.topStatus.find('#stage-name').html('');