فهرست منبع

修复报告记录为空报错

fuyuchuan 7 ماه پیش
والد
کامیت
40ca67ca3a
1فایلهای تغییر یافته به همراه62 افزوده شده و 15 حذف شده
  1. 62 15
      service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/PmWorkContentServiceImpl.java

+ 62 - 15
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/PmWorkContentServiceImpl.java

@@ -135,7 +135,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
         reportQuery.select(PmWorkReport::getId)
                 .eq(PmWorkReport::getSubmitterId, userid)
                 .orderByDesc(PmWorkReport::getSubmitDate);
-        return  pmWorkReportMapper.selectList(reportQuery).stream().map(PmWorkReport::getId).collect(Collectors.toList());
+        return pmWorkReportMapper.selectList(reportQuery).stream().map(PmWorkReport::getId).collect(Collectors.toList());
     }
 
     /**
@@ -573,6 +573,66 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
         }
 
         // 已读未读数量查询
+        List<PmReceive> receives = new ArrayList<>();
+        if (!receiveList.isEmpty()) {
+            receives = receives(receiveList);
+        }
+
+        Map<Integer, List<PmReceive>> reportReceivesMap = new HashMap<>();
+        if (!receives.isEmpty()) {
+            List<Long> uId = new ArrayList<>();
+            for (PmReceive pmReceive : receives) {
+                Long receiverId = pmReceive.getReceiverId();
+                uId.add(receiverId);
+            }
+            reportReceivesMap = receives.stream().collect(Collectors.groupingBy(PmReceive::getReportId));
+        }
+
+        Set<Long> userIdSet = new HashSet<>();
+        for (PmWorkReport report : reportList) {
+            Long submitterId = report.getSubmitterId();
+            userIdSet.add(submitterId);
+        }
+        List<Long> userIdList = new ArrayList<>(userIdSet);
+
+        List<SysUser> sysUsers = nickNames(userIdList);
+
+        if (sysUsers != null) {
+            for (PmWorkReport report : reportList) {
+                List<Long> readAlready = new ArrayList<>();
+                List<Long> readNotAlready = new ArrayList<>();
+                int readCount = 0;
+                int unreadCount = 0;
+                if (!reportReceivesMap.isEmpty()) {
+                    List<PmReceive> reportReceives = reportReceivesMap.getOrDefault(report.getId(), Collections.emptyList());
+                    for (PmReceive pmReceive : reportReceives) {
+                        if (pmReceive.getReadFlag() == 1) {
+                            readCount++;
+                            readAlready.add(pmReceive.getReceiverId());
+                        } else {
+                            unreadCount++;
+                            readNotAlready.add(pmReceive.getReceiverId());
+                        }
+                    }
+                }
+
+                PmReportReadersVO readUnreadVO = new PmReportReadersVO(readAlready, readNotAlready, readCount, unreadCount);
+                report.setPmReportReaders(readUnreadVO);
+
+                // 头像
+                for (SysUser sysUser : sysUsers) {
+                    if (sysUser.getUserId().equals(report.getSubmitterId())) {
+                        report.setAvatar(sysUser.getAvatar());
+                        break;
+                    }
+                }
+            }
+        }
+
+        return new CommonPage<>(reportList, reportPage.getTotal(), pageSize, pageNum);
+    }
+
+    /*private PmReportReadersVO readCount() {
         List<PmReceive> receives = receives(receiveList);
         List<Long> uId = new ArrayList<>();
         for (PmReceive pmReceive : receives) {
@@ -610,20 +670,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
                 }
 
                 PmReportReadersVO readUnreadVO = new PmReportReadersVO(readAlready, readNotAlready, readCount, unreadCount);
-                report.setPmReportReaders(readUnreadVO);
-
-                // 头像
-                for (SysUser sysUser : sysUsers) {
-                    if (sysUser.getUserId().equals(report.getSubmitterId())) {
-                        report.setAvatar(sysUser.getAvatar());
-                        break;
-                    }
-                }
-            }
-        }
-
-        return new CommonPage<>(reportList, reportPage.getTotal(), pageSize, pageNum);
-    }
+    }*/
 
     /**
      * @description: 获取报告接收人