From 4977712d0b406185df801e1b844836b43b6c3ed0 Mon Sep 17 00:00:00 2001 From: yinq Date: Wed, 1 Apr 2026 16:12:14 +0800 Subject: [PATCH] =?UTF-8?q?1.1.7=20=E5=90=88=E5=90=8C=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=BE=85=E5=8A=9E=E9=BB=98=E8=AE=A4=E6=9F=A5=E8=AF=A2=E5=90=8E?= =?UTF-8?q?=E7=AB=AF=E6=94=B9=E4=B8=BA=E6=9C=AC=E4=BA=BA=E6=98=AF=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=BB=8F=E7=90=86=E4=B8=8E=E5=90=88=E5=90=8C=E6=BF=80?= =?UTF-8?q?=E6=B4=BB=E5=88=9B=E5=BB=BA=E4=BA=BA=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=BE=85=E5=8A=9E=E4=BA=BA=E6=A3=80=E7=B4=A2=E6=A1=86=EF=BC=9A?= =?UTF-8?q?=E6=9C=AC=E4=BA=BA=E5=88=9B=E5=BB=BA=E3=80=81=E6=9C=AC=E4=BA=BA?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=BB=8F=E7=90=86=E3=80=81=E5=85=A8=E9=83=A8?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oa/erp/domain/bo/ErpProjectInfoBo.java | 5 +++++ .../impl/ErpContractOrderServiceImpl.java | 22 +++++++++++++------ 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectInfoBo.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectInfoBo.java index f0e63fb4..7a95b08e 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectInfoBo.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/domain/bo/ErpProjectInfoBo.java @@ -89,6 +89,11 @@ public class ErpProjectInfoBo extends BaseEntity { */ private Long managerId; + /** + * 待办人类型(create本人创建 manager本人项目经理 all全部) + */ + private String todoOwnerType; + /** * 部门负责人 */ diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpContractOrderServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpContractOrderServiceImpl.java index 74150bdd..2a5ace1b 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpContractOrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/erp/service/impl/ErpContractOrderServiceImpl.java @@ -132,6 +132,7 @@ public class ErpContractOrderServiceImpl implements IErpContractOrderService { public List queryTodoList(ErpProjectInfoBo bo) { // 先取基础列表,再按“真实项目经理 / 合同创建人”在内存中过滤 Long filterManagerId = bo.getManagerId(); + String todoOwnerType = bo.getTodoOwnerType(); bo.setManagerId(null); MPJLambdaWrapper lqw = buildQueryWrapper(bo); List baseList = projectInfoMapper.selectCustomErpProjectInfoVoList(lqw); @@ -139,9 +140,6 @@ public class ErpContractOrderServiceImpl implements IErpContractOrderService { return baseList; } Long currentUserId = LoginHelper.getUserId(); - if (StringUtils.isNull(filterManagerId)) { - return baseList; - } // 1) 批量取合同ID Set contractIds = baseList.stream() .map(ErpProjectInfoVo::getContractId) @@ -156,11 +154,21 @@ public class ErpContractOrderServiceImpl implements IErpContractOrderService { Long contractId = row.getContractId(); Long realManagerId = contractId != null ? contractId2ManagerId.get(contractId) : null; Long contractCreateBy = contractId != null ? contractId2CreateBy.get(contractId) : null; - // 过滤条件:页面选择的项目经理(按真实项目经理) - if (filterManagerId != null) { - return Objects.equals(filterManagerId, realManagerId); + + if (filterManagerId != null && !Objects.equals(filterManagerId, realManagerId)) { + return false; } - // 待办权限:真实项目经理 或 合同激活创建人 + + if ("all".equals(todoOwnerType)) { + return true; + } + if ("create".equals(todoOwnerType)) { + return Objects.equals(currentUserId, contractCreateBy); + } + if ("manager".equals(todoOwnerType)) { + return Objects.equals(currentUserId, realManagerId); + } + // 默认:本人是项目经理或合同激活创建人 return Objects.equals(currentUserId, realManagerId) || Objects.equals(currentUserId, contractCreateBy); }) .collect(Collectors.toList());