Kaynağa Gözat

将审核状态从Master报告中剥离出来,放在单独的Bugdata数据库中,用于标记是否审核。同时在singleReport的界面添加了添加报告的功能,

insomniaLee 5 yıl önce
ebeveyn
işleme
82f37a5a2d

+ 10 - 5
src/main/java/com/mooctest/controller/BugReviewController.java

@@ -4,6 +4,7 @@ import com.mooctest.service.BugReviewService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
 
 @RestController
@@ -17,16 +18,20 @@ public class BugReviewController {
     public void queryReportReviewStatus(@RequestParam("masterId") String masterId) {
         bugReviewService.aggReportReview(masterId);
     }
+
+//    @PutMapping("/bug_review")
 //    //审核报告--将树状报告下的子报告都标记为已审核
 //    @PutMapping("/bug_review")
 //    public void bugReviewTree(@RequestParam("treeId") String treeId) {
 //        bugReviewService.aggReportReview(treeId);
 //    }
 //
-//    //审核报告 -- 单个报告   之后更新报告所在
-//    @PutMapping("/single_bug_review")
-//    public void singlaBugReview(@RequestParam("reportId") String reportId) {
-//        bugReviewService.aggReportReview(reportId);
-//    }
+    //审核报告 -- 单个报告   之后更新报告所在
+    @PutMapping("/single_bug_review")
+    @ResponseBody
+    public String singlaBugReview(@RequestParam("reportId") String reportId) {
+        boolean flag  =  bugReviewService.singleReportReview(reportId);
+        return flag?"success":"fail";
+    }
 
 }

+ 4 - 1
src/main/java/com/mooctest/controller/HistoryController.java

