|
@@ -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 overdueTask = baseMapper.getOverdueTask(projectId, userId, date);
|
|
|
+ CompletableFuture<Integer> overdueTaskFuture = CompletableFuture.supplyAsync(() ->
|
|
|
+ baseMapper.getOverdueTask(projectId, userId, date), executorService);
|
|
|
+
|
|
|
|
|
|
- Integer rejectTask = baseMapper.getRejectTask(projectId, userId, date);
|
|
|
+ CompletableFuture<Integer> rejectTaskFuture = CompletableFuture.supplyAsync(() ->
|
|
|
+ baseMapper.getRejectTask(projectId, userId, date), executorService);
|
|
|
+
|
|
|
|
|
|
- Integer todoTask = baseMapper.getTodoTask(projectId, userId, date);
|
|
|
+ CompletableFuture<Integer> todoTaskFuture = CompletableFuture.supplyAsync(() ->
|
|
|
+ baseMapper.getTodoTask(projectId, userId, date), executorService);
|
|
|
+
|
|
|
+
|
|
|
+ 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);
|
|
|
+
|
|
|
|
|
|
- Integer completeBug = baseMapper.getCompleteBug(projectId, userId, date);
|
|
|
+ CompletableFuture<Integer> completeBugFuture = CompletableFuture.supplyAsync(() ->
|
|
|
+ baseMapper.getCompleteBug(projectId, userId, date), executorService);
|
|
|
+
|
|
|
|
|
|
- Integer overdueBug = baseMapper.getOverdueBug(projectId, userId, date);
|
|
|
+ CompletableFuture<Integer> overdueBugFuture = CompletableFuture.supplyAsync(() ->
|
|
|
+ baseMapper.getOverdueBug(projectId, userId, date), executorService);
|
|
|
+
|
|
|
|
|
|
- Integer rejectBug = baseMapper.getRejectBug(projectId, userId, date);
|
|
|
+ CompletableFuture<Integer> rejectBugFuture = CompletableFuture.supplyAsync(() ->
|
|
|
+ baseMapper.getRejectBug(projectId, userId, date), executorService);
|
|
|
+
|
|
|
|
|
|
- Integer todoBug = baseMapper.getTodoBug(projectId, userId, date);
|
|
|
+ CompletableFuture<Integer> todoBugFuture = CompletableFuture.supplyAsync(() ->
|
|
|
+ baseMapper.getTodoBug(projectId, userId, date), executorService);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ CompletableFuture<Integer> createBugFuture = CompletableFuture.supplyAsync(() ->
|
|
|
+ baseMapper.getCreateBug(projectId, userId, date), executorService);
|
|
|
+
|
|
|
+ CompletableFuture<Integer> verifyBugFuture = CompletableFuture.supplyAsync(() ->
|
|
|
+ baseMapper.getVerifyBug(projectId, userId, date), executorService);
|
|
|
+
|
|
|
+ CompletableFuture<Integer> regressionBugFuture = CompletableFuture.supplyAsync(() ->
|
|
|
+ baseMapper.getRegressionBug(projectId, userId, date), executorService);
|
|
|
+
|
|
|
+ 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<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);
|
|
|
+
|
|
|
+ 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;
|