虚拟清单发布时发消息
This commit is contained in:
+322
-120
@@ -13,7 +13,11 @@ import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.document.service.impl.BussDocumentLibraryEOServiceImpl;
|
||||
import com.jero.modules.domain.service.DomainUserRelService;
|
||||
import com.jero.modules.dummy.entity.*;
|
||||
import com.jero.modules.dummy.entity.DummyContentChangeEO;
|
||||
import com.jero.modules.dummy.entity.DummyInventoryBaseEO;
|
||||
import com.jero.modules.dummy.entity.DummyInventoryInfoEO;
|
||||
import com.jero.modules.dummy.entity.DummyLogEO;
|
||||
import com.jero.modules.dummy.entity.DummyReadEO;
|
||||
import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum;
|
||||
import com.jero.modules.dummy.enums.InventoryStateEnum;
|
||||
import com.jero.modules.dummy.enums.ReadFlagEnum;
|
||||
@@ -23,7 +27,6 @@ import com.jero.modules.dummy.service.IDummyContentChangeEOService;
|
||||
import com.jero.modules.dummy.service.IDummyInventoryBaseEOService;
|
||||
import com.jero.modules.dummy.service.IDummyInventoryInfoEOService;
|
||||
import com.jero.modules.dummy.service.IDummyReadEOService;
|
||||
import com.jero.modules.dummy.util.ListDiff;
|
||||
import com.jero.modules.dummy.vo.VirtualCreaterVo;
|
||||
import com.jero.modules.feishu.service.IFeishuService;
|
||||
import com.jero.modules.oss.entity.OSSFile;
|
||||
@@ -48,7 +51,13 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import javax.annotation.Resource;
|
||||
import java.io.IOException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -351,33 +360,21 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
LambdaQueryWrapper<DummyContentChangeEO> wrapper =new LambdaQueryWrapper<>();
|
||||
wrapper.in(DummyContentChangeEO::getConnectId,dummyInventoryBaseEO.getId());
|
||||
List<DummyContentChangeEO> dummyContentChangeEOList = iDummyContentChangeEOService.list(wrapper);
|
||||
//基础数据
|
||||
LambdaQueryWrapper<DummyInventoryBaseEO> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.in(DummyInventoryBaseEO::getId,dummyInventoryBaseEO.getId());
|
||||
List<DummyInventoryBaseEO> dummyInventoryBaseEOList = this.list(queryWrapper);
|
||||
//详情数据
|
||||
LambdaQueryWrapper<DummyInventoryInfoEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.in(DummyInventoryInfoEO::getDummyInventoryBaseId,dummyInventoryBaseEO.getId());
|
||||
List<DummyInventoryInfoEO> dummyInventoryInfoEOList = iDummyInventoryInfoEOService.list(lambdaQueryWrapper);
|
||||
String contentLog = "";
|
||||
String contentLog = "The "+ baseEO.getName()+" virtual list you subscribed to has been updated as follows:" + "</br>";
|
||||
|
||||
if(dummyContentChangeEOList.size() == 0){
|
||||
//没有添加过需要进行第一次添加
|
||||
Date thisTime = new Date();
|
||||
List<DummyContentChangeEO> list = new ArrayList<>();
|
||||
if(dummyInventoryBaseEOList.size() != 0){
|
||||
String base = JSONArray.toJSONString(dummyInventoryBaseEOList);
|
||||
DummyContentChangeEO dummyContentChangeEOBase = new DummyContentChangeEO();
|
||||
dummyContentChangeEOBase.setConnectId(dummyInventoryBaseEO.getId());
|
||||
dummyContentChangeEOBase.setContentJson(base);
|
||||
dummyContentChangeEOBase.setUpdateTime(thisTime);
|
||||
list.add(dummyContentChangeEOBase);
|
||||
}
|
||||
if(dummyInventoryInfoEOList.size() != 0){
|
||||
disposeDataToEn(dummyInventoryInfoEOList);
|
||||
String info = JSONArray.toJSONString(dummyInventoryInfoEOList);
|
||||
DummyContentChangeEO dummyContentChangeEOInfo = new DummyContentChangeEO();
|
||||
dummyContentChangeEOInfo.setParentId(dummyInventoryBaseEO.getId());
|
||||
dummyContentChangeEOInfo.setConnectId(dummyInventoryBaseEO.getId());
|
||||
dummyContentChangeEOInfo.setContentJson(info);
|
||||
dummyContentChangeEOInfo.setUpdateTime(thisTime);
|
||||
list.add(dummyContentChangeEOInfo);
|
||||
@@ -386,132 +383,337 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
iDummyContentChangeEOService.saveBatch(list);
|
||||
}
|
||||
}else{
|
||||
//1.查询之前保存过的基础数据
|
||||
LambdaQueryWrapper<DummyContentChangeEO> wrapperBase =new LambdaQueryWrapper<>();
|
||||
wrapperBase.in(DummyContentChangeEO::getConnectId,dummyInventoryBaseEO.getId());
|
||||
List<DummyContentChangeEO> dummyContentChangeEOBaseList = iDummyContentChangeEOService.list(wrapperBase);
|
||||
//2. 查询之前保存过的详情数据
|
||||
LambdaQueryWrapper<DummyContentChangeEO> wrapperInfo =new LambdaQueryWrapper<>();
|
||||
wrapperInfo.in(DummyContentChangeEO::getParentId,dummyInventoryBaseEO.getId());
|
||||
List<DummyContentChangeEO> dummyContentChangeEOInfoList = iDummyContentChangeEOService.list(wrapperInfo);
|
||||
if(dummyContentChangeEOInfoList.size() != 0){
|
||||
String contentJson = dummyContentChangeEOInfoList.get(0).getContentJson();
|
||||
List<DummyInventoryInfoEO> baseCJList = JSONArray.parseArray(contentJson, DummyInventoryInfoEO.class);
|
||||
List<String> serialNumberOldList = baseCJList.stream().map(DummyInventoryInfoEO::getSerialNumber).collect(Collectors.toList());
|
||||
//变更后的数据
|
||||
if(dummyInventoryInfoEOList.size() != 0){
|
||||
List<String> serialNumberNewList = dummyInventoryInfoEOList.stream().map(DummyInventoryInfoEO::getSerialNumber).collect(Collectors.toList());
|
||||
//新增的法规
|
||||
List<DummyInventoryInfoEO> collectAdd = dummyInventoryInfoEOList.stream()
|
||||
.filter(e -> !serialNumberOldList.contains(e.getSerialNumber())).collect(Collectors.toList());
|
||||
|
||||
Date lastIssueTime = null;
|
||||
List<String> serialNumberAddList = serialNumberNewList.stream().filter(e->!serialNumberOldList.contains(e)).collect(Collectors.toList());
|
||||
//删除的法规
|
||||
List<DummyInventoryInfoEO> collectDelete = baseCJList.stream()
|
||||
.filter(e -> !serialNumberNewList.contains(e.getSerialNumber())).collect(Collectors.toList());
|
||||
List<String> serialNumberDeleteList = serialNumberOldList.stream().filter(e->!serialNumberNewList.contains(e)).collect(Collectors.toList());
|
||||
|
||||
|
||||
if (CollectionUtils.isNotEmpty(dummyContentChangeEOInfoList)) {
|
||||
lastIssueTime = dummyContentChangeEOInfoList.get(0).getUpdateTime();
|
||||
|
||||
if(CollectionUtils.isNotEmpty(dummyContentChangeEOInfoList)){
|
||||
//3.对比基础表数据
|
||||
//3.1截止到现在发布,期间修改的数据(基础)
|
||||
//最新的数据为-->dummyInventoryBaseEOList
|
||||
|
||||
//3.2基础表数据对比
|
||||
String baseCJ=dummyContentChangeEOBaseList.get(0).getContentJson();
|
||||
List<DummyInventoryBaseEO> baseCJList = JSONArray.parseArray(baseCJ, DummyInventoryBaseEO.class);//json转list
|
||||
|
||||
//对比,获取值不同的字段
|
||||
Map<String, String> baseDiff = null;
|
||||
for(int i=0;i< baseCJList.size();i++) {
|
||||
baseCJList.get(i);
|
||||
dummyInventoryBaseEOList.get(i);
|
||||
baseDiff = ListDiff.compareObject(baseCJList.get(i), dummyInventoryBaseEOList.get(i));
|
||||
//发消息
|
||||
int count = 1;
|
||||
if(serialNumberAddList.size() != 0){
|
||||
List<String> hrefList = new ArrayList<>();
|
||||
for (DummyInventoryInfoEO dummyInventoryInfoEO : collectAdd) {
|
||||
String href = "<a href='/docManage/library/detail?id=" + dummyInventoryInfoEO.getBussDocumentLibraryId() +
|
||||
"&title=" + dummyInventoryInfoEO.getTitle() +
|
||||
"&serial_number=" + dummyInventoryInfoEO.getSerialNumber() + "'" + " target='_blank'>" + dummyInventoryInfoEO.getSerialNumber() + "</a>";
|
||||
hrefList.add(href);
|
||||
}
|
||||
contentLog += count+". New regulations: " + StringUtils.join(hrefList,",") + "</br>";
|
||||
count++;
|
||||
}
|
||||
if(serialNumberDeleteList.size() != 0){
|
||||
List<String> hrefList = new ArrayList<>();
|
||||
for (DummyInventoryInfoEO dummyInventoryInfoEO : collectDelete) {
|
||||
String href = "<a href='/docManage/library/detail?id=" + dummyInventoryInfoEO.getBussDocumentLibraryId() +
|
||||
"&title=" + dummyInventoryInfoEO.getTitle() +
|
||||
"&serial_number=" + dummyInventoryInfoEO.getSerialNumber() + "'" + " target='_blank'>" + dummyInventoryInfoEO.getSerialNumber() + "</a>";
|
||||
hrefList.add(href);
|
||||
}
|
||||
contentLog += count + ". Remove regulations: " + StringUtils.join(hrefList,",") + "</br>";
|
||||
}
|
||||
|
||||
//4.查详情表两次发布的时间之间的数据
|
||||
if(lastIssueTime != now){
|
||||
QueryWrapper<DummyLogEO> logEOQueryWrapper = new QueryWrapper<>();
|
||||
logEOQueryWrapper.orderByAsc("create_time")
|
||||
.between("create_time",lastIssueTime,now)
|
||||
.eq("dummy_inventory_base_id",dummyInventoryBaseEO.getId())
|
||||
.eq("is_en_log",CutEnum.EN.getValue());
|
||||
List<DummyLogEO> updateLogList = dummyLogEOService.list(logEOQueryWrapper);
|
||||
if(CollectionUtils.isNotEmpty(updateLogList)){
|
||||
List<String> contentLogList = updateLogList.stream().map(e -> e.getLogContent()).collect(Collectors.toList());
|
||||
for(int i=0 ; i < contentLogList.size() ;i++){
|
||||
String content = contentLogList.get(i);
|
||||
if(StringUtils.isNotBlank(content) && content.endsWith("</br>")){
|
||||
content = content.substring(0,content.length()-5);
|
||||
}
|
||||
contentLog += "("+ (i+1) +")" + content + "</br>";
|
||||
if(serialNumberAddList.size() != 0 || serialNumberDeleteList.size() != 0){
|
||||
List<String> userNameList = dummyReadEOService.queryReadUserInfo(dummyInventoryBaseEO.getId());
|
||||
List<String> thirdIdList = new ArrayList<>();
|
||||
if(userNameList.size() != 0){
|
||||
List<String> userIdList = sysUserService.queryUserIdListByNameList(userNameList).stream().map(e -> e.getId()).collect(Collectors.toList());
|
||||
thirdIdList = sysUserService.queryUserIdListByNameList(userNameList).stream().map(e -> e.getThirdId()).collect(Collectors.toList());
|
||||
if(userIdList.size() != 0){
|
||||
//封装消息的实体类
|
||||
String title = "The "+ baseEO.getName()+" virtual list you subscribed to has been updated";
|
||||
SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, title, title, contentLog,MessageTypeEnum.READ.getValue(),MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
|
||||
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
|
||||
bussDocumentLibraryEOService.sendWebsocket(dummyInventoryBaseEO.getId(), title);
|
||||
}
|
||||
}
|
||||
//飞书
|
||||
if(thirdIdList.size() != 0){
|
||||
String href = backUrl + "/virtualListDetails?name=" + baseEO.getName() + "&useExplain=" + baseEO.getUseExplain() +"&id=" + baseEO.getId() +"&title=维护虚拟清单";
|
||||
try {
|
||||
iFeishuService.batchSendMessage(thirdIdList.toArray(new String[]{}), contentLog, MessageTypeEnum.PUSH.getName(), href);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
if(StringUtils.isNotBlank(contentLog) && contentLog.endsWith("</br>")){
|
||||
contentLog = contentLog.substring(0,contentLog.length()-5);
|
||||
}
|
||||
|
||||
//列表,维护清单不同的字段,addSerialNumber,deleteSerialNumber都为空->证明是没有更新的数据,不发送消息,数据不处理
|
||||
if(MapUtils.isNotEmpty(baseDiff) || StringUtils.isNotEmpty(contentLog)) {
|
||||
//向订阅该领域管理的人发消息和飞书
|
||||
sendMsg(baseDiff, dummyContentChangeEOBaseList.get(0).getConnectId(), contentLog,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut());
|
||||
|
||||
//5.数据对比完成后.更新之前保存的dummy_inventory_info中的content_json数据,重新保存最新的数据
|
||||
if(MapUtils.isNotEmpty(baseDiff)){//列表有不同字段
|
||||
String base = JSONArray.toJSONString(dummyInventoryBaseEOList);
|
||||
UpdateWrapper<DummyContentChangeEO> baseUpdateWrapper=new UpdateWrapper<>();
|
||||
baseUpdateWrapper.set("content_json",base)
|
||||
.set("update_by",sysUser.getUsername())
|
||||
.set("update_time",now)
|
||||
.eq("connect_id",dummyInventoryBaseEOList.get(0).getId());
|
||||
dummyContentChangeEOMapper.update(null,baseUpdateWrapper);
|
||||
}
|
||||
// if(CollectionUtils.isNotEmpty(infoDiffList) || StringUtils.isNotEmpty(addSerialNumber)
|
||||
// || StringUtils.isNotEmpty(deleteSerialNumber)){//维护清单有不同字段,addSerialNumber,deleteSerialNumber也有数据
|
||||
String info = JSONArray.toJSONString(dummyInventoryInfoEOList);
|
||||
UpdateWrapper<DummyContentChangeEO> infoUpdateWrapper=new UpdateWrapper<>();
|
||||
infoUpdateWrapper.set("content_json",info)
|
||||
.set("update_by",sysUser.getUsername())
|
||||
.set("update_time",now)
|
||||
.eq("parent_id",dummyInventoryBaseEOList.get(0).getId());
|
||||
dummyContentChangeEOMapper.update(null,infoUpdateWrapper);
|
||||
// }
|
||||
}
|
||||
}
|
||||
}else{//基础数据发布过,详情原为空-->有新增,再次发布
|
||||
List<DummyContentChangeEO> list = new ArrayList<>();
|
||||
if(dummyInventoryInfoEOList.size() != 0){
|
||||
disposeDataToEn(dummyInventoryInfoEOList);
|
||||
String info = JSONArray.toJSONString(dummyInventoryInfoEOList);
|
||||
DummyContentChangeEO dummyContentChangeEOInfo = new DummyContentChangeEO();
|
||||
dummyContentChangeEOInfo.setParentId(dummyInventoryBaseEO.getId());
|
||||
dummyContentChangeEOInfo.setContentJson(info);
|
||||
list.add(dummyContentChangeEOInfo);
|
||||
}
|
||||
if(list.size() != 0){//原详情为空,查所有数据,不限时间
|
||||
QueryWrapper<DummyLogEO> logEOQueryWrapper = new QueryWrapper<>();
|
||||
logEOQueryWrapper.orderByAsc("create_time")
|
||||
// .between("create_time",lastIssueTime,now)
|
||||
.eq("dummy_inventory_base_id",dummyInventoryBaseEO.getId())
|
||||
.eq("is_en_log",CutEnum.EN.getValue());
|
||||
List<DummyLogEO> updateLogList = dummyLogEOService.list(logEOQueryWrapper);
|
||||
//删除之前保存的变更的数据
|
||||
iDummyContentChangeEOService.deleteById(dummyContentChangeEOInfoList.get(0).getId());
|
||||
|
||||
List<String> contentLogList = updateLogList.stream().map(e -> e.getLogContent()).collect(Collectors.toList());
|
||||
for(int i=0 ; i < contentLogList.size() ;i++){
|
||||
String content = contentLogList.get(i);
|
||||
if(StringUtils.isNotBlank(content) && content.endsWith("</br>")){
|
||||
content = content.substring(0,content.length()-5);
|
||||
}
|
||||
contentLog += "("+ (i+1) +")" + content + "</br>";
|
||||
}
|
||||
if(StringUtils.isNotBlank(contentLog) && contentLog.endsWith("</br>")){
|
||||
contentLog = contentLog.substring(0,contentLog.length()-5);
|
||||
}
|
||||
iDummyContentChangeEOService.saveBatch(list);
|
||||
sendMsg(null,dummyInventoryInfoEOList.get(0).getDummyInventoryBaseId(),contentLog ,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut());
|
||||
|
||||
}
|
||||
//重新保存
|
||||
DummyContentChangeEO dummyContentChangeEOInfo = new DummyContentChangeEO();
|
||||
String contentJsonTemp = JSONArray.toJSONString(dummyInventoryInfoEOList);
|
||||
dummyContentChangeEOInfo.setParentId(dummyInventoryBaseEO.getId());
|
||||
dummyContentChangeEOInfo.setConnectId(dummyInventoryBaseEO.getId());
|
||||
dummyContentChangeEOInfo.setContentJson(contentJsonTemp);
|
||||
dummyContentChangeEOInfo.setUpdateTime(new Date());
|
||||
iDummyContentChangeEOService.save(dummyContentChangeEOInfo);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
//撤回,需要发消息
|
||||
try {
|
||||
sendMsg(null, dummyInventoryBaseEO.getId(),null,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut());
|
||||
List<String> userNameList = dummyReadEOService.queryReadUserInfo(dummyInventoryBaseEO.getId());
|
||||
List<String> thirdIdList = new ArrayList<>();
|
||||
if(userNameList.size() != 0){
|
||||
List<String> userIdList = sysUserService.queryUserIdListByNameList(userNameList).stream().map(e -> e.getId()).collect(Collectors.toList());
|
||||
thirdIdList = sysUserService.queryUserIdListByNameList(userNameList).stream().map(e -> e.getThirdId()).collect(Collectors.toList());
|
||||
if(userIdList.size() != 0){
|
||||
//封装消息的实体类 The XX virtual list you subscribed to has been withdrawn
|
||||
String title = "The "+ baseEO.getName()+" virtual list you subscribed to has been withdrawn";
|
||||
//Please note that the XX virtual list you subscribed to has been withdrawn.
|
||||
String contentLog = "Please note that the "+ baseEO.getName()+" virtual list you subscribed to has been withdrawn";
|
||||
SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, title, title, contentLog,MessageTypeEnum.READ.getValue(),MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
|
||||
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
|
||||
bussDocumentLibraryEOService.sendWebsocket(dummyInventoryBaseEO.getId(), title);
|
||||
}
|
||||
sendMsg(null, dummyInventoryBaseEO.getId(),null,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut());
|
||||
}
|
||||
//飞书
|
||||
if(thirdIdList.size() != 0){
|
||||
String contentInfoTemp = "Please note that the "+ baseEO.getName()+" virtual list you subscribed to has been withdrawn";
|
||||
String href = backUrl + "/virtualListDetails?name=" + baseEO.getName() + "&useExplain=" + baseEO.getUseExplain() +"&id=" + baseEO.getId() +"&title=维护虚拟清单";
|
||||
iFeishuService.batchSendMessage(thirdIdList.toArray(new String[]{}), contentInfoTemp, MessageTypeEnum.PUSH.getName(), href);
|
||||
}
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
// /**
|
||||
// * 发布
|
||||
// * 发布与撤回均需要发消息
|
||||
// * 首次发布不发消息
|
||||
// *
|
||||
// * @param dummyInventoryBaseEO
|
||||
// */
|
||||
// @Override
|
||||
// @Transactional
|
||||
// public void issue(DummyInventoryBaseEO dummyInventoryBaseEO){
|
||||
// // 增加创建者校验
|
||||
// LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
// String loginUserName = sysUser.getUsername();
|
||||
//
|
||||
// DummyInventoryBaseEO baseEO = queryById(dummyInventoryBaseEO.getId());
|
||||
// List<String> createByNameList =new ArrayList<>();
|
||||
// if (StringUtils.isNotBlank(baseEO.getCreateBy())) {
|
||||
// createByNameList = Arrays.asList(baseEO.getCreateBy().split(","));
|
||||
//
|
||||
// if (CollectionUtils.isNotEmpty(createByNameList)){
|
||||
// if (!createByNameList.contains(loginUserName)) {
|
||||
// if (CutEnum.CN.getValue().equals(dummyInventoryBaseEO.getCut())) {
|
||||
// throw new JeroBootException("当前用户非创建者,无法发布");
|
||||
// } else {
|
||||
// throw new JeroBootException("The current user is not the creator and cannot be issued.");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// Date now = new Date();
|
||||
// UpdateWrapper<DummyInventoryBaseEO> baseWrapper=new UpdateWrapper<>();
|
||||
// baseWrapper.set("state",dummyInventoryBaseEO.getState());
|
||||
//
|
||||
// if(InventoryStateEnum.ISSUE.getValue().equals(dummyInventoryBaseEO.getState())){
|
||||
// baseWrapper.set("update_by",sysUser.getUsername())
|
||||
// .set("update_time",now);
|
||||
// }
|
||||
// baseWrapper.eq("id",dummyInventoryBaseEO.getId());
|
||||
// dummyInventoryBaseEOMapper.update(null,baseWrapper);
|
||||
//// this.updateById(dummyInventoryBaseEO);
|
||||
// //不管有没有维护清单,都返回操作成功
|
||||
// //发布与撤回均需要发消息(向订阅的人员发消息)
|
||||
// //首次发布不发消息
|
||||
// //(1)首次发布将虚拟清单的基础数据和详情数据存入维护清单内容变更表_dummy_content_change
|
||||
// //(2)撤回再次编辑完后再次发布,发消息
|
||||
// //A. 分别判断基础数据和详情数据同上次发布的数据是否发生变化
|
||||
// //发生变化-->发消息,删除dummy_content_change中上一次存入的数据,将本次数据存入
|
||||
// //没有变化-->不发消息,数据不处理
|
||||
//
|
||||
// //先判断是发布还是撤回 1-->发布 2-->撤回
|
||||
// //撤回需要发消息
|
||||
//
|
||||
// if(InventoryStateEnum.ISSUE.getValue().equals(dummyInventoryBaseEO.getState())){
|
||||
// //先判断第一次发布的时候是否保存过数据
|
||||
// LambdaQueryWrapper<DummyContentChangeEO> wrapper =new LambdaQueryWrapper<>();
|
||||
// wrapper.in(DummyContentChangeEO::getConnectId,dummyInventoryBaseEO.getId());
|
||||
// List<DummyContentChangeEO> dummyContentChangeEOList = iDummyContentChangeEOService.list(wrapper);
|
||||
// //基础数据
|
||||
// LambdaQueryWrapper<DummyInventoryBaseEO> queryWrapper = new LambdaQueryWrapper<>();
|
||||
// queryWrapper.in(DummyInventoryBaseEO::getId,dummyInventoryBaseEO.getId());
|
||||
// List<DummyInventoryBaseEO> dummyInventoryBaseEOList = this.list(queryWrapper);
|
||||
// //详情数据
|
||||
// LambdaQueryWrapper<DummyInventoryInfoEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
// lambdaQueryWrapper.in(DummyInventoryInfoEO::getDummyInventoryBaseId,dummyInventoryBaseEO.getId());
|
||||
// List<DummyInventoryInfoEO> dummyInventoryInfoEOList = iDummyInventoryInfoEOService.list(lambdaQueryWrapper);
|
||||
// String contentLog = "";
|
||||
//
|
||||
// if(dummyContentChangeEOList.size() == 0){
|
||||
// //没有添加过需要进行第一次添加
|
||||
// Date thisTime = new Date();
|
||||
// List<DummyContentChangeEO> list = new ArrayList<>();
|
||||
// if(dummyInventoryBaseEOList.size() != 0){
|
||||
// String base = JSONArray.toJSONString(dummyInventoryBaseEOList);
|
||||
// DummyContentChangeEO dummyContentChangeEOBase = new DummyContentChangeEO();
|
||||
// dummyContentChangeEOBase.setConnectId(dummyInventoryBaseEO.getId());
|
||||
// dummyContentChangeEOBase.setContentJson(base);
|
||||
// dummyContentChangeEOBase.setUpdateTime(thisTime);
|
||||
// list.add(dummyContentChangeEOBase);
|
||||
// }
|
||||
// if(dummyInventoryInfoEOList.size() != 0){
|
||||
// disposeDataToEn(dummyInventoryInfoEOList);
|
||||
// String info = JSONArray.toJSONString(dummyInventoryInfoEOList);
|
||||
// DummyContentChangeEO dummyContentChangeEOInfo = new DummyContentChangeEO();
|
||||
// dummyContentChangeEOInfo.setParentId(dummyInventoryBaseEO.getId());
|
||||
// dummyContentChangeEOInfo.setContentJson(info);
|
||||
// dummyContentChangeEOInfo.setUpdateTime(thisTime);
|
||||
// list.add(dummyContentChangeEOInfo);
|
||||
// }
|
||||
// if(list.size() != 0){
|
||||
// iDummyContentChangeEOService.saveBatch(list);
|
||||
// }
|
||||
// }else{
|
||||
// //1.查询之前保存过的基础数据
|
||||
// LambdaQueryWrapper<DummyContentChangeEO> wrapperBase =new LambdaQueryWrapper<>();
|
||||
// wrapperBase.in(DummyContentChangeEO::getConnectId,dummyInventoryBaseEO.getId());
|
||||
// List<DummyContentChangeEO> dummyContentChangeEOBaseList = iDummyContentChangeEOService.list(wrapperBase);
|
||||
// //2. 查询之前保存过的详情数据
|
||||
// LambdaQueryWrapper<DummyContentChangeEO> wrapperInfo =new LambdaQueryWrapper<>();
|
||||
// wrapperInfo.in(DummyContentChangeEO::getParentId,dummyInventoryBaseEO.getId());
|
||||
// List<DummyContentChangeEO> dummyContentChangeEOInfoList = iDummyContentChangeEOService.list(wrapperInfo);
|
||||
//
|
||||
// Date lastIssueTime = null;
|
||||
//
|
||||
//
|
||||
// if (CollectionUtils.isNotEmpty(dummyContentChangeEOInfoList)) {
|
||||
// lastIssueTime = dummyContentChangeEOInfoList.get(0).getUpdateTime();
|
||||
//
|
||||
// if(CollectionUtils.isNotEmpty(dummyContentChangeEOInfoList)){
|
||||
// //3.对比基础表数据
|
||||
// //3.1截止到现在发布,期间修改的数据(基础)
|
||||
// //最新的数据为-->dummyInventoryBaseEOList
|
||||
//
|
||||
// //3.2基础表数据对比
|
||||
// String baseCJ=dummyContentChangeEOBaseList.get(0).getContentJson();
|
||||
// List<DummyInventoryBaseEO> baseCJList = JSONArray.parseArray(baseCJ, DummyInventoryBaseEO.class);//json转list
|
||||
//
|
||||
// //对比,获取值不同的字段
|
||||
// Map<String, String> baseDiff = null;
|
||||
// for(int i=0;i< baseCJList.size();i++) {
|
||||
// baseCJList.get(i);
|
||||
// dummyInventoryBaseEOList.get(i);
|
||||
// baseDiff = ListDiff.compareObject(baseCJList.get(i), dummyInventoryBaseEOList.get(i));
|
||||
// }
|
||||
//
|
||||
// //4.查详情表两次发布的时间之间的数据
|
||||
// if(lastIssueTime != now){
|
||||
// QueryWrapper<DummyLogEO> logEOQueryWrapper = new QueryWrapper<>();
|
||||
// logEOQueryWrapper.orderByAsc("create_time")
|
||||
// .between("create_time",lastIssueTime,now)
|
||||
// .eq("dummy_inventory_base_id",dummyInventoryBaseEO.getId())
|
||||
// .eq("is_en_log",CutEnum.EN.getValue());
|
||||
// List<DummyLogEO> updateLogList = dummyLogEOService.list(logEOQueryWrapper);
|
||||
// if(CollectionUtils.isNotEmpty(updateLogList)){
|
||||
// List<String> contentLogList = updateLogList.stream().map(e -> e.getLogContent()).collect(Collectors.toList());
|
||||
// for(int i=0 ; i < contentLogList.size() ;i++){
|
||||
// String content = contentLogList.get(i);
|
||||
// if(StringUtils.isNotBlank(content) && content.endsWith("</br>")){
|
||||
// content = content.substring(0,content.length()-5);
|
||||
// }
|
||||
// contentLog += "("+ (i+1) +")" + content + "</br>";
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// if(StringUtils.isNotBlank(contentLog) && contentLog.endsWith("</br>")){
|
||||
// contentLog = contentLog.substring(0,contentLog.length()-5);
|
||||
// }
|
||||
//
|
||||
// //列表,维护清单不同的字段,addSerialNumber,deleteSerialNumber都为空->证明是没有更新的数据,不发送消息,数据不处理
|
||||
// if(MapUtils.isNotEmpty(baseDiff) || StringUtils.isNotEmpty(contentLog)) {
|
||||
// //向订阅该领域管理的人发消息和飞书
|
||||
// sendMsg(baseDiff, dummyContentChangeEOBaseList.get(0).getConnectId(), contentLog,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut());
|
||||
//
|
||||
// //5.数据对比完成后.更新之前保存的dummy_inventory_info中的content_json数据,重新保存最新的数据
|
||||
// if(MapUtils.isNotEmpty(baseDiff)){//列表有不同字段
|
||||
// String base = JSONArray.toJSONString(dummyInventoryBaseEOList);
|
||||
// UpdateWrapper<DummyContentChangeEO> baseUpdateWrapper=new UpdateWrapper<>();
|
||||
// baseUpdateWrapper.set("content_json",base)
|
||||
// .set("update_by",sysUser.getUsername())
|
||||
// .set("update_time",now)
|
||||
// .eq("connect_id",dummyInventoryBaseEOList.get(0).getId());
|
||||
// dummyContentChangeEOMapper.update(null,baseUpdateWrapper);
|
||||
// }
|
||||
//// if(CollectionUtils.isNotEmpty(infoDiffList) || StringUtils.isNotEmpty(addSerialNumber)
|
||||
//// || StringUtils.isNotEmpty(deleteSerialNumber)){//维护清单有不同字段,addSerialNumber,deleteSerialNumber也有数据
|
||||
// String info = JSONArray.toJSONString(dummyInventoryInfoEOList);
|
||||
// UpdateWrapper<DummyContentChangeEO> infoUpdateWrapper=new UpdateWrapper<>();
|
||||
// infoUpdateWrapper.set("content_json",info)
|
||||
// .set("update_by",sysUser.getUsername())
|
||||
// .set("update_time",now)
|
||||
// .eq("parent_id",dummyInventoryBaseEOList.get(0).getId());
|
||||
// dummyContentChangeEOMapper.update(null,infoUpdateWrapper);
|
||||
//// }
|
||||
// }
|
||||
// }
|
||||
// }else{//基础数据发布过,详情原为空-->有新增,再次发布
|
||||
// List<DummyContentChangeEO> list = new ArrayList<>();
|
||||
// if(dummyInventoryInfoEOList.size() != 0){
|
||||
// disposeDataToEn(dummyInventoryInfoEOList);
|
||||
// String info = JSONArray.toJSONString(dummyInventoryInfoEOList);
|
||||
// DummyContentChangeEO dummyContentChangeEOInfo = new DummyContentChangeEO();
|
||||
// dummyContentChangeEOInfo.setParentId(dummyInventoryBaseEO.getId());
|
||||
// dummyContentChangeEOInfo.setContentJson(info);
|
||||
// list.add(dummyContentChangeEOInfo);
|
||||
// }
|
||||
// if(list.size() != 0){//原详情为空,查所有数据,不限时间
|
||||
// QueryWrapper<DummyLogEO> logEOQueryWrapper = new QueryWrapper<>();
|
||||
// logEOQueryWrapper.orderByAsc("create_time")
|
||||
//// .between("create_time",lastIssueTime,now)
|
||||
// .eq("dummy_inventory_base_id",dummyInventoryBaseEO.getId())
|
||||
// .eq("is_en_log",CutEnum.EN.getValue());
|
||||
// List<DummyLogEO> updateLogList = dummyLogEOService.list(logEOQueryWrapper);
|
||||
//
|
||||
// List<String> contentLogList = updateLogList.stream().map(e -> e.getLogContent()).collect(Collectors.toList());
|
||||
// for(int i=0 ; i < contentLogList.size() ;i++){
|
||||
// String content = contentLogList.get(i);
|
||||
// if(StringUtils.isNotBlank(content) && content.endsWith("</br>")){
|
||||
// content = content.substring(0,content.length()-5);
|
||||
// }
|
||||
// contentLog += "("+ (i+1) +")" + content + "</br>";
|
||||
// }
|
||||
// if(StringUtils.isNotBlank(contentLog) && contentLog.endsWith("</br>")){
|
||||
// contentLog = contentLog.substring(0,contentLog.length()-5);
|
||||
// }
|
||||
// iDummyContentChangeEOService.saveBatch(list);
|
||||
// sendMsg(null,dummyInventoryInfoEOList.get(0).getDummyInventoryBaseId(),contentLog ,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut());
|
||||
//
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }else{
|
||||
// //撤回,需要发消息
|
||||
// try {
|
||||
// sendMsg(null, dummyInventoryBaseEO.getId(),null,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut());
|
||||
// }catch (Exception e){
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//翻译成中文名
|
||||
public void disposeData(List<DummyInventoryInfoEO> records) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user