You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

82 lines
3.3 KiB
Java

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<TruncationEntityExtractionMapper, TruncationEntityExtraction>
implements TruncationEntityExtractionService{
private final TruncationErAttributeService truncationErAttributeService;
@Override
public void saveERE(List<EntityExtractionDTO> 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<TruncationERAttributeDTO> 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<TruncationEntityExtraction> truncationEntityExtractions = this.lambdaQuery()
.eq(TruncationEntityExtraction::getTruncationId, truncationId)
.list();
if (CollUtil.isNotEmpty(truncationEntityExtractions)){
List<String> terIds = truncationEntityExtractions.stream().map(TruncationEntityExtraction::getId).toList();
truncationErAttributeService.deleteByTerIds(terIds);
this.lambdaUpdate().eq(TruncationEntityExtraction::getTruncationId, truncationId).remove();
}
}
@Override
public List<TruncationEntityExtraction> queryByTruncationIds(List<String> truncationIds) {
if (CollUtil.isEmpty(truncationIds)){
return new ArrayList<>();
}
return this.lambdaQuery().in(TruncationEntityExtraction::getTruncationId, truncationIds).list();
}
}