1、创建需求时,如果需求附件文件夹未创建就进行创建

2、导出任务树和任务列表时,也加上学科过滤
This commit is contained in:
2026-02-03 20:45:22 +08:00
parent ef9ed39fb8
commit 599cd0cd15
4 changed files with 84 additions and 6 deletions

View File

@@ -54,4 +54,6 @@ public class TaskExportExcelParam {
* 需求id
*/
private String demandId;
private List<String> filterDiscipline;
}

View File

@@ -34,4 +34,6 @@ public class TaskTreeExportExcelParam {
*/
private Integer endIndex;
private List<String> filterDiscipline;
}

View File

@@ -15,6 +15,7 @@ import com.sdm.common.entity.req.system.UserQueryReq;
import com.sdm.common.entity.req.task.DemandExportExcelFormat;
import com.sdm.common.entity.req.task.DemandExportExcelParam;
import com.sdm.common.entity.resp.PageDataResp;
import com.sdm.common.entity.resp.data.BatchCreateNormalDirResp;
import com.sdm.common.entity.resp.data.FileMetadataInfoResp;
import com.sdm.common.entity.resp.project.SpdmTaskVo;
import com.sdm.common.entity.resp.system.CIDUserResp;
@@ -214,11 +215,47 @@ public class DemandServiceImpl extends BaseService implements IDemandService {
}
List<FileMetadataInfoResp> childrenMetadataInfoList = listSdmResponse.getData();
FileMetadataInfoResp demandAttachFileMetadataInfoResp = childrenMetadataInfoList.stream().filter(metadataInfo -> AttachFileTypeEnum.DEMAND_FILE.getValue().equals(metadataInfo.getOriginalName())).findFirst().orElse(null);
Long demandAttachFileMetadataInfoId;
if (ObjectUtils.isEmpty(demandAttachFileMetadataInfoResp)) {
log.error("未查询到需求附件文件夹,当前项目下的子文件夹为:{}",childrenMetadataInfoList);
return SdmResponse.failed("新增需求失败!");
log.info("未查询到需求附件文件夹,当前项目下的子文件夹为:{}",childrenMetadataInfoList);
// 项目层级文件夹和需求文件夹中,新增一层【需求附件】文件夹
List<FolderItemReq> demandAttachFolderItemReqList = new ArrayList<>();
BatchCreateNormalDirReq demandAttachBatchCreateNormalDirReq = new BatchCreateNormalDirReq();
demandAttachBatchCreateNormalDirReq.setParentUUId(projectNodeId);
FolderItemReq demandAttachFolderItemReq = new FolderItemReq();
demandAttachFolderItemReq.setFolderName(AttachFileTypeEnum.DEMAND_FILE.getValue());
demandAttachFolderItemReq.setFolderUuid(RandomUtil.generateString(32));
demandAttachFolderItemReqList.add(demandAttachFolderItemReq);
demandAttachBatchCreateNormalDirReq.setFolderItems(demandAttachFolderItemReqList);
log.info("创建需求附件文件夹请求参数:{}", demandAttachBatchCreateNormalDirReq);
BatchCreateNormalDirResp batchCreateNormalDirResp;
try {
SdmResponse<BatchCreateNormalDirResp> response = dataFeignClient.batchCreateNormalDirs(demandAttachBatchCreateNormalDirReq);
log.info("创建需求附件文件夹响应:{}", response);
if (!response.isSuccess() || ObjectUtils.isEmpty(response.getData())) {
log.error("调用创建需求附件文件夹接口失败,原因为:{}", response.getMessage());
return SdmResponse.failed("创建需求附件文件夹失败:,原因为:" + response.getMessage());
}
batchCreateNormalDirResp = response.getData();
} catch (Exception e) {
log.error("调用创建需求附件文件夹接口失败", e);
return SdmResponse.failed("创建需求附件文件夹失败:" + e.getMessage());
}
if (ObjectUtils.isEmpty(batchCreateNormalDirResp)) {
log.error("batchCreateNormalDirResp为空");
return SdmResponse.failed("创建需求附件文件夹失败");
}
List<BatchCreateNormalDirResp.DirInfo> successList = batchCreateNormalDirResp.getSuccessList();
if (CollectionUtils.isEmpty(successList)) {
log.error("successList为空");
return SdmResponse.failed("创建需求附件文件夹失败");
}
// 需求附件文件夹的元数据主键id
demandAttachFileMetadataInfoId = successList.get(0).getId();
}else {
demandAttachFileMetadataInfoId = demandAttachFileMetadataInfoResp.getId();
}
Long demandAttachFileMetadataInfoId = demandAttachFileMetadataInfoResp.getId();
batchCreateNormalDirReq.setParentId(demandAttachFileMetadataInfoId);
FolderItemReq folderItemReq = new FolderItemReq();
folderItemReq.setFolderName(req.getDemandName());

