Browse Source

Merge branch 'fu-dev' of uskycloud/usky-modules into master

gez 1 tuần trước cách đây
mục cha
commit
1c92b1c3b2

+ 6 - 6
service-pm/service-pm-biz/src/main/java/com/usky/pm/service/config/DingTalkAndMessage.java

@@ -282,22 +282,19 @@ public class DingTalkAndMessage {
             obj1.setDdFrom(dingTalkConstant.DING_TALK_CORP_ID);
             obj1.setUserid(getDingTalkUserId(workReport.getSubmitterId()));
             // obj1.setToChat(true);
-            // obj1.setToCids(dingTalkConstant.DING_TALK_DAILY_REPORT_TO_CIDS);//发送到群,群id
+            //发送到群,群id
+            // obj1.setToCids(dingTalkConstant.DING_TALK_DAILY_REPORT_TO_CIDS);
             req.setCreateReportParam(obj1);
             OapiReportCreateResponse rsp = client.execute(req, getDingTalkToken());
             if (rsp.isSuccess()) {
                 log.info(userName + "的钉钉报告发送成功");
-                workReport.setReportStatus(1);
             } else {
-                workReport.setSendDingTalk(0);
                 log.error(userName + "的钉钉报告发送失败: " + rsp.getErrmsg());
             }
         } catch (Exception e) {
-            workReport.setSendDingTalk(0);
             log.error(userName + "的钉钉报告发送消息时发生异常", e);
         }
         log.info(userName + "的工作报告发送钉钉结束-----------------------------------");
-        pmWorkReportMapper.updateById(workReport);
     }
 
 
@@ -315,8 +312,11 @@ public class DingTalkAndMessage {
                             .collect(Collectors.toList()))
                     .orElse(Collections.emptyList());
         } else {
-            throw new BusinessException(newReport.getCreateBy() + "的报告:" + newReport.getId() + ",抄送人为空,无需发送消息中心");
+            log.info(newReport.getCreateBy() + "的报告:" + newReport.getId() + ",抄送人为空,无需发送消息中心");
+            return;
         }
+        log.info("本次需要发送userId集合{}", userId);
+
         LambdaQueryWrapper<SysUser> nickNameQuery = Wrappers.lambdaQuery();
         nickNameQuery.select(SysUser::getNickName)
                 .eq(SysUser::getUserId, submitterId);

+ 2 - 2
service-pm/service-pm-biz/src/main/java/com/usky/pm/service/impl/PmWorkContentServiceImpl.java

