feat(制品库功能完善): 产品库不提供直接上传产品操作,文档需要从知识库中选取

新增接口:查询知识库文档列表
1. 调用知识库文档列表查询接口获取文档
2. 获取产品库下所有制品,检查文档id在产品库中是否已存在,若存在则设置isChoose为true
This commit is contained in:
OTTO 2024-08-26 16:24:08 +08:00
parent 248102b5a4
commit b316db25f3
5 changed files with 130 additions and 2 deletions

View File

@ -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<NexusComponentResultVo<List<NexusResultDataVo>>> 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<List<NexusResultDataVo>> result =
pmsProductLibraryService.selectPmsProductLibraryKeyComponentList(enterpriseIdentifier, componentSearchVo);
return success(result);
return genericsSuccess(result);
}
/**
* 获取制品库下关键制品排除自动生成的无关制品
*/
// @RequiresPermissions("pms:pmsProductLibraryComponent:list")
@GetMapping("/{productRepoName}/docList/")
@ApiOperation(value = "查询知识库文档列表")
public GenericsTableDataInfo<DocResultVo> 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);
}
/**

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -99,4 +99,6 @@ public interface IPmsProductLibraryService {
* @return 结果
*/
Boolean uploadProductAsset(ComponentRawInputVo componentRawInputVo);
GenericsTableDataInfo<DocResultVo> selectDocList(DocSearchVo docSearchVo);
}

View File

@ -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<DocResultVo> selectDocList(DocSearchVo docSearchVo) {
PmsEnterprise pmsEnterprise = pmsEnterpriseService.selectPmsEnterpriseByIdentifier(docSearchVo.getEnterpriseIdentifier());
GenericsTableDataInfo<DocResultVo> docTableList = new GenericsTableDataInfo<>();
GenericsTableDataInfo<PmsDocumentVo> 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<PmsProductLibraryComponent> productComponentList = pmsProductLibraryComponentMapper.selectPmsProductLibraryComponentList(productComponentSearch);
List<DocResultVo> 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) {