1、利元亨现场问题修改4

This commit is contained in:
2026-03-06 15:29:45 +08:00
parent 9491e7a7a6
commit afc4a6f4a5
3 changed files with 123 additions and 104 deletions

View File

@@ -740,68 +740,68 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
// 批量创建文件夹 // 批量创建文件夹
if (CollectionUtils.isNotEmpty(createDirItemList)) { if (CollectionUtils.isNotEmpty(createDirItemList)) {
// project的uuidcreateDirItemList中每一项project的uuid都一样取第一个即可 // project的uuidcreateDirItemList中每一项project的uuid都一样取第一个即可
String projectNodeId = createDirItemList.get(0).getParentDirNodeInfo().getUuId(); for (BatchCreateDirItem batchCreateDirItem : createDirItemList) {
if (StringUtils.isBlank(projectNodeId)) { String projectNodeId = createDirItemList.get(0).getParentDirNodeInfo().getUuId();
log.error("projectNodeId为空createDirItemList{}", createDirItemList); if (StringUtils.isBlank(projectNodeId)) {
return; log.error("projectNodeId为空createDirItemList{}", createDirItemList);
} return;
SdmResponse<FileMetadataInfoResp> fileMetadataInfoResp = dataFeignClient.queryFileMetadataInfo(projectNodeId, NodeTypeEnum.PROJECT.getValue(), 0L); }
if (fileMetadataInfoResp.getData() == null) { SdmResponse<FileMetadataInfoResp> fileMetadataInfoResp = dataFeignClient.queryFileMetadataInfo(projectNodeId, NodeTypeEnum.PROJECT.getValue(), 0L);
log.error("fileMetadataInfoResp为空,projectNodeId为{}", projectNodeId); if (fileMetadataInfoResp.getData() == null) {
return; log.error("fileMetadataInfoResp为空,projectNodeId为{}", projectNodeId);
} return;
// 查询需求附件的uuid元数据表中【parentId是project的元数据主键id且originalName为需求附件】 }
FileMetadataInfoResp projectMetadataInfo = fileMetadataInfoResp.getData(); // 查询需求附件的uuid元数据表中【parentId是project的元数据主键id且originalName为需求附件】
SdmResponse<List<FileMetadataInfoResp>> listSdmResponse = dataFeignClient.listDir(DirTypeEnum.PROJECT_NODE_DIR.getValue(), projectMetadataInfo.getId()); FileMetadataInfoResp projectMetadataInfo = fileMetadataInfoResp.getData();
if (!listSdmResponse.isSuccess() || CollectionUtils.isEmpty(listSdmResponse.getData())) { SdmResponse<List<FileMetadataInfoResp>> listSdmResponse = dataFeignClient.listDir(DirTypeEnum.PROJECT_NODE_DIR.getValue(), projectMetadataInfo.getId());
log.error("listSdmResponse为空,project的元数据主键id为{}", projectMetadataInfo.getId()); if (!listSdmResponse.isSuccess() || CollectionUtils.isEmpty(listSdmResponse.getData())) {
return; log.error("listSdmResponse为空,project的元数据主键id为{}", projectMetadataInfo.getId());
} return;
List<FileMetadataInfoResp> childrenMetadataInfoList = listSdmResponse.getData(); }
FileMetadataInfoResp demandAttachFileMetadataInfoResp = childrenMetadataInfoList.stream().filter(metadataInfo -> AttachFileTypeEnum.DEMAND_FILE.getValue().equals(metadataInfo.getOriginalName())).findFirst().orElse(null); List<FileMetadataInfoResp> childrenMetadataInfoList = listSdmResponse.getData();
Long demandAttachFileMetadataInfoId; FileMetadataInfoResp demandAttachFileMetadataInfoResp = childrenMetadataInfoList.stream().filter(metadataInfo -> AttachFileTypeEnum.DEMAND_FILE.getValue().equals(metadataInfo.getOriginalName())).findFirst().orElse(null);
if (ObjectUtils.isEmpty(demandAttachFileMetadataInfoResp)) { Long demandAttachFileMetadataInfoId;
log.info("未查询到需求附件文件夹,当前项目下的子文件夹为:{}", childrenMetadataInfoList); if (ObjectUtils.isEmpty(demandAttachFileMetadataInfoResp)) {
// 项目层级文件夹和需求文件夹中,新增一层【需求附件】文件夹 log.info("未查询到需求附件文件夹,当前项目下的子文件夹为:{}", childrenMetadataInfoList);
List<FolderItemReq> demandAttachFolderItemReqList = new ArrayList<>(); // 项目层级文件夹和需求文件夹中,新增一层【需求附件】文件夹
BatchCreateNormalDirReq demandAttachBatchCreateNormalDirReq = new BatchCreateNormalDirReq(); List<FolderItemReq> demandAttachFolderItemReqList = new ArrayList<>();
demandAttachBatchCreateNormalDirReq.setParentUUId(projectNodeId); BatchCreateNormalDirReq demandAttachBatchCreateNormalDirReq = new BatchCreateNormalDirReq();
FolderItemReq demandAttachFolderItemReq = new FolderItemReq(); demandAttachBatchCreateNormalDirReq.setParentUUId(projectNodeId);
demandAttachFolderItemReq.setFolderName(AttachFileTypeEnum.DEMAND_FILE.getValue()); FolderItemReq demandAttachFolderItemReq = new FolderItemReq();
demandAttachFolderItemReq.setFolderUuid(RandomUtil.generateString(32)); demandAttachFolderItemReq.setFolderName(AttachFileTypeEnum.DEMAND_FILE.getValue());
demandAttachFolderItemReqList.add(demandAttachFolderItemReq); demandAttachFolderItemReq.setFolderUuid(RandomUtil.generateString(32));
demandAttachBatchCreateNormalDirReq.setFolderItems(demandAttachFolderItemReqList); demandAttachFolderItemReqList.add(demandAttachFolderItemReq);
demandAttachBatchCreateNormalDirReq.setSkipPermissionCheck(true); demandAttachBatchCreateNormalDirReq.setFolderItems(demandAttachFolderItemReqList);
log.info("创建需求附件文件夹请求参数:{}", demandAttachBatchCreateNormalDirReq); demandAttachBatchCreateNormalDirReq.setSkipPermissionCheck(true);
BatchCreateNormalDirResp batchCreateNormalDirResp; log.info("创建需求附件文件夹请求参数:{}", demandAttachBatchCreateNormalDirReq);
try { BatchCreateNormalDirResp batchCreateNormalDirResp;
SdmResponse<BatchCreateNormalDirResp> response = dataFeignClient.batchCreateNormalDirs(demandAttachBatchCreateNormalDirReq); try {
log.info("创建需求附件文件夹响应:{}", response); SdmResponse<BatchCreateNormalDirResp> response = dataFeignClient.batchCreateNormalDirs(demandAttachBatchCreateNormalDirReq);
if (!response.isSuccess() || ObjectUtils.isEmpty(response.getData())) { log.info("创建需求附件文件夹响应:{}", response);
log.error("调用创建需求附件文件夹接口失败,原因为:{}", response.getMessage()); if (!response.isSuccess() || ObjectUtils.isEmpty(response.getData())) {
log.error("调用创建需求附件文件夹接口失败,原因为:{}", response.getMessage());
return;
}
batchCreateNormalDirResp = response.getData();
} catch (Exception e) {
log.error("调用创建需求附件文件夹接口失败", e);
return; return;
} }
batchCreateNormalDirResp = response.getData();
} catch (Exception e) {
log.error("调用创建需求附件文件夹接口失败", e);
return;
}
if (ObjectUtils.isEmpty(batchCreateNormalDirResp)) { if (ObjectUtils.isEmpty(batchCreateNormalDirResp)) {
log.error("batchCreateNormalDirResp为空"); log.error("batchCreateNormalDirResp为空");
return; 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();
} }
List<BatchCreateNormalDirResp.DirInfo> 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(); BatchCreateNormalDirReq batchCreateNormalDirReq = new BatchCreateNormalDirReq();
// 2026-02-03 这里要挂在【需求附件】文件夹下了 // 2026-02-03 这里要挂在【需求附件】文件夹下了
batchCreateNormalDirReq.setParentId(demandAttachFileMetadataInfoId); batchCreateNormalDirReq.setParentId(demandAttachFileMetadataInfoId);
@@ -820,7 +820,6 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
} }
} }
// 批量更新权限 // 批量更新权限
if (CollectionUtils.isNotEmpty(updatePermissionList)) { if (CollectionUtils.isNotEmpty(updatePermissionList)) {
List<BatchUpdatePermissionReq.FilePermissionItem> filePermissions = new ArrayList<>(); List<BatchUpdatePermissionReq.FilePermissionItem> filePermissions = new ArrayList<>();
@@ -2673,7 +2672,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
String curDateStr; String curDateStr;
Date createTime = lyricVProjectToDM.getCreateTime(); Date createTime = lyricVProjectToDM.getCreateTime();
if (ObjectUtils.isNotEmpty(createTime)) { 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 { }else {
curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); curDateStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
} }

View File

@@ -177,6 +177,10 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
private static final String NODE_TYPE_PHASE = NodeTypeEnum.PHASE.getValue(); private static final String NODE_TYPE_PHASE = NodeTypeEnum.PHASE.getValue();
private static final List<TaskNodeTag> EMPTY_TAG_LIST = Collections.emptyList(); private static final List<TaskNodeTag> EMPTY_TAG_LIST = Collections.emptyList();
// 通过标识判断是否走查询现场视图逻辑0不查询1查询
@Value("${lyricFlag:1}")
private int lyricFlag;
@Autowired @Autowired
private CacheManager cacheManager; private CacheManager cacheManager;
@@ -602,8 +606,10 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
summaryWorkspaceNode(projectNodePo,projectNodePo.getChildren()); summaryWorkspaceNode(projectNodePo,projectNodePo.getChildren());
} }
// 对工位进行排序,-M工位顺序排第一个 // 对工位进行排序,-M工位顺序排第一个
for (ProjectNodePo projectNodePo : realTopProjectNodeList) { if (lyricFlag == 1) {
sortWorkspaceNode(projectNodePo); for (ProjectNodePo projectNodePo : realTopProjectNodeList) {
sortWorkspaceNode(projectNodePo);
}
} }
return SdmResponse.success(realTopProjectNodeList.stream().flatMap(item -> item.getChildren().stream().filter(Objects::nonNull)).toList()); 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; return;
} }
// 对工位进行排序,-M工位顺序排第一个 // 对工位进行排序,-M工位顺序排第一个
workspaceNodeList = workspaceNodeList.stream().sorted(Comparator.comparing(NodeAllBase::getNodeCode)).collect(Collectors.toList()); workspaceNodeList.sort((o1, o2) -> {
// 利元亨定制 String[] workspaceNode1 = o1.getNodeCode().split("-");
// workspaceNodeList.sort((o1, o2) -> { String[] workspaceNode2 = o2.getNodeCode().split("-");
// 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());
// } 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) { int prefix1 = Integer.parseInt(workspaceNode1[0]);
// return Integer.compare(prefix1, prefix2); 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); 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); NodeAllBase specialWorkspaceNode = workspaceNodeList.stream().filter(workspaceNode -> workspaceNode.getNodeCode().contains("-M")).findFirst().orElse(null);
log.info("specialWorkspaceNode为{}",specialWorkspaceNode); log.info("specialWorkspaceNode为{}",specialWorkspaceNode);
if (specialWorkspaceNode != null) { if (specialWorkspaceNode != null) {
moveTargetToFirst(workspaceNodeList,specialWorkspaceNode.getUuid()); moveTargetToFirst(workspaceNodeList,specialWorkspaceNode.getUuid());
} }
projectNodePo.setChildren(workspaceNodeList);
} }
public static void moveTargetToFirst(List<NodeAllBase> nodeList, String targetId) { public static void moveTargetToFirst(List<NodeAllBase> nodeList, String targetId) {

View File

@@ -68,6 +68,7 @@ import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mock.web.MockMultipartFile; import org.springframework.mock.web.MockMultipartFile;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -171,6 +172,10 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
// 临时文件存储目录 // 临时文件存储目录
private final String tempFileDir = System.getProperty("user.dir") + "/csv_uploads/"; private final String tempFileDir = System.getProperty("user.dir") + "/csv_uploads/";
// 通过标识判断是否走查询现场视图逻辑0不查询1查询
@Value("${lyricFlag:1}")
private int lyricFlag;
private int getCurrentNodeDepth(NodeAllBase eachNode) { private int getCurrentNodeDepth(NodeAllBase eachNode) {
String tag1 = eachNode.getTag1(); String tag1 = eachNode.getTag1();
String tag2 = eachNode.getTag2(); String tag2 = eachNode.getTag2();
@@ -602,8 +607,10 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
generateTaskTree(projectNodePo, taskTreeNodeList, taskTreeTaskList, taskTreeTagMap, firstNodeTag, lastNodeTag, taskTreeNodeTypeTagMap, taskTreeRunList); generateTaskTree(projectNodePo, taskTreeNodeList, taskTreeTaskList, taskTreeTagMap, firstNodeTag, lastNodeTag, taskTreeNodeTypeTagMap, taskTreeRunList);
} }
// 对工位进行排序,-M工位顺序排第一个 // 对工位进行排序,-M工位顺序排第一个
for (ProjectNodePo projectNodePo : realTopProjectNodeList) { if (lyricFlag == 1) {
sortWorkspaceNode(projectNodePo); for (ProjectNodePo projectNodePo : realTopProjectNodeList) {
sortWorkspaceNode(projectNodePo);
}
} }
return SdmResponse.success(realTopProjectNodeList.stream().flatMap(item -> item.getChildren().stream().filter(Objects::nonNull)).toList()); return SdmResponse.success(realTopProjectNodeList.stream().flatMap(item -> item.getChildren().stream().filter(Objects::nonNull)).toList());
} }
@@ -614,25 +621,6 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
return; return;
} }
List<NodeAllBase> workspaceNodeList = children.stream().filter(node -> NodeTypeEnum.WORKSPACE.getValue().equals(node.getNodeType())).collect(Collectors.toList()); List<NodeAllBase> 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)) { if (CollectionUtils.isEmpty(workspaceNodeList)) {
for (NodeAllBase child : children) { for (NodeAllBase child : children) {
if (child instanceof ProjectNodePo) { if (child instanceof ProjectNodePo) {
@@ -666,12 +654,35 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
} }
} }
// 对工位进行排序,-M工位顺序排第一个 // 对工位进行排序,-M工位顺序排第一个
workspaceNodeList = workspaceNodeList.stream().sorted(Comparator.comparing(NodeAllBase::getNodeCode)).collect(Collectors.toList()); workspaceNodeList.sort((o1, o2) -> {
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); NodeAllBase specialWorkspaceNode = workspaceNodeList.stream().filter(workspaceNode -> workspaceNode.getNodeCode().contains("-M")).findFirst().orElse(null);
log.info("specialWorkspaceNode为{}",specialWorkspaceNode); log.info("specialWorkspaceNode为{}",specialWorkspaceNode);
if (specialWorkspaceNode != null) { if (specialWorkspaceNode != null) {
moveTargetToFirst(workspaceNodeList,specialWorkspaceNode.getUuid()); moveTargetToFirst(workspaceNodeList,specialWorkspaceNode.getUuid());
} }
projectNodePo.setChildren(workspaceNodeList);
} }
public static void moveTargetToFirst(List<NodeAllBase> nodeList, String targetId) { public static void moveTargetToFirst(List<NodeAllBase> nodeList, String targetId) {