فهرست منبع

修复报告添加时抄送人为空报错,调整消息中心代码增加字段

fuyuhchuan 9 ماه پیش
والد
کامیت
c5dc21deb9

+ 1 - 1
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/PmWorkContentController.java

@@ -35,7 +35,7 @@ public class PmWorkContentController {
                                                    @RequestParam(value = "reportId", required = false) Integer reportId,
                                                    @RequestParam(value = "projectAscription", required = false, defaultValue = "1") Integer projectAscription) {
         if (StringUtils.isBlank(startDate) || StringUtils.isBlank(endDate)) {
-            startDate = LocalDate.now().toString();
+            startDate = LocalDate.now().minusDays(2).toString();
             endDate = LocalDate.now().toString();
         }
         return ApiResult.success(pmWorkContentService.projectQuery(startDate, endDate, projectName, projectAscription, reportId));

+ 22 - 26
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/PmWorkContentServiceImpl.java

@@ -226,7 +226,7 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
         Integer tenantId = SecurityUtils.getTenantId();
         Long userId = SecurityUtils.getUserId();
         List<Long> userIds = new ArrayList<>();
-
+        Page<PmWorkReport> page = new Page<>(pageNum, pageSize);
         LambdaQueryWrapper<PmWorkContent> contentLambdaQuery = Wrappers.lambdaQuery();
         contentLambdaQuery.select(PmWorkContent::getReportId, PmWorkContent::getWorkContent, PmWorkContent::getWorkTime, PmWorkContent::getProjectName)
                 .apply("report_id IN (SELECT id FROM pm_work_report WHERE tenant_id = '" + tenantId + "')")
@@ -257,7 +257,8 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
                 .in(PmWorkReport::getId, reportIds)
                 .orderByDesc(PmWorkReport::getCreateTime);
 
-        List<PmWorkReport> reportList = pmWorkReportMapper.selectList(reportQuery);
+        IPage<PmWorkReport> reportPage = pmWorkReportMapper.selectPage(new Page<>(pageNum, pageSize), reportQuery);
+        List<PmWorkReport> reportList = reportPage.getRecords();
 
         LambdaQueryWrapper<PmReceive> statusQuery = Wrappers.lambdaQuery();
         statusQuery.select(PmReceive::getReportId, PmReceive::getReadFlag)
@@ -267,34 +268,29 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
 
         List<PmReceive> receiveList = pmReceiveMapper.selectList(statusQuery);
 
-        for (PmWorkReport c : reportList) {
-            List<PmWorkContent> contents = new ArrayList<>();
-            for (PmWorkContent b : pmWorkContentList) {
-                if (b.getReportId().equals(c.getId())) {
-                    contents.add(b);
-                }
-            }
-            c.setWorkContents(contents);
-            userIds.add(c.getSubmitterId());
-            if (!receiveList.isEmpty()) {
-                for (PmReceive receive : receiveList) {
-                    if (receive.getReportId().equals(c.getId())) {
-                        c.setReadFlag(receive.getReadFlag());
-                    }
-                }
+        Map<Integer, Integer> reportReadFlags = receiveList.stream()
+                .collect(Collectors.toMap(PmReceive::getReportId, PmReceive::getReadFlag));
+
+        reportList.forEach(report -> {
+            List<PmWorkContent> contents = pmWorkContentList.stream()
+                    .filter(content -> content.getReportId().equals(report.getId()))
+                    .collect(Collectors.toList());
+            report.setWorkContents(contents);
+            userIds.add(report.getSubmitterId());
+            if (reportReadFlags.containsKey(report.getId())) {
+                report.setReadFlag(reportReadFlags.get(report.getId()));
             }
-        }
+        });
 
         List<SysUser> nickNames = nickNames(userIds);
-        for (PmWorkReport d : reportList) {
-            for (SysUser e : nickNames) {
-                if (e.getUserId().equals(d.getSubmitterId())) {
-                    d.setCreateBy(e.getNickName());
-                }
-            }
-        }
+        Map<Long, String> userNicknameMap = nickNames.stream()
+                .collect(Collectors.toMap(SysUser::getUserId, SysUser::getNickName));
+
+        reportList.forEach(report -> {
+            report.setCreateBy(userNicknameMap.get(report.getSubmitterId()));
+        });
 
-        return new CommonPage<>(reportList, reportList.size(), pageSize, pageNum);
+        return new CommonPage<>(reportList, reportPage.getTotal(), pageSize, pageNum);
     }
 
 

+ 33 - 24
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/PmWorkReportServiceImpl.java

@@ -248,13 +248,7 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
             newReport.setTenantId(tenantId);
             newReport.setTotalHours(totalWorkTime);
             pmWorkReportMapper.insert(newReport);
-            //推送消息中心
-            List<Long> ids = Optional.ofNullable(newReport.getCcTo())
-                    .map(ccTo -> Arrays.stream(ccTo.split(","))
-                            .map(Long::parseLong)
-                            .collect(Collectors.toList()))
-                    .orElse(Collections.emptyList());
-            sendAsyncMessage(newReport, ids);
+
             //获取报告中所有项目id
             List<Integer> projectIds = new ArrayList<>();
             for (PmWorkContent b1 : pmWorkReport.getWorkContents()) {
@@ -262,8 +256,6 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
             }
             //查出所有项目id对应项目名
             List<PmProject> project = pmProjectService.projectName(projectIds);
-            //查username
-            List<SysUser> usersName = pmWorkContentService.nickNames(ids);
             //将项目名重新赋值
             for (PmWorkContent b : pmWorkReport.getWorkContents()) {
                 for (int c = 0; c < project.size(); c++) {
@@ -285,23 +277,37 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
                 newContent.setTenantId(tenantId);
                 pmWorkContentMapper.insert(newContent);
             }
-
-            for (Long id : ids) {
-                PmReceive pmReceive = new PmReceive();
-                pmReceive.setReceiverId(id);
-                for (SysUser user : usersName) {
-                    if (id == user.getUserId()){
-                        pmReceive.setReceiverName(user.getUserName());
+            //推送消息中心
+            List<Long> ids = new ArrayList<>();
+            if (!newReport.getCcTo().isEmpty()) {
+                ids = Optional.ofNullable(newReport.getCcTo())
+                        .map(ccTo -> Arrays.stream(ccTo.split(","))
+                                .map(Long::parseLong)
+                                .collect(Collectors.toList()))
+                        .orElse(Collections.emptyList());
+            }
+            sendAsyncMessage(newReport, ids);
+            //查username
+            if (ids.size() > 0) {
+                List<SysUser> usersName = pmWorkContentService.nickNames(ids);
+                for (Long id : ids) {
+                    PmReceive pmReceive = new PmReceive();
+                    pmReceive.setReceiverId(id);
+                    for (SysUser user : usersName) {
+                        if (id == user.getUserId()) {
+                            pmReceive.setReceiverName(user.getUserName());
+                        }
                     }
+                    pmReceive.setReportId(newReport.getId());
+                    pmReceive.setTenantId(tenantId);
+                    pmReceive.setDeptId(deptId);
+                    pmReceive.setCreateBy(userName);
+                    pmReceive.setCreateTime(dateTime);
+                    pmReceive.setReadFlag(0);
+                    pmReceiveMapper.insert(pmReceive);
                 }
-                pmReceive.setReportId(newReport.getId());
-                pmReceive.setTenantId(tenantId);
-                pmReceive.setDeptId(deptId);
-                pmReceive.setCreateBy(userName);
-                pmReceive.setCreateTime(dateTime);
-                pmReceive.setReadFlag(0);
-                pmReceiveMapper.insert(pmReceive);
             }
+
         } else if (repeat.size() > 0) {
             PmWorkReport rp = new PmWorkReport();
             rp.setId(pmWorkReport.getId());
@@ -347,7 +353,10 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
         jsonObject.put("infoContent", SecurityUtils.getLoginUser().getSysUser().getNickName() + INFO_CONTENT);
         jsonObject.put("infoType", INFO_TYPE);
         jsonObject.put("id", newReport.getId());
-        jsonObject.put("userIds", userId);
+        jsonObject.put("infoTypeName", INFO_TITLE);
+        if (userId != null && !userId.isEmpty()) {
+            jsonObject.put("userIds", userId);
+        }
         // 异步发送消息
         CompletableFuture.runAsync(() -> {
             try {