feat(项目需求): 开发项目需求。

This commit is contained in:
dk
2026-05-13 20:54:17 +08:00
parent 4f6b209c3d
commit 43d8be724e
3 changed files with 47 additions and 1 deletions

View File

@@ -55,6 +55,11 @@ public final class ProjectObjectConstants {
*/
public static final String PERMISSION_STATUS = "project:project:status";
/**
* 项目拆分权限码。
*/
public static final String PERMISSION_SPLIT = "project:project:split";
/**
* 项目删除权限码。
*/

View File

@@ -23,6 +23,7 @@ import com.njcn.rdms.module.project.dal.dataobject.audit.BizAuditLogDO;
import com.njcn.rdms.module.project.dal.dataobject.member.UserObjectRoleDO;
import com.njcn.rdms.module.project.dal.dataobject.product.ProductDO;
import com.njcn.rdms.module.project.dal.dataobject.project.ProjectDO;
import com.njcn.rdms.module.project.dal.dataobject.project.ProjectRequirementModuleDO;
import com.njcn.rdms.module.project.dal.dataobject.project.ProjectStatusLogDO;
import com.njcn.rdms.module.project.dal.dataobject.status.ObjectStatusModelDO;
import com.njcn.rdms.module.project.dal.dataobject.status.ObjectStatusTransitionDO;
@@ -30,6 +31,7 @@ import com.njcn.rdms.module.project.dal.mysql.audit.BizAuditLogMapper;
import com.njcn.rdms.module.project.dal.mysql.member.UserObjectRoleMapper;
import com.njcn.rdms.module.project.dal.mysql.product.ProductMapper;
import com.njcn.rdms.module.project.dal.mysql.project.ProjectMapper;
import com.njcn.rdms.module.project.dal.mysql.project.ProjectRequirementModuleMapper;
import com.njcn.rdms.module.project.dal.mysql.project.ProjectStatusLogMapper;
import com.njcn.rdms.module.project.dal.mysql.status.ObjectStatusModelMapper;
import com.njcn.rdms.module.project.dal.mysql.status.ObjectStatusTransitionMapper;
@@ -93,6 +95,8 @@ public class ProjectServiceImpl implements ProjectService {
private AdminUserApi adminUserApi;
@Resource
private DictDataApi dictDataApi;
@Resource
private ProjectRequirementModuleMapper projectRequirementModuleMapper;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -123,6 +127,7 @@ public class ProjectServiceImpl implements ProjectService {
projectMapper.insert(project);
initManagerMemberRelation(project);
initDefaultRequirementModule(project);
writeBizAuditLog(project, ObjectActivityConstants.PROJECT_ACTION_CREATE, null, initialStatus,
buildProjectFieldChanges(null, project), null);
return project.getId();
@@ -250,6 +255,19 @@ public class ProjectServiceImpl implements ProjectService {
return product == null ? null : product.getName();
}
/**
* 项目创建后自动初始化“全部需求”根模块,作为该项目需求树的唯一根节点。
*/
private void initDefaultRequirementModule(ProjectDO project) {
ProjectRequirementModuleDO module = new ProjectRequirementModuleDO();
module.setParentId(0L);
module.setProjectId(project.getId());
module.setModuleName("全部需求");
module.setRemark("自动创建的模块");
module.setSort(0);
projectRequirementModuleMapper.insert(module);
}
private String getManagerNickname(Long managerUserId) {
if (managerUserId == null) {
return null;