|
|
@ -60,13 +60,13 @@ public class ModelRecordTypeServiceImpl extends ServiceImpl<ModelRecordTypeMappe
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<TypeDTO> queryTypeListChoose() {
|
|
|
|
public List<TypeDTO> queryTypeListChoose() {
|
|
|
|
List<ModelRecordType> list = modelRecordTypeMapper.selectByName(null);
|
|
|
|
List<ModelRecordType> list = modelRecordTypeMapper.selectByName(null);
|
|
|
|
return list.stream().map(e -> new TypeDTO(e.getId(),e.getRecordType())).collect(Collectors.toList());
|
|
|
|
return list.stream().map(e -> new TypeDTO(e.getId(), e.getRecordType())).collect(Collectors.toList());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<ModelRecordType> queryType(String name, Integer page, Integer size) {
|
|
|
|
public List<ModelRecordType> queryType(String name, Integer page, Integer size) {
|
|
|
|
List<ModelRecordType> list = modelRecordTypeMapper.selectByName(name);
|
|
|
|
List<ModelRecordType> list = modelRecordTypeMapper.selectByName(name);
|
|
|
|
Map<String, TypeDTO> modelRecordTypeMap = list.stream().map(e -> new TypeDTO(e.getId(),e.getRecordType())).collect(Collectors.toMap(TypeDTO::getId, Function.identity()));
|
|
|
|
Map<String, TypeDTO> modelRecordTypeMap = list.stream().map(e -> new TypeDTO(e.getId(), e.getRecordType())).collect(Collectors.toMap(TypeDTO::getId, Function.identity()));
|
|
|
|
// 获取类型和三元组提示词的关系表
|
|
|
|
// 获取类型和三元组提示词的关系表
|
|
|
|
List<NotePromptTypeRel> relList = notePromptTypeRelService.lambdaQuery().list();
|
|
|
|
List<NotePromptTypeRel> relList = notePromptTypeRelService.lambdaQuery().list();
|
|
|
|
Map<String, List<NotePromptTypeRel>> typeIdMap = relList.stream().collect(Collectors.groupingBy(NotePromptTypeRel::getTypeId));
|
|
|
|
Map<String, List<NotePromptTypeRel>> typeIdMap = relList.stream().collect(Collectors.groupingBy(NotePromptTypeRel::getTypeId));
|
|
|
@ -152,6 +152,8 @@ public class ModelRecordTypeServiceImpl extends ServiceImpl<ModelRecordTypeMappe
|
|
|
|
int i = 0;
|
|
|
|
int i = 0;
|
|
|
|
boolean save;
|
|
|
|
boolean save;
|
|
|
|
if (StringUtils.isEmpty(prompt.getId())) {
|
|
|
|
if (StringUtils.isEmpty(prompt.getId())) {
|
|
|
|
|
|
|
|
// 新增的时候,校验是否已经存在相同的三元组关系,如果已经存在了相同的三元组关系,不允许添加
|
|
|
|
|
|
|
|
checkHasSameTriple(prompt.getStartEntityType(), prompt.getRelType(),prompt.getEndEntityType(),null);
|
|
|
|
save = notePromptService.save(prompt);
|
|
|
|
save = notePromptService.save(prompt);
|
|
|
|
// 新增prompt绑定的分类信息
|
|
|
|
// 新增prompt绑定的分类信息
|
|
|
|
for (String typeId : typeList) {
|
|
|
|
for (String typeId : typeList) {
|
|
|
@ -161,6 +163,7 @@ public class ModelRecordTypeServiceImpl extends ServiceImpl<ModelRecordTypeMappe
|
|
|
|
notePromptTypeRelService.save(rel);
|
|
|
|
notePromptTypeRelService.save(rel);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
|
|
|
|
checkHasSameTriple(prompt.getStartEntityType(), prompt.getRelType(),prompt.getEndEntityType(),prompt.getId());
|
|
|
|
save = notePromptService.updateById(prompt);
|
|
|
|
save = notePromptService.updateById(prompt);
|
|
|
|
// 更新prompt绑定的分类信息
|
|
|
|
// 更新prompt绑定的分类信息
|
|
|
|
// 首先查询已经有的,如果都存在,就不变,如果数据库有,前端没有,就删除,如果前端有,数据库没有,就新增
|
|
|
|
// 首先查询已经有的,如果都存在,就不变,如果数据库有,前端没有,就删除,如果前端有,数据库没有,就新增
|
|
|
@ -175,13 +178,13 @@ public class ModelRecordTypeServiceImpl extends ServiceImpl<ModelRecordTypeMappe
|
|
|
|
notePromptTypeRelService.lambdaUpdate().in(NotePromptTypeRel::getTypeId, deleteIdList).eq(NotePromptTypeRel::getPromptId, prompt.getId()).remove();
|
|
|
|
notePromptTypeRelService.lambdaUpdate().in(NotePromptTypeRel::getTypeId, deleteIdList).eq(NotePromptTypeRel::getPromptId, prompt.getId()).remove();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 新增(前端有数据库没有的)
|
|
|
|
// 新增(前端有数据库没有的)
|
|
|
|
frontRelIdList.stream().filter(id -> !existTypeList.contains(id)).forEach(e ->{
|
|
|
|
frontRelIdList.stream().filter(id -> !existTypeList.contains(id)).forEach(e -> {
|
|
|
|
NotePromptTypeRel rel = new NotePromptTypeRel();
|
|
|
|
NotePromptTypeRel rel = new NotePromptTypeRel();
|
|
|
|
rel.setPromptId(prompt.getId());
|
|
|
|
rel.setPromptId(prompt.getId());
|
|
|
|
rel.setTypeId(e);
|
|
|
|
rel.setTypeId(e);
|
|
|
|
notePromptTypeRelService.save(rel);
|
|
|
|
notePromptTypeRelService.save(rel);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}else {
|
|
|
|
} else {
|
|
|
|
// 如果数据库里面没查到,直接新增,一般不会走这一步
|
|
|
|
// 如果数据库里面没查到,直接新增,一般不会走这一步
|
|
|
|
for (String typeId : typeList) {
|
|
|
|
for (String typeId : typeList) {
|
|
|
|
NotePromptTypeRel rel = new NotePromptTypeRel();
|
|
|
|
NotePromptTypeRel rel = new NotePromptTypeRel();
|
|
|
@ -218,6 +221,22 @@ public class ModelRecordTypeServiceImpl extends ServiceImpl<ModelRecordTypeMappe
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void checkHasSameTriple(String startEntityType, String relType, String endEntityType,String promptId) {
|
|
|
|
|
|
|
|
List<NotePrompt> list = notePromptService.lambdaQuery().eq(NotePrompt::getStartEntityType, startEntityType)
|
|
|
|
|
|
|
|
.eq(NotePrompt::getRelType, relType).eq(NotePrompt::getEndEntityType, endEntityType).list();
|
|
|
|
|
|
|
|
if (CollUtil.isNotEmpty(list) ) {
|
|
|
|
|
|
|
|
if (StrUtil.isBlank(promptId)){
|
|
|
|
|
|
|
|
throw new RuntimeException("该三元组关系已经存在,请勿重复添加");
|
|
|
|
|
|
|
|
}else {
|
|
|
|
|
|
|
|
// 校验list查出来的是不是和promptId相等,如果不想等,也报错
|
|
|
|
|
|
|
|
if (!list.get(0).getId().equals(promptId)){
|
|
|
|
|
|
|
|
throw new RuntimeException("该三元组关系已经存在,请勿重复添加");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
|
|
|
|
public R<?> delPrompt(NotePrompt prompt) {
|
|
|
|
public R<?> delPrompt(NotePrompt prompt) {
|
|
|
|