Browse Source

增加确认名单短信通知

tags/24080901
WendyYang 1 year ago
parent
commit
062eb73c87
4 changed files with 25 additions and 23 deletions
  1. +12
    -8
      pmapi/src/main/java/com/ningdatech/pmapi/meeting/helper/MeetingMsgHelper.java
  2. +2
    -5
      pmapi/src/main/java/com/ningdatech/pmapi/staging/service/INdWorkNoticeStagingService.java
  3. +6
    -5
      pmapi/src/main/java/com/ningdatech/pmapi/staging/service/impl/NdWorkNoticeStagingServiceImpl.java
  4. +5
    -5
      pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/NotifyManage.java

+ 12
- 8
pmapi/src/main/java/com/ningdatech/pmapi/meeting/helper/MeetingMsgHelper.java View File

@@ -5,7 +5,6 @@ import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ningdatech.basic.util.CollUtils; import com.ningdatech.basic.util.CollUtils;
import com.ningdatech.basic.util.NdDateUtils;
import com.ningdatech.pmapi.meeting.constant.MeetingMsgTemplateConst; import com.ningdatech.pmapi.meeting.constant.MeetingMsgTemplateConst;
import com.ningdatech.pmapi.meeting.entity.domain.Meeting; import com.ningdatech.pmapi.meeting.entity.domain.Meeting;
import com.ningdatech.pmapi.meeting.entity.domain.MeetingExpert; import com.ningdatech.pmapi.meeting.entity.domain.MeetingExpert;
@@ -50,10 +49,15 @@ public class MeetingMsgHelper {
private final IDingOrganizationService dingOrganizationService; private final IDingOrganizationService dingOrganizationService;
private final INotifyService notifyService; private final INotifyService notifyService;


private Notify getNotify(Long userId, String msg, Map<String, Object> extraPara) {
private static String officialTime(LocalDateTime time) {
return time.format(DatePattern.NORM_DATETIME_MINUTE_FORMATTER);
}

private Notify getNotify(Long userId, String msg, MsgTypeEnum type, Map<String, Object> extraPara) {
Notify notify = new Notify(); Notify notify = new Notify();
notify.setUserId(userId); notify.setUserId(userId);
notify.setContent(msg); notify.setContent(msg);
notify.setType(type.name());
notify.setReaded(Boolean.FALSE); notify.setReaded(Boolean.FALSE);
notify.setCreateTime(LocalDateTime.now()); notify.setCreateTime(LocalDateTime.now());
String extraJson = JSON.toJSONString(extraPara); String extraJson = JSON.toJSONString(extraPara);
@@ -101,7 +105,7 @@ public class MeetingMsgHelper {
workNoticeStagingService.addByWorkNotice(swn, MsgTypeEnum.REVIEW_MEETING); workNoticeStagingService.addByWorkNotice(swn, MsgTypeEnum.REVIEW_MEETING);
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("meetingId", meetingId); map.put("meetingId", meetingId);
Notify notify = getNotify(userId, msgContent, map);
Notify notify = getNotify(userId, msgContent, MsgTypeEnum.REVIEW_MEETING, map);
notifyService.save(notify); notifyService.save(notify);
} }
} }
@@ -111,15 +115,15 @@ public class MeetingMsgHelper {
List<Long> userIds = CollUtils.fieldList(experts, MeetingExpert::getExpertId); List<Long> userIds = CollUtils.fieldList(experts, MeetingExpert::getExpertId);
List<UserInfo> userInfos = userInfoService.listByIds(userIds); List<UserInfo> userInfos = userInfoService.listByIds(userIds);
Map<Long, UserInfo> userMap = CollUtils.listToMap(userInfos, UserInfo::getId); Map<Long, UserInfo> userMap = CollUtils.listToMap(userInfos, UserInfo::getId);
String sTime = meeting.getStartTime().format(DatePattern.NORM_DATETIME_MINUTE_FORMATTER);
String eTime = meeting.getEndTime().format(DatePattern.NORM_DATETIME_MINUTE_FORMATTER);
String meetingTime = sTime + " - " + eTime;
String sTime = officialTime(meeting.getStartTime());
String eTime = officialTime(meeting.getEndTime());
String meetingTime = sTime + "" + eTime;
List<SendSmsContext> yxtContents = new ArrayList<>(); List<SendSmsContext> yxtContents = new ArrayList<>();
List<Notify> notifies = new ArrayList<>(); List<Notify> notifies = new ArrayList<>();
List<WorkNoticeInfo> workingNotices = new ArrayList<>(); List<WorkNoticeInfo> workingNotices = new ArrayList<>();
experts.forEach(w -> { experts.forEach(w -> {
String msgContent = String.format(MeetingMsgTemplateConst.CONFIRMED_ROSTER, String msgContent = String.format(MeetingMsgTemplateConst.CONFIRMED_ROSTER,
w.getExpertName(), w.getCreateOn(), meetingTime, meeting.getMeetingAddress(),
w.getExpertName(), officialTime(w.getCreateOn()), meetingTime, meeting.getMeetingAddress(),
meeting.getConnecter(), meeting.getContact()); meeting.getConnecter(), meeting.getContact());
// 音信通消息 // 音信通消息
SendSmsContext yxtContent = new SendSmsContext(); SendSmsContext yxtContent = new SendSmsContext();
@@ -134,7 +138,7 @@ public class MeetingMsgHelper {
workingNotices.add(swn); workingNotices.add(swn);
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("meetingId", meeting.getId()); map.put("meetingId", meeting.getId());
Notify notify = getNotify(info.getId(), msgContent, map);
Notify notify = getNotify(info.getId(), msgContent, MsgTypeEnum.EXPERT_REVIEW, map);
notifies.add(notify); notifies.add(notify);
} }
}); });


