buhuazhen
4 天以前 fdfe6d221030d9e6f19cca3fdad7fb88815e78af
fix(service): 修复异步查询未全部等待完成问题

- 引入断言工具类 org.springframework.util.Assert
- 增加商品列表和下级项目信息的异步任务 CompletableFuture
- 等待所有包括新增加的异步任务全部完成
- 解决了之前只等待部分异步任务完成的缺陷
已修改1个文件
5 ■■■■■ 文件已修改
src/main/java/com/ruoyi/projectManagement/service/impl/InfoServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/projectManagement/service/impl/InfoServiceImpl.java
@@ -24,6 +24,7 @@
import lombok.SneakyThrows;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import java.util.List;
import java.util.concurrent.CompletableFuture;
@@ -103,15 +104,15 @@
        CompletableFuture<SaveInfoDto> infoFuture = CompletableFuture.supplyAsync(() -> infoHandleService.getInfoById(id));
        CompletableFuture<ContractInfoDto> contractFuture = CompletableFuture.supplyAsync(() -> contractInfoHandleService.getByInfoId(id));
        CompletableFuture<ShippingAddressDto> shippingFuture = CompletableFuture.supplyAsync(() -> shippingAddressHandleService.getByInfoId(id));
        // 商品
        CompletableFuture<List<SalesLedgerProduct>> listCompletableFuture = CompletableFuture.supplyAsync(() -> salesLedgerService.getSalesLedgerProductListByRelateId(id,SaleEnum.MANAGEMENT));
        // 下级项目信息
        CompletableFuture<List<SaveInfoDto>> subordinateInfoListFuture = CompletableFuture.supplyAsync(() -> infoHandleService.getSubordinateInfo(id));
        // 商品
        // 等待所有异步完成
        CompletableFuture.allOf(infoFuture, contractFuture, shippingFuture).join();
        CompletableFuture.allOf(infoFuture, contractFuture, shippingFuture,listCompletableFuture,subordinateInfoListFuture).join();
        SaveInfoDto info = infoFuture.get();
        ContractInfoDto contract = contractFuture.get();