diff --git a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/handle/WithDrawHandle.java b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/handle/WithDrawHandle.java index 3c5316b..9588391 100644 --- a/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/handle/WithDrawHandle.java +++ b/pmapi/src/main/java/com/ningdatech/pmapi/todocenter/handle/WithDrawHandle.java @@ -89,10 +89,11 @@ public class WithDrawHandle { Boolean isAndOr = Boolean.FALSE; - //如果上个会签没取到 还有种情况是 会签 或签 并且在上个节点 - if(CollUtil.isNotEmpty(beforeAndOr)) { - for (ProgressNode n : beforeAndOr) { - if (n.getUserId().equals(user.getEmployeeCode())) { + //还有种情况是 会签 或签 并且在当前节点 并且已经通过 + if(CollUtil.isNotEmpty(thisAndOr)){ + for(ProgressNode n : thisAndOr){ + if(n.getUserId().equals(user.getEmployeeCode()) && + Objects.nonNull(n.getFinishTime())){ beforeProgressNode = n; //说明当前操作人 在上个会签或者或签节点 isAndOr = Boolean.TRUE; @@ -101,11 +102,10 @@ public class WithDrawHandle { } } - //还有种情况是 会签 或签 并且在当前节点 并且已经通过 - if(!isAndOr && CollUtil.isNotEmpty(thisAndOr)){ - for(ProgressNode n : thisAndOr){ - if(n.getUserId().equals(user.getEmployeeCode()) && - Objects.nonNull(n.getFinishTime())){ + //如果上个会签没取到 还有种情况是 会签 或签 并且在上个节点 + if(!isAndOr && CollUtil.isNotEmpty(beforeAndOr)) { + for (ProgressNode n : beforeAndOr) { + if (n.getUserId().equals(user.getEmployeeCode())) { beforeProgressNode = n; //说明当前操作人 在上个会签或者或签节点 isAndOr = Boolean.TRUE; @@ -114,6 +114,8 @@ public class WithDrawHandle { } } + + if(!isAndOr && (Objects.isNull(beforeProgressNode) || !user.getEmployeeCode().equals(beforeProgressNode.getUserId()))){ return Boolean.FALSE;