+ 2
- 5
pmapi/src/main/java/com/ningdatech/pmapi/staging/service/INdWorkNoticeStagingService.java View File

@@ -1,10 +1,8 @@
package com.ningdatech.pmapi.staging.service; package com.ningdatech.pmapi.staging.service;


import com.ningdatech.pmapi.projectlib.model.entity.Project;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ningdatech.pmapi.staging.enums.MsgTypeEnum; import com.ningdatech.pmapi.staging.enums.MsgTypeEnum;
import com.ningdatech.pmapi.staging.model.entity.ProjectStaging;
import com.ningdatech.pmapi.staging.model.entity.WorkNoticeStaging; import com.ningdatech.pmapi.staging.model.entity.WorkNoticeStaging;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ningdatech.pmapi.todocenter.bean.entity.WorkNoticeInfo; import com.ningdatech.pmapi.todocenter.bean.entity.WorkNoticeInfo;


import java.util.List; import java.util.List;
@@ -28,8 +26,7 @@ public interface INdWorkNoticeStagingService extends IService<WorkNoticeStaging>
* *
* @param workNoticeInfos 工作通知内容 * @param workNoticeInfos 工作通知内容
* @param msgType 通知类型 * @param msgType 通知类型
* @return 是否保存成功
*/ */
Boolean addByWorkNotice(List<WorkNoticeInfo> workNoticeInfos, MsgTypeEnum msgType);
void addByWorkNotice(List<WorkNoticeInfo> workNoticeInfos, MsgTypeEnum msgType);


} }

+ 6
- 5
pmapi/src/main/java/com/ningdatech/pmapi/staging/service/impl/NdWorkNoticeStagingServiceImpl.java View File

