From b316db25f3af6b3a90a0ff2a64bda9525b991027 Mon Sep 17 00:00:00 2001 From: OTTO <731554297@qq.com> Date: Mon, 26 Aug 2024 16:24:08 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=88=B6=E5=93=81=E5=BA=93=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=8C=E5=96=84):=20=E4=BA=A7=E5=93=81=E5=BA=93?= =?UTF-8?q?=E4=B8=8D=E6=8F=90=E4=BE=9B=E7=9B=B4=E6=8E=A5=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E4=BA=A7=E5=93=81=E6=93=8D=E4=BD=9C=EF=BC=8C=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E4=BB=8E=E7=9F=A5=E8=AF=86=E5=BA=93=E4=B8=AD?= =?UTF-8?q?=E9=80=89=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增接口:查询知识库文档列表 1. 调用知识库文档列表查询接口获取文档 2. 获取产品库下所有制品,检查文档id在产品库中是否已存在,若存在则设置isChoose为true --- .../PmsProductLibraryController.java | 18 +++++- .../productLibrary/domain/vo/DocResultVo.java | 28 +++++++++ .../productLibrary/domain/vo/DocSearchVo.java | 60 +++++++++++++++++++ .../service/IPmsProductLibraryService.java | 2 + .../impl/PmsProductLibraryServiceImpl.java | 24 ++++++++ 5 files changed, 130 insertions(+), 2 deletions(-) create mode 100644 microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/DocResultVo.java create mode 100644 microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/DocSearchVo.java diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/controller/PmsProductLibraryController.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/controller/PmsProductLibraryController.java index 908bf5bf3..39f9c6cb1 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/controller/PmsProductLibraryController.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/controller/PmsProductLibraryController.java @@ -259,7 +259,7 @@ public class PmsProductLibraryController extends BaseController { // @RequiresPermissions("pms:pmsProductLibraryComponent:list") @GetMapping("/{productRepoName}/{repoName}/keyComponent/list") @ApiOperation(value = "制品库查询关键制品列表") - public AjaxResult keyComponentList(@PathVariable String enterpriseIdentifier, + public GenericsAjaxResult>> keyComponentList(@PathVariable String enterpriseIdentifier, @ApiParam(value = "产品库标识", required = true) @PathVariable("productRepoName") String productRepoName, @ApiParam(value = "制品库标识", required = true) @PathVariable("repoName") String repoName, @Valid ComponentSearchVo componentSearchVo) { @@ -267,7 +267,21 @@ public class PmsProductLibraryController extends BaseController { componentSearchVo.setProductRepoName(productRepoName); NexusComponentResultVo> result = pmsProductLibraryService.selectPmsProductLibraryKeyComponentList(enterpriseIdentifier, componentSearchVo); - return success(result); + return genericsSuccess(result); + } + + /** + * 获取制品库下关键制品(排除自动生成的无关制品) + */ +// @RequiresPermissions("pms:pmsProductLibraryComponent:list") + @GetMapping("/{productRepoName}/docList/") + @ApiOperation(value = "查询知识库文档列表") + public GenericsTableDataInfo docList(@PathVariable String enterpriseIdentifier, + @ApiParam(value = "产品库标识", required = true) @PathVariable("productRepoName") String productRepoName, + @Valid DocSearchVo docSearchVo) { + docSearchVo.setEnterpriseIdentifier(enterpriseIdentifier); + docSearchVo.setProductRepoName(productRepoName); + return pmsProductLibraryService.selectDocList(docSearchVo); } /** diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/DocResultVo.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/DocResultVo.java new file mode 100644 index 000000000..bd312a10c --- /dev/null +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/DocResultVo.java @@ -0,0 +1,28 @@ +package com.microservices.pms.productLibrary.domain.vo; + +import com.microservices.common.core.utils.bean.BeanUtils; +import com.microservices.pms.document.domain.vo.PmsDocumentVo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 制品搜索对象 + * + * @author otto + * @date 2024-07-04 + */ +@Data +@ApiModel("知识库文档数据对象") +public class DocResultVo extends PmsDocumentVo { + + /** + * 是否已选择 + */ + @ApiModelProperty(value = "是否已选择") + private Boolean isChoose = false; + + public DocResultVo(PmsDocumentVo pmsDocumentVo) { + BeanUtils.copyProperties(pmsDocumentVo, this); + } +} diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/DocSearchVo.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/DocSearchVo.java new file mode 100644 index 000000000..1bb6031e3 --- /dev/null +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/DocSearchVo.java @@ -0,0 +1,60 @@ +package com.microservices.pms.productLibrary.domain.vo; + +import com.microservices.common.core.utils.bean.BeanUtils; +import com.microservices.common.core.web.domain.BaseEntity; +import com.microservices.pms.document.domain.vo.PmsDocumentSearchVo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 制品搜索对象 + * + * @author otto + * @date 2024-07-04 + */ +@Data +@ApiModel("知识库文档搜索对象") +public class DocSearchVo extends BaseEntity { + /** + * 文档名称 + */ + @ApiModelProperty(value = "文档名称") + private String name; + + /** + * 文件类型 1-文档目录 2-文档 3-附件 4-wiki库 + */ + @ApiModelProperty(value = "文件类型 1-文档目录 2-文档 3-附件 4-wiki库") + private Integer docType; + + /** + * 父级id + */ + @ApiModelProperty(value = "父级id", required = true) + @NotNull + private Long parentId; + + /** + * 项目ID + */ + @ApiModelProperty(value = "项目ID") + private Long pmsProjectId; + + + @ApiModelProperty(value = "企业标识", hidden = true) + private String enterpriseIdentifier; + + + @ApiModelProperty(value = "产品库标识", hidden = true) + private String productRepoName; + + public PmsDocumentSearchVo toPmsDocumentSearchVo(Long pmsEnterpriseId) { + PmsDocumentSearchVo target = new PmsDocumentSearchVo(); + BeanUtils.copyProperties(this, target); + target.setPmsEnterpriseId(pmsEnterpriseId); + return target; + } +} diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/service/IPmsProductLibraryService.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/service/IPmsProductLibraryService.java index a27b71158..d88f46a15 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/service/IPmsProductLibraryService.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/service/IPmsProductLibraryService.java @@ -99,4 +99,6 @@ public interface IPmsProductLibraryService { * @return 结果 */ Boolean uploadProductAsset(ComponentRawInputVo componentRawInputVo); + + GenericsTableDataInfo selectDocList(DocSearchVo docSearchVo); } diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/service/impl/PmsProductLibraryServiceImpl.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/service/impl/PmsProductLibraryServiceImpl.java index 980293d9c..cb53f9b7e 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/service/impl/PmsProductLibraryServiceImpl.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/service/impl/PmsProductLibraryServiceImpl.java @@ -9,6 +9,7 @@ import com.microservices.common.core.utils.StringUtils; import com.microservices.common.core.utils.html.EscapeUtil; import com.microservices.common.core.web.page.GenericsTableDataInfo; import com.microservices.common.security.utils.SecurityUtils; +import com.microservices.pms.document.domain.vo.PmsDocumentVo; import com.microservices.pms.document.service.IPmsDocumentService; import com.microservices.pms.enterprise.domain.PmsEnterprise; import com.microservices.pms.enterprise.service.IPmsEnterpriseService; @@ -189,6 +190,29 @@ public class PmsProductLibraryServiceImpl implements IPmsProductLibraryService { return pmsProductLibraryComponentService.insertRawComponent(componentRawInputVo); } + @Override + public GenericsTableDataInfo selectDocList(DocSearchVo docSearchVo) { + PmsEnterprise pmsEnterprise = pmsEnterpriseService.selectPmsEnterpriseByIdentifier(docSearchVo.getEnterpriseIdentifier()); + GenericsTableDataInfo docTableList = new GenericsTableDataInfo<>(); + GenericsTableDataInfo pmsDocList = pmsDocumentService.selectPmsDocumentVoList(docSearchVo.toPmsDocumentSearchVo(pmsEnterprise.getId())); + if (pmsDocList.getRows() != null && !pmsDocList.getRows().isEmpty()) { + PmsProductLibraryRepositories productRepo = + pmsProductLibraryRepositoriesService.getPmsProductLibraryRepositories(true, docSearchVo.getEnterpriseIdentifier(), docSearchVo.getProductRepoName(), null); + PmsProductLibraryComponent productComponentSearch = new PmsProductLibraryComponent(); + productComponentSearch.setRepoId(productRepo.getId()); + List productComponentList = pmsProductLibraryComponentMapper.selectPmsProductLibraryComponentList(productComponentSearch); + List docList = pmsDocList.getRows().stream().map(pmsDoc -> { + DocResultVo doc = new DocResultVo(pmsDoc); + boolean isChoose = productComponentList.stream().anyMatch(x -> x.getIdentifier().equals(String.valueOf(pmsDoc.getId()))); + doc.setIsChoose(isChoose); + return doc; + }).collect(Collectors.toList()); + docTableList.setRows(docList); + docTableList.setTotal(docList.size()); + } + return docTableList; + } + @Override public int insertPmsProductLibrary(ProductRepositoriesInputVo productRepositoriesInputVo) {