From f3ce62e437edd8ee5b246497cd99d4048fc3319f Mon Sep 17 00:00:00 2001
From: OTTO <731554297@qq.com>
Date: Wed, 18 Dec 2024 11:21:33 +0800
Subject: [PATCH 1/4] =?UTF-8?q?feat(=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86?=
=?UTF-8?q?=E4=BA=A7=E5=93=81=E9=9C=80=E6=B1=82=E9=87=8D=E6=9E=84):=20?=
=?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=A7=E5=93=81=E9=9C=80=E6=B1=82=E8=A7=84?=
=?UTF-8?q?=E6=A0=BC=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
产品需求模块增加固定模块
Signed-off-by: OTTO <731554297@qq.com>
---
.../PmsProductModuleController.java | 11 ++++
.../pms/product/domain/PmsProductModule.java | 3 +
.../domain/vo/PmsProductModuleDataVo.java | 3 +
.../service/IPmsProductModuleService.java | 4 +-
.../impl/PmsProductModuleServiceImpl.java | 56 +++++++++++++++++--
.../mapper/pms/PmsProductModuleMapper.xml | 8 ++-
6 files changed, 77 insertions(+), 8 deletions(-)
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}
From 76f8f051471ebeda104e51c636e9209aca5f6cf7 Mon Sep 17 00:00:00 2001
From: OTTO <731554297@qq.com>
Date: Wed, 18 Dec 2024 11:54:44 +0800
Subject: [PATCH 2/4] =?UTF-8?q?feat(=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86?=
=?UTF-8?q?=E4=BA=A7=E5=93=81=E9=9C=80=E6=B1=82=E9=87=8D=E6=9E=84):=20?=
=?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=A7=E5=93=81=E9=9C=80=E6=B1=82=E8=A7=84?=
=?UTF-8?q?=E6=A0=BC=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
查询模块树时设置固定模块值
Signed-off-by: OTTO <731554297@qq.com>
---
.../microservices/pms/product/domain/vo/TreeSelect.java | 9 +++++++++
.../service/impl/PmsProductModuleServiceImpl.java | 1 +
2 files changed, 10 insertions(+)
diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/TreeSelect.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/TreeSelect.java
index 8e62c804b..2af1838db 100644
--- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/TreeSelect.java
+++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/domain/vo/TreeSelect.java
@@ -32,6 +32,11 @@ public class TreeSelect implements Serializable {
/** 层级 */
private Integer level;
+ /**
+ * 层级
+ */
+ private Boolean isFixedModule = true;
+
/** 子节点 */
@JsonInclude(JsonInclude.Include.NON_EMPTY)
private List children;
@@ -51,5 +56,9 @@ public class TreeSelect implements Serializable {
this.children = pmsProductModule.getChildren().stream().map(x->new TreeSelect(x,this.level+1)).collect(Collectors.toList());
this.isLeaf= this.children.isEmpty();
+ if (pmsProductModule.getIsFixedModule() != null) {
+ this.isFixedModule = pmsProductModule.getIsFixedModule();
+ }
+
}
}
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 d0a44d9e5..36fcbda45 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
@@ -319,6 +319,7 @@ public class PmsProductModuleServiceImpl implements IPmsProductModuleService
allPmsProductModule.setId(0L);
allPmsProductModule.setModuleName(ALL_MODULE);
allPmsProductModule.setNodeDataCount(allNodeDataCount);
+ allPmsProductModule.setIsFixedModule(pmsProductModule.getIsFixedModule());
moduleList.add(allPmsProductModule);
// 构建无所属模块
PmsProductModule noPmsProductModule = new PmsProductModule();
From 5ae947073bfbde6e94fa556684b1bf1828fb1358 Mon Sep 17 00:00:00 2001
From: OTTO <731554297@qq.com>
Date: Wed, 18 Dec 2024 14:00:50 +0800
Subject: [PATCH 3/4] =?UTF-8?q?feat(=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86?=
=?UTF-8?q?=E4=BA=A7=E5=93=81=E9=9C=80=E6=B1=82=E9=87=8D=E6=9E=84):=20?=
=?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=A7=E5=93=81=E9=9C=80=E6=B1=82=E8=A7=84?=
=?UTF-8?q?=E6=A0=BC=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
固定模块不允许编辑不允许删除
Signed-off-by: OTTO <731554297@qq.com>
---
.../controller/PmsProductModuleController.java | 11 -----------
.../service/impl/PmsProductModuleServiceImpl.java | 7 ++++++-
2 files changed, 6 insertions(+), 12 deletions(-)
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 59afde017..5822085d4 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,15 +108,4 @@ 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/service/impl/PmsProductModuleServiceImpl.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/impl/PmsProductModuleServiceImpl.java
index 36fcbda45..215f0b336 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
@@ -173,6 +173,9 @@ public class PmsProductModuleServiceImpl implements IPmsProductModuleService
throw new ServiceException("[%s]不允许进行操作", NO_MODULE);
}
PmsProductModule oldPmsProductModule = selectPmsProductModuleById(pmsProductModule.getId(), true);
+ if (oldPmsProductModule.getIsFixedModule()) {
+ throw new ServiceException("固定模块不允许进行操作");
+ }
String name;
// 当type为1时则取产品需求数量、为2时取测试用例数量
if (PmsConstants.PRODUCT_TAG_AND_MODULE_TYPE.equals(oldPmsProductModule.getType())) {
@@ -221,7 +224,9 @@ public class PmsProductModuleServiceImpl implements IPmsProductModuleService
public int deletePmsProductModuleById(Long id)
{
PmsProductModule oldPmsProductModule = selectPmsProductModuleById(id, true);
-
+ if (oldPmsProductModule.getIsFixedModule()) {
+ throw new ServiceException("固定模块不允许进行操作");
+ }
PmsProductModule pmsProductModuleSearch=new PmsProductModule();
pmsProductModuleSearch.setParentId(id);
List pmsProductModuleChildList=pmsProductModuleMapper.selectPmsProductModuleList(pmsProductModuleSearch);
From 3bd42cd20ee82d7a0a914e5e66fbefa72d8e348f Mon Sep 17 00:00:00 2001
From: OTTO <731554297@qq.com>
Date: Wed, 18 Dec 2024 14:04:43 +0800
Subject: [PATCH 4/4] =?UTF-8?q?feat(=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86?=
=?UTF-8?q?=E4=BA=A7=E5=93=81=E9=9C=80=E6=B1=82=E9=87=8D=E6=9E=84):=20?=
=?UTF-8?q?=E5=AE=8C=E5=96=84=E4=BA=A7=E5=93=81=E9=9C=80=E6=B1=82=E8=A7=84?=
=?UTF-8?q?=E6=A0=BC=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
新建产品时初始化固定模块
Signed-off-by: OTTO <731554297@qq.com>
---
.../pms/product/service/impl/PmsProductServiceImpl.java | 3 +++
1 file changed, 3 insertions(+)
diff --git a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/impl/PmsProductServiceImpl.java b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/impl/PmsProductServiceImpl.java
index 867554cd8..27db70ac1 100644
--- a/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/impl/PmsProductServiceImpl.java
+++ b/microservices-modules/microservices-modules-pms/src/main/java/com/microservices/pms/product/service/impl/PmsProductServiceImpl.java
@@ -135,6 +135,9 @@ public class PmsProductServiceImpl implements IPmsProductService
pmsProduct.setDeptId(pmsEnterprise.getDeptId());
pmsProductMapper.insertPmsProduct(pmsProduct);
+
+ // 新建产品时初始化固定模块
+ pmsProductModuleService.initProductModule(pmsProduct.getProductIdentifier());
return pmsProduct.getProductIdentifier();
}