package com.supervision.pdfqaserver.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.supervision.pdfqaserver.domain.TruncationEntityExtraction; import com.supervision.pdfqaserver.domain.TruncationErAttribute; import com.supervision.pdfqaserver.dto.TruncationERAttributeDTO; import com.supervision.pdfqaserver.dto.EntityExtractionDTO; import com.supervision.pdfqaserver.service.TruncationEntityExtractionService; import com.supervision.pdfqaserver.mapper.TruncationEntityExtractionMapper; import com.supervision.pdfqaserver.service.TruncationErAttributeService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * @author Administrator * @description 针对表【truncation_entity_extraction(片段实体抽取)】的数据库操作Service实现 * @createDate 2025-04-27 11:45:24 */ @Slf4j @Service @RequiredArgsConstructor public class TruncationEntityExtractionServiceImpl extends ServiceImpl implements TruncationEntityExtractionService{ private final TruncationErAttributeService truncationErAttributeService; @Override public void saveERE(List entities) { if (CollUtil.isEmpty(entities)){ return; } for (EntityExtractionDTO entity : entities) { TruncationEntityExtraction tee = new TruncationEntityExtraction(); tee.setTruncationId(entity.getTruncationId()); tee.setEntity(entity.getEntity()); tee.setName(entity.getName()); this.save(tee); List attributes = entity.getAttributes(); if (CollUtil.isEmpty(attributes)){ continue; } for (TruncationERAttributeDTO attribute : attributes) { attribute.setTerId(tee.getId()); TruncationErAttribute era = attribute.toTruncationErAttribute(); era.setAssociationType("0"); // 0: 实体 truncationErAttributeService.save(era); } } } @Override public void deleteByTruncationId(String truncationId) { if (StrUtil.isEmpty(truncationId)){ return; } List truncationEntityExtractions = this.lambdaQuery() .eq(TruncationEntityExtraction::getTruncationId, truncationId) .list(); if (CollUtil.isNotEmpty(truncationEntityExtractions)){ List terIds = truncationEntityExtractions.stream().map(TruncationEntityExtraction::getId).toList(); truncationErAttributeService.deleteByTerIds(terIds); this.lambdaUpdate().eq(TruncationEntityExtraction::getTruncationId, truncationId).remove(); } } @Override public List queryByTruncationIds(List truncationIds) { if (CollUtil.isEmpty(truncationIds)){ return new ArrayList<>(); } return this.lambdaQuery().in(TruncationEntityExtraction::getTruncationId, truncationIds).list(); } }