@@ -50,6 +50,9 @@ public class HistoryController {
 	@Autowired
 	MasterReportService masterReportService;
 
+	@Autowired
+	BugReviewService bugReviewService;
+
 
 	//获取指定节点的历史信息
 //	@RequestMapping(value = "/getHistory")
@@ -163,7 +166,7 @@ public class HistoryController {
         model.addAttribute("category2String", ReportUtil.category2String);
         model.addAttribute("recurrent2String", ReportUtil.recurrent2String);
         model.addAttribute("severity2String", ReportUtil.severity2String);
-        model.addAttribute("reviewed",false);
+        model.addAttribute("reviewed",bugReviewService.isBugReviewed(treeId));
         model.addAttribute("examId", examId);
         model.addAttribute("report2master",report2master);
         model.addAttribute("caseId", caseId);

+ 63 - 33
src/main/java/com/mooctest/controller/ReportController.java

@@ -8,11 +8,13 @@ import com.mooctest.data.BugDTO;
 import com.mooctest.data.FinalReportDTO;
 import com.mooctest.data.SupplementDTO;
 import com.mooctest.data.TaskDTO;
+import com.mooctest.model.BugData;
 import com.mooctest.model.MasterReport;
 import com.mooctest.service.*;
 import com.mooctest.util.NLPUtil;
 import com.mooctest.util.ReportUtil;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.aggregation.ArrayOperators;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.util.ResourceUtils;
@@ -53,6 +55,9 @@ public class ReportController {
     @Autowired
     HistoryService historyService;
 
+    @Autowired
+    BugDataService bugDataService;
+
     @GetMapping(value = "/index")
     public String hello(HttpServletRequest request, @RequestParam(value = "name", required = false, defaultValue = "springboot-thymeleaf") String name) {
         request.setAttribute("name", name);
@@ -120,10 +125,10 @@ public class ReportController {
     //part of aggreate report
     @GetMapping(value = "/report_part")
     public String showAggrReportPart(@RequestParam("masterId") String masterId,
-                                 @RequestParam("examId") long examId,
-                                 @RequestParam("caseId") long caseId,
-                                 @RequestParam(value = "finalReportId", required = false) Long finalReportId,
-                                 Model model) {
+                                     @RequestParam("examId") long examId,
+                                     @RequestParam("caseId") long caseId,
+                                     @RequestParam(value = "finalReportId", required = false) Long finalReportId,
+                                     Model model) {
         Map<String, BugDTO> bugMap = bugReportService.getAllBugsMap(examId, caseId);
         BugDTO masterReport = bugMap.get(masterId);
         List<SupplementDTO> supplements = supplementService.getSupplementByMasterId(masterId, bugMap);
@@ -175,37 +180,61 @@ public class ReportController {
 
     @GetMapping(value = "/report/{id}")
     public String showAggrReportTest(@PathVariable("id") String   id,
-                                 @RequestParam("examId") long examId,
-                                 @RequestParam("caseId") long caseId,
-                                 Model model) {
-
+                                     @RequestParam("examId") long examId,
+                                     @RequestParam("caseId") long caseId,
+                                     Model model) {
+        //single 的单个的报告展示页面
         BugDTO singleReport = bugReportService.getBugById(id,examId, caseId); // 具体的bug的DTO
         MasterReport masterReportSource = masterReportService.getByBugId(id+""); // 找到该报告的master报告报告;
-        String masterId = masterReportSource.getMasterId();
-        Map<String, BugDTO> bugMap = bugReportService.getAllBugsMap(examId, caseId);
-        BugDTO masterReport = bugMap.get(masterId);
-        List<FinalReportDTO> finalReports = finalReportService.getBySourceId(masterId); // 和这份报告suoshu julei baogao de fincal bgoa
+        List<FinalReportDTO> finalReports =new ArrayList<>();
+        Map<String,String> sing2root = historyService.getSingle2Root(caseId, examId);
+        String treeReportId = sing2root.get(id);
+        if(masterReportSource == null){
+            // 如果不存在聚合报告;
+            model.addAttribute("hasMaster",false);
+        }else{
+            model.addAttribute("hasMaster",true);
+            String masterId = masterReportSource.getMasterId();
+            finalReports.addAll(finalReportService.getBySourceId(masterId)); // 和这份报告suoshu julei baogao de fincal bgoa
+            model.addAttribute("masterName","ML-AG-"+masterId.substring(10));
+            model.addAttribute("masterUrl","/report?masterId="+masterId+"&examId="+examId+"&caseId="+caseId);
+        }
+        if(treeReportId == null){
+            //如果不存在树状报告
+            model.addAttribute("hasTree",false);
+        }else{
+            model.addAttribute("hasTree",true);
+            finalReports.addAll(finalReportService.getBySourceId(treeReportId)); // 和这份报告suoshu julei baogao de fincal bgoa
+            model.addAttribute("treeName","ML-TR-"+getShortId(treeReportId));
+            model.addAttribute("treeUrl","/history/report?treeId="+treeReportId+"&examId="+examId+"&caseId="+caseId);
+        }
+//        Map<String, BugDTO> bugMap = bugReportService.getAllBugsMap(examId, caseId);
+//        BugDTO masterReport = bugMap.get(masterId);
         model.addAttribute("singleReport",singleReport);//
-        model.addAttribute("masterReport", masterReport);
+//        model.addAttribute("masterReport", masterReport);
+        model.addAttribute("reviewed",bugDataService.isReviewed(id));
         model.addAttribute("createTime", new Date(Long.parseLong(singleReport.getCreateTimeMillis())));
         model.addAttribute("finalReports", finalReports);
         model.addAttribute("category2String", ReportUtil.category2String);
         model.addAttribute("recurrent2String", ReportUtil.recurrent2String);
         model.addAttribute("severity2String", ReportUtil.severity2String);
-        model.addAttribute("masterName","ML-AG-"+masterId.substring(10));
-        model.addAttribute("masterUrl","/report?masterId="+masterId+"&examId="+examId+"&caseId="+caseId);
         model.addAttribute("examId", examId);
         model.addAttribute("caseId", caseId);
+        model.addAttribute("reportId",id);
         return "single_report";
     }
 
 
 
+    private String getShortId ( String input ){
+        return input.length()<10?input:input.substring(input.length()-10);
+    }
+
     @GetMapping("editReportData")
     @ResponseBody
     public FinalReportDTO getEditReportData(@RequestParam("masterId") String masterId,
-                                          @RequestParam(value = "finalReportId", required = false) Long finalReportId,
-                                          Model model){
+                                            @RequestParam(value = "finalReportId", required = false) Long finalReportId,
+                                            Model model){
         List<FinalReportDTO> finalReports = finalReportService.getBySourceId(masterId);
         Optional<FinalReportDTO> finalReportDTO = finalReports.stream().filter(finalReport -> finalReport.getId()==finalReportId).findFirst();
         return finalReportDTO.get();
@@ -314,26 +343,23 @@ public class ReportController {
 
     @GetMapping(value = "review_report")
     public String showAggReportLisst(@RequestParam("examId") long examId,
-                                    @RequestParam("caseId") long caseId,
-                                    @RequestParam(value = "status", required = false, defaultValue = "-1") int status,
-                                    Model model) {
+                                     @RequestParam("caseId") long caseId,
+                                     @RequestParam(value = "status", required = false, defaultValue = "-1") int status,
+                                     Model model) {
         boolean aggregated = masterReportService.isAggregated(examId, caseId);
         List<BugDTO> allReports = bugReportService.getAllBugs(examId, caseId);
         TaskDTO task = taskService.getByExamIdAndCaseId(examId, caseId);
         List<String> treeRootids = historyService.getTreeRoots(caseId+"-"+examId);
         Map<String,List<String>> tree2BugIdsMap = historyService.getTree2BugIdsMap(treeRootids);
         Map<String,String> single2rootMap = historyService.getSingle2Root(caseId, examId);
+        Map<String , BugData> bugIds2Data = bugDataService.bugId2BugData(examId,caseId) ;
+        Map<String, BugDTO> bugsMap = bugReportService.getAllBugsMap(examId, caseId);
+        List<String> bugIds = allReports.stream().map(BugDTO::getId).collect(Collectors.toList());
         if (aggregated) { // 如果报告已经是聚合过的。
-            List<String> bugIds = allReports.stream().map(BugDTO::getId).collect(Collectors.toList());
             List<MasterReport> mrs = masterReportService.getByBugIds(bugIds);
             Map<String, MasterReport> mrMap = mrs.stream().collect(toMap(MasterReport::getBugId, Function.identity()));
             allReports.forEach(bug -> {
-                MasterReport mr = mrMap.get(bug.getId());
-                bug.setStatus(mr.getStatus());
-                bug.setReviewerId(mr.getReviewerId());
-                bug.setMasterId(mr.getMasterId());
-                String te = single2rootMap.get(bug.getId());
-                bug.setTreeId(te==null?"null":te);
+                bug.setMasterId(mrMap.get(bug.getId()).getMasterId());
             });
             List<String> masterIds = masterReportService.getAllMasterIdByExamIdAndCaseId(examId, caseId);
             List<MasterReport> mrs0 = masterReportService.getByBugIds(masterIds);
@@ -342,15 +368,19 @@ public class ReportController {
                 masterIds = masterIds.stream().filter(masterId -> mrMap0.get(masterId).getStatus() == status).collect(Collectors.toList());
             }
             Map<String, List<String>> master2BugIdsMap = masterReportService.getMaster2BugIdsMap(masterIds);
-            Map<String, BugDTO> bugsMap = bugReportService.getAllBugsMap(examId, caseId);
-            masterIds.forEach(masterId -> {
-                bugsMap.get(masterId).setStatus(mrMap0.get(masterId).getStatus());
-            });
-
             model.addAttribute("master2BugIdsMap", master2BugIdsMap); // 聚合才有的
-            model.addAttribute("bugMap", bugsMap);// 聚合才有de
             model.addAttribute("aggNum", masterReportService.getAggNum(examId, caseId)); // 聚合才有的
         }
+        bugIds.forEach(id -> {
+            bugsMap.get(id).setStatus(bugIds2Data.get(id).getStatus());
+        });
+        allReports.forEach(bug -> {
+            bug.setStatus(bugIds2Data.get(bug.getId()).getStatus());
+            bug.setReviewerId(bugIds2Data.get(bug.getId()).getReviewerId());
+            String te = single2rootMap.get(bug.getId());
+            bug.setTreeId(te==null?"null":te);
+        });
+        model.addAttribute("bugMap", bugsMap);// 聚合才有de
         model.addAttribute("treeNum",treeRootids.size());
         model.addAttribute("tree2BugIdsMap",tree2BugIdsMap);
         model.addAttribute("aggregated", aggregated);

+ 27 - 0
src/main/java/com/mooctest/dao/BugDataDao.java

@@ -0,0 +1,27 @@
+package com.mooctest.dao;
+
+import com.mooctest.model.Bug;
+import com.mooctest.model.BugData;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Transactional
+public interface BugDataDao extends MongoRepository<BugData, Long> {
+
+    // check if there is data in mongo, instead of check all num of the data set
+    boolean existsByExamIdAndCaseId(long examId,long caseId);
+
+    List<BugData> findByExamIdAndCaseId(long examId, long caseId) ;
+
+    BugData findByBugId(String bugId);
+
+    void deleteAllByCaseIdAndExamId(long caseId,long examid);
+
+    long countByExamIdAndCaseId(long examId, long caseId);
+
+    long countByExamIdAndCaseIdAndStatus(long examId, long caseId, int status);
+
+    List<BugData> findByBugIdIn(List<String> bugIds);
+}

+ 34 - 0
src/main/java/com/mooctest/model/BugData.java

@@ -0,0 +1,34 @@
+package com.mooctest.model;
+
+import com.mooctest.annotation.AutoValue;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@Document(collection = "BugData")
+public class BugData {
+
+    @Id
+    @AutoValue
+    private long id;
+
+    private long examId;
+
+    private long caseId;
+
+    private String bugId;
+
+    private int status = 0; // 审核状态
+
+    private Long reviewerId;  //  审核人id
+
+    private String reviewTimeMillis;  // 审核时间
+}

+ 105 - 0
src/main/java/com/mooctest/service/BugDataService.java

@@ -0,0 +1,105 @@
+package com.mooctest.service;
+
+
+import com.mooctest.dao.BugDataDao;
+import com.mooctest.data.BugDTO;
+import com.mooctest.model.BugData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+@Service
+public class BugDataService {
+
+    @Autowired
+    BugDataDao bugDataDao ;
+
+    @Autowired
+    BugReportService bugReportService;
+
+    public long getReportNum ( long examId,long caseId){
+//        importBugData(examId, caseId);
+        return bugDataDao.countByExamIdAndCaseId(examId, caseId);
+    }
+
+    public BugData getBugData ( String bugId ){
+        BugData data =bugDataDao.findByBugId(bugId);
+        return data;
+    }
+
+    public boolean isReviewed (String bugId){
+        BugData data = bugDataDao.findByBugId(bugId);
+        if(data==null)
+            return false;
+        return data.getStatus() != 0;
+    }
+
+    public long getReportUnDealNum ( long examId,long caseId){
+        return bugDataDao.countByExamIdAndCaseIdAndStatus(examId,caseId,0); // the report that haven't been check
+    }
+
+    public boolean isImported ( long examId,long caseId){
+        boolean flag = bugDataDao.existsByExamIdAndCaseId(examId,caseId);
+        if(!flag){
+            List<BugDTO> bugs = bugReportService.getAllBugs(examId, caseId);
+            if(bugs.size()==0){
+                return true; // source dataset is empty, so that means all the reports have been imported to the system.
+            }
+        }
+        return flag;
+//        List<BugData> datas = bugDataDao.findByExamIdAndCaseId(examId,caseId);
+//        if(datas.size()==0){
+//            // then to  here should check if the source data is empty dataset or not
+//            List<BugDTO> bugs = bugReportService.getAllBugs(examId, caseId);
+//            if(bugs.size()==0){
+//                return true; // source dataset is empty, so that means all the reports have been imported to the system.
+//            }
+//            return false;
+//        }else{
+//            return true; // have imported already
+//        }
+    }
+
+    public Map<String, Integer> bugId2Status (long examId, long caseId){
+        List<BugData> data = bugDataDao.findByExamIdAndCaseId(examId, caseId);
+        return data.stream().collect(Collectors.toMap(BugData::getBugId,BugData::getStatus));
+    }
+
+    public Map<String,BugData> bugId2BugData (long examId,long caseId){
+        List<BugData > data = bugDataDao.findByExamIdAndCaseId(examId, caseId);
+        return data.stream().collect(Collectors.toMap(BugData::getBugId, Function.identity()));
+    }
+
+    public List<BugData> getBugData(long examId, long caseId){
+        return bugDataDao.findByExamIdAndCaseId(examId, caseId);
+    }
+
+    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 ;
+        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())
+//                    .reviewerId()
+                    .bugId(s.getId()).build();
+            toSave.add(tempData);
+        });
+        bugDataDao.save(toSave); // 将信息存到数据库
+    }
+
+    public List<BugData> getBugDataByIds(List<String> bugIds){
+        return bugDataDao.findByBugIdIn(bugIds);
+    }
+}

+ 6 - 3
src/main/java/com/mooctest/service/MasterReportService.java

@@ -33,9 +33,7 @@ public class MasterReportService {
                 .get()
                 .getKey();
 
-        if (masterId.equals("10010000035194")) {
-            System.out.println();
-        }
+
         return masterId;
     }
 
@@ -92,6 +90,11 @@ public class MasterReportService {
                 .collect(Collectors.toList());
     }
 
+    public List<MasterReport> getMaster2Item ( String bugId){
+        List<MasterReport> data = masterReportDao.findByMasterId(bugId) ;
+        return data;
+    }
+
 
     public Map<String, List<String>> getMaster2BugIdsMap(List<String> masterIds) {
         List<MasterReport> mrs = masterReportDao.findByMasterIdIn(masterIds);

+ 7 - 3
src/main/resources/templates/agg_report_new.html

@@ -703,11 +703,15 @@
 
     function reviewConfirm() {
         $.ajax({
-            url: '/bug_review?masterId='+masterId,
+            url: '/single_bug_review?reportId='+masterId,
             type: 'PUT',
             success: function (result) {
-                alert("确认审核成功,修改报告状态为已审核");
-                location.reload();
+                if(result=="success"){
+                    alert("确认审核成功,修改报告状态为已审核");
+                    location.reload();
+                }else {
+                    alert("还有所属该报告的聚合报告或树状报告尚未审核")
+                };
             }
         });
     }

+ 92 - 12
src/main/resources/templates/single_report.html

@@ -95,6 +95,16 @@
 
                         </h3>
 
+                        <button  class="btn-xs btn-primary pull-right" id="create_bug" style="margin-left: 5px;display: none" onclick="showCreateBlock()" >
+                            创建缺陷报告
+                        </button>
+                        <button class="btn-xs btn-primary pull-right" id="review_confirm" th:unless="${reviewed}" onclick="reviewConfirm()">确认审核</button>
+
+                        <span th:if="${reviewed}" class="pull-right label label-success">
+                            <span class="glyphicon glyphicon-ok"></span>
+                            已审核
+                        </span>
+
                     </div>
                     <table class="table table-reponsive">
                         <tbody>
@@ -114,7 +124,16 @@
                             <td class="dup-assignee" colspan="3">
 
                                 <a th:href="@{${masterUrl}}" th:text="${masterName}" style="margin-right: 5px;">
-                                    admin
+
+                                </a>
+                            </td>
+                        </tr><!-- Attribute -->
+                        <tr>
+                            <td class="attr-title">树状报告</td>
+                            <td class="dup-assignee" colspan="3">
+
+                                <a th:href="@{${treeUrl}}" th:text="${treeName}" style="margin-right: 5px;">
+
                                 </a>
                             </td>
                         </tr><!-- Attribute -->
@@ -168,9 +187,9 @@
                             <td class="attr-title">报告内容<span class="glyphicon glyphicon-star"
                                                             style="margin-left: 5px;"></span></td>
                             <td class="dup-master" colspan="3">
-                                <span th:text="${masterReport.getDescription()}"></span><br/>
+                                <span th:text="${singleReport.getDescription()}"></span><br/>
                                 <img class="my-img-thumbnail pointer to-add" th:src="${imgUrl}"
-                                     th:each="imgUrl,iterStat : ${masterReport.getImgUrls()}"
+                                     th:each="imgUrl,iterStat : ${singleReport.getImgUrls()}"
                                      th:onclick="'javascript:showimage(\''+${imgUrl}+'\');'"/>
 
                             </td>
@@ -178,13 +197,67 @@
                         </tbody>
                     </table>
                 </div>
-
             </div>
 
             <div class="col-md-4 pull-right" >
                 <!--<div id="my_favorite_latin_words" class="box box-info" style="margin-bottom: 5px; min-height: 182px;"></div>-->
 
+                <div th:fragment="create_reports" class="box box-danger source-table" id="new-report-create-block" style="display: none">
+                    <div class="box-header" style="border-bottom: 1px #f4f4f4 solid;">
+                        <h3 class="box-title">
+                            编辑报告
+                        </h3>
+                        <button class="btn-xs btn-primary pull-right" style="margin-left: 5px"
+                                onclick="createOrUpdateFinalReport()">保存
+                        </button>
+                        <button class="btn-xs btn-primary pull-right" onclick="hideCreateBlock()">取消</button>
+                    </div>
+                    <div id="new-report" class="box-body"
+                         style="font-size: 12px; max-height: 340px; overflow: scroll;">
+                        <form role="form">
+
+                            <!-- select -->
+                            <div class="form-group">
+                                <label>Bug 复现程度</label>
+                                <select id="recurrent" name="recurrent" class="form-control">
+                                    <option th:each="mapItem : ${recurrent2String}"
+                                            th:value="${mapItem.key}" th:text="${mapItem.value}">必现</option>
+
+                                </select>
+                            </div>
+                            <!-- select -->
+                            <div class="form-group">
+                                <label>Bug 严重性</label>
+                                <select id="severity" name="severity" class="form-control">
+                                    <option th:each="mapItem : ${severity2String}"
+                                            th:value="${mapItem.key}" th:text="${mapItem.value}">必现</option>
+                                </select>
+                            </div>
+
+                            <!-- select -->
+                            <div class="form-group">
+                                <label>Bug 分类</label>
+                                <select id="category" class="form-control">
+                                    <option th:each="mapItem : ${category2String}"
+                                            th:value="${mapItem.key}" th:text="${mapItem.value}">必现</option>
+                                </select>
+                            </div>
+
+                            <!-- textarea -->
+                            <div class="form-group">
+                                <label>Bug 描述</label>
+                                <textarea id="bug-description" name="description" class="form-control" rows="3"
+                                          placeholder="Enter ..."></textarea>
+                            </div>
+                            <div class="form-group">
+                                <label>Bug 截图</label>
+                                <div id="new-report-img"></div>
+                            </div>
+
+                        </form>
 
+                    </div>
+                </div>
 
                 <div class="box box-info source-table" id="new-report-list-block" >
                     <div class="box-header">
@@ -294,6 +367,7 @@
     var examId = urlParams.get('examId');
     var caseId = urlParams.get('caseId');
     var finalReportId = urlParams.get('finalReportId');
+    var reportId = /*[[${reportId}]]*/;
     /*]]>*/
 
 
@@ -320,12 +394,13 @@
             'severity': $("#severity").val(),
             'recurrent': $("#recurrent").val(),
             'category': $("#category").val(),
-            'sourceId': masterId,
+            'sourceId': reportId,
             'reviewerId': 1,
             'examId': examId,
             'caseId': caseId,
             'imgUrls': images
         }
+        console.log("-----")
         if (finalReportId) {
             report.id = finalReportId
             $.ajax({
@@ -352,6 +427,9 @@
                 contentType: "application/json",
                 success: function (data) {
                     console.log("新建报告")
+                    console.log(report)
+                    console.log("接下来是data")
+                    console.log(data)
                     // location.reload()
                     loadPartReports();
                 }
@@ -368,10 +446,9 @@
     function loadPartReports() {
         console.log("局部刷新")
         /*<![CDATA[*/
-        $('#new-created-reports-panel').load("/created_reports?masterId="+ masterId +"&caseId="+ caseId +"&examId="+ examId );
+        $('#new-created-reports-panel').load("/created_reports?masterId="+ reportId +"&caseId="+ caseId +"&examId="+ examId );
         //$('#new-report-create-block').load("/created_reports_form");
         finalReportId = null
-
         /*]]>*/
         showCreateButton()
         $("#new-report-create-block").hide()
@@ -458,7 +535,7 @@
         //填充编辑表单页面。
         /*<![CDATA[*/
         $.ajax({
-            url: '/editReportData?masterId='+masterId+'&finalReportId='+finalId,
+            url: '/editReportData?masterId='+reportId+'&finalReportId='+finalId,
             type: 'GET',
             success: function (result) {
                 console.log(result); //
@@ -468,16 +545,19 @@
             }
         });
         /*]]>*/
-
     }
 
     function reviewConfirm() {
         $.ajax({
-            url: '/bug_review?masterId='+masterId,
+            url: '/single_bug_review?reportId='+reportId,
             type: 'PUT',
             success: function (result) {
-                alert("确认审核成功,修改报告状态为已审核");
-                location.reload();
+                if(result=="success"){
+                    alert("确认审核成功,修改报告状态为已审核");
+                    location.reload();
+                }else {
+                    alert("还有所属该报告的聚合报告或树状报告尚未审核")
+                }
             }
         });
     }

+ 1 - 1
src/main/resources/templates/test.html

@@ -106,7 +106,7 @@
                         <th>可复现程度</th>
                         <th>分类</th>
                         <th>严重程度</th>
-                        <th>描述</th>
+                        <th style="max-width: 450px;">描述</th>
                         <th>审核状态</th>
                         <th>审核人</th>
                         <th>所属聚合报告</th>

+ 9 - 3
src/main/resources/templates/tree_report_new.html

@@ -631,13 +631,19 @@
 
     }
 
+
+    //////////////////////////
     function reviewConfirm() {
         $.ajax({
-            url: '/bug_review?masterId='+masterId,
+            url: '/single_bug_review?reportId='+treeId,
             type: 'PUT',
             success: function (result) {
-                alert("确认审核成功,修改报告状态为已审核");
-                location.reload();
+                if(result=="success"){
+                    alert("确认审核成功,修改报告状态为已审核");
+                    location.reload();
+                }else {
+                    alert("还有所属该报告的聚合报告或树状报告尚未审核")
+                };
             }
         });
     }