Ver código fonte

修改updateJob以及uploadJob时对workerDIstribution为""的判断

MengyangDuan 5 anos atrás
pai
commit
c1d4155512

+ 2 - 7
src/main/java/edu/nju/controller/ReviewJobController.java

@@ -58,7 +58,7 @@ public class ReviewJobController {
     public void uploadJob(String name, String description, String paperId, String startTime, String endTime, @RequestParam("workerList")List<String>workerList, String workerDistribution,boolean isCrossValidation,int validationNum, HttpServletResponse response){
         try {
             PrintWriter out = response.getWriter();
-            JSONObject jsonObject = reviewJobService.uploadJob("","",name, description, paperId, startTime, endTime, workerList, workerDistribution,isCrossValidation,validationNum);
+            JSONObject jsonObject = reviewJobService.uploadJob("","","",name, description, paperId, startTime, endTime, workerList, workerDistribution,isCrossValidation,validationNum);
             out.print(jsonObject);
             out.flush();
             out.close();
@@ -93,12 +93,7 @@ public class ReviewJobController {
     @RequestMapping(value = "/updateJob", method = RequestMethod.POST)
     @ResponseBody
     public void updateJob(String jobId, String name, String description, String paperId,String startTime, String endTime,@RequestParam("workerList")List<String>workerList,String workerDistribution,boolean isCrossValidation,int validationNum, HttpServletResponse response){
-        JSONObject result = new JSONObject();
-        if(reviewJobService.updateJob(jobId, name, description, paperId, startTime, endTime, workerList, workerDistribution,isCrossValidation,validationNum)){
-            result.put("status", "200");
-        } else {
-            result.put("status", "500");
-        }
+        JSONObject result = reviewJobService.updateJob(jobId, name, description, paperId, startTime, endTime, workerList, workerDistribution,isCrossValidation,validationNum);
         try {
             PrintWriter out = response.getWriter();
             out.print(result);

+ 12 - 3
src/main/java/edu/nju/entities/ReviewJob.java

@@ -33,7 +33,7 @@ public class ReviewJob implements java.io.Serializable{
     private int validationNum;
 
     @PersistenceConstructor
-    public ReviewJob(String exam_id,String case_id, String name, String description, String create_time, String paper_id, String start_time, String end_time, String group,boolean isCrossValidation,int validationNum) {
+    public ReviewJob(String exam_id,String case_id, String name, String description, String create_time, String paper_id, String start_time, String end_time, String group,Boolean isCrossValidation,Integer validationNum) {
         this.exam_id=exam_id;
         this.case_id=case_id;
         this.description = description;
@@ -43,8 +43,16 @@ public class ReviewJob implements java.io.Serializable{
         this.start_time = start_time;
         this.end_time = end_time;
         this.group = group;
-        this.isCrossValidation=isCrossValidation;
-        this.validationNum=validationNum;
+        if(isCrossValidation==null){
+            this.isCrossValidation=false;
+        }
+        else
+            this.isCrossValidation=isCrossValidation;
+        if(isCrossValidation==null){
+            this.validationNum=0;
+        }
+        else
+            this.validationNum=validationNum;
     }
     @PersistenceConstructor
     public ReviewJob(String exam_id, String paper_id,String create_time) {
@@ -56,6 +64,7 @@ public class ReviewJob implements java.io.Serializable{
         this.start_time = "";
         this.end_time = "";
         this.group = "";
+
     }
 
     public String getId() {

+ 21 - 33
src/main/java/edu/nju/service/ReviewJobService.java

@@ -40,15 +40,18 @@ public class ReviewJobService {
         return jobDao.findJobs();
     }
 
-    public JSONObject uploadJob(String examId,String caseId,String name, String description, String paperId, String startTime, String endTime, List<String>workerList, String workerDistribution,boolean isCrossValidation,int validationNum){
+    public JSONObject uploadJob(String jobId,String examId,String caseId,String name, String description, String paperId, String startTime, String endTime, List<String>workerList, String workerDistribution,boolean isCrossValidation,int validationNum){
         JSONObject jsonObject=new JSONObject();
         String checkResult=checkJobDistribution(workerDistribution);
-        if(!checkResult.equals("success")){
+        if((!workerDistribution.equals(""))&&(!checkResult.equals("success"))){
             jsonObject.put("status","fail");
             jsonObject.put("message",checkResult);
+            return jsonObject;
+        }
+        if(jobId.equals("")) {
+            ReviewJob newReviewJob = new ReviewJob(examId, caseId, name, description, Long.toString(System.currentTimeMillis()), paperId, startTime, endTime, "", isCrossValidation, validationNum);
+            jobId = jobDao.save(newReviewJob);
         }
-        ReviewJob reviewJob=new ReviewJob(examId,caseId,name,description,Long.toString(System.currentTimeMillis()),paperId,startTime,endTime,"",isCrossValidation,validationNum);
-        String jobId=jobDao.save(reviewJob);
         if(workerDistribution.equals("")){
             List<String>workerIds=new ArrayList<>();
             for(int i=0;i<workerList.size();i++){
@@ -134,7 +137,7 @@ public class ReviewJobService {
             for(int i=0;i<reports.size();i++){
                 reportIds.add(reports.get(i).getId());
             }
-            JSONObject jsonObject=uploadJob(examId,caseId,jobName,jobDescription,paperId,startTime,endTime,workerList,"",false,0);
+            JSONObject jsonObject=uploadJob("",examId,caseId,jobName,jobDescription,paperId,startTime,endTime,workerList,"",false,0);
            // groupDao.save(new ReviewGroup("default","",workerList,jobId,reportIds));
             if(jsonObject.getString("status").equals("success")) {
                 messageVO.setStatus("200");
@@ -151,34 +154,19 @@ public class ReviewJobService {
         return messageVO;
     }
 
-    public boolean updateJob(String jobId,String name, String description, String paperId,String startTime, String endTime,List<String>workerList,String workerDistribution,boolean isCrossValidation,int validationNum){
-        try {
-            ReviewJob reviewJob=jobDao.findJob(jobId);
-            reviewJob.setName(name);
-            reviewJob.setDescription(description);
-            reviewJob.setStart_time(startTime);
-            reviewJob.setEnd_time(endTime);
-            reviewJob.setCrossValidation(isCrossValidation);
-            reviewJob.setValidationNum(validationNum);
-            jobDao.save(reviewJob);
-            deleteJob(jobId);
-            List<String>workerIds=new ArrayList<>();
-            for(int i=0;i<workerList.size();i++){
-                String workerIndex=workerList.get(i);
-                String workerId=reviewWorkerDao.save(new ReviewWorker(workerIndex,paperId,"",jobId));
-                workerIds.add(workerId);
-            }
-            List<ReviewReport>reviewReports=reportDao.getReportsByPaperId(paperId);
-            List<String>reportIds=new ArrayList<>();
-            for(int i=0;i<reviewReports.size();i++)
-                reportIds.add(reviewReports.get(i).getId());
-            saveJobDistribution(workerDistribution,jobId);
-            return true;
-        } catch (Exception e) {
-            e.printStackTrace();
-            return false;
-        }
-
+    public JSONObject updateJob(String jobId,String name, String description, String paperId,String startTime, String endTime,List<String>workerList,String workerDistribution,boolean isCrossValidation,int validationNum){
+        ReviewJob reviewJob=jobDao.findJob(jobId);
+        reviewJob.setName(name);
+        reviewJob.setDescription(description);
+        reviewJob.setStart_time(startTime);
+        reviewJob.setEnd_time(endTime);
+        reviewJob.setCrossValidation(isCrossValidation);
+        reviewJob.setValidationNum(validationNum);
+        jobDao.save(reviewJob);
+        groupDao.removeByJob(jobId);
+        reviewWorkerDao.removeByJob(jobId);
+        JSONObject jsonObject1=uploadJob(jobId,"","",name,description,paperId,startTime,endTime,workerList,workerDistribution,isCrossValidation,validationNum);
+        return jsonObject1;
     }
 
     public boolean deleteJob(String jobId){