数据集修改

This commit is contained in:
limin 2025-01-21 18:11:40 +08:00
parent 29e0af8332
commit f380bbf28e
2 changed files with 44 additions and 4 deletions

View File

@ -59,4 +59,6 @@ public class DatasetRespVO {
/* @Schema(description = "数据集数据文件", example = "[]")
private List<DatasetQuestionRespVO> datasetQuestionRespVOS;*/
@Schema(description = "数据集数据文件", example = "[]")
private List<DatasetFilesRespVO> datasetFiles;
}

View File

@ -155,13 +155,45 @@ public class DatasetServiceImpl implements DatasetService {
// 更新
DatasetDO updateObj = BeanUtils.toBean(updateReqVO, DatasetDO.class);
List<DatasetFilesSaveReqVO> datasetFiles = updateReqVO.getDatasetFiles();
// 提取id 先过滤掉没有id 再提取
List<Long> updateIds = datasetFiles.stream().filter(
datasetFilesSaveReqVO -> datasetFilesSaveReqVO.getId() != null
).map(
datasetFilesSaveReqVO -> datasetFilesSaveReqVO.getId()
).collect(Collectors.toList());
List<DatasetFilesDO> datasetFilesDOS = datasetFilesMapper.selectList(new LambdaQueryWrapper<DatasetFilesDO>()
.eq(DatasetFilesDO::getDatasetId, updateObj.getId()));
// 提取之前数据集文件表的id
List<Long> selectids = datasetFilesDOS.stream().map(
datasetFilesDO -> datasetFilesDO.getId()
).collect(Collectors.toList());
// 找出需要删除的文件主表id找差集
List<Long> deleteIds = new ArrayList<>(selectids);
deleteIds.removeAll(updateIds);
// 删除操作
if (CollectionUtils.isNotEmpty(deleteIds)){
datasetFilesMapper.deleteBatchIds(deleteIds);
datasetQuestionMapper.delete(new LambdaQueryWrapper<DatasetQuestionDO>()
.in(DatasetQuestionDO::getDatasetFilesId, deleteIds));
datasetAnswerMapper.delete(new LambdaQueryWrapper<DatasetAnswerDO>()
.in(DatasetAnswerDO::getDatasetFilesId, deleteIds));
}
List<DatasetFilesSaveReqVO> noIdsDatasetFiles = null;
if (CollectionUtils.isNotEmpty(datasetFiles)) {
datasetFiles.stream().forEach(
// 提取出没有id的
noIdsDatasetFiles = datasetFiles.stream().filter(
datasetFilesSaveReqVO -> datasetFilesSaveReqVO.getId() == null
).collect(Collectors.toList());
noIdsDatasetFiles.stream().forEach(
datasetFilesSaveReqVO -> {
datasetFilesSaveReqVO.setDatasetId(updateObj.getId());
}
);
parseFile(datasetFiles);
if (CollectionUtils.isNotEmpty(noIdsDatasetFiles)){
parseFile(datasetFiles);
}
Long count = datasetQuestionMapper.selectCount(new LambdaQueryWrapper<DatasetQuestionDO>()
.eq(DatasetQuestionDO::getDatasetId, updateObj.getId()));
updateObj.setDataLength(count);
@ -174,10 +206,14 @@ public class DatasetServiceImpl implements DatasetService {
if (formattedRatio != null) {
updateObj.setAnnotateProgress(formattedRatio);
}
updateObj.setStatus(status);
if (annoCount == 0) {
updateObj.setStatus(0);
status=0;
}
if (updateObj.getStatus() != status) {
throw new ServiceException(new ErrorCode(
20000, "数据集标注状态错误!应该是【" + DatasetStatusEnum.getStatusByName(status) + ""));
}
updateObj.setStatus(status);
}
datasetMapper.updateById(updateObj);
}
@ -290,6 +326,8 @@ public class DatasetServiceImpl implements DatasetService {
public DatasetRespVO getDataset (Long id) {
DatasetDO datasetDO = datasetMapper.selectById(id);
DatasetRespVO datasetRespVO = BeanUtils.toBean(datasetDO, DatasetRespVO.class);
List<DatasetFilesDO> datasetFilesDOS = datasetFilesMapper.selectList(new LambdaQueryWrapper<DatasetFilesDO>().eq(DatasetFilesDO::getDatasetId, id));
datasetRespVO.setDatasetFiles(BeanUtils.toBean(datasetFilesDOS, DatasetFilesRespVO.class));
/*List<DatasetQuestionDO> datasetQuestionDO = datasetQuestionMapper.selectList(new LambdaQueryWrapper<DatasetQuestionDO>().eq(DatasetQuestionDO::getDatasetId, id));
List<DatasetQuestionRespVO> datasetQuestionRespVOS = BeanUtils.toBean(datasetQuestionDO, DatasetQuestionRespVO.class);
datasetRespVO.setDatasetQuestionRespVOS(datasetQuestionRespVOS);*/