diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionInfoController.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionInfoController.java index b89e8e07..4206cbc5 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionInfoController.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/controller/InspectionInfoController.java @@ -267,4 +267,18 @@ public class InspectionInfoController extends BaseController { public CommonResult isExamine(){ return success(inspectionInfoService.isExamine()); } + + /** + * 获取某个工单针对当前操作用户,某个状态的项目们 + * + * @author 小李 + * @date 10:48 2024/12/11 + * @param id 工单ID + * @param status 状态 + **/ + @GetMapping("/getWorkNodeByIdAndNow") + public CommonResult getWorkNodeByIdAndNow(Long id, String status){ + return success(inspectionInfoService.getWorkNodeByIdAndNow(id, status)); + } + } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionInfoService.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionInfoService.java index c71c609d..64f922eb 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionInfoService.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/IInspectionInfoService.java @@ -109,4 +109,14 @@ public interface IInspectionInfoService extends IService * @return */ Boolean isExamine(); + + /** + * 获取某个工单针对当前操作用户,某个状态的项目们 + * + * @author 小李 + * @date 10:48 2024/12/11 + * @param id 工单ID + * @param status 状态 + **/ + Map getWorkNodeByIdAndNow(Long id, String status); } diff --git a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionInfoServiceImpl.java b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionInfoServiceImpl.java index 0d99bf6a..c848ddac 100644 --- a/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionInfoServiceImpl.java +++ b/dl-module-inspection/src/main/java/cn/iocoder/yudao/module/inspection/service/impl/InspectionInfoServiceImpl.java @@ -3,10 +3,7 @@ package cn.iocoder.yudao.module.inspection.service.impl; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import cn.hutool.core.collection.CollUtil; @@ -57,6 +54,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import static cn.iocoder.yudao.framework.common.config.CommonStr.USER_TYPE_CUS; +import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception0; /** * 【请填写功能名称】Service业务层处理 @@ -99,6 +97,9 @@ public class InspectionInfoServiceImpl extends ServiceImpl getWorkNodeByIdAndNow(Long id, String status){ + Long userId = SecurityFrameworkUtils.getLoginUserId(); + List roles = roleService.getByUserId(userId); + if (CollUtil.isEmpty(roles)){ + throw exception0(500, "查询角色为空"); + } + List roleIds = roles.stream().map(UserRoleDO::getRoleId).collect(Collectors.toList()); + List workNodes = workNodeService.list(new LambdaQueryWrapper() + .and(i -> + i.eq(InspectionWorkNode::getInspectionInfoId, id) + .in(InspectionWorkNode::getRoleId, roleIds) + .eq(InspectionWorkNode::getStatus, status) + )); + if (CollUtil.isEmpty(workNodes)){ + throw exception0(500, "查询节点为空"); + } + List projectIds = workNodes.stream().map(InspectionWorkNode::getProjectId).collect(Collectors.toList()); + if (CollUtil.isEmpty(projectIds)){ + throw exception0(500, "查询项目时为空"); + } + List projects = projectService.listByIds(projectIds); + if (CollUtil.isEmpty(projects)){ + throw exception0(500, "查询项目时为空"); + } + Map map = projects.stream().collect(Collectors.toMap(DlInspectionProject::getId, DlInspectionProject::getProjectName)); + Map result = new HashMap<>(); + workNodes.forEach(item -> { + result.put(item.getId(), map.get(item.getProjectId())); + }); + return result; + } }