feat: There is no way the, 动态消息库

This commit is contained in:
super_liu
2022-06-02 16:40:25 +08:00
parent 4ee85aed5b
commit 0215ed71ae
5 changed files with 196 additions and 4 deletions
@@ -4,6 +4,8 @@ import com.adc.da.att.dao.AttFileEODao;
import com.adc.da.att.entity.AttFileEO;
import com.adc.da.person.entity.StandInfo;
import com.adc.da.person.entity.TsPersonCollect;
import com.adc.da.slrs.NewsFeed.entity.NewsFeed;
import com.adc.da.slrs.NewsFeed.service.INewsFeedService;
import com.adc.da.slrs.regulations.dao.StandDataDao;
import com.adc.da.slrs.regulations.entity.SearchStandContext;
import com.adc.da.slrs.regulations.entity.StandData;
@@ -105,11 +107,13 @@ import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.poifs.filesystem.FileMagic;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.json.JSONArray;
import org.json.JSONTokener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@@ -278,6 +282,10 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl<SarStandardsInfoDao
@Autowired
private AttFileEODao attFileEODao;
@Autowired
private INewsFeedService iNewsFeedService;
// /**
// * 反向操作标准
// */
@@ -1018,7 +1026,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl<SarStandardsInfoDao
if (entry.getValue() != null && InitStandAttrUtil.selectionFieldList != null && InitStandAttrUtil.selectionFieldList.size() > 0 && InitStandAttrUtil.selectionFieldList.contains(name)) {
if (StringUtils.isNotBlank(entry.getValue().toString())) {
Object json = new JSONTokener(entry.getValue().toString()).nextValue();
if (json instanceof org.json.JSONArray) {
if (json instanceof JSONArray) {
valArr = com.alibaba.fastjson.JSONObject.parseArray(entry.getValue().toString(), String.class);
} else {
value = entry.getValue().toString();
@@ -1227,6 +1235,8 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl<SarStandardsInfoDao
}
String content = "入库" + number + " 《" + sarStandardsInfoEO.getStandName() + "》";
sarUpdLogEOService.createBaseLog(sarStandardsInfoEO.getId(), sarStandardsInfoEO.getStandType() + "_STAND", content);
SarStandardsInfo old = new SarStandardsInfo();
filterNewFeed(sarStandardsInfoEO,old);
if (elasflag) {
// 消息队列
attrInfoShowSearchDetails(sarStandardsInfoEO, "add");
@@ -1927,6 +1937,7 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl<SarStandardsInfoDao
// replaseStandState(sarStandardsInfoEO);
// 记录修改日志
saveUpdateLog(sarStandardsInfoEO, beforeSarStandardsInfo);
filterNewFeed(sarStandardsInfoEO, beforeSarStandardsInfo);
if (elasflag) { //what?
attrInfoShowSearchDetails(sarStandardsInfoEO, "upd");
FindSarItemsPageReqDTO pageInfo = new FindSarItemsPageReqDTO();
@@ -1949,6 +1960,92 @@ public class SarStandardsInfoServiceImpl extends ServiceImpl<SarStandardsInfoDao
return result;
}
public void filterNewFeed(SarStandardsInfo sarStandardsInfoEO, SarStandardsInfo beforeSarStandardsInfo) throws Exception {
Map<String, Object> newMap = new HashMap<>();
Map<String, Object> oldMap = beforeSarStandardsInfo.getAttrInfoMap();
String attrStr = sarStandardsInfoEO.getSarStandAttrEOStr();
if (StringUtils.isNotBlank(attrStr)) {
newMap = JSONObject.fromObject(attrStr);
}
// 发布稿
List<String> fbgNew = Arrays.stream(newMap.getOrDefault("FBGBJBD", "").toString().split(","))
.map(String::trim).collect(Collectors.toList());
List<String> fbgOld = Arrays.stream(oldMap.getOrDefault("FBGBJBD", "").toString().split(","))
.map(String::trim).collect(Collectors.toList());
// 取差集 判断是否有新的发布稿
List<String> filterDisunityFbg = fbgNew.stream()
.filter(item -> !new ArrayList<>(fbgOld)
.contains(item))
.collect(Collectors.toList());
filterDisunityFbg = filterDisunityFbg.stream().filter(s -> !s.equals("")).collect(Collectors.toList());
// 在研稿件
String strUsNew = newMap.getOrDefault("CA", "").toString()+
","+newMap.getOrDefault("GLWJ", "").toString()+
","+newMap.getOrDefault("XGD", "").toString()+
","+newMap.getOrDefault("BPG", "").toString()+
","+newMap.getOrDefault("ZQYJG", "").toString()+
","+newMap.getOrDefault("SSG", "").toString()+
","+newMap.getOrDefault("JDWJ", "").toString()+
","+newMap.getOrDefault("KWJ", "").toString()+
","+newMap.getOrDefault("XDB", "").toString()+
","+newMap.getOrDefault("ZBJBD", "").toString();
String strUsOld = oldMap.getOrDefault("CA", "").toString()+
","+oldMap.getOrDefault("GLWJ", "").toString()+
","+oldMap.getOrDefault("XGD", "").toString()+
","+oldMap.getOrDefault("BPG", "").toString()+
","+oldMap.getOrDefault("ZQYJG", "").toString()+
","+oldMap.getOrDefault("SSG", "").toString()+
","+oldMap.getOrDefault("JDWJ", "").toString()+
","+oldMap.getOrDefault("KWJ", "").toString()+
","+oldMap.getOrDefault("XDB", "").toString()+
","+oldMap.getOrDefault("ZBJBD", "").toString();
List<String> usNew = Arrays.stream(strUsNew.split(","))
.map(String::trim).collect(Collectors.toList());
List<String> usOld = Arrays.stream(strUsOld.split(","))
.map(String::trim).collect(Collectors.toList());
// 取差集 判断是否有新的在研稿件
List<String> filterDisunityUs = usNew.stream()
.filter(item -> !new ArrayList<>(usOld)
.contains(item))
.collect(Collectors.toList());
filterDisunityUs = filterDisunityUs.stream().filter(s -> !s.equals("")).collect(Collectors.toList());
// 0 发布稿件 新的文件数量 大于等于 在研稿件 就属于发布动态消息 则 为 1 在研
if(filterDisunityFbg.size() >= filterDisunityUs.size()){
saveNewFeed(sarStandardsInfoEO, "0");
}else {
saveNewFeed(sarStandardsInfoEO, "1");
}
}
private void saveNewFeed(SarStandardsInfo sarStandardsInfoEO, String s) {
NewsFeed newsFeed = new NewsFeed();
newsFeed.setId(UUIDUtils.randomUUID20());
newsFeed.setRenewTime(new Date());
newsFeed.setStandardId(sarStandardsInfoEO.getId());
newsFeed.setResourceType(verifyObj(sarStandardsInfoEO.getStandType()).toString());
newsFeed.setMessageType(s);
String standard = "";
if(StringUtils.isNotBlank(sarStandardsInfoEO.getStandYear())){
standard = verifyObj(sarStandardsInfoEO.getStandSort()).toString() +" "+ verifyObj(sarStandardsInfoEO.getStandNumber()).toString()+"-"+verifyObj(sarStandardsInfoEO.getStandYear()).toString();
}else {
standard = verifyObj(sarStandardsInfoEO.getStandSort()).toString() +" "+ verifyObj(sarStandardsInfoEO.getStandNumber()).toString();
}
newsFeed.setStandard(standard);
newsFeed.setStandardName(verifyObj(sarStandardsInfoEO.getStandName()).toString());
newsFeed.setReleaseDate(verifyObj(sarStandardsInfoEO.getIssueTime()).toString());
newsFeed.setTextState(verifyObj(sarStandardsInfoEO.getTextStatus()).toString());
iNewsFeedService.insertNewsFeed(newsFeed);
}
public void saveUpdateLog(SarStandardsInfo sarStandardsInfoEO, SarStandardsInfo beforeSarStandardsInfo) throws Exception {
Map<String, Object> newMap = new HashMap<>();
Map<String, Object> oldMap = beforeSarStandardsInfo.getAttrInfoMap();