Merge branch 'main' of http://carsafe.uicp.cn/toolchaintechnologycenter/spdm-backend
# Conflicts: # data/src/test/resources/application-test.yml
This commit is contained in:
@@ -93,7 +93,6 @@ public class MapperCompatibilityTest {
|
||||
entity.setFileSize(2048L);
|
||||
entity.setCreateTime(LocalDateTime.now());
|
||||
entity.setUpdateTime(LocalDateTime.now());
|
||||
entity.setCreateYearMonth("2026-01");
|
||||
|
||||
int insertResult = fileStorageMapper.insert(entity);
|
||||
assertEquals(1, insertResult);
|
||||
|
||||
@@ -4,6 +4,7 @@ spring:
|
||||
datasource:
|
||||
username: spdm
|
||||
password: Spdm@2026
|
||||
jdbc-url: jdbc:postgresql://192.168.65.161:25432/spdm_baseline?currentSchema=public&stringtype=unspecified
|
||||
jdbc-url: jdbc:postgresql://192.168.65.161:25432/spdm?currentSchema=public&stringtype=unspecified&TimeZone=Asia/Shanghai
|
||||
driver-class-name: org.postgresql.Driver
|
||||
hikari:
|
||||
@@ -20,6 +21,7 @@ spring:
|
||||
master:
|
||||
username: spdm
|
||||
password: Spdm@2026
|
||||
jdbc-url: jdbc:postgresql://192.168.65.161:25432/spdm_baseline?currentSchema=public&stringtype=unspecified
|
||||
jdbc-url: jdbc:postgresql://192.168.65.161:25432/spdm?currentSchema=public&stringtype=unspecified&TimeZone=Asia/Shanghai
|
||||
driver-class-name: org.postgresql.Driver
|
||||
slave:
|
||||
|
||||
@@ -105,5 +105,6 @@ public class PerformanceNodePo extends NodeAllBase {
|
||||
private String section = "";
|
||||
private String group = "";
|
||||
private String runId;
|
||||
private String runName;
|
||||
|
||||
}
|
||||
|
||||
@@ -1767,6 +1767,9 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
|
||||
// 传了新的图片文件
|
||||
if (ObjectUtils.isNotEmpty(req.getAddImageInfo())) {
|
||||
req.getAddFileInfoList().add(req.getAddImageInfo());
|
||||
if (ObjectUtils.isNotEmpty(experimentResult.getImageId())) {
|
||||
deleteFileIds.add(experimentResult.getImageId());
|
||||
}
|
||||
}
|
||||
if (CollectionUtils.size(req.getAddFileInfoList()) > 0 || CollectionUtils.size(req.getDeleteFileIds()) > 0 || ObjectUtils.isNotEmpty(req.getDeleteImageId())) {
|
||||
SdmResponse<List<BatchAddFileInfoResp>> batchAddResponse = SdmResponse.success();
|
||||
@@ -1783,6 +1786,23 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
|
||||
oldFileIds.removeIf(deleteSet::contains);
|
||||
deleteFileIds.addAll(req.getDeleteFileIds());
|
||||
}
|
||||
// 如果只删除试验截图 没有上传新的截图
|
||||
if (ObjectUtils.isNotEmpty(req.getDeleteImageId())) {
|
||||
experimentResult.setImageId(null);
|
||||
deleteFileIds.add(req.getDeleteImageId());
|
||||
}
|
||||
// 删除文件
|
||||
if (CollectionUtils.isNotEmpty(deleteFileIds)) {
|
||||
for (Long deleteFileId : deleteFileIds) {
|
||||
DelFileReq delFileReq = new DelFileReq();
|
||||
delFileReq.setDelFileId(deleteFileId);
|
||||
SdmResponse response = dataFeignClient.delFile(delFileReq);
|
||||
if (!response.isSuccess()) {
|
||||
return response;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 再处理新增的文件
|
||||
if (CollectionUtils.size(req.getAddFileInfoList()) > 0) {
|
||||
UploadFilesReq filesReq = new UploadFilesReq();
|
||||
@@ -1798,7 +1818,6 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
|
||||
// 传了新的图片文件 默认删除以前的
|
||||
if (ObjectUtils.isNotEmpty(req.getAddImageInfo())) {
|
||||
batchAddFileInfoResps.stream().filter(i -> StringUtils.equals(i.getSourceFileName(), req.getAddImageInfo().getFileName())).findFirst().ifPresent(i -> {
|
||||
deleteFileIds.add(experimentResult.getImageId());
|
||||
experimentResult.setImageId(i.getBusinessId());
|
||||
});
|
||||
}
|
||||
@@ -1807,26 +1826,11 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
|
||||
// 加上新增的附件文件
|
||||
oldFileIds.addAll(addFileIds);
|
||||
}
|
||||
// 如果只删除试验截图 没有上传新的截图
|
||||
if (ObjectUtils.isNotEmpty(req.getDeleteImageId())) {
|
||||
experimentResult.setImageId(null);
|
||||
deleteFileIds.add(req.getDeleteImageId());
|
||||
}
|
||||
|
||||
String fileIds = oldFileIds.stream().map(String::valueOf).collect(Collectors.joining(","));
|
||||
experimentResult.setFileId(fileIds);
|
||||
simulationExpResultService.updateById(experimentResult);
|
||||
// 删除文件
|
||||
if (CollectionUtils.isNotEmpty(deleteFileIds)) {
|
||||
for (Long deleteFileId : deleteFileIds) {
|
||||
DelFileReq delFileReq = new DelFileReq();
|
||||
delFileReq.setDelFileId(deleteFileId);
|
||||
SdmResponse response = dataFeignClient.delFile(delFileReq);
|
||||
if (!response.isSuccess()) {
|
||||
return response;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return batchAddResponse;
|
||||
}
|
||||
simulationExpResultService.updateById(experimentResult);
|
||||
|
||||
@@ -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> 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);
|
||||
currentUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList());
|
||||
}
|
||||
List<Long> newUserIdList = new ArrayList<>();
|
||||
if (CollectionUtils.isNotEmpty(currentUserIdList)) {
|
||||
if (CollectionUtils.isEmpty(oldEMemberIdList)) {
|
||||
newUserIdList = currentUserIdList;
|
||||
}else {
|
||||
for (Long currentUserId : currentUserIdList) {
|
||||
if (!oldEMemberIdList.contains(currentUserId)) {
|
||||
newUserIdList.add(currentUserId);
|
||||
}
|
||||
});
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user