diff --git a/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java index 0f26ad28..3201ba2a 100644 --- a/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/LyricInternalServiceImpl.java @@ -740,68 +740,68 @@ public class LyricInternalServiceImpl implements ILyricInternalService { // 批量创建文件夹 if (CollectionUtils.isNotEmpty(createDirItemList)) { // project的uuid,createDirItemList中每一项project的uuid都一样,取第一个即可 - String projectNodeId = createDirItemList.get(0).getParentDirNodeInfo().getUuId(); - if (StringUtils.isBlank(projectNodeId)) { - log.error("projectNodeId为空,createDirItemList:{}", createDirItemList); - return; - } - SdmResponse fileMetadataInfoResp = dataFeignClient.queryFileMetadataInfo(projectNodeId, NodeTypeEnum.PROJECT.getValue(), 0L); - if (fileMetadataInfoResp.getData() == null) { - log.error("fileMetadataInfoResp为空,projectNodeId为:{}", projectNodeId); - return; - } - // 查询需求附件的uuid,元数据表中【parentId是project的元数据主键id且originalName为:需求附件】 - FileMetadataInfoResp projectMetadataInfo = fileMetadataInfoResp.getData(); - SdmResponse> listSdmResponse = dataFeignClient.listDir(DirTypeEnum.PROJECT_NODE_DIR.getValue(), projectMetadataInfo.getId()); - if (!listSdmResponse.isSuccess() || CollectionUtils.isEmpty(listSdmResponse.getData())) { - log.error("listSdmResponse为空,project的元数据主键id为:{}", projectMetadataInfo.getId()); - return; - } - List 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.info("未查询到需求附件文件夹,当前项目下的子文件夹为:{}", childrenMetadataInfoList); - // 项目层级文件夹和需求文件夹中,新增一层【需求附件】文件夹 - List 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); - demandAttachBatchCreateNormalDirReq.setSkipPermissionCheck(true); - log.info("创建需求附件文件夹请求参数:{}", demandAttachBatchCreateNormalDirReq); - BatchCreateNormalDirResp batchCreateNormalDirResp; - try { - SdmResponse response = dataFeignClient.batchCreateNormalDirs(demandAttachBatchCreateNormalDirReq); - log.info("创建需求附件文件夹响应:{}", response); - if (!response.isSuccess() || ObjectUtils.isEmpty(response.getData())) { - log.error("调用创建需求附件文件夹接口失败,原因为:{}", response.getMessage()); + for (BatchCreateDirItem batchCreateDirItem : createDirItemList) { + String projectNodeId = createDirItemList.get(0).getParentDirNodeInfo().getUuId(); + if (StringUtils.isBlank(projectNodeId)) { + log.error("projectNodeId为空,createDirItemList:{}", createDirItemList); + return; + } + SdmResponse fileMetadataInfoResp = dataFeignClient.queryFileMetadataInfo(projectNodeId, NodeTypeEnum.PROJECT.getValue(), 0L); + if (fileMetadataInfoResp.getData() == null) { + log.error("fileMetadataInfoResp为空,projectNodeId为:{}", projectNodeId); + return; + } + // 查询需求附件的uuid,元数据表中【parentId是project的元数据主键id且originalName为:需求附件】 + FileMetadataInfoResp projectMetadataInfo = fileMetadataInfoResp.getData(); + SdmResponse> listSdmResponse = dataFeignClient.listDir(DirTypeEnum.PROJECT_NODE_DIR.getValue(), projectMetadataInfo.getId()); + if (!listSdmResponse.isSuccess() || CollectionUtils.isEmpty(listSdmResponse.getData())) { + log.error("listSdmResponse为空,project的元数据主键id为:{}", projectMetadataInfo.getId()); + return; + } + List 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.info("未查询到需求附件文件夹,当前项目下的子文件夹为:{}", childrenMetadataInfoList); + // 项目层级文件夹和需求文件夹中,新增一层【需求附件】文件夹 + List 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); + demandAttachBatchCreateNormalDirReq.setSkipPermissionCheck(true); + log.info("创建需求附件文件夹请求参数:{}", demandAttachBatchCreateNormalDirReq); + BatchCreateNormalDirResp batchCreateNormalDirResp; + try { + SdmResponse 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; } - batchCreateNormalDirResp = response.getData(); - } catch (Exception e) { - log.error("调用创建需求附件文件夹接口失败", e); - return; - } - if (ObjectUtils.isEmpty(batchCreateNormalDirResp)) { - log.error("batchCreateNormalDirResp为空"); - return; + if (ObjectUtils.isEmpty(batchCreateNormalDirResp)) { + log.error("batchCreateNormalDirResp为空"); + return; + } + List successList = batchCreateNormalDirResp.getSuccessList(); + if (CollectionUtils.isEmpty(successList)) { + log.error("successList为空"); + return; + } + // 需求附件文件夹的元数据主键id + demandAttachFileMetadataInfoId = successList.get(0).getId(); + } else { + demandAttachFileMetadataInfoId = demandAttachFileMetadataInfoResp.getId(); } - List successList = batchCreateNormalDirResp.getSuccessList(); - if (CollectionUtils.isEmpty(successList)) { - log.error("successList为空"); - return; - } - // 需求附件文件夹的元数据主键id - demandAttachFileMetadataInfoId = successList.get(0).getId(); - } else { - demandAttachFileMetadataInfoId = demandAttachFileMetadataInfoResp.getId(); - } - for (BatchCreateDirItem batchCreateDirItem : createDirItemList) { BatchCreateNormalDirReq batchCreateNormalDirReq = new BatchCreateNormalDirReq(); // 2026-02-03 这里要挂在【需求附件】文件夹下了 batchCreateNormalDirReq.setParentId(demandAttachFileMetadataInfoId); @@ -820,7 +820,6 @@ public class LyricInternalServiceImpl implements ILyricInternalService { } } - // 批量更新权限 if (CollectionUtils.isNotEmpty(updatePermissionList)) { List filePermissions = new ArrayList<>(); @@ -2673,7 +2672,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService { String curDateStr; Date createTime = lyricVProjectToDM.getCreateTime(); if (ObjectUtils.isNotEmpty(createTime)) { - curDateStr = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ss").format(createTime).replace("T"," "); + curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(createTime); }else { curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); } diff --git a/project/src/main/java/com/sdm/project/service/impl/ProjectServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/ProjectServiceImpl.java index 46243f43..deb646a9 100644 --- a/project/src/main/java/com/sdm/project/service/impl/ProjectServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/ProjectServiceImpl.java @@ -177,6 +177,10 @@ public class ProjectServiceImpl extends BaseService implements IProjectService { private static final String NODE_TYPE_PHASE = NodeTypeEnum.PHASE.getValue(); private static final List EMPTY_TAG_LIST = Collections.emptyList(); + // 通过标识判断是否走查询现场视图逻辑(0不查询,1查询) + @Value("${lyricFlag:1}") + private int lyricFlag; + @Autowired private CacheManager cacheManager; @@ -602,8 +606,10 @@ public class ProjectServiceImpl extends BaseService implements IProjectService { summaryWorkspaceNode(projectNodePo,projectNodePo.getChildren()); } // 对工位进行排序,-M工位顺序排第一个 - for (ProjectNodePo projectNodePo : realTopProjectNodeList) { - sortWorkspaceNode(projectNodePo); + if (lyricFlag == 1) { + for (ProjectNodePo projectNodePo : realTopProjectNodeList) { + sortWorkspaceNode(projectNodePo); + } } return SdmResponse.success(realTopProjectNodeList.stream().flatMap(item -> item.getChildren().stream().filter(Objects::nonNull)).toList()); } @@ -623,32 +629,35 @@ public class ProjectServiceImpl extends BaseService implements IProjectService { return; } // 对工位进行排序,-M工位顺序排第一个 - workspaceNodeList = workspaceNodeList.stream().sorted(Comparator.comparing(NodeAllBase::getNodeCode)).collect(Collectors.toList()); - // 利元亨定制 -// workspaceNodeList.sort((o1, o2) -> { -// String[] workspaceNode1 = o1.getNodeCode().split("-"); -// String[] workspaceNode2 = o2.getNodeCode().split("-"); -// -// if (workspaceNode1.length != 2 || workspaceNode2.length != 2) { -// return o1.getNodeCode().compareTo(o2.getNodeCode()); -// } -// -// int prefix1 = Integer.parseInt(workspaceNode1[0]); -// int prefix2 = Integer.parseInt(workspaceNode2[0]); -// if (prefix1 != prefix2) { -// return Integer.compare(prefix1, prefix2); -// } -// -// int suffix1 = Integer.parseInt(workspaceNode1[1]); -// int suffix2 = Integer.parseInt(workspaceNode2[1]); -// return Integer.compare(suffix1, suffix2); -// }); + workspaceNodeList.sort((o1, o2) -> { + String[] workspaceNode1 = o1.getNodeCode().split("-"); + String[] workspaceNode2 = o2.getNodeCode().split("-"); + + if (o1.getNodeCode().contains("-M") || o2.getNodeCode().contains("-M")) { + return 0; + } + + if (workspaceNode1.length != 2 || workspaceNode2.length != 2) { + return o1.getNodeCode().compareTo(o2.getNodeCode()); + } + + int prefix1 = Integer.parseInt(workspaceNode1[0]); + int prefix2 = Integer.parseInt(workspaceNode2[0]); + if (prefix1 != prefix2) { + return Integer.compare(prefix1, prefix2); + } + + int suffix1 = Integer.parseInt(workspaceNode1[1]); + int suffix2 = Integer.parseInt(workspaceNode2[1]); + return Integer.compare(suffix1, suffix2); + }); NodeAllBase specialWorkspaceNode = workspaceNodeList.stream().filter(workspaceNode -> workspaceNode.getNodeCode().contains("-M")).findFirst().orElse(null); log.info("specialWorkspaceNode为:{}",specialWorkspaceNode); if (specialWorkspaceNode != null) { moveTargetToFirst(workspaceNodeList,specialWorkspaceNode.getUuid()); } + projectNodePo.setChildren(workspaceNodeList); } public static void moveTargetToFirst(List nodeList, String targetId) { diff --git a/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java index 39f33674..3af6fa8d 100644 --- a/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java @@ -68,6 +68,7 @@ import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.mock.web.MockMultipartFile; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -171,6 +172,10 @@ public class SimulationRunServiceImpl extends ServiceImpl item.getChildren().stream().filter(Objects::nonNull)).toList()); } @@ -614,25 +621,6 @@ public class SimulationRunServiceImpl extends ServiceImpl workspaceNodeList = children.stream().filter(node -> NodeTypeEnum.WORKSPACE.getValue().equals(node.getNodeType())).collect(Collectors.toList()); - // 利元亨定制 -// workspaceNodeList.sort((o1, o2) -> { -// String[] workspaceNode1 = o1.getNodeCode().split("-"); -// String[] workspaceNode2 = o2.getNodeCode().split("-"); -// -// if (workspaceNode1.length != 2 || workspaceNode2.length != 2) { -// return o1.getNodeCode().compareTo(o2.getNodeCode()); -// } -// -// int prefix1 = Integer.parseInt(workspaceNode1[0]); -// int prefix2 = Integer.parseInt(workspaceNode2[0]); -// if (prefix1 != prefix2) { -// return Integer.compare(prefix1, prefix2); -// } -// -// int suffix1 = Integer.parseInt(workspaceNode1[1]); -// int suffix2 = Integer.parseInt(workspaceNode2[1]); -// return Integer.compare(suffix1, suffix2); -// }); if (CollectionUtils.isEmpty(workspaceNodeList)) { for (NodeAllBase child : children) { if (child instanceof ProjectNodePo) { @@ -666,12 +654,35 @@ public class SimulationRunServiceImpl extends ServiceImpl { + + if (o1.getNodeCode().contains("-M") || o2.getNodeCode().contains("-M")) { + return 0; + } + + String[] workspaceNode1 = o1.getNodeCode().split("-"); + String[] workspaceNode2 = o2.getNodeCode().split("-"); + + if (workspaceNode1.length != 2 || workspaceNode2.length != 2) { + return o1.getNodeCode().compareTo(o2.getNodeCode()); + } + + int prefix1 = Integer.parseInt(workspaceNode1[0]); + int prefix2 = Integer.parseInt(workspaceNode2[0]); + if (prefix1 != prefix2) { + return Integer.compare(prefix1, prefix2); + } + + int suffix1 = Integer.parseInt(workspaceNode1[1]); + int suffix2 = Integer.parseInt(workspaceNode2[1]); + return Integer.compare(suffix1, suffix2); + }); NodeAllBase specialWorkspaceNode = workspaceNodeList.stream().filter(workspaceNode -> workspaceNode.getNodeCode().contains("-M")).findFirst().orElse(null); log.info("specialWorkspaceNode为:{}",specialWorkspaceNode); if (specialWorkspaceNode != null) { moveTargetToFirst(workspaceNodeList,specialWorkspaceNode.getUuid()); } + projectNodePo.setChildren(workspaceNodeList); } public static void moveTargetToFirst(List nodeList, String targetId) {