ting.yin %!s(int64=2) %!d(string=hai) anos
pai
achega
c1ced4280a

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

@@ -1121,7 +1121,7 @@ public class ExamStudentServiceImpl extends BaseQueryService<ExamStudent> implem
 
     @Override
     public Set<String> findSubjectUnInspectedByExamId(int examId) {
-        return studentDao.findSubjectUnInspectedByExamId(examId, SubjectiveStatus.MARKED);
+        return studentDao.findSubjectUnInspectedByExamId(examId, SubjectiveStatus.UNMARK, SubjectiveStatus.MARKED);
     }
 
     @Override

+ 17 - 22
stmms-biz/src/main/java/cn/com/qmth/stmms/biz/user/service/impl/UserServiceImpl.java

@@ -253,12 +253,13 @@ public class UserServiceImpl implements UserService {
     private void saveMarkerBySubject(int examId, Integer number, String password, String subjectCode) {
         Exam exam = examService.findById(examId);
         List<MarkGroup> groups = groupService.findByExamAndSubject(examId, subjectCode);
-        List<Marker> saveList = new ArrayList<Marker>();
         for (MarkGroup group : groups) {
+            List<Marker> saveList = new ArrayList<Marker>();
             String prefix = exam.getSchoolId() + "-" + subjectCode + "-" + group.getNumber();
             int maxNumber = this.findMaxNumberByLoginNameStart(prefix);
-            for (int j = 0; j < number; j++) {
-                String loginName = prefix + "-" + (maxNumber + j + 1);
+            int createNumber = 1;
+            while (saveList.size() < number) {
+                String loginName = prefix + "-" + (maxNumber + createNumber);
                 User user = userDao.findFirstByLoginName(loginName);
                 if (user == null) {
                     user = new User();
@@ -270,15 +271,11 @@ public class UserServiceImpl implements UserService {
                     user.setEnable(true);
                     user.setSchoolId(exam.getSchoolId());
                     user.setCreatedTime(new Date());
-                }
-                if (StringUtils.isNotBlank(password)) {
-                    user.setPassword(EncryptUtils.md5(password));
-                }
-                userDao.save(user);
-                Marker marker = markerService.findByExamAndSubjectAndNumberAndUserId(examId, subjectCode,
-                        group.getNumber(), user.getId());
-                if (marker == null) {
-                    marker = new Marker();
+                    if (StringUtils.isNotBlank(password)) {
+                        user.setPassword(EncryptUtils.md5(password));
+                    }
+                    userDao.save(user);
+                    Marker marker = new Marker();
                     marker.setSubjectCode(subjectCode);
                     marker.setGroupNumber(group.getNumber());
                     marker.setUserId(user.getId());
@@ -286,9 +283,10 @@ public class UserServiceImpl implements UserService {
                     marker.setEnable(true);
                     saveList.add(marker);
                 }
+                createNumber++;
             }
+            markerService.batchSave(saveList);
         }
-        markerService.batchSave(saveList);
     }
 
     @Transactional
@@ -309,13 +307,14 @@ public class UserServiceImpl implements UserService {
     private void saveSubjectUserBySubject(int examId, Integer number, Role role, String subjectCode) {
         Exam exam = examService.findById(examId);
         List<SubjectUser> saveList = new ArrayList<SubjectUser>();
-        for (int i = 0; i < number; i++) {
+        int createNumber = 1;
+        while (saveList.size() < number) {
             String prefix = exam.getSchoolId() + "-" + subjectCode;
             if (role.equals(Role.INSPECTOR)) {
                 prefix = exam.getSchoolId() + "-FH-" + subjectCode;
             }
             int maxNumber = this.findMaxNumberByLoginNameStart(prefix);
-            String loginName = prefix + "-" + (maxNumber + i + 1);
+            String loginName = prefix + "-" + (maxNumber + createNumber);
             User user = userDao.findFirstByLoginName(loginName);
             if (user == null) {
                 user = new User();
@@ -327,17 +326,13 @@ public class UserServiceImpl implements UserService {
                 user.setEnable(true);
                 user.setSchoolId(exam.getSchoolId());
                 user.setCreatedTime(new Date());
-            } else {
-                user.setPassword(EncryptUtils.md5(USER_PASSWORD));
-            }
-            userDao.save(user);
-            SubjectUser subjectUser = subjectUserService.findBySubjectCodeAndUserId(subjectCode, user.getId());
-            if (subjectUser == null) {
-                subjectUser = new SubjectUser();
+                user = userDao.save(user);
+                SubjectUser subjectUser = new SubjectUser();
                 subjectUser.setSubjectCode(subjectCode);
                 subjectUser.setUserId(user.getId());
                 saveList.add(subjectUser);
             }
+            createNumber++;
         }
         subjectUserService.batchSave(saveList);
     }

+ 3 - 2
stmms-web/src/main/java/cn/com/qmth/stmms/admin/exam/LibraryController.java

@@ -157,7 +157,8 @@ public class LibraryController extends BaseExamController {
     @ResponseBody
     @RoleRequire({ Role.SCHOOL_ADMIN, Role.SUBJECT_HEADER, Role.COLLEGE_ADMIN })
     public JSONObject reject(HttpServletRequest request, @RequestParam Integer id,
-            @RequestParam(required = false, defaultValue = "false") boolean isRest) {
+            @RequestParam(required = false, defaultValue = "false") boolean isRest,
+            @RequestParam(required = false) String reason) {
         JSONObject obj = new JSONObject();
         MarkLibrary library = libraryService.findById(id);
         WebUser wu = RequestUtils.getWebUser(request);
@@ -170,7 +171,7 @@ public class LibraryController extends BaseExamController {
                     if ((library.getStatus().equals(LibraryStatus.MARKED)
                             || library.getStatus().equals(LibraryStatus.PROBLEM) || library.getStatus().equals(
                             LibraryStatus.INSPECTED))
-                            && markService.rejectLibrary(library, wu.getId(), null, isRest)) {
+                            && markService.rejectLibrary(library, wu.getId(), reason, isRest)) {
                         obj.accumulate("success", true);
                     } else {
                         obj.accumulate("success", false);

+ 113 - 14
stmms-web/src/main/webapp/WEB-INF/views/modules/exam/libraryList.jsp

@@ -9,6 +9,73 @@
         color: #0663A2;
         cursor: pointer;
     }</style>
+    <style type="text/css">.sort {
+        color: #0663A2;
+        cursor: pointer;
+    }
+        .rejectWindow {
+            width: 400px;
+            min-height: 200px;
+            background: #fff;
+            font-family: "微软雅黑", Fixedsys;
+            border: #5d6d7d solid 1px;
+            position: absolute;
+            left: 50%;
+            top: 50%;
+            margin: -150px 0 0 -200px;
+            text-align: center;
+            z-index: 99999;
+        }
+        
+        .task-header, .password-header {
+            width: 100%;
+            height: 46px;
+            background: #5d6d7d;
+            color: #fff;
+        }
+        
+        .task-content, .password-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, .password-value {
+            width: 50px;
+        }
+
+        .btn-info {
+            height: 25px;
+            margin-left: 320px;
+            margin-bottom: 20px;
+        }
+        
+        .wrong, .passwordWrong {
+            font-size: 12px;
+            color: #f00;
+            line-height: 30px;
+            padding-left: 20px;
+        }
+    </style>
 </head>
 <body>
 <ul class="nav nav-tabs">
@@ -173,22 +240,24 @@
     </c:forEach>
     </tbody>
 </table>
+	<div class="rejectWindow" 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>
+	        <input id="rejectId" type="hidden"/>
+	    	<div class="task-content">打回原因:	<br/>
+	    		<input name="rejectReasonSelect" type="radio"  value="给分较高"/>给分较高<br/>
+            	<input name="rejectReasonSelect" type="radio"  value="给分较低"/>给分较低<br/>
+            	<input name="rejectReasonSelect" type="radio"  value="判分错误"/>判分错误<br/>
+            	<input name="rejectReasonSelect" type="radio"  value="其他"/>其他<br/>
+	    		<textarea id="rejectReasonInput" rows="3" maxlength="60" class="input-large"></textarea>
+	    <i class="wrong">
+	    </i></div>
+	    <a href="#" class="btn btn-small btn-info task-btn">确认</a>
+	</div>
 <div class="pagination">${query}</div>
 <%@include file="/WEB-INF/views/include/trackView.jsp" %>
 <script type="text/javascript">
-    $('.back-link').click(function () {
-        if (!confirm('确定要打回该评卷任务吗?')) {
-            return;
-        }
-        $.post('${ctx}/admin/exam/library/reject', {id: $(this).attr('data-id')}, function (result) {
-            if (result.success == true) {
-                alert('打回成功');
-                $("#searchForm").submit();
-            } else {
-                alert(result.message);
-            }
-        });
-    });
     $('#subject-select').change(function () {
         var code = $(this).val();
         $('#group-select').empty();
@@ -280,7 +349,37 @@
     		return false;
     	}
     });
-    
+    $('.back-link').click(function () {
+    	$('#rejectReasonInput').attr("value","");
+    	$('#rejectId').attr("value", $(this).attr('data-id'));
+    	$('.rejectWindow').show();
+    });
+    $('.image-close').click(function () {
+        $('.rejectWindow').hide();
+    });
+    $('.task-btn').click(function () {
+        var rejectReason =$("input[name='rejectReasonSelect']").val();
+        var rejectReasonInput = $('#rejectReasonInput').val();
+        var rejectId=$("#rejectId").val();
+        if(rejectReasonInput!="" ||rejectReasonInput!=null){
+        	rejectReason =rejectReason+":"+rejectReasonInput;
+        }
+        $.ajax({
+        	url:"${ctx}/admin/exam/library/reject",
+        	data:{id: rejectId, reason: rejectReason},
+        	traditional:true,
+        	type:"post",
+        	success:function (result) {
+                if (result.success == true) {
+                	 alert('打回成功');
+                    $("#searchForm").submit();
+                } else {
+                    alert(result.message);
+                }
+                $('.rejectWindow').hide();
+        	}
+        });
+    });
 </script>
 </body>
 </html>