diff --git a/xinnengyuan/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/UserService.java b/xinnengyuan/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/UserService.java index 4903c386..631cb8e0 100644 --- a/xinnengyuan/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/UserService.java +++ b/xinnengyuan/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/UserService.java @@ -74,7 +74,7 @@ public interface UserService { * @param roleIds 角色ids * @return 用户 */ - List selectUsersByRoleIds(List roleIds); + List selectUsersByRoleIds(List roleIds,Long projectId); /** * 通过部门ID查询用户 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusMrpBaseController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusMrpBaseController.java index 2ff36d2c..007d50c3 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusMrpBaseController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/controller/BusMrpBaseController.java @@ -133,10 +133,8 @@ public class BusMrpBaseController extends BaseController { * 获取剩余量 */ @GetMapping("/remaining") - public R remaining(Long suppliespriceId) { - BigDecimal remaining = busMrpBaseService.remaining(suppliespriceId); - BusBillofquantities byId = busBillofquantitiesService.getById(suppliespriceId); - return R.ok(byId.getQuantity().subtract(remaining).intValue()); + public R remaining(Long suppliespriceId,Long mrpBaseId) { + return R.ok(busMrpBaseService.remaining(suppliespriceId,mrpBaseId)); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusMaterialbatchdemandplanVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusMaterialbatchdemandplanVo.java index 893093a6..881d8776 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusMaterialbatchdemandplanVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/domain/vo/BusMaterialbatchdemandplanVo.java @@ -1,5 +1,6 @@ package org.dromara.cailiaoshebei.domain.vo; +import java.math.BigDecimal; import java.time.LocalDate; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; @@ -43,6 +44,11 @@ public class BusMaterialbatchdemandplanVo implements Serializable { @ExcelProperty(value = "批次ID") private String batchId; + /** + * 批次号 + */ + private String batchNumber; + /** * 基础信息ID */ @@ -125,4 +131,9 @@ public class BusMaterialbatchdemandplanVo implements Serializable { */ private String qs; + /** + * 创建时间 + */ + private BigDecimal remaining; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusMrpBaseService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusMrpBaseService.java index a70d5fc4..0d757edd 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusMrpBaseService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/IBusMrpBaseService.java @@ -87,5 +87,5 @@ public interface IBusMrpBaseService extends IService{ /** * 获取物资已有数量 */ - BigDecimal remaining(Long suppliespriceId); + BigDecimal remaining(Long suppliespriceId,Long mrpBaseId); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusMrpBaseServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusMrpBaseServiceImpl.java index 53df7145..3f337c29 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusMrpBaseServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/cailiaoshebei/service/impl/BusMrpBaseServiceImpl.java @@ -63,6 +63,7 @@ public class BusMrpBaseServiceImpl extends ServiceImpl voList = planservice.queryList(planBo); + for (BusMaterialbatchdemandplanVo vo : voList) { + BigDecimal remaining = remaining(vo.getSuppliespriceId(), id); + vo.setRemaining(remaining); + } busMrpVo.setMrpBaseBo(busMrpBaseVo); busMrpVo.setPlanList(voList); @@ -266,20 +271,22 @@ public class BusMrpBaseServiceImpl extends ServiceImpl existingList = planservice.list( Wrappers.lambdaQuery(BusMaterialbatchdemandplan.class) - .eq(BusMaterialbatchdemandplan::getSuppliespriceId, suppliespriceId) // 排除当前批次 + .eq(BusMaterialbatchdemandplan::getSuppliespriceId, suppliespriceId) + .ne(mrpBaseId!=null,BusMaterialbatchdemandplan::getMrpBaseId, mrpBaseId)// 排除当前批次 ); if(CollectionUtil.isEmpty(existingList)){ return BigDecimal.ZERO; } - - return existingList.stream() + BigDecimal reduce = existingList.stream() .map(BusMaterialbatchdemandplan::getDemandQuantity) .reduce(BigDecimal.ZERO, BigDecimal::add); + + return byId.getQuantity().subtract(reduce); } /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/controller/BusDrawingreviewReceiptsController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/controller/BusDrawingreviewReceiptsController.java index 9d6d713e..021f6cd9 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/controller/BusDrawingreviewReceiptsController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/controller/BusDrawingreviewReceiptsController.java @@ -107,4 +107,6 @@ public class BusDrawingreviewReceiptsController extends BaseController { return toAjax(busDrawingreviewReceiptsService.deleteWithValidByIds(List.of(ids), true)); } + + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/BusDrawingreviewReceipts.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/BusDrawingreviewReceipts.java index 65b4689d..bdc45ae6 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/BusDrawingreviewReceipts.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/BusDrawingreviewReceipts.java @@ -159,4 +159,9 @@ public class BusDrawingreviewReceipts extends BaseEntity { private String finalState; + private Long approveId; + + private String approve; + + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/bo/BusDrawingreviewReceiptsBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/bo/BusDrawingreviewReceiptsBo.java index 3fd0e99a..c073c89d 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/bo/BusDrawingreviewReceiptsBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/domain/bo/BusDrawingreviewReceiptsBo.java @@ -151,4 +151,8 @@ public class BusDrawingreviewReceiptsBo extends BaseEntity { private String finalState; + private Long approveId; + + private String approve; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/DesVolumeFileServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/DesVolumeFileServiceImpl.java index 3a78175e..cf63792f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/DesVolumeFileServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/design/service/impl/DesVolumeFileServiceImpl.java @@ -429,6 +429,11 @@ public class DesVolumeFileServiceImpl extends ServiceImpllambdaUpdate() + .set(DesVolumeCatalog::getDesignState, "1") + .eq(DesVolumeCatalog::getDesign, desVolumeFile.getVolumeCatalogId()) + ); //异步处理二维码 self.addQRCodeToPDF(desVolumeFile.getId(), false) .thenAccept(result -> log.info("图纸[{}-{} ]添加二维码成功", desVolumeFile.getFileName(), desVolumeFile.getId())) diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/MatMaterialReceiveServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/MatMaterialReceiveServiceImpl.java index c816ce9d..919a7ff9 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/MatMaterialReceiveServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/materials/service/impl/MatMaterialReceiveServiceImpl.java @@ -429,6 +429,7 @@ public class MatMaterialReceiveServiceImpl extends ServiceImpl selectUsersByRoleIds(List roleIds) { + public List selectUsersByRoleIds(List roleIds,Long projectId) { if (CollUtil.isEmpty(roleIds)) { return List.of(); } // 通过角色ID获取用户角色信息 List userRoles = userRoleMapper.selectList( - new LambdaQueryWrapper().in(SysUserRole::getRoleId, roleIds)); + new LambdaQueryWrapper().in(SysUserRole::getRoleId, roleIds) + .eq(projectId!=null,SysUserRole::getProjectId, projectId) + ); // 获取用户ID列表 Set userIds = StreamUtils.toSet(userRoles, SysUserRole::getUserId); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/filter/RoleCandidateExcludeFilter.java b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/filter/RoleCandidateExcludeFilter.java deleted file mode 100644 index 78768d32..00000000 --- a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/filter/RoleCandidateExcludeFilter.java +++ /dev/null @@ -1,4 +0,0 @@ -package org.dromara.workflow.filter; - -public class RoleCandidateExcludeFilter { -} diff --git a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java index 7584bfcf..9c324f43 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java @@ -1,21 +1,27 @@ package org.dromara.workflow.listener; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.domain.dto.UserDTO; +import org.dromara.common.core.domain.model.LoginUser; import org.dromara.common.core.enums.BusinessStatusEnum; import org.dromara.common.core.utils.StringUtils; import org.dromara.warm.flow.core.FlowEngine; import org.dromara.warm.flow.core.dto.FlowParams; import org.dromara.warm.flow.core.entity.Definition; import org.dromara.warm.flow.core.entity.Instance; +import org.dromara.warm.flow.core.entity.Node; import org.dromara.warm.flow.core.entity.Task; import org.dromara.warm.flow.core.listener.GlobalListener; import org.dromara.warm.flow.core.listener.ListenerVariable; import org.dromara.warm.flow.core.service.InsService; import org.dromara.warm.flow.orm.entity.FlowInstance; +import org.dromara.warm.flow.orm.entity.FlowNode; import org.dromara.warm.flow.orm.entity.FlowTask; import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.common.constant.FlowConstant; @@ -24,12 +30,12 @@ import org.dromara.workflow.domain.bo.FlowCopyBo; import org.dromara.workflow.handler.FlowProcessEventHandler; import org.dromara.workflow.service.IFlwCommonService; import org.dromara.workflow.service.IFlwInstanceService; +import org.dromara.workflow.service.IFlwTaskAssigneeService; import org.dromara.workflow.service.IFlwTaskService; import org.springframework.stereotype.Component; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** * 全局任务办理监听 @@ -47,6 +53,7 @@ public class WorkflowGlobalListener implements GlobalListener { private final FlowProcessEventHandler flowProcessEventHandler; private final IFlwCommonService flwCommonService; private final InsService insService; + private final IFlwTaskAssigneeService flwTaskAssigneeService; /** * 创建监听器,任务创建时执行 @@ -55,9 +62,46 @@ public class WorkflowGlobalListener implements GlobalListener { */ @Override public void create(ListenerVariable listenerVariable) { + log.info("全局创建监听器开始执行......"); + // 获取相关变量 +// List nextTasks = listenerVariable.getNextTasks(); +// Definition definition = listenerVariable.getDefinition(); +// Map variable = listenerVariable.getVariable(); +// +// for (Task flowTask : nextTasks) { +// String nodeCode = flowTask.getNodeCode(); +// +// +// // 查询节点信息 +// FlowNode byNodeCode = flwTaskService.getByNodeCode(nodeCode, definition.getId()); +// +// // 获取原来的办理人信息 +// List originalPermissionList = flowTask.getPermissionList(); +// log.info("节点 {} 原来的办理人信息: {}", nodeCode, originalPermissionList); +// String permissionFlag = byNodeCode.getPermissionFlag(); +// try { +// if(permissionFlag.contains("role")){ +// permissionFlag = permissionFlag.replace("@@", ","); +// +// String flowCode = definition.getFlowCode(); +// String projectId = flowCode.split("_")[0]; +// +// List userDTOS = flwTaskAssigneeService.fetchUsersByStorageIds(permissionFlag, Long.valueOf(projectId)); +// variable.put("userList", userDTOS.stream().map(UserDTO::getUserId).map(String::valueOf).collect(Collectors.toList())); +// flowTask.setPermissionList(userDTOS.stream().map(UserDTO::getUserId).map(String::valueOf).collect(Collectors.toList())); +// } +// +// }catch (Exception e) { +// log.error("设置失败: {}", e.getMessage()); +// } +// } + + log.info("全局创建监听器执行结束......"); } + + /** * 开始监听器,任务开始办理时执行 * @@ -65,6 +109,7 @@ public class WorkflowGlobalListener implements GlobalListener { */ @Override public void start(ListenerVariable listenerVariable) { + } /** @@ -92,6 +137,27 @@ public class WorkflowGlobalListener implements GlobalListener { if (flowTask.getNodeCode().equals(applyNodeCode)) { flowTask.setPermissionList(List.of(instance.getCreateBy())); } +// String nodeCode = flowTask.getNodeCode(); +// // 查询节点信息 +// FlowNode byNodeCode = flwTaskService.getByNodeCode(nodeCode, definition.getId()); +// // 获取原来的办理人信息 +// List originalPermissionList = flowTask.getPermissionList(); +// log.info("节点 {} 原来的办理人信息: {}", nodeCode, originalPermissionList); +// String permissionFlag = byNodeCode.getPermissionFlag(); +// try { +// if (permissionFlag.contains("role")) { +// permissionFlag = permissionFlag.replace("@@", ","); +// +// String flowCode = definition.getFlowCode(); +// String projectId = flowCode.split("_")[0]; +// +// List userDTOS = flwTaskAssigneeService.fetchUsersByStorageIds(permissionFlag, Long.valueOf(projectId)); +// +// flowTask.setPermissionList(userDTOS.stream().map(UserDTO::getUserId).map(String::valueOf).collect(Collectors.toList())); +// } +// } catch (Exception e) { +// log.error("设置失败: {}", e.getMessage()); +// } } } @@ -135,6 +201,12 @@ public class WorkflowGlobalListener implements GlobalListener { if (ObjectUtil.isNull(flowParams)) { return; } + + //给处理人发消息重新统计数据 + + if (task != null) { + flwCommonService.sendCountMessage(task.getId()); + } // 只有办理或者退回的时候才执行消息通知和抄送 if (TaskStatusEnum.PASS.getStatus().equals(flowParams.getHisStatus()) || TaskStatusEnum.BACK.getStatus().equals(flowParams.getHisStatus())) { diff --git a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwCommonService.java b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwCommonService.java index ad5ef2a9..879dd871 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwCommonService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwCommonService.java @@ -29,6 +29,11 @@ public interface IFlwCommonService { */ void sendMessage(String flowName,String flowCode, Long instId, List messageType, String message); + /** + * 发送统计消息 + */ + void sendCountMessage(Long taskId); + /** * 发送抄送消息 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskAssigneeService.java b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskAssigneeService.java index 830abaf5..117b3d09 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskAssigneeService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskAssigneeService.java @@ -19,6 +19,6 @@ public interface IFlwTaskAssigneeService { * @param storageIds 多个存储标识符字符串(逗号分隔) * @return 合并后的用户列表,去重后返回,非法格式的标识将被跳过 */ - List fetchUsersByStorageIds(String storageIds); + List fetchUsersByStorageIds(String storageIds,Long projectId); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java index f67f55f5..db50bccb 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java @@ -61,7 +61,7 @@ public class FlwCommonServiceImpl implements IFlwCommonService { IFlwTaskAssigneeService taskAssigneeService = SpringUtils.getBean(IFlwTaskAssigneeService.class); String processedBys = CollUtil.join(permissionList, StringUtils.SEPARATOR); // 根据 processedBy 前缀判断处理人类型,分别获取用户列表 - List users = taskAssigneeService.fetchUsersByStorageIds(processedBys); + List users = taskAssigneeService.fetchUsersByStorageIds(processedBys,null); return StreamUtils.toList(users, userDTO -> String.valueOf(userDTO.getUserId())); } @@ -127,6 +127,25 @@ public class FlwCommonServiceImpl implements IFlwCommonService { } + public void sendCountMessage(Long taskId) { + IFlwTaskService flwTaskService = SpringUtils.getBean(IFlwTaskService.class); + List userList = new ArrayList<>(); + List users = flwTaskService.currentTaskAllUser(taskId); + if (CollUtil.isNotEmpty(users)) { + userList.addAll(users); + } + SseMessageDto dto = new SseMessageDto(); + SeeMessageContentDto contentDto = new SeeMessageContentDto(); + contentDto.setType("count"); + contentDto.setContent("统计"); + dto.setMessage(JSONUtil.toJsonStr(contentDto)); + dto.setIsRecord(false); + dto.setUserIds(users.stream().map(UserDTO::getUserId).collect(Collectors.toList())); + SseMessageUtils.publishMessage(dto); + } + + + @Override public void sendCopyMessage(String flowName, String flowCode, List flowCopyList) { if(CollUtil.isEmpty(flowCopyList)){ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java index ceefa803..91e53b25 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java @@ -170,7 +170,7 @@ public class FlwTaskAssigneeServiceImpl implements IFlwTaskAssigneeService, Hand * @return 合并后的用户列表,去重后返回,非法格式的标识将被跳过 */ @Override - public List fetchUsersByStorageIds(String storageIds) { + public List fetchUsersByStorageIds(String storageIds,Long projectId) { if (StringUtils.isEmpty(storageIds)) { return List.of(); } @@ -182,7 +182,7 @@ public class FlwTaskAssigneeServiceImpl implements IFlwTaskAssigneeService, Hand } } return typeIdMap.entrySet().stream() - .flatMap(entry -> this.getUsersByType(entry.getKey(), entry.getValue()).stream()) + .flatMap(entry -> this.getUsersByType(entry.getKey(), entry.getValue(),projectId).stream()) .distinct() .toList(); } @@ -197,10 +197,10 @@ public class FlwTaskAssigneeServiceImpl implements IFlwTaskAssigneeService, Hand * 如果类型为部门(DEPT),则通过部门ID列表查询; * 如果类型为岗位(POST)或无法识别的类型,则返回空列表 */ - private List getUsersByType(TaskAssigneeEnum type, List ids) { + private List getUsersByType(TaskAssigneeEnum type, List ids,Long projectId) { return switch (type) { case USER -> userService.selectListByIds(ids); - case ROLE -> userService.selectUsersByRoleIds(ids); + case ROLE -> userService.selectUsersByRoleIds(ids,projectId); case DEPT -> userService.selectUsersByDeptIds(ids); case POST -> userService.selectUsersByPostIds(ids); }; diff --git a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java index f96a7573..e2783a84 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java @@ -537,7 +537,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService { for (FlowNode flowNode : nextFlowNodes) { buildNextTaskList.stream().filter(t -> t.getNodeCode().equals(flowNode.getNodeCode())).findFirst().ifPresent(t -> { if (CollUtil.isNotEmpty(t.getPermissionList())) { - List users = flwTaskAssigneeService.fetchUsersByStorageIds(String.join(StringUtils.SEPARATOR, t.getPermissionList())); + List users = flwTaskAssigneeService.fetchUsersByStorageIds(String.join(StringUtils.SEPARATOR, t.getPermissionList()),null); if (CollUtil.isNotEmpty(users)) { flowNode.setPermissionFlag(StreamUtils.join(users, e -> String.valueOf(e.getUserId()))); }