From 36752d1d15bf01e9549bc7b8a1f3a6b6cca91df1 Mon Sep 17 00:00:00 2001 From: dk <1260500659@qq.com> Date: Thu, 7 May 2026 17:07:52 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E4=BA=A7=E5=93=81=E9=9C=80=E6=B1=82):=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=A7=E5=93=81=E9=9C=80=E6=B1=82=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=8A=B6=E6=80=81=E5=92=8C=E7=BB=88=E6=AD=A2=E6=80=81?= =?UTF-8?q?=E5=AD=97=E5=85=B8=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/ProductRequirementController.java | 12 ++++++++ .../ProductRequirementStatusDictRespVO.java | 28 +++++++++++++++++ .../product/ProductRequirementService.java | 16 +++++++++- .../ProductRequirementServiceImpl.java | 30 +++++++++++++++++++ 4 files changed, 85 insertions(+), 1 deletion(-) create mode 100644 rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/controller/admin/product/vo/requirement/ProductRequirementStatusDictRespVO.java diff --git a/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/controller/admin/product/ProductRequirementController.java b/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/controller/admin/product/ProductRequirementController.java index 6bbfe55..14bd567 100644 --- a/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/controller/admin/product/ProductRequirementController.java +++ b/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/controller/admin/product/ProductRequirementController.java @@ -142,4 +142,16 @@ public class ProductRequirementController { return success(requirementService.getRequirementModuleTree(productId)); } + @GetMapping("/status/dict") + @Operation(summary = "获取需求所有状态字典") + public CommonResult> getRequirementStatusDict() { + return success(requirementService.getRequirementStatusDict()); + } + + @GetMapping("/status/dict/terminal") + @Operation(summary = "获取需求终止态状态字典") + public CommonResult> getRequirementTerminalStatusDict() { + return success(requirementService.getRequirementTerminalStatusDict()); + } + } diff --git a/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/controller/admin/product/vo/requirement/ProductRequirementStatusDictRespVO.java b/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/controller/admin/product/vo/requirement/ProductRequirementStatusDictRespVO.java new file mode 100644 index 0000000..92cd3fd --- /dev/null +++ b/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/controller/admin/product/vo/requirement/ProductRequirementStatusDictRespVO.java @@ -0,0 +1,28 @@ +package com.njcn.rdms.module.project.controller.admin.product.vo.requirement; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +/** + * 管理后台 - 产品需求状态字典 Response VO + */ +@Schema(description = "管理后台 - 产品需求状态字典 Response VO") +@Data +public class ProductRequirementStatusDictRespVO { + + @Schema(description = "状态编码", example = "pending_confirm") + private String statusCode; + + @Schema(description = "状态名称", example = "待确认") + private String statusName; + + @Schema(description = "排序值", example = "1") + private Integer sort; + + @Schema(description = "是否初始状态", example = "true") + private Boolean initialFlag; + + @Schema(description = "是否终态", example = "false") + private Boolean terminalFlag; + +} diff --git a/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/service/product/ProductRequirementService.java b/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/service/product/ProductRequirementService.java index 397c97c..81ff997 100644 --- a/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/service/product/ProductRequirementService.java +++ b/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/service/product/ProductRequirementService.java @@ -123,11 +123,25 @@ public interface ProductRequirementService { void deleteRequirementModule(Long moduleId, Long productId); /** - * 获取产品需求模块树 + * 获取需求模块树 * * @param productId 产品编号 * @return 模块树 */ List getRequirementModuleTree(Long productId); + /** + * 获取需求所有状态字典列表 + * + * @return 状态字典列表 + */ + List getRequirementStatusDict(); + + /** + * 获取需求终止态状态字典列表 + * + * @return 终止态状态字典列表 + */ + List getRequirementTerminalStatusDict(); + } diff --git a/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/service/product/ProductRequirementServiceImpl.java b/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/service/product/ProductRequirementServiceImpl.java index 1fa583a..dc4d105 100644 --- a/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/service/product/ProductRequirementServiceImpl.java +++ b/rdms-project/rdms-project-boot/src/main/java/com/njcn/rdms/module/project/service/product/ProductRequirementServiceImpl.java @@ -667,6 +667,36 @@ public class ProductRequirementServiceImpl implements ProductRequirementService return buildModuleTree(modules, 0L); } + @Override + public List getRequirementStatusDict() { + List statusModels = statusModelMapper.selectListByObjectType(REQUIREMENT_OBJECT_TYPE); + return statusModels.stream() + .map(this::buildStatusDictRespVO) + .collect(Collectors.toList()); + } + + @Override + public List getRequirementTerminalStatusDict() { + List statusModels = statusModelMapper.selectListByObjectType(REQUIREMENT_OBJECT_TYPE); + return statusModels.stream() + .filter(ObjectStatusModelDO::getTerminalFlag) + .map(this::buildStatusDictRespVO) + .collect(Collectors.toList()); + } + + /** + * 构建状态字典响应VO + */ + private ProductRequirementStatusDictRespVO buildStatusDictRespVO(ObjectStatusModelDO statusModel) { + ProductRequirementStatusDictRespVO respVO = new ProductRequirementStatusDictRespVO(); + respVO.setStatusCode(statusModel.getStatusCode()); + respVO.setStatusName(statusModel.getStatusName()); + respVO.setSort(statusModel.getSort()); + respVO.setInitialFlag(statusModel.getInitialFlag()); + respVO.setTerminalFlag(statusModel.getTerminalFlag()); + return respVO; + } + // ========== 私有辅助方法 ========== /**