fix[project]: 同步待办兼容项目下无机台工位的情况

This commit is contained in:
2026-03-20 06:22:21 +08:00
parent 4bceba3b4e
commit 49316c076e
2 changed files with 143 additions and 151 deletions

View File

@@ -412,7 +412,6 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
SdmResponse<PageDataResp<List<CIDUserResp>>> pageDataRespSdmResponse = sysUserFeignClient.listUser(userListReq);
if (pageDataRespSdmResponse.isSuccess() && pageDataRespSdmResponse.getData().getData() != null) {
List<CIDUserResp> userList = pageDataRespSdmResponse.getData().getData();
log.info("userList为{}",userList);
usernameToUserIdMap = userList.stream().collect(Collectors.toMap(CIDUserResp::getUsername, CIDUserResp::getUserId));
}
@@ -438,7 +437,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
// 2. 构建权限更新参数
buildPermissionReqList(demandUuid, userId, todo, updatePermissionList, usernameToUserIdMap);
// 3. 构建需求文件夹节点
demandDirNodeList.add(buildDemandDirNode(demandUuid, projectNode,demandReq));
demandDirNodeList.add(buildDemandDirNode(demandUuid, projectNode, demandReq));
// 4. 异步保存需求数据
asyncSaveDemandData(demandReq, memberList, tenantId, userId, usernameToUserIdMap, demandExtraList);
@@ -593,7 +592,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
}
} else {
// 阶段不存在,同步阶段机台工位
syncTodoPhase(todo.getCreateTime(), Long.valueOf(projectNode.getProjectId()), todo.getProjectStage(), projectNode.getUuid(), req,todo.getStationNum(), projectNode);
syncTodoPhase(todo.getCreateTime(), Long.valueOf(projectNode.getProjectId()), todo.getProjectStage(), projectNode.getUuid(), req, todo.getStationNum(), projectNode);
}
}
@@ -636,7 +635,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
if (MemberTypeEnum.PRINCIPAL.getCode().equals(type) || MemberTypeEnum.ATTENTION.getCode().equals(type) ||
MemberTypeEnum.EXECUTOR.getCode().equals(type)) {
userIdStr = memberStr.split(",");
}else {
} else {
userIdStr = memberStr.split("-");
}
if (ObjectUtils.isEmpty(userIdStr)) {
@@ -693,7 +692,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
addPermissionReq(usernameToUserIdMap.get(fUserId), demandUuid, permissionList, MemberTypeEnum.EXECUTOR.getCode());
}
}
log.info("待办:{}permissionList为{}",todo.getTodoId(),permissionList);
log.info("待办:{}permissionList为{}", todo.getTodoId(), permissionList);
}
/**
@@ -1632,10 +1631,10 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
if (pushType == 1) {
uploadFileReq.setComponentInstId(LyricParamConstants.FINITE_ELEMENT_COMPONENT_INST_ID);
uploadFileReq.setColumnName(LyricParamConstants.FINITE_ELEMENT_COLUMN_NAME);
}else if (pushType == 2) {
} else if (pushType == 2) {
uploadFileReq.setComponentInstId(LyricParamConstants.ROBOT_COMPONENT_INST_ID);
uploadFileReq.setColumnName(LyricParamConstants.ROBOT_COLUMN_NAME);
}else {
} else {
uploadFileReq.setComponentInstId(LyricParamConstants.TOLERANCE_COMPONENT_INST_ID);
uploadFileReq.setColumnName(LyricParamConstants.TOLERANCE_COLUMN_NAME);
}
@@ -2520,7 +2519,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
usernameToUserIdMap = userList.stream().collect(Collectors.toMap(CIDUserResp::getUsername, CIDUserResp::getUserId));
}
if (CollectionUtils.isNotEmpty(noRelatedProjectVTodoEmulationInfoDMList)) {
List<SpdmProjectNodeEditReq> spdmProjectNodeEditReqList = httpSyncHandleNoRelatedProjectTodo(noRelatedProjectVTodoEmulationInfoDMList, tenantId, userId, jobNumber, userName,usernameToUserIdMap);
List<SpdmProjectNodeEditReq> spdmProjectNodeEditReqList = httpSyncHandleNoRelatedProjectTodo(noRelatedProjectVTodoEmulationInfoDMList, tenantId, userId, jobNumber, userName, usernameToUserIdMap);
log.info("httpSyncHandleNoRelatedProjectTodo响应值为{}", spdmProjectNodeEditReqList);
for (SpdmProjectNodeEditReq spdmProjectNodeEditReq : spdmProjectNodeEditReqList) {
SimulationNode simulationNode = new SimulationNode();
@@ -2573,9 +2572,9 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
}
private List<SpdmProjectNodeEditReq> httpSyncHandleNoRelatedProjectTodo(List<LyricVTodoEmulationInfoDM> noRelatedProjectVTodoEmulationInfoDMList, Long tenantId, Long userId, String jobNumber, String userName,Map<String, Long> usernameToUserIdMap) {
private List<SpdmProjectNodeEditReq> httpSyncHandleNoRelatedProjectTodo(List<LyricVTodoEmulationInfoDM> noRelatedProjectVTodoEmulationInfoDMList, Long tenantId, Long userId, String jobNumber, String userName, Map<String, Long> usernameToUserIdMap) {
CompletableFuture<List<SpdmProjectNodeEditReq>> syncHandleNoRelatedProjectTodoFeature = CompletableFuture.supplyAsync(() ->
handleNoRelatedProjectTodo(noRelatedProjectVTodoEmulationInfoDMList, tenantId, userId, jobNumber, userName,usernameToUserIdMap));
handleNoRelatedProjectTodo(noRelatedProjectVTodoEmulationInfoDMList, tenantId, userId, jobNumber, userName, usernameToUserIdMap));
try {
List<SpdmProjectNodeEditReq> spdmProjectNodeEditReqList = syncHandleNoRelatedProjectTodoFeature.get(syncProjectDataWaitSeconds, TimeUnit.SECONDS);
return spdmProjectNodeEditReqList;
@@ -2594,7 +2593,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
}
}
private List<SpdmProjectNodeEditReq> handleNoRelatedProjectTodo(List<LyricVTodoEmulationInfoDM> noRelatedProjectVTodoEmulationInfoDMList, Long tenantId, Long userId, String jobNumber, String userName,Map<String, Long> usernameToUserIdMap) {
private List<SpdmProjectNodeEditReq> handleNoRelatedProjectTodo(List<LyricVTodoEmulationInfoDM> noRelatedProjectVTodoEmulationInfoDMList, Long tenantId, Long userId, String jobNumber, String userName, Map<String, Long> usernameToUserIdMap) {
// 尝试获取锁(立即返回,不等待)
if (!syncTodoInfoProjectLock.tryLock()) {
return new ArrayList<>();
@@ -2631,12 +2630,12 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
List<SpdmNodeRelateMemberReq> allNodeManagerList = new ArrayList<>();
List<LyricVPdtToDM> eachPdtToDMList;
for (LyricVProjectToDM lyricVProjectToDM : lyricVProjectToDMList) {
SpdmProjectNodeEditReq spdmProjectNodeEditReq = buildProjectForTodoInfo(lyricVProjectToDM, tenantId, userId,pdtMap,usernameToUserIdMap);
SpdmProjectNodeEditReq spdmProjectNodeEditReq = buildProjectForTodoInfo(lyricVProjectToDM, tenantId, userId, pdtMap, usernameToUserIdMap);
if (spdmProjectNodeEditReq != null) {
eachPdtToDMList = pdtMap.get(spdmProjectNodeEditReq.getNodeCode());
spdmProjectNodeEditReqList.add(spdmProjectNodeEditReq);
if (CollectionUtils.isEmpty(eachPdtToDMList)) {
log.info("项目:{},没有仿真代表",spdmProjectNodeEditReq.getNodeName());
log.info("项目:{},没有仿真代表", spdmProjectNodeEditReq.getNodeName());
continue;
}
for (LyricVPdtToDM lyricVPdtToDM : eachPdtToDMList) {
@@ -2713,7 +2712,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
/**
* 通用方法构建单个DirNodeInfo
*/
private DirNodeInfo buildDirNodeInfo(String uuid, String parentUuid, String nodeType, String dirName,TagReq tagReq) {
private DirNodeInfo buildDirNodeInfo(String uuid, String parentUuid, String nodeType, String dirName, TagReq tagReq) {
DirNodeInfo dirNodeInfo = new DirNodeInfo();
dirNodeInfo.setUuId(uuid);
dirNodeInfo.setParentUuId(parentUuid);
@@ -2733,8 +2732,8 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
List<DirNodeInfo> dirNodeInfoList = new ArrayList<>();
for (SpdmProjectNodeEditReq node : nodeList) {
TagReq tagReq = new TagReq();
BeanUtils.copyProperties(node,tagReq);
dirNodeInfoList.add(buildDirNodeInfo(node.getUuid(), parentUuid, nodeType, node.getNodeName(),tagReq));
BeanUtils.copyProperties(node, tagReq);
dirNodeInfoList.add(buildDirNodeInfo(node.getUuid(), parentUuid, nodeType, node.getNodeName(), tagReq));
}
return dirNodeInfoList;
}
@@ -2747,10 +2746,10 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
List<SpdmProjectNodeEditReq> phaseNodes = filterResult.getAddPhaseNodeList();
BatchCreateDirItem projectCreateDirItem = new BatchCreateDirItem();
TagReq tagReq = new TagReq();
BeanUtils.copyProperties(projectNode,tagReq);
BeanUtils.copyProperties(projectNode, tagReq);
DirNodeInfo projectDirNodeInfo = buildDirNodeInfo(
projectNode.getUuid(), null,
NodeTypeEnum.PROJECT.getValue(), projectNode.getNodeName(),tagReq
NodeTypeEnum.PROJECT.getValue(), projectNode.getNodeName(), tagReq
);
projectCreateDirItem.setParentDirNodeInfo(projectDirNodeInfo);
// 构建项目下的阶段子节点
@@ -2767,10 +2766,10 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
private BatchCreateDirItem buildPhaseDirItem(SpdmProjectNodeEditReq phaseNode, String projectUuid, List<SpdmProjectNodeEditReq> machineNodes) {
BatchCreateDirItem phaseCreateDirItem = new BatchCreateDirItem();
TagReq tagReq = new TagReq();
BeanUtils.copyProperties(phaseNode,tagReq);
BeanUtils.copyProperties(phaseNode, tagReq);
DirNodeInfo phaseDirNodeInfo = buildDirNodeInfo(
phaseNode.getUuid(), projectUuid,
NodeTypeEnum.PHASE.getValue(), phaseNode.getNodeName(),tagReq
NodeTypeEnum.PHASE.getValue(), phaseNode.getNodeName(), tagReq
);
phaseCreateDirItem.setParentDirNodeInfo(phaseDirNodeInfo);
// 若无机台节点,子节点为空
@@ -2794,10 +2793,10 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
List<SpdmProjectNodeEditReq> workspaceNodes) {
BatchCreateDirItem machineCreateDirItem = new BatchCreateDirItem();
TagReq tagReq = new TagReq();
BeanUtils.copyProperties(machineNode,tagReq);
BeanUtils.copyProperties(machineNode, tagReq);
DirNodeInfo machineDirNodeInfo = buildDirNodeInfo(
machineNode.getUuid(), phaseUuid,
NodeTypeEnum.MACHINE.getValue(), machineNode.getNodeName(),tagReq
NodeTypeEnum.MACHINE.getValue(), machineNode.getNodeName(), tagReq
);
machineCreateDirItem.setParentDirNodeInfo(machineDirNodeInfo);
@@ -2825,10 +2824,10 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
for (SpdmProjectNodeEditReq workspaceNode : currentWorkspaceNodes) {
BatchCreateDirItem workspaceCreateDirItem = new BatchCreateDirItem();
TagReq tagReq = new TagReq();
BeanUtils.copyProperties(workspaceNode,tagReq);
BeanUtils.copyProperties(workspaceNode, tagReq);
DirNodeInfo workspaceDirNodeInfo = buildDirNodeInfo(
workspaceNode.getUuid(), machineNode.getUuid(),
NodeTypeEnum.WORKSPACE.getValue(), workspaceNode.getNodeName(),tagReq
NodeTypeEnum.WORKSPACE.getValue(), workspaceNode.getNodeName(), tagReq
);
workspaceCreateDirItem.setParentDirNodeInfo(workspaceDirNodeInfo);
workspaceCreateDirItem.setChildDirNodeInfos(new ArrayList<>());
@@ -2950,7 +2949,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
log.info("创建节点时,调用批量创建文件夹的返回值为:{}", response);
}
private SpdmProjectNodeEditReq buildProjectForTodoInfo(LyricVProjectToDM lyricVProjectToDM, Long tenantId, Long jobNumber,Map<String, List<LyricVPdtToDM>> pdtMap,Map<String, Long> usernameToUserIdMap) {
private SpdmProjectNodeEditReq buildProjectForTodoInfo(LyricVProjectToDM lyricVProjectToDM, Long tenantId, Long jobNumber, Map<String, List<LyricVPdtToDM>> pdtMap, Map<String, Long> usernameToUserIdMap) {
String curDateStr;
Date createTime = lyricVProjectToDM.getCreateTime();
if (ObjectUtils.isNotEmpty(createTime)) {
@@ -2985,77 +2984,64 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
log.warn("查询项目机台工位信息的视图时发生异常可能是测试环境预期异常项目id{},异常信息:{}",
spdmProjectNodeEditReq.getProjectId(), ex.getMessage());
}
LyricVProjectToDM lyricVProject = lyricVProjectToDM;
String currentPhase = lyricVProject.getStage();
SpdmProjectNodeEditReq phaseNode = new SpdmProjectNodeEditReq();
phaseNode.setUuid(RandomUtil.generateString(32));
phaseNode.setNodeCode(currentPhase);
phaseNode.setNodeName(currentPhase);
phaseNode.setNodeType(NodeTypeEnum.PHASE.getValue());
phaseNode.setCreateTime(curDateStr);
phaseNode.setCreator(jobNumber);
phaseNode.setTenantId(tenantId);
phaseNode.setProjectSource(SYNC_PROJECT_SOURCE);
phaseNode.setPid(spdmProjectNodeEditReq.getUuid());
addNodeList.add(phaseNode);
if (CollectionUtils.isNotEmpty(projectStationList)) {
// 同步EP中的节点、机台、工位到DM
// 查询当前阶段
LyricVProjectToDM lyricVProject = null;
try {
lyricVProject = lyricVProjectToDmService.lambdaQuery()
.eq(LyricVProjectToDM::getProjectNum, spdmProjectNodeEditReq.getNodeCode())
.one();
} catch (MyBatisSystemException ex) {
// 查询发生异常,记录异常日志(可能是测试环境预期异常)
log.warn("查询当前阶段时发生异常(可能是测试环境预期异常),项目编码:{},异常信息:{}",
spdmProjectNodeEditReq.getProjectId(), ex.getMessage());
}
if (ObjectUtils.isNotEmpty(lyricVProject)) {
// 当前阶段
String currentPhase = lyricVProject.getStage();
SpdmProjectNodeEditReq phaseNode = new SpdmProjectNodeEditReq();
phaseNode.setUuid(RandomUtil.generateString(32));
phaseNode.setNodeCode(currentPhase);
phaseNode.setNodeName(currentPhase);
phaseNode.setNodeType(NodeTypeEnum.PHASE.getValue());
phaseNode.setCreateTime(curDateStr);
phaseNode.setCreator(jobNumber);
phaseNode.setTenantId(tenantId);
phaseNode.setProjectSource(SYNC_PROJECT_SOURCE);
phaseNode.setPid(spdmProjectNodeEditReq.getUuid());
addNodeList.add(phaseNode);
// 机台、工位
Map<String, List<LyricVProjectStationToDM>> machineMap = projectStationList.stream().collect(Collectors.groupingBy(LyricVProjectStationToDM::getMachineNumber));
for (Map.Entry<String, List<LyricVProjectStationToDM>> machineEntry : machineMap.entrySet()) {
String machineNumber = machineEntry.getKey();
List<LyricVProjectStationToDM> projectStationByMachineNumberList = machineEntry.getValue();
SpdmProjectNodeEditReq machineNode = new SpdmProjectNodeEditReq();
machineNode.setUuid(RandomUtil.generateString(32));
machineNode.setNodeCode(machineNumber);
machineNode.setNodeName(projectStationByMachineNumberList.get(0).getMachineName());
machineNode.setNodeType(NodeTypeEnum.MACHINE.getValue());
machineNode.setCreateTime(curDateStr);
machineNode.setCreator(jobNumber);
machineNode.setTenantId(tenantId);
machineNode.setProjectSource(SYNC_PROJECT_SOURCE);
machineNode.setPid(phaseNode.getUuid());
addNodeList.add(machineNode);
// 从EP拉取机台时创建一个工位一个机台建一个工位用机台的编号加上M例如01机台工位名称和工位号都叫 01-M
SpdmProjectNodeEditReq fixedWorkspaceNode = new SpdmProjectNodeEditReq();
fixedWorkspaceNode.setUuid(RandomUtil.generateString(32));
fixedWorkspaceNode.setNodeCode(machineNumber + "-M");
fixedWorkspaceNode.setNodeName(machineNumber + "-M");
fixedWorkspaceNode.setNodeType(NodeTypeEnum.WORKSPACE.getValue());
fixedWorkspaceNode.setCreateTime(curDateStr);
fixedWorkspaceNode.setCreator(jobNumber);
fixedWorkspaceNode.setTenantId(tenantId);
fixedWorkspaceNode.setProjectSource(SYNC_PROJECT_SOURCE);
fixedWorkspaceNode.setPid(machineNode.getUuid());
addNodeList.add(fixedWorkspaceNode);
for (LyricVProjectStationToDM lyricVProjectStationToDM : projectStationByMachineNumberList) {
SpdmProjectNodeEditReq workspaceNode = new SpdmProjectNodeEditReq();
workspaceNode.setUuid(RandomUtil.generateString(32));
workspaceNode.setNodeCode(lyricVProjectStationToDM.getStationNum());
workspaceNode.setNodeName(lyricVProjectStationToDM.getStationName());
workspaceNode.setNodeType(NodeTypeEnum.WORKSPACE.getValue());
workspaceNode.setCreateTime(curDateStr);
workspaceNode.setCreator(jobNumber);
workspaceNode.setTenantId(tenantId);
workspaceNode.setProjectSource(SYNC_PROJECT_SOURCE);
workspaceNode.setPid(machineNode.getUuid());
addNodeList.add(workspaceNode);
}
// 机台、工位
Map<String, List<LyricVProjectStationToDM>> machineMap = projectStationList.stream().collect(Collectors.groupingBy(LyricVProjectStationToDM::getMachineNumber));
for (Map.Entry<String, List<LyricVProjectStationToDM>> machineEntry : machineMap.entrySet()) {
String machineNumber = machineEntry.getKey();
List<LyricVProjectStationToDM> projectStationByMachineNumberList = machineEntry.getValue();
SpdmProjectNodeEditReq machineNode = new SpdmProjectNodeEditReq();
machineNode.setUuid(RandomUtil.generateString(32));
machineNode.setNodeCode(machineNumber);
machineNode.setNodeName(projectStationByMachineNumberList.get(0).getMachineName());
machineNode.setNodeType(NodeTypeEnum.MACHINE.getValue());
machineNode.setCreateTime(curDateStr);
machineNode.setCreator(jobNumber);
machineNode.setTenantId(tenantId);
machineNode.setProjectSource(SYNC_PROJECT_SOURCE);
machineNode.setPid(phaseNode.getUuid());
addNodeList.add(machineNode);
// 从EP拉取机台时创建一个工位一个机台建一个工位用机台的编号加上M例如01机台工位名称和工位号都叫 01-M
SpdmProjectNodeEditReq fixedWorkspaceNode = new SpdmProjectNodeEditReq();
fixedWorkspaceNode.setUuid(RandomUtil.generateString(32));
fixedWorkspaceNode.setNodeCode(machineNumber + "-M");
fixedWorkspaceNode.setNodeName(machineNumber + "-M");
fixedWorkspaceNode.setNodeType(NodeTypeEnum.WORKSPACE.getValue());
fixedWorkspaceNode.setCreateTime(curDateStr);
fixedWorkspaceNode.setCreator(jobNumber);
fixedWorkspaceNode.setTenantId(tenantId);
fixedWorkspaceNode.setProjectSource(SYNC_PROJECT_SOURCE);
fixedWorkspaceNode.setPid(machineNode.getUuid());
addNodeList.add(fixedWorkspaceNode);
for (LyricVProjectStationToDM lyricVProjectStationToDM : projectStationByMachineNumberList) {
SpdmProjectNodeEditReq workspaceNode = new SpdmProjectNodeEditReq();
workspaceNode.setUuid(RandomUtil.generateString(32));
workspaceNode.setNodeCode(lyricVProjectStationToDM.getStationNum());
workspaceNode.setNodeName(lyricVProjectStationToDM.getStationName());
workspaceNode.setNodeType(NodeTypeEnum.WORKSPACE.getValue());
workspaceNode.setCreateTime(curDateStr);
workspaceNode.setCreator(jobNumber);
workspaceNode.setTenantId(tenantId);
workspaceNode.setProjectSource(SYNC_PROJECT_SOURCE);
workspaceNode.setPid(machineNode.getUuid());
addNodeList.add(workspaceNode);
}
}
}
List<TaskNodeTag> tagMap = new ArrayList<>();
@@ -3499,7 +3485,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
return resultList;
}
private void syncTodoPhase(String curDateStr, Long projectId, String currentPhase, String projectNodeId, SpdmAddDemandReq req,String stationNum,SimulationNode projectNode) {
private void syncTodoPhase(String curDateStr, Long projectId, String currentPhase, String projectNodeId, SpdmAddDemandReq req, String stationNum, SimulationNode projectNode) {
Long tenantId = req.getTenantId();
Long jobNumber = req.getCreator();
List<SpdmProjectNodeEditReq> currentNodeList;
@@ -3516,21 +3502,21 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
log.warn("查询项目机台工位信息的视图时发生异常可能是测试环境预期异常项目id{},异常信息:{}",
projectId, ex.getMessage());
}
// 同步EP中的节点、机台、工位到DM
SpdmProjectNodeEditReq phaseNode = new SpdmProjectNodeEditReq();
phaseNode.setUuid(RandomUtil.generateString(32));
phaseNode.setTag1(projectNodeId);
phaseNode.setNodeCode(currentPhase);
phaseNode.setNodeName(currentPhase);
phaseNode.setNodeType(NodeTypeEnum.PHASE.getValue());
phaseNode.setCreateTime(curDateStr);
phaseNode.setCreator(jobNumber);
phaseNode.setTenantId(tenantId);
phaseNode.setProjectSource(SYNC_PROJECT_SOURCE);
phaseNode.setPid(projectNodeId);
addNodeList.add(phaseNode);
req.setPhaseId(phaseNode.getUuid());
if (CollectionUtils.isNotEmpty(projectStationList)) {
// 同步EP中的节点、机台、工位到DM
SpdmProjectNodeEditReq phaseNode = new SpdmProjectNodeEditReq();
phaseNode.setUuid(RandomUtil.generateString(32));
phaseNode.setTag1(projectNodeId);
phaseNode.setNodeCode(currentPhase);
phaseNode.setNodeName(currentPhase);
phaseNode.setNodeType(NodeTypeEnum.PHASE.getValue());
phaseNode.setCreateTime(curDateStr);
phaseNode.setCreator(jobNumber);
phaseNode.setTenantId(tenantId);
phaseNode.setProjectSource(SYNC_PROJECT_SOURCE);
phaseNode.setPid(projectNodeId);
addNodeList.add(phaseNode);
req.setPhaseId(phaseNode.getUuid());
// 机台、工位
Map<String, List<LyricVProjectStationToDM>> machineMap = projectStationList.stream().collect(Collectors.groupingBy(LyricVProjectStationToDM::getMachineNumber));
for (Map.Entry<String, List<LyricVProjectStationToDM>> machineEntry : machineMap.entrySet()) {
@@ -3655,23 +3641,26 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
}
}
if (nodeMapper.addNodeBatch(addNodeList) <= 0) {
return;
if (CollectionUtils.isNotEmpty(addNodeList)) {
if (nodeMapper.addNodeBatch(addNodeList) <= 0) {
return;
}
// 批量创建文件夹
SpdmProjectNodeEditReq spdmProjectNodeEditReq = new SpdmProjectNodeEditReq();
BeanUtils.copyProperties(projectNode, spdmProjectNodeEditReq);
NodeServiceImpl.NodeTypeFilterResult filterResult = new NodeServiceImpl.NodeTypeFilterResult(spdmProjectNodeEditReq
, addNodeList.stream().filter(node -> NodeTypeEnum.PHASE.getValue().equals(node.getNodeType())).collect(Collectors.toList())
, addNodeList.stream().filter(node -> NodeTypeEnum.MACHINE.getValue().equals(node.getNodeType())).collect(Collectors.toList())
, addNodeList.stream().filter(node -> NodeTypeEnum.WORKSPACE.getValue().equals(node.getNodeType())).collect(Collectors.toList()));
BatchCreateDirReq batchCreateDirReq = buildBatchCreateDirReq(filterResult);
callBatchCreateDirApi(batchCreateDirReq);
}
// 批量创建文件夹
SpdmProjectNodeEditReq spdmProjectNodeEditReq = new SpdmProjectNodeEditReq();
BeanUtils.copyProperties(projectNode, spdmProjectNodeEditReq);
NodeServiceImpl.NodeTypeFilterResult filterResult = new NodeServiceImpl.NodeTypeFilterResult(spdmProjectNodeEditReq
, addNodeList.stream().filter(node -> NodeTypeEnum.PHASE.getValue().equals(node.getNodeType())).collect(Collectors.toList())
, addNodeList.stream().filter(node -> NodeTypeEnum.MACHINE.getValue().equals(node.getNodeType())).collect(Collectors.toList())
, addNodeList.stream().filter(node -> NodeTypeEnum.WORKSPACE.getValue().equals(node.getNodeType())).collect(Collectors.toList()));
BatchCreateDirReq batchCreateDirReq = buildBatchCreateDirReq(filterResult);
callBatchCreateDirApi(batchCreateDirReq);
}
private void syncTodoPhaseForMes(String curDateStr, Long projectId, String currentPhase, String projectNodeId, SpdmAddDemandReq req, String machineNum, String stationNum,SimulationNode projectNode) {
private void syncTodoPhaseForMes(String curDateStr, Long projectId, String currentPhase, String projectNodeId, SpdmAddDemandReq req, String machineNum, String stationNum, SimulationNode projectNode) {
Long tenantId = req.getTenantId();
Long jobNumber = req.getCreator();
List<SpdmProjectNodeEditReq> currentNodeList;
@@ -3688,22 +3677,22 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
log.warn("查询项目机台工位信息的视图时发生异常可能是测试环境预期异常项目id{},异常信息:{}",
projectId, ex.getMessage());
}
// 同步EP中的节点、机台、工位到DM
SpdmProjectNodeEditReq phaseNode = new SpdmProjectNodeEditReq();
phaseNode.setUuid(RandomUtil.generateString(32));
phaseNode.setTag1(projectNodeId);
phaseNode.setNodeCode(currentPhase);
phaseNode.setNodeName(currentPhase);
phaseNode.setNodeType(NodeTypeEnum.PHASE.getValue());
phaseNode.setCreateTime(curDateStr);
phaseNode.setCreator(jobNumber);
phaseNode.setTenantId(tenantId);
phaseNode.setProjectSource(SYNC_PROJECT_SOURCE);
phaseNode.setPid(projectNodeId);
addNodeList.add(phaseNode);
req.setProjectId(projectNodeId);
req.setPhaseId(phaseNode.getUuid());
if (CollectionUtils.isNotEmpty(projectStationList)) {
// 同步EP中的节点、机台、工位到DM
SpdmProjectNodeEditReq phaseNode = new SpdmProjectNodeEditReq();
phaseNode.setUuid(RandomUtil.generateString(32));
phaseNode.setTag1(projectNodeId);
phaseNode.setNodeCode(currentPhase);
phaseNode.setNodeName(currentPhase);
phaseNode.setNodeType(NodeTypeEnum.PHASE.getValue());
phaseNode.setCreateTime(curDateStr);
phaseNode.setCreator(jobNumber);
phaseNode.setTenantId(tenantId);
phaseNode.setProjectSource(SYNC_PROJECT_SOURCE);
phaseNode.setPid(projectNodeId);
addNodeList.add(phaseNode);
req.setProjectId(projectNodeId);
req.setPhaseId(phaseNode.getUuid());
// 机台、工位
Map<String, List<LyricVProjectStationToDM>> machineMap = projectStationList.stream().collect(Collectors.groupingBy(LyricVProjectStationToDM::getMachineNumber));
for (Map.Entry<String, List<LyricVProjectStationToDM>> machineEntry : machineMap.entrySet()) {
@@ -3830,19 +3819,21 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
}
}
if (nodeMapper.addNodeBatch(addNodeList) <= 0) {
return;
}
if (CollectionUtils.isNotEmpty(addNodeList)) {
if (nodeMapper.addNodeBatch(addNodeList) <= 0) {
return;
}
// 批量创建文件夹
SpdmProjectNodeEditReq spdmProjectNodeEditReq = new SpdmProjectNodeEditReq();
BeanUtils.copyProperties(projectNode, spdmProjectNodeEditReq);
NodeServiceImpl.NodeTypeFilterResult filterResult = new NodeServiceImpl.NodeTypeFilterResult(spdmProjectNodeEditReq
, addNodeList.stream().filter(node -> NodeTypeEnum.PHASE.getValue().equals(node.getNodeType())).collect(Collectors.toList())
, addNodeList.stream().filter(node -> NodeTypeEnum.MACHINE.getValue().equals(node.getNodeType())).collect(Collectors.toList())
, addNodeList.stream().filter(node -> NodeTypeEnum.WORKSPACE.getValue().equals(node.getNodeType())).collect(Collectors.toList()));
BatchCreateDirReq batchCreateDirReq = buildBatchCreateDirReq(filterResult);
callBatchCreateDirApi(batchCreateDirReq);
// 批量创建文件夹
SpdmProjectNodeEditReq spdmProjectNodeEditReq = new SpdmProjectNodeEditReq();
BeanUtils.copyProperties(projectNode, spdmProjectNodeEditReq);
NodeServiceImpl.NodeTypeFilterResult filterResult = new NodeServiceImpl.NodeTypeFilterResult(spdmProjectNodeEditReq
, addNodeList.stream().filter(node -> NodeTypeEnum.PHASE.getValue().equals(node.getNodeType())).collect(Collectors.toList())
, addNodeList.stream().filter(node -> NodeTypeEnum.MACHINE.getValue().equals(node.getNodeType())).collect(Collectors.toList())
, addNodeList.stream().filter(node -> NodeTypeEnum.WORKSPACE.getValue().equals(node.getNodeType())).collect(Collectors.toList()));
BatchCreateDirReq batchCreateDirReq = buildBatchCreateDirReq(filterResult);
callBatchCreateDirApi(batchCreateDirReq);
}
}
@@ -4149,7 +4140,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
req.setDeptName(deptName);
req.setCurrent(1);
req.setSize(1);
log.info("listDept params{}",req);
log.info("listDept params{}", req);
SdmResponse<PageDataResp<List<SysDeptUserResp>>> pageDataRespSdmResponse = sysDeptFeignClient.listDept(req);
SysDeptUserResp sysDeptUserResp = null;
if (pageDataRespSdmResponse.isSuccess()) {
@@ -4181,7 +4172,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
if (CollectionUtils.isNotEmpty(pdtToDMList)) {
pdtMap = pdtToDMList.stream().collect(Collectors.groupingBy(LyricVPdtToDM::getProjectNum));
}
SpdmProjectNodeEditReq spdmProjectNodeEditReq = buildProjectForTodoInfo(lyricVProjectToDM, tenantId, userId,pdtMap,usernameToUserIdMap);
SpdmProjectNodeEditReq spdmProjectNodeEditReq = buildProjectForTodoInfo(lyricVProjectToDM, tenantId, userId, pdtMap, usernameToUserIdMap);
if (spdmProjectNodeEditReq != null) {
spdmProjectNodeEditReqList.add(spdmProjectNodeEditReq);
if (CollectionUtils.isNotEmpty(pdtToDMList)) {

View File

@@ -365,9 +365,10 @@ public class SimulationTaskServiceImpl extends ServiceImpl<SimulationTaskMapper,
}
// 如果没有workspace信息抛出异常
log.error("任务缺少workspace信息任务UUID{}需求UUID{}tagMap{}",
task.getUuid(), task.getDemandId(), tagMap);
throw new RuntimeException("任务缺少workspace信息无法创建任务目录任务UUID" + task.getUuid());
// log.error("任务缺少workspace信息任务UUID{}需求UUID{}tagMap{}",
// task.getUuid(), task.getDemandId(), tagMap);
// throw new RuntimeException("任务缺少workspace信息无法创建任务目录任务UUID" + task.getUuid());
return "";
}
/**