|
@@ -45,57 +45,68 @@ public class ReviewJobService {
|
|
|
|
|
|
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")){
|
|
|
- jsonObject.put("status","fail");
|
|
|
- jsonObject.put("message",checkResult);
|
|
|
- return jsonObject;
|
|
|
- }
|
|
|
+// String checkResult=checkJobDistribution(workerDistribution);
|
|
|
+// if(!checkResult.equals("success")){
|
|
|
+// jsonObject.put("status","fail");
|
|
|
+// 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,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;
|
|
|
- }
|
|
|
+ else{
|
|
|
+ ReviewJob newReviewJob = new ReviewJob(jobId,examId, caseId, name, description, Long.toString(System.currentTimeMillis()), paperId, startTime, endTime, singleTime,totalWorkload,groupId, maxWorker);
|
|
|
+ jobId = jobDao.save(newReviewJob);
|
|
|
}
|
|
|
- //默认分配
|
|
|
- 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,examId,jobId));
|
|
|
- workerIds.add(workerId);
|
|
|
- }
|
|
|
- List<ReviewReport>reviewReports=reportDao.getReportsByPaperId(paperId);
|
|
|
- List<String>reportIds=new ArrayList<>();
|
|
|
- List<String>paperOriginalIds=new ArrayList<>();
|
|
|
- List<String>originalIds=new ArrayList<>();
|
|
|
- for(int i=0;i<reviewReports.size();i++) {
|
|
|
- ReviewReport reviewReport=reviewReports.get(i);
|
|
|
- reportIds.add(reviewReport.getId());
|
|
|
- originalIds.add(reviewReport.getOriginal_id());
|
|
|
- paperOriginalIds.add(paperId+"-"+reviewReport.getOriginal_id());
|
|
|
- }
|
|
|
- groupDao.save(new ReviewGroup("default","",workerIds,jobId,reportIds,paperOriginalIds,originalIds));
|
|
|
- System.out.println("job存储成功");
|
|
|
+ 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,examId,jobId));
|
|
|
+ workerIds.add(workerId);
|
|
|
}
|
|
|
- else {
|
|
|
- saveJobDistribution(workerDistribution, jobId);
|
|
|
+ //是教育版则调用分配服务
|
|
|
+// if(examId!=null&!examId.equals("")){
|
|
|
+ try {
|
|
|
+ invokeJobDistributionService(name, paperId, jobId, 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,examId,jobId));
|
|
|
+// workerIds.add(workerId);
|
|
|
+// }
|
|
|
+// List<ReviewReport>reviewReports=reportDao.getReportsByPaperId(paperId);
|
|
|
+// List<String>reportIds=new ArrayList<>();
|
|
|
+// List<String>paperOriginalIds=new ArrayList<>();
|
|
|
+// List<String>originalIds=new ArrayList<>();
|
|
|
+// for(int i=0;i<reviewReports.size();i++) {
|
|
|
+// ReviewReport reviewReport=reviewReports.get(i);
|
|
|
+// reportIds.add(reviewReport.getId());
|
|
|
+// originalIds.add(reviewReport.getOriginal_id());
|
|
|
+// paperOriginalIds.add(paperId+"-"+reviewReport.getOriginal_id());
|
|
|
+// }
|
|
|
+// groupDao.save(new ReviewGroup("default","",workerIds,jobId,reportIds,paperOriginalIds,originalIds));
|
|
|
+// System.out.println("job存储成功");
|
|
|
+// }
|
|
|
+// else {
|
|
|
+// saveJobDistribution(workerDistribution, jobId);
|
|
|
+// }
|
|
|
jsonObject.put("status","success");
|
|
|
jsonObject.put("jobId",jobId);
|
|
|
return jsonObject;
|
|
|
}
|
|
|
|
|
|
- private void invokeJobDistributionService(String name,String paperId,String examId,int singleTime,int totalWorkload) throws Exception{
|
|
|
+ private void invokeJobDistributionService(String name,String paperId,String jobId,int singleTime,int totalWorkload) throws Exception{
|
|
|
+ String url = "http://129.211.26.227:8082/reportsDistribution/"+ jobId;
|
|
|
ReviewPaper reviewPaper=reviewPaperService.getPaper(paperId);
|
|
|
String type=reviewPaper.getType();
|
|
|
ReviewPaperJson reviewPaperJson=reviewPaperService.getReviewPaperJson(paperId);
|
|
@@ -109,58 +120,58 @@ public class ReviewJobService {
|
|
|
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);
|
|
|
-
|
|
|
+ HTTP.postBody(url,jobJson);
|
|
|
}
|
|
|
|
|
|
- private String checkJobDistribution(String workerDistribution){
|
|
|
- try {
|
|
|
- if(workerDistribution.equals("")||workerDistribution.equals("[]")){
|
|
|
- return "success";
|
|
|
- }
|
|
|
- JSONArray jsonArray=new JSONArray(workerDistribution);
|
|
|
- for(int i=0;i<jsonArray.length();i++){
|
|
|
- JSONObject jsonObject=jsonArray.getJSONObject(i);
|
|
|
- String name=jsonObject.getString("name");
|
|
|
- String desciption=jsonObject.getString("description");
|
|
|
- JSONArray jsonArray1=jsonObject.getJSONArray("worker");
|
|
|
- JSONArray jsonArray2=jsonObject.getJSONArray("report");
|
|
|
- }
|
|
|
- }catch (Exception e){
|
|
|
- return "分配信息不正确:"+e.getMessage();
|
|
|
- }
|
|
|
- return "success";
|
|
|
- }
|
|
|
+// private String checkJobDistribution(String workerDistribution){
|
|
|
+// try {
|
|
|
+// if(workerDistribution.equals("")||workerDistribution.equals("[]")){
|
|
|
+// return "success";
|
|
|
+// }
|
|
|
+// JSONArray jsonArray=new JSONArray(workerDistribution);
|
|
|
+// for(int i=0;i<jsonArray.length();i++){
|
|
|
+// JSONObject jsonObject=jsonArray.getJSONObject(i);
|
|
|
+// String name=jsonObject.getString("name");
|
|
|
+// String desciption=jsonObject.getString("description");
|
|
|
+// JSONArray jsonArray1=jsonObject.getJSONArray("worker");
|
|
|
+// JSONArray jsonArray2=jsonObject.getJSONArray("report");
|
|
|
+// }
|
|
|
+// }catch (Exception e){
|
|
|
+// return "分配信息不正确:"+e.getMessage();
|
|
|
+// }
|
|
|
+// return "success";
|
|
|
+// }
|
|
|
|
|
|
- private void saveJobDistribution(String workerDistribution,String jobId){
|
|
|
- String paperId=jobDao.findJob(jobId).getPaper_id();
|
|
|
- JSONArray jsonArray=new JSONArray(workerDistribution);
|
|
|
- for(int i=0;i<jsonArray.length();i++){
|
|
|
- JSONObject jsonObject=jsonArray.getJSONObject(i);
|
|
|
- String name=jsonObject.getString("name");
|
|
|
- String desciption=jsonObject.getString("description");
|
|
|
- JSONArray jsonArray1=jsonObject.getJSONArray("worker");
|
|
|
- List<String>workerIds=new ArrayList<>();
|
|
|
- for(int j=0;j<jsonArray1.length();j++){
|
|
|
- workerIds.add(String.valueOf(jsonArray1.get(j)));
|
|
|
- }
|
|
|
- JSONArray jsonArray2=jsonObject.getJSONArray("report");
|
|
|
- List<String>reportIds=new ArrayList<>();
|
|
|
- List<String>paperOriginalIds=new ArrayList<>();
|
|
|
- List<String>originalIds=new ArrayList<>();
|
|
|
- for(int j=0;j<jsonArray2.length();j++){
|
|
|
- String originalId=String.valueOf(jsonArray2.get(j));
|
|
|
- String paperOriginalId=paperId+"-"+originalId;
|
|
|
- String reportId=reportDao.findReportByPaperOriginalId(paperId,originalId).getId();
|
|
|
- paperOriginalIds.add(paperOriginalId);
|
|
|
- reportIds.add(reportId);
|
|
|
- originalIds.add(originalId);
|
|
|
- }
|
|
|
- groupDao.save(new ReviewGroup(name,desciption,workerIds,jobId,reportIds,paperOriginalIds,originalIds));
|
|
|
- }
|
|
|
- }
|
|
|
+// private void saveJobDistribution(String workerDistribution,String jobId){
|
|
|
+// String paperId=jobDao.findJob(jobId).getPaper_id();
|
|
|
+// JSONArray jsonArray=new JSONArray(workerDistribution);
|
|
|
+// for(int i=0;i<jsonArray.length();i++){
|
|
|
+// JSONObject jsonObject=jsonArray.getJSONObject(i);
|
|
|
+// String name=jsonObject.getString("name");
|
|
|
+// String desciption=jsonObject.getString("description");
|
|
|
+// JSONArray jsonArray1=jsonObject.getJSONArray("worker");
|
|
|
+// List<String>workerIds=new ArrayList<>();
|
|
|
+// for(int j=0;j<jsonArray1.length();j++){
|
|
|
+// workerIds.add(String.valueOf(jsonArray1.get(j)));
|
|
|
+// }
|
|
|
+// JSONArray jsonArray2=jsonObject.getJSONArray("report");
|
|
|
+// List<String>reportIds=new ArrayList<>();
|
|
|
+// List<String>paperOriginalIds=new ArrayList<>();
|
|
|
+// List<String>originalIds=new ArrayList<>();
|
|
|
+// for(int j=0;j<jsonArray2.length();j++){
|
|
|
+// String originalId=String.valueOf(jsonArray2.get(j));
|
|
|
+// String paperOriginalId=paperId+"-"+originalId;
|
|
|
+// String reportId=reportDao.findReportByPaperOriginalId(paperId,originalId).getId();
|
|
|
+// paperOriginalIds.add(paperOriginalId);
|
|
|
+// reportIds.add(reportId);
|
|
|
+// originalIds.add(originalId);
|
|
|
+// }
|
|
|
+// groupDao.save(new ReviewGroup(name,desciption,workerIds,jobId,reportIds,paperOriginalIds,originalIds));
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
public MessageVO uploadJobByJson(JobJsonDTO jobJsonDTO){
|
|
|
+ MessageVO messageVO=new MessageVO();
|
|
|
String jobName=jobJsonDTO.getJob_name();
|
|
|
String jobDescription=jobJsonDTO.getJob_description();
|
|
|
String startTime=jobJsonDTO.getStart_time();
|
|
@@ -169,44 +180,49 @@ public class ReviewJobService {
|
|
|
String caseId=jobJsonDTO.getCaseId();
|
|
|
JSONArray workerList_Array=new JSONArray(jobJsonDTO.getWorker_list());
|
|
|
String paperUrl=jobJsonDTO.getPaperUrl();
|
|
|
- System.out.println("基本读取成功");
|
|
|
List<String>workerList=new ArrayList<>();
|
|
|
for(int i=0;i<workerList_Array.length();i++){
|
|
|
workerList.add(String.valueOf(workerList_Array.get(i)));
|
|
|
}
|
|
|
- MessageVO messageVO=new MessageVO();
|
|
|
- try {
|
|
|
- String paperJson=readStringFromUrl(paperUrl);
|
|
|
- JSONObject paperResult=reviewPaperService.uploadPaper(paperJson);
|
|
|
- System.out.println("paperJson拉成功");
|
|
|
- if(!paperResult.getString("status").equals("success")){
|
|
|
- messageVO.setStatus("500");
|
|
|
- messageVO.setMessage("创建paper失败");
|
|
|
- return messageVO;
|
|
|
- }
|
|
|
- String paperId=paperResult.getString("paperId");
|
|
|
- //是众测考试的话存对应的众测考试id
|
|
|
- if (examId!=null&&(!examId.equals(""))){
|
|
|
- crowdSourceToReviewPaperDao.save(new CrowdSourceToReviewPaper(paperId,examId+"-"+caseId,paperUrl));
|
|
|
- }
|
|
|
- List<ReviewReport>reports=reviewPaperService.getReportsByPaperId(paperId);
|
|
|
- List<String>reportIds=new ArrayList<>();
|
|
|
- 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);
|
|
|
- // groupDao.save(new ReviewGroup("default","",workerList,jobId,reportIds));
|
|
|
- if(jsonObject.getString("status").equals("success")) {
|
|
|
- messageVO.setStatus("200");
|
|
|
- messageVO.setMessage(jsonObject.getString("jobId"));
|
|
|
- }
|
|
|
- else{
|
|
|
+ ReviewJob reviewJob=jobDao.findJobByExamCase(examId,caseId);
|
|
|
+ if(reviewJob!=null){
|
|
|
+ String id=reviewJob.getId();
|
|
|
+ messageVO.setStatus("200");
|
|
|
+ messageVO.setMessage(id);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ try {
|
|
|
+ String paperJson = readStringFromUrl(paperUrl);
|
|
|
+ JSONObject paperResult = reviewPaperService.uploadPaper(paperJson);
|
|
|
+ System.out.println("paperJson拉成功");
|
|
|
+ if (!paperResult.getString("status").equals("success")) {
|
|
|
+ messageVO.setStatus("500");
|
|
|
+ messageVO.setMessage("创建paper失败");
|
|
|
+ return messageVO;
|
|
|
+ }
|
|
|
+ String paperId = paperResult.getString("paperId");
|
|
|
+ //是众测考试的话存对应的众测考试id
|
|
|
+ if (examId != null && (!examId.equals(""))) {
|
|
|
+ crowdSourceToReviewPaperDao.save(new CrowdSourceToReviewPaper(paperId, examId + "-" + caseId, paperUrl));
|
|
|
+ }
|
|
|
+ List<ReviewReport> reports = reviewPaperService.getReportsByPaperId(paperId);
|
|
|
+ List<String> reportIds = new ArrayList<>();
|
|
|
+ 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);
|
|
|
+ // groupDao.save(new ReviewGroup("default","",workerList,jobId,reportIds));
|
|
|
+ if (jsonObject.getString("status").equals("success")) {
|
|
|
+ messageVO.setStatus("200");
|
|
|
+ messageVO.setMessage(jsonObject.getString("jobId"));
|
|
|
+ } else {
|
|
|
+ messageVO.setStatus("500");
|
|
|
+ messageVO.setMessage(jsonObject.getString("message"));
|
|
|
+ }
|
|
|
+ } catch (IOException e) {
|
|
|
messageVO.setStatus("500");
|
|
|
- messageVO.setMessage(jsonObject.getString("message"));
|
|
|
+ messageVO.setMessage(e.getMessage());
|
|
|
}
|
|
|
- } catch (IOException e) {
|
|
|
- messageVO.setStatus("500");
|
|
|
- messageVO.setMessage(e.getMessage());
|
|
|
}
|
|
|
return messageVO;
|
|
|
}
|
|
@@ -237,21 +253,21 @@ public class ReviewJobService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public JSONArray getJobDistribution(String jobId){
|
|
|
- List<ReviewGroup>reviewGroups=groupDao.getGroupsByJob(jobId);
|
|
|
- JSONArray jsonArray=new JSONArray();
|
|
|
- for(int i=0;i<reviewGroups.size();i++){
|
|
|
- ReviewGroup reviewGroup=reviewGroups.get(i);
|
|
|
- JSONObject jsonObject=new JSONObject();
|
|
|
- jsonObject.put("name",reviewGroup.getName());
|
|
|
- jsonObject.put("description",reviewGroup.getDescription());
|
|
|
- jsonObject.put("worker",reviewGroup.getWorkers_id());
|
|
|
- jsonObject.put("report",reviewGroup.getOriginal_id());
|
|
|
- jsonArray.put(jsonObject);
|
|
|
- }
|
|
|
- return jsonArray;
|
|
|
-
|
|
|
- }
|
|
|
+// public JSONArray getJobDistribution(String jobId){
|
|
|
+// List<ReviewGroup>reviewGroups=groupDao.getGroupsByJob(jobId);
|
|
|
+// JSONArray jsonArray=new JSONArray();
|
|
|
+// for(int i=0;i<reviewGroups.size();i++){
|
|
|
+// ReviewGroup reviewGroup=reviewGroups.get(i);
|
|
|
+// JSONObject jsonObject=new JSONObject();
|
|
|
+// jsonObject.put("name",reviewGroup.getName());
|
|
|
+// jsonObject.put("description",reviewGroup.getDescription());
|
|
|
+// jsonObject.put("worker",reviewGroup.getWorkers_id());
|
|
|
+// jsonObject.put("report",reviewGroup.getOriginal_id());
|
|
|
+// jsonArray.put(jsonObject);
|
|
|
+// }
|
|
|
+// return jsonArray;
|
|
|
+//
|
|
|
+// }
|
|
|
|
|
|
public List<ReviewJob>getJobsByPaper(String paperId){
|
|
|
return jobDao.findJobsByPaper(paperId);
|