@@ -72,6 +72,7 @@ import javax.annotation.Resource;
import java.io.File ;
import java.text.SimpleDateFormat ;
import java.util.* ;
import java.util.function.Function ;
import java.util.stream.Collectors ;
import java.util.stream.Stream ;
@@ -813,26 +814,69 @@ public class TaskServiceImpl implements ITaskService {
if ( ! simulationTaskService . updateSimulationTask ( req ) ) {
return SdmResponse . failed ( " 编辑任务失败 " ) ;
}
// 原来的仿真执行人
List < SimulationTaskMember > oldEMemberList = simulationTaskMemberService . lambdaQuery ( )
. eq ( SimulationTaskMember : : getTaskId , taskId )
. eq ( SimulationTaskMember : : getType , MemberTypeEnum . EXECUTOR . getCode ( ) ) . list ( ) ;
List < Long > oldEMemberIdList = new ArrayList < > ( ) ;
if ( CollectionUtils . isNotEmpty ( oldEMemberList ) ) {
oldEMemberIdList = oldEMemberList . stream ( ) . map ( SimulationTaskMember : : getUserId ) . toList ( ) ;
}
// 找出新的仿真执行人
List < Long > currentUserIdList = new ArrayList < > ( ) ;
if ( StringUtils . isNotBlank ( req . getEMemberList ( ) ) ) {
String [ ] userIdArr = req . getEMemberList ( ) . split ( " , " ) ;
List < Long > long UserIdList = Arrays . stream ( userIdArr ) . filter ( s - > ! s . isEmpty ( ) ) . map ( Long : : valueOf ) . collect ( Collectors . toList ( ) ) ;
List < SimulationTaskMember > oldEMemberList = simulationTaskMemberService . lambdaQuery ( )
. eq ( SimulationTaskMember : : getTaskId , taskId )
. eq ( SimulationTaskMember : : getType , MemberTypeEnum . EXECUTOR . getCode ( ) ) . l ist ( ) ;
if ( CollectionUtils . isNot Empty ( oldEMemberList ) ) {
List < Long > oldEMemberIdList = oldEMemberList . stream ( ) . map ( SimulationTaskMember : : getUserId ) . collect ( Collectors . toList ( ) ) ;
// 发送消息通知
longUserIdList . forEach ( i - > {
if ( ! oldEMemberIdList . contains ( i ) ) {
sendMessage ( MessageTemplateEnum . TASK_ISSUE , req . getNodeName ( ) , String . valueOf ( i ) , task Id) ;
current UserIdList = Arrays . stream ( userIdArr ) . filter ( s - > ! s . isEmpty ( ) ) . map ( Long : : valueOf ) . collect ( Collectors . toList ( ) ) ;
}
List < Long > newUserIdList = new ArrayList < > ( ) ;
if ( CollectionUtils . isNotEmpty ( currentUserIdL ist ) ) {
if ( CollectionUtils . isEmpty ( oldEMemberId List ) ) {
newUserIdList = currentUserIdList ;
} else {
for ( Long currentUserId : currentUserIdList ) {
if ( ! oldEMemberIdList . contains ( currentUserId ) ) {
newUserIdList . add ( currentUser Id) ;
}
} ) ;
}
simulationTaskMemberService . deleteTaskMemberList ( taskId , MemberTypeEnum . EXECUTOR . getCode ( ) ) ;
if ( ! simulationTaskMemberService . saveTaskMemberList ( taskId , MemberTypeEnum . EXECUTOR . getCode ( ) , longUserIdList ) ) {
return SdmResponse . failed ( " 编辑仿真执行人失败 " ) ;
}
}
}
log . info ( " 老用户id为: {} " , oldEMemberIdList ) ;
log . info ( " 新用户id为: {} " , newUserIdList ) ;
if ( CollectionUtils . isNotEmpty ( newUserIdList ) ) {
simulationTaskMemberService . deleteTaskMemberList ( taskId , MemberTypeEnum . EXECUTOR . getCode ( ) ) ;
if ( CollectionUtils . isNotEmpty ( currentUserIdList ) ) {
if ( ! simulationTaskMemberService . saveTaskMemberList ( taskId , MemberTypeEnum . EXECUTOR . getCode ( ) , currentUserIdList ) ) {
return SdmResponse . failed ( " 编辑仿真执行人失败 " ) ;
}
}
// 发送消息通知
newUserIdList . forEach ( i - > {
sendMessage ( MessageTemplateEnum . TASK_ISSUE , req . getNodeName ( ) , String . valueOf ( i ) , taskId ) ;
} ) ;
}
// if (StringUtils.isNotBlank(req.getEMemberList())) {
// String[] userIdArr = req.getEMemberList().split(",");
// List<Long> longUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList());
// List<SimulationTaskMember> oldEMemberList = simulationTaskMemberService.lambdaQuery()
// .eq(SimulationTaskMember::getTaskId, taskId)
// .eq(SimulationTaskMember::getType, MemberTypeEnum.EXECUTOR.getCode()).list();
// if (CollectionUtils.isNotEmpty(oldEMemberList)) {
// List<Long> oldEMemberIdList = oldEMemberList.stream().map(SimulationTaskMember::getUserId).collect(Collectors.toList());
// // 发送消息通知
// longUserIdList.forEach(i -> {
// if (!oldEMemberIdList.contains(i)) {
// sendMessage(MessageTemplateEnum.TASK_ISSUE, req.getNodeName(), String.valueOf(i), taskId);
// }
// });
// }
// simulationTaskMemberService.deleteTaskMemberList(taskId, MemberTypeEnum.EXECUTOR.getCode());
// if (!simulationTaskMemberService.saveTaskMemberList(taskId, MemberTypeEnum.EXECUTOR.getCode(), longUserIdList)) {
// return SdmResponse.failed("编辑仿真执行人失败");
// }
// }
// 新增拓展属性
List < SimulationTaskExtra > extraList = req . getExtras ( ) ;
if ( CollectionUtils . isEmpty ( extraList ) ) {
@@ -959,7 +1003,31 @@ public class TaskServiceImpl implements ITaskService {
jsonObject . put ( " currentPage " , req . getCurrent ( ) ) ;
jsonObject . put ( " pageSize " , req . getSize ( ) ) ;
jsonObject . put ( " total " , performanceNodePoList . size ( ) ) ;
jsonObject . put ( " data " , performanceNodePoList . stream ( ) . skip ( ( long ) ( req . getCurrent ( ) - 1 ) * req . getSize ( ) ) . limit ( req . getSize ( ) ) . toList ( ) ) ;
List < PerformanceNodePo > performanceList = performanceNodePoList . stream ( ) . skip ( ( long ) ( req . getCurrent ( ) - 1 ) * req . getSize ( ) ) . limit ( req . getSize ( ) ) . toList ( ) ;
if ( CollectionUtils . isEmpty ( performanceList ) ) {
jsonObject . put ( " data " , new ArrayList < > ( ) ) ;
return SdmResponse . success ( jsonObject ) ;
}
List < PerformanceNodePo > runIdList = performanceList . stream ( ) . filter ( performance - > StringUtils . isNotBlank ( performance . getRunId ( ) ) ) . toList ( ) ;
Map < String , SimulationRun > runMap = Map . of ( ) ;
if ( CollectionUtils . isNotEmpty ( runIdList ) ) {
List < SimulationRun > runList = simulationRunService . lambdaQuery ( ) . in ( SimulationRun : : getUuid , runIdList ) . list ( ) ;
if ( CollectionUtils . isNotEmpty ( runList ) ) {
runMap = runList . stream ( ) . collect ( Collectors . toMap ( SimulationRun : : getUuid , Function . identity ( ) ) ) ;
}
}
SimulationRun simulationRun ;
for ( PerformanceNodePo performanceNodePo : performanceList ) {
if ( StringUtils . isBlank ( performanceNodePo . getRunId ( ) ) ) {
continue ;
}
simulationRun = runMap . get ( performanceNodePo . getRunId ( ) ) ;
if ( ObjectUtils . isEmpty ( simulationRun ) ) {
continue ;
}
performanceNodePo . setRunName ( simulationRun . getRunName ( ) ) ;
}
jsonObject . put ( " data " , performanceList ) ;
return SdmResponse . success ( jsonObject ) ;
}