fix(产品需求): 修复产品需求使用状态和终止态字典的问题

This commit is contained in:
dk
2026-05-07 17:07:52 +08:00
parent 73360d70ce
commit 36752d1d15
4 changed files with 85 additions and 1 deletions

View File

@@ -142,4 +142,16 @@ public class ProductRequirementController {
return success(requirementService.getRequirementModuleTree(productId));
}
@GetMapping("/status/dict")
@Operation(summary = "获取需求所有状态字典")
public CommonResult<List<ProductRequirementStatusDictRespVO>> getRequirementStatusDict() {
return success(requirementService.getRequirementStatusDict());
}
@GetMapping("/status/dict/terminal")
@Operation(summary = "获取需求终止态状态字典")
public CommonResult<List<ProductRequirementStatusDictRespVO>> getRequirementTerminalStatusDict() {
return success(requirementService.getRequirementTerminalStatusDict());
}
}

View File

@@ -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;
}

View File

@@ -123,11 +123,25 @@ public interface ProductRequirementService {
void deleteRequirementModule(Long moduleId, Long productId);
/**
* 获取产品需求模块树
* 获取需求模块树
*
* @param productId 产品编号
* @return 模块树
*/
List<ProductRequirementModuleRespVO> getRequirementModuleTree(Long productId);
/**
* 获取需求所有状态字典列表
*
* @return 状态字典列表
*/
List<ProductRequirementStatusDictRespVO> getRequirementStatusDict();
/**
* 获取需求终止态状态字典列表
*
* @return 终止态状态字典列表
*/
List<ProductRequirementStatusDictRespVO> getRequirementTerminalStatusDict();
}

View File

@@ -667,6 +667,36 @@ public class ProductRequirementServiceImpl implements ProductRequirementService
return buildModuleTree(modules, 0L);
}
@Override
public List<ProductRequirementStatusDictRespVO> getRequirementStatusDict() {
List<ObjectStatusModelDO> statusModels = statusModelMapper.selectListByObjectType(REQUIREMENT_OBJECT_TYPE);
return statusModels.stream()
.map(this::buildStatusDictRespVO)
.collect(Collectors.toList());
}
@Override
public List<ProductRequirementStatusDictRespVO> getRequirementTerminalStatusDict() {
List<ObjectStatusModelDO> 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;
}
// ========== 私有辅助方法 ==========
/**