diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/controller/PmsProductModuleController.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/controller/PmsProductModuleController.java index 5822085d4..59afde017 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/controller/PmsProductModuleController.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/controller/PmsProductModuleController.java @@ -108,4 +108,15 @@ public class PmsProductModuleController extends BaseController { return toAjax(pmsProductModuleService.deletePmsProductModuleById(id)); } + + /** + * 初始化固定模块 + */ + @RequiresPermissions("pms:pmsProductModule:manage") + @Log(title = "产品模块", businessType = BusinessType.UPDATE) + @PutMapping("/{productIdentifier}/initModule") + @ApiOperation(value = "初始化固定模块") + public AjaxResult initProductModule(@PathVariable String productIdentifier) { + return toAjax(pmsProductModuleService.initProductModule(productIdentifier)); + } } diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/PmsProductModule.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/PmsProductModule.java index c80ac725a..705a77efe 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/PmsProductModule.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/PmsProductModule.java @@ -83,6 +83,9 @@ public class PmsProductModule extends BaseEntity @ApiModelProperty(value = "关联项目ID") @JsonInclude(JsonInclude.Include.NON_EMPTY) private Long pmsProjectId; + + @ApiModelProperty(value = "是否为固定模块") + private Boolean isFixedModule; /** * 子模块 */ diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/PmsProductModuleDataVo.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/PmsProductModuleDataVo.java index 85cd8cb0f..5db334057 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/PmsProductModuleDataVo.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/PmsProductModuleDataVo.java @@ -31,4 +31,7 @@ public class PmsProductModuleDataVo /** 关联产品ID */ @ApiModelProperty(value = "关联产品ID") private String pmsProductIdentifier; + + @ApiModelProperty(value = "是否为固定模块") + private Boolean isFixedModule; } diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/IPmsProductModuleService.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/IPmsProductModuleService.java index ba3f2d8d6..033baaaea 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/IPmsProductModuleService.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/IPmsProductModuleService.java @@ -84,8 +84,10 @@ public interface IPmsProductModuleService /** * 同步产品模块到测试用例模块 * - * @param testcaseId 测试用例ID + * @param projectId 测试用例ID * @return 是否成功 */ boolean syncByProductModule(Long projectId); + + int initProductModule(String productIdentifier); } diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/impl/PmsProductModuleServiceImpl.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/impl/PmsProductModuleServiceImpl.java index 7d1e1df11..d0a44d9e5 100644 --- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/impl/PmsProductModuleServiceImpl.java +++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/impl/PmsProductModuleServiceImpl.java @@ -27,7 +27,10 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.*; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -129,14 +132,16 @@ public class PmsProductModuleServiceImpl implements IPmsProductModuleService } checkParentModule(pmsProductModule, name); checkNameDuplicates(pmsProductModule); - String currentUsername = SecurityUtils.getUsername(); - Date now = DateUtils.getNowDate(); - pmsProductModule.setCreateBy(currentUsername); - pmsProductModule.setCreateTime(now); - pmsProductModuleMapper.insertPmsProductModule(pmsProductModule); + insertModuleDatabase(pmsProductModule); return pmsProductModule.getId(); } + private int insertModuleDatabase(PmsProductModule pmsProductModule) { + pmsProductModule.setCreateBy(SecurityUtils.getUsername()); + pmsProductModule.setCreateTime(DateUtils.getNowDate()); + return pmsProductModuleMapper.insertPmsProductModule(pmsProductModule); + } + /** * 校验父模块是否正确 */ @@ -383,6 +388,45 @@ public class PmsProductModuleServiceImpl implements IPmsProductModuleService return true; } + @Override + public int initProductModule(String productIdentifier) { + PmsProduct pmsProduct = pmsProductService.selectPmsProductByIdentifier(productIdentifier); + PmsProductModule pmsProductModule = new PmsProductModule(); + pmsProductModule.setPmsProductIdentifier(pmsProduct.getProductIdentifier()); + pmsProductModule.setIsFixedModule(true); + pmsProductModule.setType(PmsConstants.PRODUCT_TAG_AND_MODULE_TYPE); + + int success = 0; + + pmsProductModule.setModuleName("质量需求"); + success += insertModuleDatabase(pmsProductModule); + pmsProductModule.setParentId(pmsProductModule.getId()); + pmsProductModule.setModuleName("适应性"); + success += insertModuleDatabase(pmsProductModule); + pmsProductModule.setModuleName("保密性"); + success += insertModuleDatabase(pmsProductModule); + pmsProductModule.setModuleName("安全性"); + success += insertModuleDatabase(pmsProductModule); + pmsProductModule.setModuleName("环境适应性"); + success += insertModuleDatabase(pmsProductModule); + pmsProductModule.setModuleName("可靠性"); + success += insertModuleDatabase(pmsProductModule); + pmsProductModule.setModuleName("可维护性"); + success += insertModuleDatabase(pmsProductModule); + pmsProductModule.setModuleName("可测试性"); + success += insertModuleDatabase(pmsProductModule); + + pmsProductModule.setParentId(null); + pmsProductModule.setModuleName("计算机资源需求"); + success += insertModuleDatabase(pmsProductModule); + pmsProductModule.setParentId(pmsProductModule.getId()); + pmsProductModule.setModuleName("硬件资源需求"); + success += insertModuleDatabase(pmsProductModule); + pmsProductModule.setModuleName("软件资源需求"); + success += insertModuleDatabase(pmsProductModule); + return success; + } + /** * 通过递归复制树 * diff --git a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProductModuleMapper.xml b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProductModuleMapper.xml index 2cc19f1c9..30cec42a6 100644 --- a/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProductModuleMapper.xml +++ b/microservices-modules/microservices-modules-pms/src/main/resources/mapper/pms/PmsProductModuleMapper.xml @@ -18,6 +18,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -32,7 +33,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" create_by, del_flag, type, - pms_project_id + pms_project_id, + is_fixed_module from pms_product_module @@ -49,6 +51,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" , m.del_flag , m.type , m.pms_project_id + , m.is_fixed_module ,( SELECT COUNT(*) FROM pms_product_requirement r @@ -203,6 +206,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" del_flag, type, pms_project_id, + is_fixed_module, #{moduleName}, @@ -216,6 +220,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{delFlag}, #{type}, #{pmsProjectId}, + #{isFixedModule}, @@ -233,6 +238,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" del_flag = #{delFlag}, type = #{type}, pms_project_id = #{pmsProjectId}, + is_fixed_module = #{isFixedModule}, where id = #{id}