From 642aff34a63644bc6d6e93528283f9ea15276b36 Mon Sep 17 00:00:00 2001 From: sunxiqing <2240398334@qq.com> Date: Mon, 6 Jan 2025 14:45:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=95=B0=E6=8D=AE=E9=9B=86?= =?UTF-8?q?=E7=AE=A1=E7=90=86--=E6=95=B0=E6=8D=AE=E6=A0=87=E6=B3=A8?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E4=B8=8D=E4=BA=86=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dataset/DatasetQuestionServiceImpl.java | 37 +++++++++++++++++-- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetQuestionServiceImpl.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetQuestionServiceImpl.java index c705a207a..499de9293 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetQuestionServiceImpl.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/dataset/DatasetQuestionServiceImpl.java @@ -108,7 +108,12 @@ public class DatasetQuestionServiceImpl implements DatasetQuestionService { @Override public void updateDatasetQuestionDataAnno(List updateReqVOS) { - updateReqVOS.forEach(updateReqVO -> { + List ids = new ArrayList<>(); + Long datasetId = null; + for (DatasetQuestionSaveReqVO updateReqVO : updateReqVOS){ + if (datasetId == null){ + datasetId = updateReqVO.getDatasetId(); + } DatasetQuestionDO datasetQuestionDO = BeanUtils.toBean(updateReqVO, DatasetQuestionDO.class); if (CollectionUtils.isNotEmpty(updateReqVO.getDatasetAnswerRespVO())){ datasetQuestionDO.setStatus(2); @@ -117,9 +122,33 @@ public class DatasetQuestionServiceImpl implements DatasetQuestionService { List datasetAnswerSaveReqVO = updateReqVO.getDatasetAnswerRespVO(); List datasetAnswerDOS = BeanUtils.toBean(datasetAnswerSaveReqVO, DatasetAnswerDO.class); if (CollectionUtils.isNotEmpty(datasetAnswerDOS)){ - datasetAnswerMapper.insertOrUpdate(datasetAnswerDOS); + for (DatasetAnswerDO datasetAnswerDO : datasetAnswerDOS){ + if (datasetAnswerDO.getId() == null){ + datasetAnswerMapper.insert(datasetAnswerDO); + ids.add(datasetAnswerDO.getId()); + }else { + ids.add(datasetAnswerDO.getId()); + datasetAnswerMapper.updateById(datasetAnswerDO); + } + } +// datasetAnswerMapper.insertOrUpdate(datasetAnswerDOS); } - }); + } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(datasetId!= null,DatasetAnswerDO::getDatasetId, datasetId); + List datasetAnswerDOS = datasetAnswerMapper.selectList(queryWrapper); + List collect = datasetAnswerDOS.stream().map(DatasetAnswerDO::getId).collect(Collectors.toList()); + List diff1 = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(collect)){ + HashSet set1 = new HashSet<>(ids); + HashSet set2 = new HashSet<>(collect); + // 获取 set2 中有但 set1 中没有的元素 + set2.removeAll(set1); + diff1 = new ArrayList<>(set2); + } + if (CollectionUtils.isNotEmpty(diff1)){ + datasetAnswerMapper.deleteBatchIds(diff1); + } // 标注进度修改 LambdaQueryWrapper wrapper = new LambdaQueryWrapper() .eq(DatasetQuestionDO::getDatasetId, updateReqVOS.get(0).getDatasetId()); @@ -132,4 +161,4 @@ public class DatasetQuestionServiceImpl implements DatasetQuestionService { datasetMapper.updateProcess(formattedRatio, updateReqVOS.get(0).getDatasetId(),status); } -} \ No newline at end of file +}