优化企业删除、项目创建功能

This commit is contained in:
2026-01-20 16:35:43 +08:00
parent ae1e150d1c
commit d04305c325
6 changed files with 110 additions and 2 deletions

View File

@@ -1,16 +1,24 @@
package com.gxwebsoft.oa.service.impl;
import com.aliyun.bailian20231229.Client;
import com.aliyun.bailian20231229.models.DeleteCategoryResponseBody;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.gxwebsoft.oa.mapper.OaCompanyMapper;
import com.gxwebsoft.oa.service.OaCompanyService;
import cn.hutool.core.util.StrUtil;
import com.gxwebsoft.oa.entity.OaCompany;
import com.gxwebsoft.oa.param.OaCompanyParam;
import com.gxwebsoft.ai.config.KnowledgeBaseConfig;
import com.gxwebsoft.ai.entity.AiCloudDoc;
import com.gxwebsoft.ai.entity.AiCloudFile;
import com.gxwebsoft.ai.factory.KnowledgeBaseClientFactory;
import com.gxwebsoft.ai.service.AiCloudDocService;
import com.gxwebsoft.ai.service.AiCloudFileService;
import com.gxwebsoft.ai.util.AiCloudDataCenterUtil;
import com.gxwebsoft.ai.util.AiCloudKnowledgeBaseUtil;
import com.gxwebsoft.common.core.web.PageParam;
import com.gxwebsoft.common.core.web.PageResult;
@@ -21,6 +29,7 @@ import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* 企业信息Service实现
@@ -33,6 +42,9 @@ public class OaCompanyServiceImpl extends ServiceImpl<OaCompanyMapper, OaCompany
@Autowired
private AiCloudDocService aiCloudDocService;
@Autowired
private AiCloudFileService aiCloudFileService;
@Autowired
private KnowledgeBaseConfig config;
@@ -123,4 +135,58 @@ public class OaCompanyServiceImpl extends ServiceImpl<OaCompanyMapper, OaCompany
// 批量保存子目录
aiCloudDocService.saveBatch(directories);
}
@Override
public boolean removeCompanyDocDirectories(Integer companyId) {
boolean ret = true;
String workspaceId = config.getWorkspaceId();
if(companyId==null) {
return ret;
}
//目录
List<AiCloudDoc> docList = aiCloudDocService.list(new LambdaQueryWrapper<AiCloudDoc>().eq(AiCloudDoc::getCompanyId, companyId));
List<Integer> docIds = docList.stream().map(AiCloudDoc::getId).collect(Collectors.toList());
//先删目阿里云录下所有文件
List<AiCloudFile> fileList = aiCloudFileService.list(new LambdaQueryWrapper<AiCloudFile>().in(AiCloudFile::getDocId, docIds));
List<Integer> fileIds = fileList.stream().map(AiCloudFile::getId).collect(Collectors.toList());
for(AiCloudFile file : fileList) {
try {
Client client = clientFactory.createClient();
AiCloudDataCenterUtil.deleteFile(client, workspaceId, file.getFileId());
} catch (Exception e) {
e.printStackTrace();
}
}
//再删阿里云目录
List<String> categoryIds = docList.stream().map(AiCloudDoc::getCategoryId).filter(StrUtil::isNotBlank).distinct().collect(Collectors.toList());
for(String categoryId : categoryIds) {
try {
Client client = clientFactory.createClient();
ret = AiCloudDataCenterUtil.deleteCategory(client, workspaceId, categoryId).getBody().getSuccess();
} catch (Exception e) {
e.printStackTrace();
}
}
aiCloudDocService.removeByIds(docIds);
aiCloudFileService.removeByIds(fileIds);
return ret;
}
@Override
public boolean removeCompanyKnowledgeBase(Integer companyId) {
boolean ret = true;
String workspaceId = config.getWorkspaceId();
if(companyId==null) {
return ret;
}
//删阿里云知识库
OaCompany oaCompany = baseMapper.selectById(companyId);
try {
Client client = clientFactory.createClient();
ret = AiCloudKnowledgeBaseUtil.deleteIndex(client, workspaceId, oaCompany.getKbId()).getBody().getSuccess();
} catch (Exception e) {
e.printStackTrace();
}
return ret;
}
}