View File

@@ -12,6 +12,7 @@ import com.sdm.common.entity.enums.NodeTypeEnum;
import com.sdm.common.entity.req.data.*;
import com.sdm.common.entity.req.project.SpdmNodeListReq;
import com.sdm.common.entity.req.system.UserQueryReq;
import com.sdm.common.entity.resp.data.BatchCreateNormalDirResp;
import com.sdm.common.entity.resp.data.FileMetadataInfoResp;
import com.sdm.common.entity.resp.system.CIDUserResp;
import com.sdm.common.feign.impl.data.DataClientFeignClientImpl;
@@ -638,11 +639,47 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
}
List<FileMetadataInfoResp> childrenMetadataInfoList = listSdmResponse.getData();
FileMetadataInfoResp demandAttachFileMetadataInfoResp = childrenMetadataInfoList.stream().filter(metadataInfo -> AttachFileTypeEnum.DEMAND_FILE.getValue().equals(metadataInfo.getOriginalName())).findFirst().orElse(null);
Long demandAttachFileMetadataInfoId;
if (ObjectUtils.isEmpty(demandAttachFileMetadataInfoResp)) {
log.error("未查询到需求附件文件夹,当前项目下的子文件夹为:{}",childrenMetadataInfoList);
return;
log.info("未查询到需求附件文件夹,当前项目下的子文件夹为:{}",childrenMetadataInfoList);
// 项目层级文件夹和需求文件夹中,新增一层【需求附件】文件夹
List<FolderItemReq> demandAttachFolderItemReqList = new ArrayList<>();
BatchCreateNormalDirReq demandAttachBatchCreateNormalDirReq = new BatchCreateNormalDirReq();
demandAttachBatchCreateNormalDirReq.setParentUUId(projectNodeId);
FolderItemReq demandAttachFolderItemReq = new FolderItemReq();
demandAttachFolderItemReq.setFolderName(AttachFileTypeEnum.DEMAND_FILE.getValue());
demandAttachFolderItemReq.setFolderUuid(RandomUtil.generateString(32));
demandAttachFolderItemReqList.add(demandAttachFolderItemReq);
demandAttachBatchCreateNormalDirReq.setFolderItems(demandAttachFolderItemReqList);
log.info("创建需求附件文件夹请求参数:{}", demandAttachBatchCreateNormalDirReq);
BatchCreateNormalDirResp batchCreateNormalDirResp;
try {
SdmResponse<BatchCreateNormalDirResp> response = dataFeignClient.batchCreateNormalDirs(demandAttachBatchCreateNormalDirReq);
log.info("创建需求附件文件夹响应:{}", response);
if (!response.isSuccess() || ObjectUtils.isEmpty(response.getData())) {
log.error("调用创建需求附件文件夹接口失败,原因为:{}", response.getMessage());
return;
}
batchCreateNormalDirResp = response.getData();
} catch (Exception e) {
log.error("调用创建需求附件文件夹接口失败", e);
return;
}
if (ObjectUtils.isEmpty(batchCreateNormalDirResp)) {
log.error("batchCreateNormalDirResp为空");
return;
}
List<BatchCreateNormalDirResp.DirInfo> successList = batchCreateNormalDirResp.getSuccessList();
if (CollectionUtils.isEmpty(successList)) {
log.error("successList为空");
return;
}
// 需求附件文件夹的元数据主键id
demandAttachFileMetadataInfoId = successList.get(0).getId();
}else {
demandAttachFileMetadataInfoId = demandAttachFileMetadataInfoResp.getId();
}
Long demandAttachFileMetadataInfoId = demandAttachFileMetadataInfoResp.getId();
for (BatchCreateDirItem batchCreateDirItem : createDirItemList) {
BatchCreateNormalDirReq batchCreateNormalDirReq = new BatchCreateNormalDirReq();
// 2026-02-03 这里要挂在【需求附件】文件夹下了