Merge remote-tracking branch 'origin/main'

This commit is contained in:
2026-02-11 16:21:50 +08:00
7 changed files with 71 additions and 37 deletions

View File

@@ -9,6 +9,12 @@ import java.util.List;
@Data
public class HpcResouceInfo {
@Schema(description = "资源总数")
public int totalNodes;
@Schema(description = "资源可用数")
public int freeNodes;
@Schema(description = "资源总核数")
public int totalCores;

View File

@@ -147,8 +147,10 @@ public class IPbsHpcServiceImpl implements IPbsService {
int totalCores = 0;
int usedCores = 0;
int freeCoresSum = 0;
int totalNodes=0;
int freeNodes=0;
List<HpcNodeInfo> nodeInfos = new ArrayList<>(nodes.size());
totalNodes = nodes.size();
for (NodeList node : nodes) {
if (node == null) {
continue;
@@ -166,6 +168,7 @@ public class IPbsHpcServiceImpl implements IPbsService {
totalCores += max;
usedCores += run;
freeCoresSum += free;
freeNodes=freeNodes+1;
}
nodeInfos.add(info);
}
@@ -173,6 +176,8 @@ public class IPbsHpcServiceImpl implements IPbsService {
result.setUsedCores(usedCores);
result.setFreeCores(freeCoresSum);
result.setNodeList(nodeInfos);
result.setTotalNodes(totalNodes);
result.setFreeNodes(freeNodes);
return result;
}

View File

@@ -106,4 +106,8 @@ public interface SimulationNodeMapper extends BaseMapper<SimulationNode> {
List<SimulationNode> queryNodeCodeByTags(@Param("list")List<String> tag1List, @Param("tagKey")String tagKey,@Param("tagValue") String tagValue);
List<TaskNodePo> getTaskListByProjectNodeId(@Param("nodeId") String nodeId);
List<TaskNodePo> getTaskListByPhaseNodeId(@Param("nodeId") String nodeId);
}

View File

@@ -561,7 +561,7 @@ public class LyricInternalServiceImpl implements ILyricInternalService {
// 仿真执行人
addDemandMember(todo.getFollowBy(), MemberTypeEnum.EXECUTOR.getCode(), demandUuid, jobNumber, curDateStr, memberList);
// 3D负责人
// addDemandMember(todo.getThreeDimensionalPerformer(), MemberTypeEnum.THREED.getCode(), demandUuid, jobNumber, curDateStr, memberList);
addDemandMember(todo.getThreeDimensionalPerformer(), MemberTypeEnum.THREED.getCode(), demandUuid, jobNumber, curDateStr, memberList);
return memberList;
}

View File

@@ -134,6 +134,9 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
@Autowired
private ISimulationTaskExtraService simulationTaskExtraService;
@Autowired
private ISimulationTaskService taskService;
/**
* 扩展属性名称常量
*/
@@ -344,11 +347,21 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
// 删
List<String> deleteNodeIdList = req.getDeleteNodeIdList();
if (CollectionUtils.isNotEmpty(deleteNodeIdList)) {
// 删除项目下所有的任务
if (!deleteTask(deleteNodeIdList)) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return SdmResponse.failed("操作节点关联的任务失败,原因:删除节点关联的任务时失败!");
}
if (!deleteDemand(deleteNodeIdList)) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return SdmResponse.failed("操作节点关联的需求失败,原因:删除节点关联的需求时失败!");
}
// 手动回滚数据
if (!deleteNode(deleteNodeIdList)) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return SdmResponse.failed("操作节点失败,原因:删除节点时失败!");
}
// 删除项目下所有的需求
if (!deleteDemand(deleteNodeIdList)) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -364,12 +377,44 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
return SdmResponse.success();
}
private boolean deleteTask(List<String> deleteNodeIdList) {
String nodeId = deleteNodeIdList.get(0);
// 查询节点类型
SpdmNodeVo node = nodeMapper.getNodeById(nodeId);
if (!NodeTypeEnum.PROJECT.getValue().equals(node.getNodeType()) && !NodeTypeEnum.PHASE.getValue().equals(node.getNodeType())) {
log.info("只删除项目或阶段类型下的任务");
return true;
}
// 删除当前节点及子节点下的分析项相关信息
List<SimulationTask> taskNodePoList;
if (NodeTypeEnum.PROJECT.getValue().equals(node.getNodeType())) {
taskNodePoList = taskService.lambdaQuery().eq(SimulationTask::getTag1,nodeId).list();
}else {
taskNodePoList = taskService.lambdaQuery().eq(SimulationTask::getTag2,nodeId).list();
}
if (CollectionUtils.isNotEmpty(taskNodePoList)) {
nodeMapper.deleteTaskBatch(deleteNodeIdList);
List<String> taskIdList = taskNodePoList.stream().map(SimulationTask::getUuid).toList();
nodeMapper.deleteTaskExtraBatch(taskIdList);
nodeMapper.deleteTaskMemberBatch(taskIdList);
// 删除当前节点及子节点下的指标相关信息
List<PerformanceNodePo> performanceNodePoList = nodeMapper.getPerformanceListByNodeIdList(taskIdList);
if (CollectionUtils.isEmpty(performanceNodePoList)) {
return true;
}
List<Long> performanceIdList = performanceNodePoList.stream().map(PerformanceNodePo::getId).toList();
nodeMapper.deletePerformanceBatch(performanceIdList);
nodeMapper.deletePerformanceExtraBatch(performanceNodePoList.stream().map(PerformanceNodePo::getUuid).toList());
}
return true;
}
private boolean deleteDemand(List<String> deleteNodeIdList) {
try {
String nodeId = deleteNodeIdList.get(0);
// 查询是否是项目类型节点,只有项目类型节点才去删除需求
SpdmNodeVo node = nodeMapper.getNodeById(nodeId);
if (ObjectUtils.isEmpty(node) || NodeTypeEnum.PROJECT.getValue().equals(node.getNodeType())) {
if (ObjectUtils.isEmpty(node) || !NodeTypeEnum.PROJECT.getValue().equals(node.getNodeType())) {
log.info("node为空或不为项目类型不删除需求node{}",node);
return true;
}
@@ -416,22 +461,6 @@ public class NodeServiceImpl extends ServiceImpl<SimulationNodeMapper, Simulatio
nodeMapper.deleteNodeExtraBatch(deleteNodeIdList);
// 删除当前节点及子节点的成员信息
nodeMapper.deleteNodeMemberBatch(deleteNodeIdList);
// 删除当前节点及子节点下的分析项相关信息
List<TaskNodePo> taskNodePoList = nodeMapper.getTaskListByNodeIdList(deleteNodeIdList);
if (CollectionUtils.isNotEmpty(taskNodePoList)) {
nodeMapper.deleteTaskBatch(deleteNodeIdList);
List<String> taskIdList = taskNodePoList.stream().map(TaskNodePo::getUuid).toList();
nodeMapper.deleteTaskExtraBatch(taskIdList);
nodeMapper.deleteTaskMemberBatch(taskIdList);
// 删除当前节点及子节点下的指标相关信息
List<PerformanceNodePo> performanceNodePoList = nodeMapper.getPerformanceListByNodeIdList(taskIdList);
if (CollectionUtils.isEmpty(performanceNodePoList)) {
return true;
}
List<Long> performanceIdList = performanceNodePoList.stream().map(PerformanceNodePo::getId).toList();
nodeMapper.deletePerformanceBatch(performanceIdList);
nodeMapper.deletePerformanceExtraBatch(performanceNodePoList.stream().map(PerformanceNodePo::getUuid).toList());
}
List<SpdmNodeVo> childrenNodeList = nodeMapper.getNodeListByNodeIdList(deleteNodeIdList);
if (CollectionUtils.isEmpty(childrenNodeList)) {
return true;

View File

@@ -947,24 +947,6 @@ public class ProjectServiceImpl extends BaseService implements IProjectService {
taskNodePo.setAttionMembers(taskNodePo.getPayAttentionMemberList().stream().map(CIDUserResp::getNickname).collect(Collectors.joining(",")));
}
}
if (CollectionUtils.isNotEmpty(pUserIdList)) {
SdmResponse<List<CIDUserResp>> cidUserResp= sysUserFeignClient.listUserByIds(UserQueryReq.builder().userIds(pUserIdList).build());
taskNodePo.setPMemberList(cidUserResp.getData());
if (CollectionUtils.isNotEmpty(taskNodePo.getPMemberList())) {
taskNodePo.setPMembers(taskNodePo.getPMemberList().stream().map(CIDUserResp::getNickname).collect(Collectors.joining(",")));
}
}
// 设置关注人
if (CollectionUtils.isNotEmpty(attionUserIdList)) {
SdmResponse<List<CIDUserResp>> cidUserResp= sysUserFeignClient.listUserByIds(UserQueryReq.builder().userIds(attionUserIdList).build());
taskNodePo.setPayAttentionMemberList(cidUserResp.getData());
if (CollectionUtils.isNotEmpty(taskNodePo.getPayAttentionMemberList())) {
taskNodePo.setAttionMembers(taskNodePo.getPayAttentionMemberList().stream().map(CIDUserResp::getNickname).collect(Collectors.joining(",")));
}
}
}
}
}

View File

@@ -772,5 +772,13 @@
</if>
</select>
<select id="getTaskListByProjectNodeId" resultType="com.sdm.project.model.po.TaskNodePo">
select * from simulation_task where tag1 = #{nodeId}
</select>
<select id="getTaskListByPhaseNodeId" resultType="com.sdm.project.model.po.TaskNodePo">
select * from simulation_task where tag2 = #{nodeId}
</select>
</mapper>