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}