From b30f4c40c77a940a2a749a676e901787f55040b0 Mon Sep 17 00:00:00 2001
From: zhangwencui <1064582902@qq.com>
Date: 星期五, 06 十一月 2026 11:48:25 +0800
Subject: [PATCH] 流程优化
---
src/main/java/com/ruoyi/projectManagement/service/impl/InfoServiceImpl.java | 21 +++++++++++++++++----
1 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/ruoyi/projectManagement/service/impl/InfoServiceImpl.java b/src/main/java/com/ruoyi/projectManagement/service/impl/InfoServiceImpl.java
index 2c21be4..4ce6009 100644
--- a/src/main/java/com/ruoyi/projectManagement/service/impl/InfoServiceImpl.java
+++ b/src/main/java/com/ruoyi/projectManagement/service/impl/InfoServiceImpl.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.enums.IsDeleteEnum;
import com.ruoyi.common.enums.SaleEnum;
+import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.projectManagement.dto.ContractInfoDto;
import com.ruoyi.projectManagement.dto.SaveInfoDto;
import com.ruoyi.projectManagement.dto.ShippingAddressDto;
@@ -24,6 +25,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;
@@ -81,9 +83,17 @@
@Override
@Transactional
public void deleteInfo(Long id) {
+ Info current = infoMapper.selectById(id);
+ if (current == null || Integer.valueOf(IsDeleteEnum.DELETED.getCode()).equals(current.getIsDelete())) {
+ throw new ServiceException("椤圭洰涓嶅瓨鍦�");
+ }
+ if (!"鏈紑濮�".equals(current.getCurrentPhase())) {
+ throw new ServiceException("椤圭洰宸插紑濮嬶紝涓嶈兘鍒犻櫎");
+ }
LambdaUpdateWrapper<Info> updateWrapper = new LambdaUpdateWrapper<Info>();
updateWrapper.eq(Info::getId, id);
updateWrapper.set(Info::getIsDelete, IsDeleteEnum.DELETED.getCode());
+ infoMapper.update(null, updateWrapper);
// 瀵瑰簲闄勮〃淇℃伅鏄惁鍒犻櫎寰呯‘瀹氾紙鍥犱负鍚庣画鍙兘浼氳繘琛屽紩鐢ㄦ墍浠ュ厛涓嶅垹闄�
}
@@ -103,24 +113,27 @@
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();
ShippingAddressDto shippingAddress = shippingFuture.get();
List<SalesLedgerProduct> salesLedgerProductList = listCompletableFuture.get();
-
+ List<SaveInfoDto> saveInfoDtos = subordinateInfoListFuture.get();
InfoVo vo = new InfoVo();
vo.setInfo(info);
vo.setContractInfo(contract);
vo.setShippingAddress(shippingAddress);
vo.setSalesLedgerProductList(salesLedgerProductList);
-
+ vo.setSubordinateInfoList(saveInfoDtos);
return vo;
}
--
Gitblit v1.9.3