文档库--编辑时发消息

This commit is contained in:
zhn
2022-03-03 14:53:33 +08:00
parent ed490f0313
commit 92f69cc248
@@ -902,6 +902,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
List<OnlCgformField> fieldFileList,
List<OnlCgformField> fieldPullList,
String cut) {
//1. 处理订阅的发送消息
//修改的内容
StringBuilder sb = getUpdateInfo(map, dataList, fieldList, fieldDateList, fieldFileList, fieldPullList, cut);
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -919,19 +920,14 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
List<SysUser> userList = sysUserMapper.getUserListByNames(StringUtils.join(userNameList, ","));
List<String> userIdList = userList.stream().map(SysUser::getId).collect(Collectors.toList());
SysAnnouncement sysAnnouncement = new SysAnnouncement();
sysAnnouncement.setDelFlag("0");
sysAnnouncement.setSendStatus("0");
sysAnnouncement.setSendTime(new Date());
sysAnnouncement.setDocumentId((String) dataList.get(0).get("id"));
sysAnnouncement.setMsgCategory(MessageTypeEnum.READ.getValue());//消息类型
sysAnnouncement.setMsgType(CommonConstant.MSG_TYPE_UESR);//指定用户
sysAnnouncement.setMsgContent(sysUser.getRealname()+""+serialNumber+"进行了修改请及时查看");
sysAnnouncement.setMsgContentInfo(sysUser.getRealname()+"修改标准"+serialNumber+""+sb.toString());
sysAnnouncement.setUserIds(StringUtils.join(userIdList,","));
//111111111111111111111111111111111
String content = sysUser.getRealname()+""+serialNumber+"进行了修改请及时查看";
String contentInfo = sysUser.getRealname()+"修改标准"+serialNumber+""+sb.toString();
//封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, content, contentInfo);
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
}
//2. 处理修改代替标准的发送消息
//处理修改代替标准,发送通知
//修改时前端传参
String replaceStandard = (String) map.get("replace_standard");
@@ -939,20 +935,66 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//代替标准(根据id查询出来的)
String replaceStandardTemp = (String) dataList.get(0).get("replace_standard");
List<String> userNameListTemp = new ArrayList<>();
List<String> serialNumberList = new ArrayList<>();
//(1)此种情况为编辑前代替标准就已经有数据了
if (StringUtils.isNotBlank(replaceStandardTemp) && !replaceStandard.equals(replaceStandardTemp)) {
//需要向被替代标准的法规工程师发送站内通知和飞书信息,提醒内容:"新标准编号"已实施,请注意更新“替代标准编号”状态
List<String> list = Arrays.asList(replaceStandard.split(","));
List<String> listTemp = Arrays.asList(replaceStandardTemp.split(","));
List<String> listNew = list.stream().filter(e -> !listTemp.contains(e)).collect(Collectors.toList());
//向listNew对应的工程师发飞书通知
LambdaQueryWrapper<BussDocumentLibraryEO> lambdaQueryWrapperTemp = new LambdaQueryWrapper<>();
lambdaQueryWrapperTemp.in(BussDocumentLibraryEO::getId,listNew);
List<Map<String, Object>> mapList = this.listMaps(lambdaQueryWrapperTemp);
} else {
for (Map<String, Object> stringObjectMap : mapList) {
userNameListTemp.add((String) stringObjectMap.get("create_by"));
serialNumberList.add((String) stringObjectMap.get("serial_number"));
}
List<SysUser> userList = sysUserMapper.getUserListByNames(StringUtils.join(userNameListTemp, ","));
List<String> userIdList = userList.stream().map(SysUser::getId).collect(Collectors.toList());
String content = "新标准编号已实施,请注意更新替代标准编号:"+StringUtils.join(serialNumberList,",")+"的状态,"+"链接: http://localhost:3000/docManage/library";
//封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, content, content);
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
} else if(StringUtils.isBlank(replaceStandardTemp) && StringUtils.isNotBlank(replaceStandard)) {
//(2)此种情况为编辑前代替标准没有数据
//向replaceStandard对应的工程师发飞书通知
LambdaQueryWrapper<BussDocumentLibraryEO> lambdaQueryWrapperTemp = new LambdaQueryWrapper<>();
lambdaQueryWrapperTemp.in(BussDocumentLibraryEO::getId,Arrays.asList(replaceStandard.split(",")));
List<Map<String, Object>> mapList = this.listMaps(lambdaQueryWrapperTemp);
for (Map<String, Object> stringObjectMap : mapList) {
userNameListTemp.add((String) stringObjectMap.get("create_by"));
serialNumberList.add((String) stringObjectMap.get("serial_number"));
}
List<SysUser> userList = sysUserMapper.getUserListByNames(StringUtils.join(userNameListTemp, ","));
List<String> userIdList = userList.stream().map(SysUser::getId).collect(Collectors.toList());
String content = "新标准编号已实施,请注意更新替代标准编号:"+StringUtils.join(serialNumberList,",")+"的状态";
String contentInfo = "新标准编号已实施,请注意更新替代标准编号:"+StringUtils.join(serialNumberList,",")+"的状态,"+"链接: http://localhost:3000/docManage/library";
//封装消息的实体类
SysAnnouncement sysAnnouncement = getSysAnnouncement(userIdList, content, contentInfo);
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
}
}
}
@NotNull
private SysAnnouncement getSysAnnouncement(List<String> userIdList, String content, String contentInfo) {
SysAnnouncement sysAnnouncement = new SysAnnouncement();
sysAnnouncement.setDelFlag("0");
sysAnnouncement.setSendStatus("0");
sysAnnouncement.setSendTime(new Date());
// sysAnnouncement.setDocumentId((String) dataList.get(0).get("id"));
sysAnnouncement.setMsgCategory(MessageTypeEnum.READ.getValue());//消息类型
sysAnnouncement.setMsgType(CommonConstant.MSG_TYPE_UESR);//指定用户
sysAnnouncement.setMsgContent(content);
sysAnnouncement.setMsgContentInfo(contentInfo);
sysAnnouncement.setUserIds(StringUtils.join(userIdList, ","));
return sysAnnouncement;
}
private String getMustValues() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();