Forráskód Böngészése

修改数据导入逻辑

insomniaLee 5 éve
szülő
commit
1f91685f29
1 módosított fájl, 20 hozzáadás és 15 törlés
  1. 20 15
      src/main/java/com/mooctest/service/BugDataService.java

+ 20 - 15
src/main/java/com/mooctest/service/BugDataService.java

@@ -80,23 +80,28 @@ public class BugDataService {
     }
 
     public void importBugData ( long examId , long caseId){
-        if(isImported(examId, caseId)){
-            return ; //  if have been imported , skip
-        }
-        bugDataDao.deleteAllByCaseIdAndExamId(caseId,examId); //  delete all the report that have been in this system ;
+        long count = bugDataDao.countByExamIdAndCaseId(examId, caseId);
         List<BugDTO> bugs = bugReportService.getAllBugs(examId, caseId);
-        List<BugData> toSave = new ArrayList<>();
-        bugs.forEach(s->{
-            BugData tempData = BugData.builder()
-                    .caseId(caseId)
-                    .examId(examId)
-                    .status(0)
-                    .reviewTimeMillis(s.getCreateTimeMillis())
+
+        if(bugs.size()!=count){
+            // 报告数量不一致 , 重新引入
+            List<BugData> savedBugs = bugDataDao.findByExamIdAndCaseId( examId,  caseId);
+            List<String > bugIds = savedBugs.stream().map(BugData::getBugId).collect(Collectors.toList());
+            List<BugData> toSave = new ArrayList<>();
+            bugs.forEach(s->{
+                if(!bugIds.contains(s.getId())){
+                    BugData tempData = BugData.builder()
+                            .caseId(caseId)
+                            .examId(examId)
+                            .status(0)
+                            .reviewTimeMillis(s.getCreateTimeMillis())
 //                    .reviewerId()
-                    .bugId(s.getId()).build();
-            toSave.add(tempData);
-        });
-        bugDataDao.saveAll(toSave); // 将信息存到数据库
+                            .bugId(s.getId()).build();
+                    toSave.add(tempData);
+                }
+            });
+            bugDataDao.saveAll(toSave); // 将信息存到数据库
+        }
     }
 
     public List<BugData> getBugDataByIds(List<String> bugIds){