feat(project): 个人事项转项目任务后触发进度重算及对象域权限控制
- 个人事项转为项目根任务后调用项目进度重算功能 - 为产品项目列表查询接口增加对象域鉴权注解 - 引入ProjectService依赖注入以支持进度重算调用 - 导入ProductObjectConstants常量用于对象域权限控制
This commit is contained in:
@@ -30,6 +30,7 @@ import com.njcn.rdms.module.project.dal.mysql.status.ObjectStatusTransitionMappe
|
||||
import com.njcn.rdms.module.project.enums.ErrorCodeConstants;
|
||||
import com.njcn.rdms.module.project.framework.attachment.AttachmentFileIdResolver;
|
||||
import com.njcn.rdms.module.project.framework.attachment.AttachmentValidator;
|
||||
import com.njcn.rdms.module.project.service.project.ProjectService;
|
||||
import com.njcn.rdms.module.project.service.status.StatusActionTextResolver;
|
||||
import com.njcn.rdms.module.system.api.user.AdminUserApi;
|
||||
import com.njcn.rdms.module.system.api.user.dto.AdminUserRespDTO;
|
||||
@@ -86,6 +87,8 @@ public class PersonalItemServiceImpl implements PersonalItemService {
|
||||
private AdminUserApi adminUserApi;
|
||||
@Resource
|
||||
private StatusActionTextResolver statusActionTextResolver;
|
||||
@Resource
|
||||
private ProjectService projectService;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@@ -359,6 +362,8 @@ public class PersonalItemServiceImpl implements PersonalItemService {
|
||||
writeAuditLog(item, ObjectActivityConstants.PERSONAL_ITEM_ACTION_DELETE,
|
||||
item.getStatusCode(), null, null, "关联执行后转为项目任务");
|
||||
}
|
||||
// 个人事项转为项目根任务后,项目根任务均值已变,需下推一次项目进度重算(与任务侧增删改入口口径一致)
|
||||
projectService.recalcProgress(projectId);
|
||||
}
|
||||
|
||||
private ProjectTaskDO buildProjectTaskFromItem(PersonalItemDO item, Long projectId, Long executionId) {
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.njcn.rdms.framework.common.util.object.BeanUtils;
|
||||
import com.njcn.rdms.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.njcn.rdms.module.project.constant.ObjectActivityConstants;
|
||||
import com.njcn.rdms.module.project.constant.ObjectRoleConstants;
|
||||
import com.njcn.rdms.module.project.constant.ProductObjectConstants;
|
||||
import com.njcn.rdms.module.project.constant.ProjectObjectConstants;
|
||||
import com.njcn.rdms.module.project.controller.admin.project.vo.member.ProjectMemberSaveReqVO;
|
||||
import com.njcn.rdms.module.project.controller.admin.project.vo.project.ProjectContextNavRespVO;
|
||||
@@ -374,6 +375,9 @@ class ProjectServiceImpl implements ProjectService {
|
||||
}
|
||||
|
||||
@Override
|
||||
// 对象域鉴权:是该产品的显式成员即可拿"实现项目"派发下拉数据(memberOnly,不查权限码、不依赖 DB 权限配置)
|
||||
@com.njcn.rdms.module.project.framework.security.annotation.CheckObjectPermission(objectType = ProductObjectConstants.OBJECT_TYPE,
|
||||
objectId = "#productId", memberOnly = true)
|
||||
public List<ProjectRespVO> getProjectListByProductId(Long productId) {
|
||||
validateProductUsable(productId);
|
||||
return projectMapper.selectListByProductId(productId).stream()
|
||||
|
||||
Reference in New Issue
Block a user