diff --git a/src/main/java/com/gxwebsoft/ai/service/impl/KnowledgeBaseServiceImpl.java b/src/main/java/com/gxwebsoft/ai/service/impl/KnowledgeBaseServiceImpl.java index 7dc1f7d..8889da6 100644 --- a/src/main/java/com/gxwebsoft/ai/service/impl/KnowledgeBaseServiceImpl.java +++ b/src/main/java/com/gxwebsoft/ai/service/impl/KnowledgeBaseServiceImpl.java @@ -68,6 +68,11 @@ public class KnowledgeBaseServiceImpl implements KnowledgeBaseService { public String createKnowledgeBase(String companyName, String companyCode) { String workspaceId = config.getWorkspaceId(); try { + String kbId = getKnowledgeBaseIdByName(companyCode); + if(StrUtil.isNotEmpty(kbId)) { + return kbId; + } + Client client = clientFactory.createClient(); CreateIndexResponse indexResponse = KnowledgeBaseUtil.createIndex(client, workspaceId, companyCode, companyName); return indexResponse.getBody().getData().getId(); diff --git a/src/main/java/com/gxwebsoft/oa/controller/OaCompanyController.java b/src/main/java/com/gxwebsoft/oa/controller/OaCompanyController.java index 3a7aaad..638300b 100644 --- a/src/main/java/com/gxwebsoft/oa/controller/OaCompanyController.java +++ b/src/main/java/com/gxwebsoft/oa/controller/OaCompanyController.java @@ -78,12 +78,7 @@ public class OaCompanyController extends BaseController { } if (oaCompanyService.save(oaCompany)) { try { - //查询知识库 - String kbId = knowledgeBaseService.getKnowledgeBaseIdByName(oaCompany.getCompanyCode()); - //新建知识库 - if(StrUtil.isEmpty(kbId)) { - kbId = knowledgeBaseService.createKnowledgeBase(oaCompany.getCompanyName(), oaCompany.getCompanyCode()); - } + String kbId = knowledgeBaseService.createKnowledgeBase(oaCompany.getCompanyName(), oaCompany.getCompanyCode()); //绑定知识库 oaCompany.setKbId(kbId); oaCompanyService.updateById(oaCompany); @@ -102,12 +97,7 @@ public class OaCompanyController extends BaseController { return fail("单位唯一标识不能为空"); } if(StrUtil.isEmpty(oaCompany.getKbId())) { - //查询知识库 - String kbId = knowledgeBaseService.getKnowledgeBaseIdByName(oaCompany.getCompanyCode()); - //新建知识库 - if(StrUtil.isEmpty(kbId)) { - kbId = knowledgeBaseService.createKnowledgeBase(oaCompany.getCompanyName(), oaCompany.getCompanyCode()); - } + String kbId = knowledgeBaseService.createKnowledgeBase(oaCompany.getCompanyName(), oaCompany.getCompanyCode()); //绑定知识库 oaCompany.setKbId(kbId); } diff --git a/src/main/java/com/gxwebsoft/pwl/controller/PwlProjectController.java b/src/main/java/com/gxwebsoft/pwl/controller/PwlProjectController.java index f871a4c..ae75560 100644 --- a/src/main/java/com/gxwebsoft/pwl/controller/PwlProjectController.java +++ b/src/main/java/com/gxwebsoft/pwl/controller/PwlProjectController.java @@ -3,7 +3,10 @@ package com.gxwebsoft.pwl.controller; import cn.afterturn.easypoi.excel.ExcelImportUtil; import cn.afterturn.easypoi.excel.entity.ImportParams; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; + import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.gxwebsoft.ai.service.KnowledgeBaseService; import com.gxwebsoft.cms.entity.CmsArticle; import com.gxwebsoft.cms.entity.CmsArticleContent; import com.gxwebsoft.cms.param.CmsArticleImportParam; @@ -25,6 +28,8 @@ import com.gxwebsoft.common.core.annotation.OperationLog; import com.gxwebsoft.common.system.entity.User; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; @@ -51,6 +56,9 @@ public class PwlProjectController extends BaseController { @Resource private PwlProjectService pwlProjectService; + @Autowired + private KnowledgeBaseService knowledgeBaseService; + @PreAuthorize("hasAuthority('pwl:pwlProject:list')") @Operation(summary = "分页查询卫兰的项目项目系统") @GetMapping("/page") @@ -109,16 +117,55 @@ public class PwlProjectController extends BaseController { } } if (pwlProjectService.save(pwlProject)) { + createAnalysisLib(pwlProject); + createProjectLib(pwlProject); + pwlProjectService.updateById(pwlProject); return success("添加成功"); } return fail("添加失败"); } + + //创建材料分析库 + private void createAnalysisLib(PwlProject pwlProject) { + if(StrUtil.isEmpty(pwlProject.getCode())) { + return ; + } + try { + String asLibName = "as"+pwlProject.getName(); + String asLibCode = "as"+pwlProject.getCode(); + String analysisKbId = knowledgeBaseService.createKnowledgeBase(asLibName, asLibCode); + pwlProject.setAnalysisLibrary(analysisKbId); + } catch (Exception e) { + e.printStackTrace(); + } + } + + //创建项目资料库 + private void createProjectLib(PwlProject pwlProject) { + if(StrUtil.isEmpty(pwlProject.getCode())) { + return ; + } + try { + String pjLibName = "pj"+pwlProject.getName(); + String pjLibCode = "pj"+pwlProject.getCode(); + String projectKbId = knowledgeBaseService.createKnowledgeBase(pjLibName, pjLibCode); + pwlProject.setProjectLibrary(projectKbId); + } catch (Exception e) { + e.printStackTrace(); + } + } @PreAuthorize("hasAuthority('pwl:pwlProject:update')") @OperationLog @Operation(summary = "修改卫兰的项目项目系统") @PutMapping() public ApiResult update(@RequestBody PwlProject pwlProject) { + if(StrUtil.isEmpty(pwlProject.getAnalysisLibrary())) { + createAnalysisLib(pwlProject); + } + if(StrUtil.isEmpty(pwlProject.getProjectLibrary())) { + createProjectLib(pwlProject); + } if (pwlProjectService.updateById(pwlProject)) { return success("修改成功"); } diff --git a/src/main/java/com/gxwebsoft/pwl/controller/PwlProjectLibraryController.java b/src/main/java/com/gxwebsoft/pwl/controller/PwlProjectLibraryController.java index cd57b62..2c73945 100644 --- a/src/main/java/com/gxwebsoft/pwl/controller/PwlProjectLibraryController.java +++ b/src/main/java/com/gxwebsoft/pwl/controller/PwlProjectLibraryController.java @@ -90,12 +90,7 @@ public class PwlProjectLibraryController extends BaseController { try { //kbName = biz00000000001 String kbName = pwlProjectLibrary.getType() + StrUtil.padPre(pwlProjectLibrary.getId().toString(), 11, '0'); - //通过知识库名称查询知识库 - String kbId = knowledgeBaseService.getKnowledgeBaseIdByName(kbName); - //新建知识库 - if(StrUtil.isEmpty(kbId)) { - kbId = knowledgeBaseService.createKnowledgeBase(pwlProjectLibrary.getName(),kbName); - } + String kbId = knowledgeBaseService.createKnowledgeBase(pwlProjectLibrary.getName(),kbName); //绑定知识库 pwlProjectLibrary.setKbId(kbId); pwlProjectLibraryService.updateById(pwlProjectLibrary); @@ -114,12 +109,7 @@ public class PwlProjectLibraryController extends BaseController { if(StrUtil.isEmpty(pwlProjectLibrary.getKbId())) { //kbName = biz00000000001 String kbName = pwlProjectLibrary.getType() + StrUtil.padPre(pwlProjectLibrary.getId().toString(), 11, '0'); - //通过知识库名称查询知识库 - String kbId = knowledgeBaseService.getKnowledgeBaseIdByName(kbName); - //新建知识库 - if(StrUtil.isEmpty(kbId)) { - kbId = knowledgeBaseService.createKnowledgeBase(pwlProjectLibrary.getName(),kbName); - } + String kbId = knowledgeBaseService.createKnowledgeBase(pwlProjectLibrary.getName(),kbName); //绑定知识库 pwlProjectLibrary.setKbId(kbId); } diff --git a/src/main/java/com/gxwebsoft/pwl/entity/PwlProject.java b/src/main/java/com/gxwebsoft/pwl/entity/PwlProject.java index 11eefa3..bac3dab 100644 --- a/src/main/java/com/gxwebsoft/pwl/entity/PwlProject.java +++ b/src/main/java/com/gxwebsoft/pwl/entity/PwlProject.java @@ -181,6 +181,12 @@ public class PwlProject implements Serializable { @Schema(description = "资料库库IDs") private String libraryIds; //英文逗号分割 + @Schema(description = "材料分析库") + private String analysisLibrary; + + @Schema(description = "项目资料库") + private String projectLibrary; + @Schema(description = "租户id") private Integer tenantId;