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) {