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