文档库--系统消息

This commit is contained in:
zhn
2022-03-02 18:53:51 +08:00
parent 8e5558d1da
commit 42bdd03da7
13 changed files with 267 additions and 68 deletions
@@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.CommonConstant;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.constant.enums.MessageTypeEnum;
import com.jero.common.constant.enums.ModuleEnum;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
@@ -25,7 +27,14 @@ import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.subscribe.entity.OnlCgformSubscribe;
import com.jero.modules.subscribe.service.IOnlCgformSubscribeService;
import com.jero.modules.system.entity.SysAnnouncement;
import com.jero.modules.system.entity.SysAnnouncementSend;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.modules.system.service.ISysAnnouncementSendService;
import com.jero.modules.system.service.ISysAnnouncementService;
import com.jero.modules.system.service.impl.SysBaseApiImpl;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
import com.jero.modules.tag.entity.OnlCgformArea;
import com.jero.modules.tag.service.impl.OnlCgformAreaServiceImpl;
@@ -96,6 +105,10 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
private IOnlCgformSubscribeService iOnlCgformSubscribeService;
@Autowired
private IBussLogEOService iBussLogEOService;
@Autowired
private ISysAnnouncementService sysAnnouncementService;
@Autowired
private SysUserMapper sysUserMapper;
@Value(value = "${jero.path.upload}")
private String uploadpath;
@@ -648,7 +661,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
//处理修改代替标准,发送通知
sendMessage(map, dataList);
sendMessage(map, dataList, fieldList, fieldDateList, fieldFileList, fieldPullList,cut);
//字段
@@ -745,6 +758,20 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
List<OnlCgformField> fieldFileList,
List<OnlCgformField> fieldPullList,
String cut) {
StringBuilder sb = getUpdateInfo(map, dataList, fieldList, fieldDateList, fieldFileList, fieldPullList, cut);
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (StringUtils.isNotBlank(sb)) {
String content = sb.substring(0, sb.length() - 1);
BussLogEO bussLogEO = new BussLogEO();
bussLogEO.setDocumentId((String) map.get("id"));
bussLogEO.setContent(content);
bussLogEO.setCreateBy(sysUser.getRealname());
iBussLogEOService.add(bussLogEO);
}
}
@NotNull
private StringBuilder getUpdateInfo(Map<String, Object> map, List<Map<String, Object>> dataList, List<OnlCgformField> fieldList, List<OnlCgformField> fieldDateList, List<OnlCgformField> fieldFileList, List<OnlCgformField> fieldPullList, String cut) {
Map<String, Object> mapTemp = new HashMap<>();
mapCopy(map, mapTemp);
//时间类型的字段
@@ -860,15 +887,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
}
}
});
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (StringUtils.isNotBlank(sb)) {
String content = sb.substring(0, sb.length() - 1);
BussLogEO bussLogEO = new BussLogEO();
bussLogEO.setDocumentId((String) map.get("id"));
bussLogEO.setContent(content);
bussLogEO.setCreateBy(sysUser.getRealname());
iBussLogEOService.add(bussLogEO);
}
return sb;
}
/**
@@ -876,7 +895,43 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
*
* @param map
*/
private void sendMessage(Map<String, Object> map, List<Map<String, Object>> dataList) {
private void sendMessage(Map<String, Object> map,
List<Map<String, Object>> dataList,
List<OnlCgformField> fieldList,
List<OnlCgformField> fieldDateList,
List<OnlCgformField> fieldFileList,
List<OnlCgformField> fieldPullList,
String cut) {
//修改的内容
StringBuilder sb = getUpdateInfo(map, dataList, fieldList, fieldDateList, fieldFileList, fieldPullList, cut);
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String serialNumber = (String) dataList.get(0).get("serial_number");
//只要修改了标准,就需要向订阅用户发送消息(内容为-->XXX对“GB 7258 进行了修改请及时查看”)
//1.先判断是否订阅
LambdaQueryWrapper<OnlCgformSubscribe> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(OnlCgformSubscribe::getDocumentId, (String)map.get("id"));
List<OnlCgformSubscribe> onlCgformSubscribeList = iOnlCgformSubscribeService.list(lambdaQueryWrapper);
List<String> userNameList = new ArrayList<>();
if(onlCgformSubscribeList.size() != 0){
for (OnlCgformSubscribe onlCgformSubscribe : onlCgformSubscribeList) {
userNameList.add(onlCgformSubscribe.getCreateBy());
}
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
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
}
//处理修改代替标准,发送通知
//修改时前端传参
String replaceStandard = (String) map.get("replace_standard");
@@ -1186,13 +1241,16 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
if (idList.size() == 0) {
return;
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
LambdaQueryWrapper<OnlCgformCollection> wrapper = new LambdaQueryWrapper<>();
wrapper.in(OnlCgformCollection::getDocumentId, idList);
wrapper.eq(OnlCgformCollection::getCreateBy,sysUser.getUsername());
List<OnlCgformCollection> collectList = iOnlCgformCollectionService.list(wrapper);
List<String> collectIdList = collectList.stream().map(OnlCgformCollection::getDocumentId).collect(Collectors.toList());
//订阅
LambdaQueryWrapper<OnlCgformSubscribe> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(OnlCgformSubscribe::getDocumentId, idList);
lambdaQueryWrapper.eq(OnlCgformSubscribe::getCreateBy,sysUser.getUsername());
List<OnlCgformSubscribe> subscribeList = iOnlCgformSubscribeService.list(lambdaQueryWrapper);
List<String> subscribeIdList = subscribeList.stream().map(OnlCgformSubscribe::getDocumentId).collect(Collectors.toList());