优化企业删除、项目创建功能
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user