|
|
@@ -16,13 +16,16 @@ import org.springblade.manager.mapper.WbsDivideMapper;
|
|
|
import org.springblade.manager.service.IWbsDivideService;
|
|
|
import org.springblade.manager.vo.DivideClientReq;
|
|
|
import org.springblade.manager.vo.DivideClientVo;
|
|
|
+import org.springblade.manager.vo.DivideFileVo;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* WBS划分 Service 实现类
|
|
|
@@ -159,22 +162,35 @@ public class WbsDivideServiceImpl extends BaseServiceImpl<WbsDivideMapper, WbsDi
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public List<String> getPdfUrlsByDivideNum(String divideNum) {
|
|
|
- List<String> pdfUrls = new ArrayList<>();
|
|
|
+ public List<DivideFileVo> getPdfUrlsByDivideNum(String divideNum, String contractId) {
|
|
|
+ List<DivideFileVo> resultList = new ArrayList<>();
|
|
|
|
|
|
try {
|
|
|
- // 1. 根据divideNum查询所有记录
|
|
|
+ // 1. 根据divideNum和contractId查询所有记录
|
|
|
List<WbsDivide> wbsDivideList = baseMapper.selectByDivideNum(divideNum);
|
|
|
|
|
|
if (wbsDivideList == null || wbsDivideList.isEmpty()) {
|
|
|
log.warn("根据divideNum={}未查询到任何记录", divideNum);
|
|
|
- return pdfUrls;
|
|
|
+ return resultList;
|
|
|
}
|
|
|
|
|
|
- log.info("根据divideNum={}查询到{}条记录", divideNum, wbsDivideList.size());
|
|
|
+ // 过滤出contractId匹配的记录
|
|
|
+ List<WbsDivide> filteredList = new ArrayList<>();
|
|
|
+ for (WbsDivide wbsDivide : wbsDivideList) {
|
|
|
+ if (contractId != null && contractId.equals(wbsDivide.getContractId())) {
|
|
|
+ filteredList.add(wbsDivide);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (filteredList.isEmpty()) {
|
|
|
+ log.warn("根据divideNum={}和contractId={}未查询到匹配记录", divideNum, contractId);
|
|
|
+ return resultList;
|
|
|
+ }
|
|
|
+
|
|
|
+ log.info("根据divideNum={}和contractId={}查询到{}条记录", divideNum, contractId, filteredList.size());
|
|
|
|
|
|
// 2. 遍历所有记录,取出pKeyId
|
|
|
- for (WbsDivide wbsDivide : wbsDivideList) {
|
|
|
+ for (WbsDivide wbsDivide : filteredList) {
|
|
|
Long pKeyId = wbsDivide.getPKeyId();
|
|
|
|
|
|
if (pKeyId == null) {
|
|
|
@@ -190,9 +206,13 @@ public class WbsDivideServiceImpl extends BaseServiceImpl<WbsDivideMapper, WbsDi
|
|
|
|
|
|
if (informationQuery != null && informationQuery.getPdfUrl() != null
|
|
|
&& !informationQuery.getPdfUrl().trim().isEmpty()) {
|
|
|
- // 4. 取出pdfUrl添加到列表
|
|
|
- pdfUrls.add(informationQuery.getPdfUrl());
|
|
|
- log.debug("pKeyId={}对应的pdfUrl={}", pKeyId, informationQuery.getPdfUrl());
|
|
|
+ // 4. 创建DivideFileVo对象
|
|
|
+ DivideFileVo divideFileVo = new DivideFileVo();
|
|
|
+ divideFileVo.setId(informationQuery.getId().toString());
|
|
|
+ divideFileVo.setName(informationQuery.getName());
|
|
|
+ divideFileVo.setFileUrl(informationQuery.getPdfUrl());
|
|
|
+ resultList.add(divideFileVo);
|
|
|
+ log.debug("pKeyId={}对应的pdfUrl={}, name={}", pKeyId, informationQuery.getPdfUrl(), informationQuery.getName());
|
|
|
} else {
|
|
|
log.debug("pKeyId={}未查询到有效的pdfUrl", pKeyId);
|
|
|
}
|
|
|
@@ -201,13 +221,13 @@ public class WbsDivideServiceImpl extends BaseServiceImpl<WbsDivideMapper, WbsDi
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- log.info("根据divideNum={}最终获取到{}个pdfUrl", divideNum, pdfUrls.size());
|
|
|
+ log.info("根据divideNum={}和contractId={}最终获取到{}个pdfUrl", divideNum, contractId, resultList.size());
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
- log.error("根据divideNum={}获取PDF URL列表失败, error={}", divideNum, e.getMessage(), e);
|
|
|
+ log.error("根据divideNum={}和contractId={}获取PDF URL列表失败, error={}", divideNum, contractId, e.getMessage(), e);
|
|
|
}
|
|
|
|
|
|
- return pdfUrls;
|
|
|
+ return resultList;
|
|
|
}
|
|
|
|
|
|
public void testCompleteFlow() {
|
|
|
@@ -288,6 +308,5 @@ public class WbsDivideServiceImpl extends BaseServiceImpl<WbsDivideMapper, WbsDi
|
|
|
|
|
|
log.info("========== 测试完整流程结束 ==========");
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|