@@ -95,7 +95,8 @@ public class NdWorkNoticeStagingServiceImpl extends ServiceImpl<NdWorkNoticeStag
* @since 2023/02/28 20:02 * @since 2023/02/28 20:02
*/ */
@Override @Override
public Boolean addByWorkNotice(List<WorkNoticeInfo> workNoticeInfos, MsgTypeEnum msgType) {
public void addByWorkNotice(List<WorkNoticeInfo> workNoticeInfos, MsgTypeEnum msgType) {
LocalDateTime now = LocalDateTime.now();
List<WorkNoticeStaging> workNoticeInfoList = workNoticeInfos.stream() List<WorkNoticeStaging> workNoticeInfoList = workNoticeInfos.stream()
.map(workNoticeInfo -> WorkNoticeStaging.builder() .map(workNoticeInfo -> WorkNoticeStaging.builder()
.accountId(workNoticeInfo.getAccountId()) .accountId(workNoticeInfo.getAccountId())
@@ -105,12 +106,12 @@ public class NdWorkNoticeStagingServiceImpl extends ServiceImpl<NdWorkNoticeStag
.organizationName(workNoticeInfo.getOrganizationName()) .organizationName(workNoticeInfo.getOrganizationName())
.receiverUserId(workNoticeInfo.getReceiverUserId()) .receiverUserId(workNoticeInfo.getReceiverUserId())
.msgType(msgType) .msgType(msgType)
.createOn(LocalDateTime.now())
.updateOn(LocalDateTime.now())
.nextTime(LocalDateTime.now())
.createOn(now)
.updateOn(now)
.nextTime(now)
.retryTimes(0) .retryTimes(0)
.build()).collect(Collectors.toList()); .build()).collect(Collectors.toList());
return saveBatch(workNoticeInfoList);
saveBatch(workNoticeInfoList);
} }


} }

+ 5
- 5
pmapi/src/main/java/com/ningdatech/pmapi/sys/manage/NotifyManage.java View File

@@ -45,14 +45,14 @@ public class NotifyManage {
.like(Objects.nonNull(notifyListReq.getTitle()), Notify::getTitle, notifyListReq.getTitle()) .like(Objects.nonNull(notifyListReq.getTitle()), Notify::getTitle, notifyListReq.getTitle())
.eq(Objects.nonNull(notifyListReq.getType()), Notify::getType, notifyListReq.getType()) .eq(Objects.nonNull(notifyListReq.getType()), Notify::getType, notifyListReq.getType())
.orderByDesc(Notify::getCreateTime); .orderByDesc(Notify::getCreateTime);
notifyService.page(page,wrapper);
if(page.getTotal() == 0L){
notifyService.page(page, wrapper);
if (page.getTotal() == 0L) {
return PageVo.empty(); return PageVo.empty();
} }
List<NotifyVO> list = page.getRecords().stream() List<NotifyVO> list = page.getRecords().stream()
.map(n -> { .map(n -> {
NotifyVO notifyVo = new NotifyVO(); NotifyVO notifyVo = new NotifyVO();
BeanUtil.copyProperties(n,notifyVo);
BeanUtil.copyProperties(n, notifyVo);
String extraInfo = n.getExtraInfo(); String extraInfo = n.getExtraInfo();
if (StringUtils.isNotBlank(extraInfo)) { if (StringUtils.isNotBlank(extraInfo)) {
JSONObject jsonObject = JSON.parseObject(extraInfo); JSONObject jsonObject = JSON.parseObject(extraInfo);
@@ -66,12 +66,12 @@ public class NotifyManage {
return notifyVo; return notifyVo;
}) })
.collect(Collectors.toList()); .collect(Collectors.toList());
return PageVo.of(list,page.getTotal());
return PageVo.of(list, page.getTotal());
} }


public NotifyVO detail(Long id) { public NotifyVO detail(Long id) {
Notify one = notifyService.getById(id); Notify one = notifyService.getById(id);
return BeanUtil.copyProperties(one,NotifyVO.class);
return BeanUtil.copyProperties(one, NotifyVO.class);
} }


public Boolean read(Long id) { public Boolean read(Long id) {


Loading…
Cancel
Save