|
@@ -5,6 +5,7 @@ import edu.nju.entities.*;
|
|
|
import edu.nju.model.JobJsonDTO;
|
|
|
import edu.nju.model.MessageVO;
|
|
|
import edu.nju.model.ReviewPaperVO;
|
|
|
+import edu.nju.util.HTTP;
|
|
|
import org.json.JSONArray;
|
|
|
import org.json.JSONObject;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -42,7 +43,7 @@ public class ReviewJobService {
|
|
|
return jobDao.findJobs();
|
|
|
}
|
|
|
|
|
|
- public JSONObject uploadJob(String jobId,String examId,String caseId,String name, String description, String paperId, String startTime, String endTime,int singleTime,int totalWorkload, List<String>workerList, String workerDistribution,int maxWorker){
|
|
|
+ public JSONObject uploadJob(String jobId,String examId,String caseId,String name, String description, String paperId, String startTime, String endTime,int singleTime,int totalWorkload, List<String>workerList, String workerDistribution,String groupId,int maxWorker){
|
|
|
JSONObject jsonObject=new JSONObject();
|
|
|
String checkResult=checkJobDistribution(workerDistribution);
|
|
|
if(!checkResult.equals("success")){
|
|
@@ -50,15 +51,27 @@ public class ReviewJobService {
|
|
|
jsonObject.put("message",checkResult);
|
|
|
return jsonObject;
|
|
|
}
|
|
|
+ //新建,否则是update
|
|
|
if(jobId.equals("")) {
|
|
|
- ReviewJob newReviewJob = new ReviewJob(examId, caseId, name, description, Long.toString(System.currentTimeMillis()), paperId, startTime, endTime, singleTime,totalWorkload,"", maxWorker);
|
|
|
+ ReviewJob newReviewJob = new ReviewJob(examId, caseId, name, description, Long.toString(System.currentTimeMillis()), paperId, startTime, endTime, singleTime,totalWorkload,groupId, maxWorker);
|
|
|
jobId = jobDao.save(newReviewJob);
|
|
|
}
|
|
|
+ //是教育版则调用分配服务
|
|
|
+ if(examId!=null&!examId.equals("")){
|
|
|
+ try {
|
|
|
+ invokeJobDistributionService(name, paperId, examId, singleTime, totalWorkload);
|
|
|
+ } catch (Exception e) {
|
|
|
+ jsonObject.put("status","fail");
|
|
|
+ jsonObject.put("jobId","分配服务调用失败");
|
|
|
+ return jsonObject;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //默认分配
|
|
|
if(workerDistribution.equals("")||workerDistribution.equals("[]")){
|
|
|
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));
|
|
|
+ String workerId=reviewWorkerDao.save(new ReviewWorker(workerIndex,paperId,examId,jobId));
|
|
|
workerIds.add(workerId);
|
|
|
}
|
|
|
List<ReviewReport>reviewReports=reportDao.getReportsByPaperId(paperId);
|
|
@@ -82,6 +95,24 @@ public class ReviewJobService {
|
|
|
return jsonObject;
|
|
|
}
|
|
|
|
|
|
+ private void invokeJobDistributionService(String name,String paperId,String examId,int singleTime,int totalWorkload) throws Exception{
|
|
|
+ ReviewPaper reviewPaper=reviewPaperService.getPaper(paperId);
|
|
|
+ String type=reviewPaper.getType();
|
|
|
+ ReviewPaperJson reviewPaperJson=reviewPaperService.getReviewPaperJson(paperId);
|
|
|
+ String json=reviewPaperJson.getJson();
|
|
|
+ JSONObject jsonObject=new JSONObject(json);
|
|
|
+ JSONArray reports= (JSONArray) jsonObject.get("report_list");
|
|
|
+ JSONObject result=new JSONObject();
|
|
|
+ result.put("taskName",name);
|
|
|
+ result.put("type",type);
|
|
|
+ result.put("singleTime",singleTime);
|
|
|
+ result.put("totalWorkload",totalWorkload);
|
|
|
+ result.put("reports",reports);
|
|
|
+ String jobJson=result.toString();
|
|
|
+ String invokeResult = HTTP.sendGet("http://129.211.26.227:8082/reportsDistribution/" + examId, jobJson);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
private String checkJobDistribution(String workerDistribution){
|
|
|
try {
|
|
|
if(workerDistribution.equals("")||workerDistribution.equals("[]")){
|
|
@@ -163,7 +194,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,0,0,workerList,"",0);
|
|
|
+ JSONObject jsonObject=uploadJob("",examId,caseId,jobName,jobDescription,paperId,startTime,endTime,0,0,workerList,"","",0);
|
|
|
// groupDao.save(new ReviewGroup("default","",workerList,jobId,reportIds));
|
|
|
if(jsonObject.getString("status").equals("success")) {
|
|
|
messageVO.setStatus("200");
|
|
@@ -180,7 +211,7 @@ public class ReviewJobService {
|
|
|
return messageVO;
|
|
|
}
|
|
|
|
|
|
- public JSONObject updateJob(String jobId,String name, String description, String paperId,String startTime, String endTime,int singleTime, int totalWorkload,List<String>workerList,String workerDistribution,int maxWorker){
|
|
|
+ public JSONObject updateJob(String jobId,String name, String description, String paperId,String startTime, String endTime,int singleTime, int totalWorkload,List<String>workerList,String workerDistribution,String groupId,int maxWorker){
|
|
|
ReviewJob reviewJob=jobDao.findJob(jobId);
|
|
|
reviewJob.setName(name);
|
|
|
reviewJob.setDescription(description);
|
|
@@ -190,7 +221,7 @@ public class ReviewJobService {
|
|
|
jobDao.save(reviewJob);
|
|
|
groupDao.removeByJob(jobId);
|
|
|
reviewWorkerDao.removeByJob(jobId);
|
|
|
- JSONObject jsonObject1=uploadJob(jobId,"","",name,description,paperId,startTime,endTime,singleTime,totalWorkload,workerList,workerDistribution,maxWorker);
|
|
|
+ JSONObject jsonObject1=uploadJob(jobId,"","",name,description,paperId,startTime,endTime,singleTime,totalWorkload,workerList,workerDistribution,groupId,maxWorker);
|
|
|
return jsonObject1;
|
|
|
}
|
|
|
|