sheldon пре 11 месеци
родитељ
комит
ca0938facc

+ 4 - 0
pms-service/src/main/java/com/tofly/pms/working/controller/HoursWController.java

@@ -184,6 +184,10 @@ public class HoursWController {
      * 逾期:任务状态为处理中且任务结束时间小于今天。
      * 被驳回:任务状态为被驳回的任务。
      * 内容参考如下:
+     * 今日任务情况:今日完成0个,逾期1个,被驳回1个,待处理1个。今日创建*个,确认*个,驳回*个,待确认*个。
+     *
+     * 今日bug情况:今日完成0个,逾期0个,被驳回0个,待处理1个。今日创建*个,验证*个,驳回*个,待验证*个。
+     *
      * 今日任务情况:今日完成3个,逾期1个,被驳回1个,待处理2个。
      * 今日bug情况:今日完成5个,逾期4个,被驳回2个,待处理1个。
      * 【任务完成明细】

+ 32 - 0
pms-service/src/main/java/com/tofly/pms/working/mapper/HoursWMapper.java

@@ -113,4 +113,36 @@ public interface HoursWMapper extends BaseMapper<HoursW> {
     List<String> getBugTitleList(@Param("projectId") Integer projectId,
                                  @Param("userId") String userId,
                                  @Param("date") LocalDate date);
+
+    Integer getCreateTask(@Param("projectId") Integer projectId,
+                          @Param("userId") String userId,
+                          @Param("date") LocalDate date);
+
+   Integer getVerifyTask(@Param("projectId") Integer projectId,
+                        @Param("userId") String userId,
+                        @Param("date") LocalDate date);
+
+    Integer getRegressionTask(@Param("projectId") Integer projectId,
+                              @Param("userId") String userId,
+                              @Param("date") LocalDate date);
+
+    Integer getAwaitVerifyTask(@Param("projectId") Integer projectId,
+                               @Param("userId") String userId,
+                               @Param("date") LocalDate date);
+
+    Integer getCreateBug(@Param("projectId") Integer projectId,
+                         @Param("userId") String userId,
+                         @Param("date") LocalDate date);
+
+    Integer getVerifyBug(@Param("projectId") Integer projectId,
+                         @Param("userId") String userId,
+                         @Param("date") LocalDate date);
+
+    Integer getRegressionBug(@Param("projectId") Integer projectId,
+                             @Param("userId") String userId,
+                             @Param("date") LocalDate date);
+
+    Integer getAwaitVerifyBug(@Param("projectId") Integer projectId,
+                              @Param("userId") String userId,
+                              @Param("date") LocalDate date);
 }

+ 103 - 21
pms-service/src/main/java/com/tofly/pms/working/service/impl/HoursWServiceImpl.java

@@ -29,10 +29,16 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.lang.reflect.Method;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 import java.time.LocalDate;
 import java.util.*;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.function.Function;
+import java.util.function.Supplier;
 import java.util.stream.Collectors;
 
 /**
@@ -51,6 +57,7 @@ public class HoursWServiceImpl extends ServiceImpl<HoursWMapper, HoursW>
     private UserUtils userUtils;
     @Autowired
     private HolidaysService holidaysService;
+    private static final ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
 
     @Override
     public HoursW queryById(Integer id) {
@@ -213,38 +220,113 @@ public class HoursWServiceImpl extends ServiceImpl<HoursWMapper, HoursW>
         LocalDate date = LocalDate.now();
         TodayTaskCompleteVo todayTaskCompleteVo = new TodayTaskCompleteVo();
         //查询今天完成的任务数量
-        Integer completeTask = baseMapper.getCompleteTask(projectId, userId, date);
+        CompletableFuture<Integer> completeTaskFuture = CompletableFuture.supplyAsync(() ->
+                baseMapper.getCompleteTask(projectId, userId, date), executorService);
+//        Integer completeTask = baseMapper.getCompleteTask(projectId, userId, date);
         //  今日逾期任务
-        Integer overdueTask = baseMapper.getOverdueTask(projectId, userId, date);
+        CompletableFuture<Integer> overdueTaskFuture = CompletableFuture.supplyAsync(() ->
+                baseMapper.getOverdueTask(projectId, userId, date), executorService);
+//        Integer overdueTask = baseMapper.getOverdueTask(projectId, userId, date);
         //今日被驳回任务
-        Integer rejectTask = baseMapper.getRejectTask(projectId, userId, date);
+        CompletableFuture<Integer> rejectTaskFuture = CompletableFuture.supplyAsync(() ->
+                baseMapper.getRejectTask(projectId, userId, date), executorService);
+//        Integer rejectTask = baseMapper.getRejectTask(projectId, userId, date);
         //今日待处理任务
-        Integer todoTask = baseMapper.getTodoTask(projectId, userId, date);
+        CompletableFuture<Integer> todoTaskFuture = CompletableFuture.supplyAsync(() ->
+                baseMapper.getTodoTask(projectId, userId, date), executorService);
+//        Integer todoTask = baseMapper.getTodoTask(projectId, userId, date);
+        //今日创建的任务
+        CompletableFuture<Integer> createTaskFuture = CompletableFuture.supplyAsync(() ->
+                baseMapper.getCreateTask(projectId, userId, date), executorService);
+        //今日确认任务
+        CompletableFuture<Integer> verifyTaskFuture = CompletableFuture.supplyAsync(() ->
+                baseMapper.getVerifyTask(projectId, userId, date), executorService);
+        //今日驳回任务
+        CompletableFuture<Integer> regressionTaskFuture = CompletableFuture.supplyAsync(() ->
+                baseMapper.getRegressionTask(projectId, userId, date), executorService);
+        //今日待确认任务
+        CompletableFuture<Integer> awaitVerifyTaskFuture = CompletableFuture.supplyAsync(() ->
+                baseMapper.getAwaitVerifyTask(projectId, userId, date), executorService);
+
         //今日完成bug
-        Integer completeBug = baseMapper.getCompleteBug(projectId, userId, date);
+        CompletableFuture<Integer> completeBugFuture = CompletableFuture.supplyAsync(() ->
+                baseMapper.getCompleteBug(projectId, userId, date), executorService);
+//        Integer completeBug = baseMapper.getCompleteBug(projectId, userId, date);
         //今日逾期bug
-        Integer overdueBug = baseMapper.getOverdueBug(projectId, userId, date);
+        CompletableFuture<Integer> overdueBugFuture = CompletableFuture.supplyAsync(() ->
+                baseMapper.getOverdueBug(projectId, userId, date), executorService);
+//        Integer overdueBug = baseMapper.getOverdueBug(projectId, userId, date);
         //今日被驳回bug
-        Integer rejectBug = baseMapper.getRejectBug(projectId, userId, date);
+        CompletableFuture<Integer> rejectBugFuture = CompletableFuture.supplyAsync(() ->
+                baseMapper.getRejectBug(projectId, userId, date), executorService);
+//        Integer rejectBug = baseMapper.getRejectBug(projectId, userId, date);
         //今日待处理bug
-        Integer todoBug = baseMapper.getTodoBug(projectId, userId, date);
+        CompletableFuture<Integer> todoBugFuture = CompletableFuture.supplyAsync(() ->
+                baseMapper.getTodoBug(projectId, userId, date), executorService);
+//        Integer todoBug = baseMapper.getTodoBug(projectId, userId, date);
+
+
+        //今日创建的bug
+        CompletableFuture<Integer> createBugFuture = CompletableFuture.supplyAsync(() ->
+                baseMapper.getCreateBug(projectId, userId, date), executorService);
+        //今日确认bug
+        CompletableFuture<Integer> verifyBugFuture = CompletableFuture.supplyAsync(() ->
+                baseMapper.getVerifyBug(projectId, userId, date), executorService);
+        //今日驳回bug
+        CompletableFuture<Integer> regressionBugFuture = CompletableFuture.supplyAsync(() ->
+                baseMapper.getRegressionBug(projectId, userId, date), executorService);
+        //今日待确认bug
+        CompletableFuture<Integer> awaitVerifyBugFuture = CompletableFuture.supplyAsync(() ->
+                baseMapper.getAwaitVerifyBug(projectId, userId, date), executorService);
+
+
         //任务完成明细
-        List<TaskCompleteVo> taskCompleteVoList = baseMapper.getTaskCompleteVoList(projectId, userId, date);
+        CompletableFuture<List<TaskCompleteVo>> taskCompleteVoListFuture = CompletableFuture.supplyAsync(() ->
+                baseMapper.getTaskCompleteVoList(projectId, userId, date), executorService);
+//        List<TaskCompleteVo> taskCompleteVoList = baseMapper.getTaskCompleteVoList(projectId, userId, date);
         //bug完成明细
-        List<String> bugTitleList = baseMapper.getBugTitleList(projectId, userId, date);
-        todayTaskCompleteVo.setCompleteTask(completeTask);
-        todayTaskCompleteVo.setOverdueTask(overdueTask);
-        todayTaskCompleteVo.setRejectTask(rejectTask);
-        todayTaskCompleteVo.setTodoTask(todoTask);
-        todayTaskCompleteVo.setCompleteBug(completeBug);
-        todayTaskCompleteVo.setOverdueBug(overdueBug);
-        todayTaskCompleteVo.setRejectBug(rejectBug);
-        todayTaskCompleteVo.setTodoBug(todoBug);
-        todayTaskCompleteVo.setTaskCompleteVoList(taskCompleteVoList);
-        todayTaskCompleteVo.setBugTitleList(bugTitleList);
+        CompletableFuture< List<String>> bugTitleListFuture = CompletableFuture.supplyAsync(() ->
+                baseMapper.getBugTitleList(projectId, userId, date), executorService);
+//        List<String> bugTitleList = baseMapper.getBugTitleList(projectId, userId, date);
+        CompletableFuture.allOf(completeTaskFuture,
+                overdueTaskFuture,
+                rejectTaskFuture,
+                todoTaskFuture,
+                completeBugFuture,
+                overdueBugFuture,
+                rejectBugFuture,
+                todoBugFuture,
+                taskCompleteVoListFuture,
+                bugTitleListFuture,
+                createTaskFuture,
+                verifyTaskFuture,
+                regressionTaskFuture,
+                awaitVerifyTaskFuture,
+                createBugFuture,
+                verifyBugFuture,
+                regressionBugFuture,
+                awaitVerifyBugFuture
+        ).join();
+        todayTaskCompleteVo.setAwaitVerifyTask(awaitVerifyTaskFuture.join());
+        todayTaskCompleteVo.setAwaitVerifyBug(awaitVerifyBugFuture.join());
+        todayTaskCompleteVo.setVerifyTask(verifyTaskFuture.join());
+        todayTaskCompleteVo.setVerifyBug(verifyBugFuture.join());
+        todayTaskCompleteVo.setCreateTask(createTaskFuture.join());
+        todayTaskCompleteVo.setCreateBug(createBugFuture.join());
+        todayTaskCompleteVo.setRegressionTask(regressionTaskFuture.join());
+        todayTaskCompleteVo.setRegressionBug(regressionBugFuture.join());
+        todayTaskCompleteVo.setCompleteTask(completeTaskFuture.join());
+        todayTaskCompleteVo.setOverdueTask(overdueTaskFuture.join());
+        todayTaskCompleteVo.setRejectTask(rejectTaskFuture.join());
+        todayTaskCompleteVo.setTodoTask(todoTaskFuture.join());
+        todayTaskCompleteVo.setCompleteBug(completeBugFuture.join());
+        todayTaskCompleteVo.setOverdueBug(overdueBugFuture.join());
+        todayTaskCompleteVo.setRejectBug(rejectBugFuture.join());
+        todayTaskCompleteVo.setTodoBug(todoBugFuture.join());
+        todayTaskCompleteVo.setTaskCompleteVoList(taskCompleteVoListFuture.join());
+        todayTaskCompleteVo.setBugTitleList(bugTitleListFuture.join());
         return todayTaskCompleteVo;
     }
-
     private void transferData(List<CheckHoursVo> exportData, List<List<Object>> dataList) {
         if (CollectionUtil.isEmpty(exportData)) {
             return;

+ 20 - 0
pms-service/src/main/java/com/tofly/pms/working/vo/TodayTaskCompleteVo.java

@@ -20,6 +20,15 @@ public class TodayTaskCompleteVo {
     private Integer rejectTask;
     @ApiModelProperty(value = "今日待处理任务")
     private Integer todoTask;
+//    今日创建*个,确认*个,驳回*个,待确认*个。退回
+@ApiModelProperty(value = "今日创建任务")
+private Integer createTask;
+    @ApiModelProperty(value = "今日确认任务")
+    private Integer verifyTask;
+    @ApiModelProperty(value = "今日驳回任务")
+    private Integer regressionTask;
+    @ApiModelProperty(value = "待确认任务")
+    private Integer awaitVerifyTask;
     @ApiModelProperty(value = "今日完成bug")
     private Integer completeBug;
     @ApiModelProperty(value = "今日逾期bug")
@@ -28,6 +37,17 @@ public class TodayTaskCompleteVo {
     private Integer rejectBug;
     @ApiModelProperty(value = "今日待处理bug")
     private Integer todoBug;
+
+
+    @ApiModelProperty(value = "今日创建bug")
+    private Integer createBug;
+    @ApiModelProperty(value = "今日确认bug")
+    private Integer verifyBug;
+    @ApiModelProperty(value = "今日驳回bug")
+    private Integer regressionBug;
+    @ApiModelProperty(value = "待确认bug")
+    private Integer awaitVerifyBug;
+
     @ApiModelProperty(value = "任务完成明细")
     private List<TaskCompleteVo> taskCompleteVoList;
     @ApiModelProperty(value = "bug完成明细")

+ 70 - 0
pms-service/src/main/resources/mapper/HoursWMapper.xml

@@ -328,5 +328,75 @@
           and bug.deleted = 0
         group by bug.title
     </select>
+    <select id="getCreateTask" resultType="java.lang.Integer">
+        select count(1)
+        from business.tf_pm_task_w task
+        where task.project_id = #{projectId}
+          and task.create_user = #{userId}
+          and date (task.create_date) = #{date}
+          and task.deleted = 0
+    </select>
+    <select id="getVerifyTask" resultType="java.lang.Integer">
+        select count(1)
+        from business.tf_pm_task_w task
+        where task.project_id = #{projectId}
+          and task.status = '3'
+          and task.already_confirm_id like concat('%', #{userId}, '%')
+          and date (task.complete_time) = #{date}
+          and task.deleted = 0
+    </select>
+    <select id="getRegressionTask" resultType="java.lang.Integer">
+        select count(distinct task.id) from business.tf_pm_task_w task
+        inner join business.tf_pm_tasklog_w tlog on tlog.task_id = task.id
+        where task.project_id =  #{projectId}
+          and tlog.source_status = '4'
+          and tlog.create_date =  #{date}
+          and tlog.create_user = #{userId}
+          and task.deleted = 0
+    </select>
+    <select id="getAwaitVerifyTask" resultType="java.lang.Integer">
+        select count(1)
+        from business.tf_pm_task_w task
+        where task.project_id = #{projectId}
+          and task.status = '2'
+          and task.confirm_id like concat('%', #{userId}, '%')
+          and date (task.complete_time) = #{date}
+          and task.deleted = 0
+    </select>
+    <select id="getCreateBug" resultType="java.lang.Integer">
+        select count(1)
+        from business.tf_pm_bug_w bug
+        where bug.project_id = #{projectId}
+          and bug.create_user = #{userId}
+          and date (bug.create_time) = #{date}
+          and bug.deleted = 0
+    </select>
+    <select id="getVerifyBug" resultType="java.lang.Integer">
+        select count(1)
+        from business.tf_pm_bug_w bug
+        where bug.project_id = #{projectId}
+          and bug.status = '3'
+          and bug.sure_id like concat('%', #{userId}, '%')
+          and date (bug.complete_time) = #{date}
+          and bug.deleted = 0
+    </select>
+    <select id="getRegressionBug" resultType="java.lang.Integer">
+        select count(distinct bug.id) from business.tf_pm_bug_w bug
+        inner join business.tf_pm_buglog_w blog on bLog.bug_id = bug.id
+        where bug.project_id =  #{projectId}
+          and bLog.status = '4'
+          and bLog.handle_time =  #{date}
+          and bLog.handle_user = #{userId}
+          and bug.deleted = 0
+    </select>
+    <select id="getAwaitVerifyBug" resultType="java.lang.Integer">
+        select count(1)
+        from business.tf_pm_bug_w bug
+        where bug.project_id = #{projectId}
+          and bug.status = '2'
+          and bug.sure_id like concat('%', #{userId}, '%')
+          and date (bug.complete_time) = #{date}
+          and bug.deleted = 0
+    </select>
 
 </mapper>