|
@@ -17,10 +17,7 @@ import org.springframework.stereotype.Service;
|
|
import java.io.File;
|
|
import java.io.File;
|
|
import java.io.FileOutputStream;
|
|
import java.io.FileOutputStream;
|
|
import java.text.DecimalFormat;
|
|
import java.text.DecimalFormat;
|
|
-import java.util.Arrays;
|
|
|
|
-import java.util.HashMap;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
@Service
|
|
@Service
|
|
public class ReviewAnalyzeService {
|
|
public class ReviewAnalyzeService {
|
|
@@ -38,6 +35,16 @@ public class ReviewAnalyzeService {
|
|
@Autowired
|
|
@Autowired
|
|
ReviewReportDao reviewReportDao;
|
|
ReviewReportDao reviewReportDao;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ BugDao bugDao;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ BugScoreDao bugScoreDao;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ AnalyzeService analyzeService;
|
|
|
|
+
|
|
|
|
|
|
public JSONObject analyzeItem(String itemId,String reportId,String jobId){
|
|
public JSONObject analyzeItem(String itemId,String reportId,String jobId){
|
|
JSONObject jsonObject=new JSONObject();
|
|
JSONObject jsonObject=new JSONObject();
|
|
@@ -268,4 +275,83 @@ public class ReviewAnalyzeService {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ public JSONObject crowdReviewGradeToCrowdTest (String jobId){
|
|
|
|
+ JSONObject result=new JSONObject();
|
|
|
|
+ JSONObject updateBugScore=uploadCrowdTestBugGrade(jobId);
|
|
|
|
+ if("500".equals(updateBugScore.get("status"))){
|
|
|
|
+ return updateBugScore;
|
|
|
|
+ }else{
|
|
|
|
+ ReviewJob reviewJob=reviewJobDao.findJob(jobId);
|
|
|
|
+ if(reviewJob==null){
|
|
|
|
+ result.put("status","500");
|
|
|
|
+ result.put("计算工人分数并上传","不存在该job");
|
|
|
|
+ }else {
|
|
|
|
+ String caseId =reviewJob.getCase_id();
|
|
|
|
+ String examId=reviewJob.getExam_id();
|
|
|
|
+ String caseTakeId =caseId+examId;
|
|
|
|
+ analyzeService.getScores(caseTakeId);
|
|
|
|
+ result.put("status","200");
|
|
|
|
+ result.put("计算工人分数并上传","成功");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //回写众审结束后的bug分数至bugScore
|
|
|
|
+ private JSONObject uploadCrowdTestBugGrade(String jobId){
|
|
|
|
+ ReviewJob reviewJob=reviewJobDao.findJob(jobId);
|
|
|
|
+ JSONObject result=new JSONObject();
|
|
|
|
+ if(reviewJob==null){
|
|
|
|
+ result.put("status","500");
|
|
|
|
+ result.put("更新bugScore","不存在该job");
|
|
|
|
+ }else {
|
|
|
|
+ ReviewPaper reviewPaper = reviewPaperDao.findPaper(reviewJob.getPaper_id());
|
|
|
|
+ if (reviewPaper.getType().equals("众包测试")) {
|
|
|
|
+ List<ReviewReport> reviewReportList = reviewReportDao.getReportsByPaperId(reviewJob.getPaper_id());
|
|
|
|
+ if(reviewReportList==null){
|
|
|
|
+ result.put("status","500");
|
|
|
|
+ result.put("更新bugScore","该job内不存在report");
|
|
|
|
+ }else {
|
|
|
|
+ //一个report对应一个bug
|
|
|
|
+ for (ReviewReport reviewReport : reviewReportList) {
|
|
|
|
+ String bugId = reviewReport.getOriginal_id();
|
|
|
|
+ List<ReviewItem> reviewItemList = reviewItemDao.findItemsByReport(reviewReport.getId());
|
|
|
|
+ //众测转成的众审,item只有一个,单选题,选择得几分
|
|
|
|
+ if (reviewItemList != null && reviewItemList.size() == 1) {
|
|
|
|
+ ReviewItem reviewItem = reviewItemList.get(0);
|
|
|
|
+ if (reviewItem.getType().equals("Single")) {
|
|
|
|
+ int allScore = 0;//总分
|
|
|
|
+ int count = 0;//共有几人评分
|
|
|
|
+ List<ReviewAnswer> reviewAnswerList = reviewAnswerDao.getItemReportJobAnswers(reviewItem.getId(), reviewReport.getId(), jobId);
|
|
|
|
+ for (ReviewAnswer reviewAnswer : reviewAnswerList) {
|
|
|
|
+ List<String> answers = reviewAnswer.getAnswers();
|
|
|
|
+ //该题进行了选择
|
|
|
|
+ if (answers != null && answers.size() > 0) {
|
|
|
|
+ for (int i = 0; i < answers.size(); i++) {
|
|
|
|
+ if ("1".equals(answers.get(i))) {
|
|
|
|
+ allScore += i;
|
|
|
|
+ count++;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ int grade = allScore / count;
|
|
|
|
+ //新建bugScore并保存
|
|
|
|
+ BugScore bugScore = new BugScore(bugId, grade, 0);
|
|
|
|
+ bugScoreDao.save(bugScore);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ result.put("status","200");
|
|
|
|
+ result.put("更新bugScore","更新bugScore成功");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|