Browse Source

添加剪切板

insomniaLee 5 năm trước cách đây
mục cha
commit
795dd09efe

+ 1 - 7
src/main/java/com/mooctest/controller/BugReviewController.java

@@ -19,13 +19,7 @@ public class BugReviewController {
         bugReviewService.aggReportReview(masterId);
     }
 
-//    @PutMapping("/bug_review")
-//    //审核报告--将树状报告下的子报告都标记为已审核
-//    @PutMapping("/bug_review")
-//    public void bugReviewTree(@RequestParam("treeId") String treeId) {
-//        bugReviewService.aggReportReview(treeId);
-//    }
-//
+
     //审核报告 -- 单个报告   之后更新报告所在
     @PutMapping("/single_bug_review")
     @ResponseBody

+ 2 - 12
src/main/java/com/mooctest/controller/JobController.java

@@ -52,10 +52,10 @@ public class JobController {
     @ResponseBody
     public JSONObject postJon ( @RequestParam("paperId")String paperId,@RequestParam("time")String time,
                             @RequestParam("name") String name, @RequestParam("description") String descriptioin,
-                            @RequestParam("workNum") int workNum,
+                            @RequestParam("workNum") int workNum, @RequestParam("distribute") String distribute,
                             @RequestParam("itemGroupList") String itemGroupList, @RequestParam("totalWorkload") int totalWorkload,
                             @RequestParam("singleTime") int singleTime){
-        JSONObject data = jobService.addJob(name,descriptioin,time,paperId,new ArrayList<String>(),itemGroupList,workNum,totalWorkload,singleTime);
+        JSONObject data = jobService.addJob(name,descriptioin,time,paperId,new ArrayList<String>(),itemGroupList,workNum,totalWorkload,singleTime,distribute);
         return data;
     }
 
@@ -94,8 +94,6 @@ public class JobController {
         model.addAttribute("paper",paper);
         model.addAttribute("data",res);
         model.addAttribute("reportHost",reportHost);
-
-        // TODO: 2019/12/24 在jobdetail页面添跳转到   xjw 统计页面的按钮。
         return "jobDetail";
     }
 
@@ -128,14 +126,6 @@ public class JobController {
         return "exportExcel";
     }
 
-//    @PostMapping(value = "jobDistribute")
-//    public ResponseDTO jobDistribute (@RequestParam("id")String jobId){
-//        //huoqu fenpei xinxi
-//
-//    }
-
-
-
     private List<String> getUserList(int i ){
         List<String > res = new ArrayList<>();
         while(i-->0){

+ 16 - 17
src/main/java/com/mooctest/controller/ReportController.java

@@ -73,12 +73,13 @@ public class ReportController {
                                  @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);
+        Map<String, BugDTO> bugMap = bugReportService.getAllBugsMap(examId, caseId);//得到所有的报告信息
+        BugDTO masterReport = bugMap.get(masterId); // 得到主报告
+        List<SupplementDTO> supplements = supplementService.getSupplementByMasterId(masterId, bugMap); // 补充点报告
         List<BugDTO> bugs = new LinkedList<>();
         supplements.forEach(supplementDTO -> bugs.addAll(supplementDTO.getBugs()));
         List<BugDTO> sourceReports = bugs.stream().distinct().collect(Collectors.toList());
+        // 各种类型的报告数量的统计,
         Map<String, Long> categoryCounts = sourceReports.stream().collect(Collectors.groupingBy(BugDTO::getBugCategory, Collectors.counting()));
         Map<String, Long> pageCounts =  sourceReports.stream().collect(Collectors.groupingBy(BugDTO::getBug_page,Collectors.counting()));
         Map<String, Long> recurrentCounts = sourceReports.stream()
@@ -89,7 +90,7 @@ public class ReportController {
                 .map(BugDTO::getSeverity)
                 .map((severityNum) -> ReportUtil.severity2String.get(severityNum))
                 .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
-
+        //得到创建的final report
         List<FinalReportDTO> finalReports = finalReportService.getBySourceId(masterId);
         Map<String,String> single2rootMap = historyService.getSingle2Root(caseId, examId);
         model.addAttribute("single2root",single2rootMap);
@@ -122,7 +123,7 @@ public class ReportController {
         return "agg_report_new";
     }
 
-    //part of aggreate report
+    //part of aggreate report  为了在树状报告页面展示聚合报告信息
     @GetMapping(value = "/report_part")
     public String showAggrReportPart(@RequestParam("masterId") String masterId,
                                      @RequestParam("examId") long examId,
@@ -164,10 +165,7 @@ public class ReportController {
         model.addAttribute("severity2String", ReportUtil.severity2String);
         model.addAttribute("examId", examId);
         model.addAttribute("caseId", caseId);
-
         model.addAttribute("showReference",false);//是否展示其他聚合报告的参考标签
-
-
         boolean bugReviewed = bugReviewService.isBugReviewed(masterId);
         model.addAttribute("reviewed", bugReviewed);
         if (finalReportId != null) {
@@ -178,20 +176,26 @@ public class ReportController {
         return "agg_report_new::masterBody";
     }
 
+    /**
+     * 单个报告的展示页面,
+     * @param id
+     * @param examId
+     * @param caseId
+     * @param model
+     * @return
+     */
     @GetMapping(value = "/report/{id}")
     public String showAggrReportTest(@PathVariable("id") String   id,
                                      @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报告报告;
         List<FinalReportDTO> finalReports =new ArrayList<>();
         Map<String,String> sing2root = historyService.getSingle2Root(caseId, examId);
         String treeReportId = sing2root.get(id);
         finalReports.addAll(finalReportService.getBySourceId(id));
-        if(masterReportSource == null){
-            // 如果不存在聚合报告;
+        if(masterReportSource == null){// 如果不存在聚合报告;
             model.addAttribute("hasMaster",false);
         }else{
             model.addAttribute("hasMaster",true);
@@ -209,16 +213,11 @@ public class ReportController {
             model.addAttribute("hasTree",false);
         }else{
             model.addAttribute("hasTree",true);
-//            finalReports.addAll(finalReportService.getBySourceId(treeReportId)); // 和这份报告suoshu julei baogao de fincal bgoa
             addDistinctFinalReport(finalReports,finalReportService.getBySourceId(treeReportId));
             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("singleReport",singleReport);
         model.addAttribute("reviewed",bugDataService.isReviewed(id));
         model.addAttribute("createTime", new Date(Long.parseLong(singleReport.getCreateTimeMillis())));
         model.addAttribute("finalReports", finalReports);

+ 3 - 3
src/main/java/com/mooctest/controller/TaskController.java

@@ -66,10 +66,10 @@ public class TaskController {
                              @RequestParam("caseId") long caseId,
                              Model model) {
         // first check is there some data in bugData document,
-        bugDataService.importBugData(examId, caseId);
+        bugDataService.importBugData(examId, caseId);//  访问任务的时候同步报告信息
         // after import the bug data
-        boolean aggregated = masterReportService.isAggregated(examId, caseId);
-        List<BugDTO> allReports = bugReportService.getAllBugs(examId, caseId);
+        boolean aggregated = masterReportService.isAggregated(examId, caseId); // 检查时候已经聚合
+        List<BugDTO> allReports = bugReportService.getAllBugs(examId, caseId); // 得到所有的报告
         Map<String , BugData> bugIds2Data = bugDataService.bugId2BugData(examId, caseId);
         Map<String,String> single2rootMap = historyService.getSingle2Root(caseId, examId);
         if (aggregated) { // add the information that where present when reports have been aggregated

+ 3 - 1
src/main/java/com/mooctest/service/JobService.java

@@ -67,7 +67,7 @@ public class JobService {
     }
 
     public JSONObject addJob (String name, String desciption, String time, String paperId, List<String> userList, String workDistribution,
-                              int workNum,int totalWorkload,int singleTime){
+                              int workNum,int totalWorkload,int singleTime , String distribute){
         RestTemplate template = new RestTemplate();
         if(!time.contains(" - ")){
             return null;
@@ -85,6 +85,8 @@ public class JobService {
         paramMap.add("totalWorkload", totalWorkload);
         paramMap.add("singleTime", singleTime);
         paramMap.add("maxWorker",workNum);
+        paramMap.add("distribute",distribute);
+
 //        System.out.println(paramMap.toString());
         template.getMessageConverters().set(1, new StringHttpMessageConverter(StandardCharsets.UTF_8));
         HttpHeaders headers = new HttpHeaders();

+ 1 - 0
src/main/resources/static/js/addReviewJob.js

@@ -213,6 +213,7 @@ generateJson = function( type ){
     }
     data.append('name',$('#name').val());
     data.append('description',$('#description').val());
+    data.append('distribute',$('#distributeType').val());
     data.append('paperId',id);
     data.append('time',$('#reservationtime').val());
     // data.append('group',$('#workerGroup').val());

+ 12 - 1
src/main/resources/static/js/add_paper.js

@@ -42,8 +42,17 @@ copy2board = function(){
             return content;
         }
     });
+
     clipboard.on('success', function(e) {
-        alert("复制成功");
+        $.notify({
+            // options
+            message: '已成功复制到你的剪切板'
+        },{
+            // settings
+            delay: 100,
+            timer: 3000,
+            type: 'success'
+        });
     });
     clipboard.on('error', function(e) {
         console.log(e);
@@ -671,10 +680,12 @@ getNewRatioIndex = function () {
 generateJson = function( type ){
     // 遍历页面上的数据,生成json数据。
     var data = new Object();
+    var is_Objective = false;
     data.description = $('#description').val();
     data.name = $('#name').val();
     // data.time = $('#reservationtime').val();
     data.type = $('#testType').val();
+    if($('#testType'))
     data.application_url = "http://www.mooctest.net/assets/img/mooctest.png";
     data.requirement_url = "http://www.mooctest.net/assets/img/mooctest.png";
     data.report_num = str2number( $('#reportNum').val() );

+ 29 - 0
src/main/resources/static/js/changePaper.js

@@ -607,6 +607,32 @@ getNewRatioIndex = function () {
     return ratioIndex;
 }
 
+
+copy2board = function(){
+    var content = generateJson(2);
+    var clipboard = new Clipboard('#copyButton', {
+        text: function() {
+            return content;
+        }
+    });
+
+    clipboard.on('success', function(e) {
+        $.notify({
+            // options
+            message: '已成功复制到你的剪切板'
+        },{
+            // settings
+            delay: 100,
+            timer: 3000,
+            type: 'success'
+        });
+    });
+    clipboard.on('error', function(e) {
+        console.log(e);
+    });
+}
+
+
 generateJson = function( paperId, type ){
     // 遍历页面上的数据,生成json数据。
     var data = new Object();
@@ -726,6 +752,9 @@ generateJson = function( paperId, type ){
     data.report_list = getReportInfo()
     // data.group_list = getDeliverInfo()
     console.log(JSON.stringify(data));
+    if(type == 2){
+        return JSON.stringify(data);
+    }
     // 提交
 
     //check

+ 10 - 0
src/main/resources/templates/addReviewJob.html

@@ -205,6 +205,16 @@
                                 <input id="workNum" onchange="checkNum(event)"  type="text" class="form-control" placeholder="请输入工人总数"/>
                             </div>
                         </div>
+                        <!-- select -->
+                        <div class="form-group">
+                            <label class="col-sm-2 control-label" >分配类型</label>
+                            <div class=" col-sm-10">
+                                <select class="form-control" id="distributeType">
+                                    <option>静态分配</option>
+                                    <option>动态分配</option>
+                                </select>
+                            </div>
+                        </div>
                         <!-- textarea -->
                         <div class="form-group">
                             <label class="col-sm-2 control-label">报告分配信息</label>

+ 1 - 0
src/main/resources/templates/add_paper.html

@@ -190,6 +190,7 @@
                                     <option>Java自动化扫描</option>
                                     <option>Web自动化扫描</option>
                                     <option>众包测试</option>
+                                    <option>客观题</option>
                                 </select>
                             </div>
                         </div>

+ 5 - 0
src/main/resources/templates/changePaper.html

@@ -155,6 +155,9 @@
                     <button onclick="savePaper()" class="btn btn-success pull-right" >
                         保存
                     </button>
+                    <button class="btn btn-success pull-right" id="copyButton" onclick="copy2board()">
+                        复制到剪切板
+                    </button>
                     <button onclick="showyu()"   class="btn btn-default pull-right" >
                         预览
                     </button>
@@ -563,6 +566,8 @@
 <script src="/static/AdminLTE/bower_components/bootstrap-notify/dist/bootstrap-notify.min.js"></script>
 <!--阿里 oss 上传-->
 <script src="http://gosspublic.alicdn.com/aliyun-oss-sdk-4.4.4.min.js"></script>
+<script type="text/javascript" src="http://www.jq22.com/demo/clipboard.js-master201703170013/dist/clipboard.min.js"></script>
+
 <script type="text/javascript" xmlns:th="http://www.thymeleaf.org" th:inline="javascript">
     var ruleId ;
     var ratioIndex;