Kaynağa Gözat

资料查询添加审批人状态查询

chenr 5 ay önce
ebeveyn
işleme
7212043a1c

+ 6 - 1
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/InformationQueryVO.java

@@ -82,6 +82,11 @@ public class InformationQueryVO extends InformationQuery {
     @ApiModelProperty(value = "电签失败原因")
     private String eVisaFailedInfo;
 
+    @ApiModelProperty(value = "审批人状态")
+    private Integer waitingUserStatus;
+
+
+
     public void setWaitingUserList(String waitingUserName, Integer status) {
         if (this.waitingUserList == null) {
             this.waitingUserList = new ArrayList<>();
@@ -90,7 +95,7 @@ public class InformationQueryVO extends InformationQuery {
     }
 
     @Data
-    private class WaitingUser {
+    public class WaitingUser {
         @ApiModelProperty("审批人姓名")
         private String waitingUserName;
 

+ 21 - 2
blade-service/blade-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java

@@ -1691,11 +1691,30 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, User> implement
                     e.printStackTrace();
                 }
             });
-
+            //过滤审批人状态
+            if (vo.getWaitingUserStatus() != null) {
+                voResult = voResult.stream()
+                    .filter(vo1 -> {
+                        List<InformationQueryVO.WaitingUser> waitingUsers = vo1.getWaitingUserList();
+                        if(waitingUsers!=null){
+                            //签字正常状态
+                            if (vo.getWaitingUserStatus() == 2) {
+                                // 当 waitingUserStatus == 2 时,所有元素的 status 都必须等于 waitingUserStatus
+                                return waitingUsers.stream().allMatch(waitingUser ->waitingUser!=null&&waitingUser.getStatus()!=null&& waitingUser.getStatus().equals(vo.getWaitingUserStatus()));
+                            } else {
+                                // 当 waitingUserStatus != 2 时,只要有一个元素的 status 等于 waitingUserStatus 就满足
+                                return waitingUsers.stream().anyMatch(waitingUser ->waitingUser!=null&&waitingUser.getStatus()!=null&& waitingUser.getStatus().equals(vo.getWaitingUserStatus()));
+                            }
+                        }
+                        return false;
+                    })
+                    .collect(Collectors.toList());
+            }
             if (ObjectUtil.isEmpty(voResult)) {
                 return page.setRecords(null);
 
-            } else if (voResult.size() == 1) {
+            }
+            else if (voResult.size() == 1) {
                 page.setRecords(voResult);
                 page.setTotal(voResult.size());
                 return page;