@@ -429,8 +429,8 @@ public class PmWorkContentServiceImpl extends AbstractCrudService<PmWorkContentM
     public List<SysUser> nickNames(List<Long> userIds) {
         LambdaQueryWrapper<SysUser> usersQuery = Wrappers.lambdaQuery();
         usersQuery.select(SysUser::getUserId, SysUser::getNickName, SysUser::getUserName, SysUser::getPhonenumber, SysUser::getAvatar, SysUser::getSex, SysUser::getDeptId)
-                .eq(SysUser::getTenantId, SecurityUtils.getTenantId())
-                .eq(SysUser::getDelFlag, 0);
+                .eq(SysUser::getDelFlag, 0)
+                .eq(SysUser::getStatus, 0);
         if (!userIds.isEmpty()) {
             usersQuery.in(SysUser::getUserId, userIds);
         }

+ 24 - 19
service-pm/service-pm-biz/src/main/java/com/usky/pm/service/impl/PmWorkReportServiceImpl.java

@@ -133,7 +133,7 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
         // 固定返回七条数据,没有内容也要设置时间给前端渲染
         LambdaQueryWrapper<PmWorkReport> queryWrapperR = Wrappers.lambdaQuery();
         queryWrapperR.eq(PmWorkReport::getTenantId, tenantId)
-    .eq(PmWorkReport::getSubmitterId, userId)
+                .eq(PmWorkReport::getSubmitterId, userId)
                 .between(reportId == 0, PmWorkReport::getReportDate, startDate1, endDate1)
                 .eq(reportId != 0, PmWorkReport::getId, reportId)
                 .orderByAsc(PmWorkReport::getReportDate);
@@ -413,15 +413,17 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
                 }
 
                 if (pmWorkReport.getIsRegularlySend().equals(0)) {
-                    if (pmWorkReport.getSendDingTalk().equals(1)) {
-                        dingTalkAndMessage.sendDingTalkDailyReport(rp, contents);
-                    }
-                    rp.setReportStatus(1);
-                    pmWorkReportMapper.updateById(rp);
+                    // 检查是否需要发送消息
                     if (StringUtils.isNotBlank(ccTo)) {
+                        if (pmWorkReport.getSendDingTalk().equals(1)) {
+                            dingTalkAndMessage.sendDingTalkDailyReport(rp, contents);
+                        }
                         dingTalkAndMessage.sendAsyncMessage(rp);
                         receiveMessages(ccTo, rid);
                     }
+                    // 更新报告状态
+                    rp.setReportStatus(1);
+                    pmWorkReportMapper.updateById(rp);
                 }
             } else {
                 rp.setId(rid);
@@ -460,28 +462,26 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
         List<Long> longList = Arrays.stream(ids.split(","))
                 .map(Long::parseLong)
                 .collect(Collectors.toList());
-        List<SysUser> users = pmWorkContentService.nickNames(longList);
+        Map<Long, String> users = pmWorkContentService.nickNames(longList).stream().collect(Collectors.toMap(SysUser::getUserId, SysUser::getUserName));
 
         LambdaQueryWrapper<PmWorkReport> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.select(PmWorkReport::getCreateBy)
                 .eq(PmWorkReport::getId, reportId);
         PmWorkReport pmWorkReport = pmWorkReportMapper.selectOne(queryWrapper);
         String createBy = pmWorkReport.getCreateBy();
+        Long deptId = pmWorkReport.getDeptId();
+        Integer tenantId = pmWorkReport.getTenantId();
 
-        if (longList.size() > 0) {
+        if (!longList.isEmpty()) {
             for (Long id : longList) {
                 PmReceive pmReceive = new PmReceive();
                 pmReceive.setReceiverId(id);
+                pmReceive.setReceiverName(users.get(id));
                 pmReceive.setReportId(reportId);
                 pmReceive.setCreateBy(createBy);
                 pmReceive.setCreateTime(LocalDateTime.now());
-                for (SysUser user : users) {
-                    if (user.getUserId().equals(id)) {
-                        pmReceive.setReceiverName(user.getUserName());
-                        pmReceive.setDeptId(user.getDeptId());
-                        pmReceive.setTenantId(user.getTenantId());
-                    }
-                }
+                pmReceive.setDeptId(deptId);
+                pmReceive.setTenantId(tenantId);
                 pmReceive.setReadFlag(0);
                 try {
                     pmReceiveMapper.insert(pmReceive);
@@ -608,7 +608,7 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
     @Async("asyncServiceExecutor")
     @Override
     public void timedSending(LocalDateTime time) {
-        log.info("定时报告任务开始---------------------------");
+        log.info("定时发送报告任务开始---------------------------");
         LambdaQueryWrapper<PmWorkReport> reports = Wrappers.lambdaQuery();
         reports.eq(PmWorkReport::getReportStatus, 0)
                 .eq(PmWorkReport::getIsRegularlySend, 1)
@@ -624,6 +624,7 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
             reportContents.in(PmWorkContent::getReportId, reportIds);
             List<PmWorkContent> pmWorkContentList = pmWorkContentMapper.selectList(reportContents);
             for (PmWorkReport report : reportList) {
+                log.info("报告内容:{}", report);
                 Integer id = report.getId();
                 List<PmWorkContent> workContents = new ArrayList<>();
                 for (PmWorkContent content : pmWorkContentList) {
@@ -633,7 +634,10 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
                     }
                 }
                 try {
+                    // 推送消息中心
+                    log.info("定时报告:" + report.getId() + "调用消息中心开始,时间:" + LocalDateTime.now());
                     dingTalkAndMessage.sendAsyncMessage(report);
+                    log.info("定时报告:" + report.getId() + "调用消息中心结束,时间" + LocalDateTime.now());
                 } catch (Exception e) {
                     log.error("定时报告" + report.getId() + "调用消息中心异常" + e);
                 }
@@ -653,15 +657,16 @@ public class PmWorkReportServiceImpl extends AbstractCrudService<PmWorkReportMap
                 } catch (Exception e) {
                     log.error("定时报告" + report.getId() + "更新状态异常" + e);
                 } finally {
-                    report.setReportStatus(1);
+                    // 更新状态为2:发送异常
+                    report.setReportStatus(2);
                     report.setSubmitDate(time);
                     pmWorkReportMapper.updateById(report);
                 }
             }
         } else {
-            log.info("当前没有定时工作报告可发送");
+            log.info("当前没有定时工作报告可发送");
         }
-        log.info("定时报告任务结束---------------------------");
+        log.info("定时发送报告任务结束---------------------------");
     }
 
     /**