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 291f06da5..fa89c4b71 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 @@ -54,7 +54,7 @@ public class PmsProductLibraryController extends BaseController { // @RequiresPermissions("pms:pmsProductLibraryRepositories:list") @GetMapping("/byRepoName/{repoName}") @ApiOperation(value = "获取产品库详情") - public GenericsAjaxResult getByRepoName(@PathVariable String enterpriseIdentifier, + public GenericsAjaxResult getByRepoName(@PathVariable String enterpriseIdentifier, @ApiParam(value = "产品库标识", required = true) @PathVariable String repoName) { return GenericsAjaxResult.success(pmsProductLibraryService.selectPmsProductLibraryDataByName(enterpriseIdentifier, repoName)); } @@ -67,9 +67,10 @@ public class PmsProductLibraryController extends BaseController { @ApiOperation(value = "查询产品库列表") public GenericsTableDataInfo list( @PathVariable String enterpriseIdentifier, - @ApiParam("模糊搜索产品库标识") String name) { + @ApiParam("产品库搜索条件") PmsProductLibrarySearchVo pmsProductLibrarySearchVo) { + pmsProductLibrarySearchVo.setPmsEnterpriseIdentifier(enterpriseIdentifier); startPage(); - return pmsProductLibraryService.selectPmsProductLibraryPageList(enterpriseIdentifier, name); + return pmsProductLibraryService.selectPmsProductLibraryPageList(pmsProductLibrarySearchVo); } /** diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/PmsProductLibraryRepositories.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/PmsProductLibraryRepositories.java index dedb519bb..67f01027e 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/PmsProductLibraryRepositories.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/PmsProductLibraryRepositories.java @@ -91,6 +91,14 @@ public class PmsProductLibraryRepositories extends BaseEntity { @ApiModelProperty(value = "打包的文件标识") private String packagedFileIdentifier; + + @ApiModelProperty(value = "关联产品标识") + private String productIdentifier; + + + @ApiModelProperty(value = "产品版本号") + private String version; + public RepoAttributesVo getRepoAttributes() { return JSONObject.parseObject(this.attributes, RepoAttributesVo.class); } @@ -102,6 +110,13 @@ public class PmsProductLibraryRepositories extends BaseEntity { return target; } + public PmsProductLibraryDataVo toPmsProductLibraryDataVo() { + PmsProductLibraryDataVo target = new PmsProductLibraryDataVo(); + BeanUtils.copyProperties(this, target); + target.setAttributes(JSONObject.parseObject(attributes)); + return target; + } + public PmsProductLibraryRepositoriesSimpleVo toPmsProductLibraryRepositoriesSimpleVo() { PmsProductLibraryRepositoriesSimpleVo target = new PmsProductLibraryRepositoriesSimpleVo(); BeanUtils.copyProperties(this, target); diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/PmsProductLibraryDataVo.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/PmsProductLibraryDataVo.java new file mode 100644 index 000000000..5e2e5856c --- /dev/null +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/PmsProductLibraryDataVo.java @@ -0,0 +1,59 @@ +package com.microservices.pms.productLibrary.domain.vo; + +import com.alibaba.fastjson2.JSONObject; +import com.microservices.pms.product.domain.PmsProduct; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 制品库数据对象 + * + * @author otto + * @date 2024-07-11 + */ +@Data +@ApiModel("产品库数据对象") +public class PmsProductLibraryDataVo { + + /** + * 制品仓库ID + */ + private Long id; + + @ApiModelProperty(value = "产品版本标识") + private String name; + + @ApiModelProperty(value = "产品版本名称") + private String alias; + + /** + * 制品仓库名称类型 + */ + @ApiModelProperty(value = "制品库类型") + private String type; + + @ApiModelProperty(value = "制品库格式") + private String format; + + /** + * 制品仓库访问路径 + */ + @ApiModelProperty(value = "制品仓库访问路径") + private String url; + + + /** + * 其他属性 + */ + @ApiModelProperty(value = "其他属性") + private JSONObject attributes; + + + @ApiModelProperty(value = "关联产品") + private PmsProduct product; + + + @ApiModelProperty(value = "产品版本号") + private String version; +} diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/PmsProductLibrarySearchVo.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/PmsProductLibrarySearchVo.java new file mode 100644 index 000000000..ac54e8128 --- /dev/null +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/PmsProductLibrarySearchVo.java @@ -0,0 +1,28 @@ +package com.microservices.pms.productLibrary.domain.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 制品库数据对象 + * + * @author otto + * @date 2024-07-11 + */ +@Data +@ApiModel("产品库搜索对象") +public class PmsProductLibrarySearchVo { + + @ApiModelProperty(value = "产品版本标识") + private String name; + + @ApiModelProperty(value = "产品版本名称") + private String alias; + + @ApiModelProperty(value = "关联产品标识") + private String productIdentifier; + + @ApiModelProperty(value = "关联企业标识", hidden = true) + private String pmsEnterpriseIdentifier; +} diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/PmsProductLibrarySimpleVo.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/PmsProductLibrarySimpleVo.java index fc66e978a..1da2cb830 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/PmsProductLibrarySimpleVo.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/PmsProductLibrarySimpleVo.java @@ -1,6 +1,7 @@ package com.microservices.pms.productLibrary.domain.vo; import com.alibaba.fastjson2.JSONObject; +import com.microservices.pms.product.domain.PmsProduct; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -19,4 +20,11 @@ public class PmsProductLibrarySimpleVo extends PmsProductLibraryRepositoriesSimp */ @ApiModelProperty(value = "其他属性") private JSONObject attributes; + + @ApiModelProperty(value = "关联产品") + private PmsProduct product; + + + @ApiModelProperty(value = "产品版本号") + private String version; } diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/ProductRepositoriesInputVo.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/ProductRepositoriesInputVo.java index dad9c8d04..6414f21c1 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/ProductRepositoriesInputVo.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/ProductRepositoriesInputVo.java @@ -17,15 +17,24 @@ import javax.validation.constraints.Pattern; @Data @ApiModel("产品库输入对象") public class ProductRepositoriesInputVo extends ProductRepositoriesOperateVo { - @ApiModelProperty(value = "产品库标识") + @ApiModelProperty(value = "产品库标识", required = true) @NotBlank(message = "产品库标识不能为空") @Pattern(regexp = "^[A-Za-z0-9](?!_)(?!\\.)[A-Za-z0-9_\\-.]*$", message = "产品库标识不符合规范") private String name; - @ApiModelProperty(value = "产品库名称") + @ApiModelProperty(value = "产品库名称", required = true) @NotBlank(message = "产品库名称不能为空") private String alias; + + @ApiModelProperty(value = "关联产品标识", required = true) + @NotBlank(message = "关联产品标识不能为空") + private String productIdentifier; + + @ApiModelProperty(value = "产品版本号", required = true) + @NotBlank(message = "产品版本号不能为空") + private String version; + @Override public NexusHostedRepoInputVo toNexusRepoDataVo() { NexusHostedRepoInputVo target = super.toNexusRepoDataVo(); @@ -38,6 +47,8 @@ public class ProductRepositoriesInputVo extends ProductRepositoriesOperateVo { PmsProductLibraryRepositories target = super.toPmsProductLibraryRepositories(); target.setName(name); target.setAlias(alias); + target.setProductIdentifier(productIdentifier); + target.setVersion(version); return target; } } diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/ProductRepositoriesOperateVo.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/ProductRepositoriesOperateVo.java index 88045a961..38bdc188d 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/ProductRepositoriesOperateVo.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/domain/vo/ProductRepositoriesOperateVo.java @@ -33,6 +33,12 @@ public class ProductRepositoriesOperateVo { @ApiModelProperty(value = "产品库描述") private String describe; + @ApiModelProperty(value = "关联产品标识") + private String productIdentifier; + + @ApiModelProperty(value = "产品版本号") + private String version; + public NexusHostedRepoInputVo toNexusRepoDataVo() { NexusHostedRepoInputVo target = new NexusHostedRepoInputVo(); diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/mapper/PmsProductLibraryRepositoriesMapper.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/mapper/PmsProductLibraryRepositoriesMapper.java index 7094fdb14..acb73b533 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/mapper/PmsProductLibraryRepositoriesMapper.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/productLibrary/mapper/PmsProductLibraryRepositoriesMapper.java @@ -1,6 +1,7 @@ package com.microservices.pms.productLibrary.mapper; import com.microservices.pms.productLibrary.domain.PmsProductLibraryRepositories; +import com.microservices.pms.productLibrary.domain.vo.PmsProductLibrarySearchVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -121,11 +122,10 @@ public interface PmsProductLibraryRepositoriesMapper { /** * 查询产品库列表 * - * @param pmsEnterpriseIdentifier 组织标识 - * @param name 产品库标识 + * @param searchVo 产品库标识 * @return 产品库列表 */ - List selectPmsProductLibraryList(@Param("pmsEnterpriseIdentifier") String pmsEnterpriseIdentifier, @Param("name") String name); + List selectPmsProductLibraryList(PmsProductLibrarySearchVo searchVo); List selectPmsProductLibrarySnapshotPageList(@Param("pmsEnterpriseIdentifier") String pmsEnterpriseIdentifier, @Param("repoName") String repoName, @Param("snapshotName") String snapshotName); 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 af2af5be4..ff9af761b 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 @@ -13,7 +13,7 @@ public interface IPmsProductLibraryService { GenericsTableDataInfo selectComponentList(PmsProductLibraryComponentSearchVo search); - PmsProductLibraryRepositoriesDataVo selectPmsProductLibraryDataByName(String enterpriseIdentifier, String repoName); + PmsProductLibraryDataVo selectPmsProductLibraryDataByName(String enterpriseIdentifier, String repoName); /** * 根据组织标识和名称查找产品库 @@ -28,11 +28,10 @@ public interface IPmsProductLibraryService { /** * 查询产品库列表 * - * @param enterpriseIdentifier 组织标识 - * @param name 产品库标识 + * @param searchVo 产品库标识 * @return 产品库列表 */ - GenericsTableDataInfo selectPmsProductLibraryPageList(String enterpriseIdentifier, String name); + GenericsTableDataInfo selectPmsProductLibraryPageList(PmsProductLibrarySearchVo searchVo); /** 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 0c8dbf5cf..77bda905f 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 @@ -15,6 +15,7 @@ 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; +import com.microservices.pms.product.service.IPmsProductService; import com.microservices.pms.productLibrary.domain.PmsProductLibraryComponent; import com.microservices.pms.productLibrary.domain.PmsProductLibraryRepositories; import com.microservices.pms.productLibrary.domain.ProductLibraryRepositoriesFormatEnum; @@ -43,6 +44,7 @@ import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; @@ -76,6 +78,8 @@ public class PmsProductLibraryServiceImpl implements IPmsProductLibraryService { private IPmsDocumentService pmsDocumentService; @Autowired private IPmsCommonService pmsCommonService; + @Autowired + private IPmsProductService pmsProductService; @Override public GenericsTableDataInfo selectComponentList(PmsProductLibraryComponentSearchVo search) { @@ -105,9 +109,11 @@ public class PmsProductLibraryServiceImpl implements IPmsProductLibraryService { } @Override - public PmsProductLibraryRepositoriesDataVo selectPmsProductLibraryDataByName(String enterpriseIdentifier, String repoName) { + public PmsProductLibraryDataVo selectPmsProductLibraryDataByName(String enterpriseIdentifier, String repoName) { PmsProductLibraryRepositories pmsProductLibraryRepositories = selectPmsProductLibraryByName(enterpriseIdentifier, repoName); - return pmsProductLibraryRepositories.toPmsProductLibraryRepositoriesDataVo(); + PmsProductLibraryDataVo pmsProductLibraryDataVo = pmsProductLibraryRepositories.toPmsProductLibraryDataVo(); + pmsProductLibraryDataVo.setProduct(pmsProductService.selectPmsProductByIdentifier(pmsProductLibraryRepositories.getProductIdentifier())); + return pmsProductLibraryDataVo; } @@ -121,13 +127,23 @@ public class PmsProductLibraryServiceImpl implements IPmsProductLibraryService { } @Override - public GenericsTableDataInfo selectPmsProductLibraryPageList(String enterpriseIdentifier, String name) { - return PageUtils.toPage(pmsProductLibraryRepositoriesMapper.selectPmsProductLibraryList(enterpriseIdentifier, name), this::toPmsProductLibrarySimpleVo); + public GenericsTableDataInfo selectPmsProductLibraryPageList(PmsProductLibrarySearchVo searchVo) { + HashMap hashMap = new HashMap<>(); + return PageUtils.toPage(pmsProductLibraryRepositoriesMapper.selectPmsProductLibraryList(searchVo), x -> toPmsProductLibrarySimpleVo(x, hashMap)); } - private PmsProductLibrarySimpleVo toPmsProductLibrarySimpleVo(PmsProductLibraryRepositories pmsProductLibraryRepositories) { + private PmsProductLibrarySimpleVo toPmsProductLibrarySimpleVo(PmsProductLibraryRepositories pmsProductLibraryRepositories, HashMap hashMap) { PmsProductLibrarySimpleVo pmsProductLibrarySimpleVo = pmsProductLibraryRepositories.toPmsProductLibrarySimpleVo(); pmsCommonService.setBaseEntityVo(pmsProductLibrarySimpleVo, pmsProductLibraryRepositories); + if (StringUtils.isNotEmpty(pmsProductLibraryRepositories.getProductIdentifier())) { + pmsProductLibrarySimpleVo.setProduct( + PmsUtils.getSelectObjectInCache( + hashMap + , x -> pmsProductService.selectPmsProductByIdentifier(x) + , pmsProductLibraryRepositories.getProductIdentifier() + ) + ); + } return pmsProductLibrarySimpleVo; } diff --git a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProductLibraryRepositoriesMapper.xml b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProductLibraryRepositoriesMapper.xml index c992f9034..1ddf7b805 100644 --- a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProductLibraryRepositoriesMapper.xml +++ b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProductLibraryRepositoriesMapper.xml @@ -22,6 +22,8 @@ + + @@ -41,6 +43,8 @@ pplr.snapshot_name, pplr.format, pplr.packaged_file_identifier, + pplr.product_identifier, + pplr.version, pe.enterprise_identifier from pms_product_library_repositories pplr left join pms_enterprise as pe on pplr.pms_enterprise_id = pe.id @@ -53,6 +57,9 @@ and pplr.name like concat('%', #{name}, '%') and pplr.type = #{type} and pplr.format = #{format} + and pplr.product_identifier = + #{productIdentifier} + and pplr.url = #{url} and pplr.dept_id = #{deptId} and pplr.pms_enterprise_id = #{pmsEnterpriseId} @@ -65,7 +72,11 @@