From 0215ed71ae85de672833a8f39b25768e23658e4e Mon Sep 17 00:00:00 2001 From: super_liu <396572590@qq.com> Date: Thu, 2 Jun 2022 16:40:25 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20There=20is=20no=20way=20the,=20?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E6=B6=88=E6=81=AF=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/NewsFeedController.java | 17 +++- .../adc/da/slrs/NewsFeed/entity/NewsFeed.java | 2 + .../NewsFeed/service/INewsFeedService.java | 1 - .../impl/SarBussionessStandServiceImpl.java | 81 +++++++++++++++ .../impl/SarStandardsInfoServiceImpl.java | 99 ++++++++++++++++++- 5 files changed, 196 insertions(+), 4 deletions(-) diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/NewsFeed/controller/NewsFeedController.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/NewsFeed/controller/NewsFeedController.java index f881d013..8941bf7f 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/NewsFeed/controller/NewsFeedController.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/NewsFeed/controller/NewsFeedController.java @@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.ArrayList; import java.util.List; /** @@ -38,13 +39,25 @@ public class NewsFeedController extends BaseController { @GetMapping("/getNewsFeed") public ResponseMessage> NewFeedPage(NewsFeedPage page){ IPage iPage = new Page<>(); + iPage.setCurrent(page.getPage()); iPage.setSize(page.getPageSize()); - iPage.setTotal(page.getPage()); + List list = new ArrayList<>(); + if("GNWBZFG".equals(page.getMessageType())){ + list.add("hc99551723c"); + }else if("ZYBZFG".equals(page.getMessageType())){ + list.add("hya6gay4vx"); + list.add("8rjsx83ows"); + list.add("ncb6osftj8"); + list.add("3dx7oy5jff"); + }else if("QYBZFB".equals(page.getMessageType())){ + list.add("6jnqba2mby"); + } QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.eq(StringUtils.isNotEmpty(page.getStandardId()),"STANDARD_ID",page.getStandardId()); queryWrapper.eq(StringUtils.isNotEmpty(page.getStandardName()),"STANDARD_NAME",page.getStandardName()); queryWrapper.eq("MESSAGE_TYPE",page.getMessageType()); - queryWrapper.orderByDesc("UPDATE_TIME"); + queryWrapper.in("TEXT_STATE",list); + queryWrapper.orderByDesc("RENEW_TIME"); IPage newsFeedList = newsFeedService.page(iPage,queryWrapper); return Result.success(newsFeedList); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/NewsFeed/entity/NewsFeed.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/NewsFeed/entity/NewsFeed.java index 41837032..20badbaf 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/NewsFeed/entity/NewsFeed.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/NewsFeed/entity/NewsFeed.java @@ -3,6 +3,7 @@ package com.adc.da.slrs.NewsFeed.entity; import com.adc.da.base.entity.BaseEntity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -59,5 +60,6 @@ public class NewsFeed extends BaseEntity { @TableField("RENEW_TIME") @ApiModelProperty(value = "更新时间") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") private Date renewTime; } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/NewsFeed/service/INewsFeedService.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/NewsFeed/service/INewsFeedService.java index fd4b7b97..13a878c9 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/NewsFeed/service/INewsFeedService.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/NewsFeed/service/INewsFeedService.java @@ -9,7 +9,6 @@ import org.springframework.stereotype.Service; * @Date: 2022/5/23 0023 15:01 * @Version 1.0 */ -@Service public interface INewsFeedService extends IService { int insertNewsFeed(NewsFeed newsFeed); } diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java index 63a74ddf..96a67174 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarBussionessStand/service/impl/SarBussionessStandServiceImpl.java @@ -18,6 +18,8 @@ import com.adc.da.person.service.IPersonCollectEOService; import com.adc.da.search.entity.SarBussionessStandEO; import com.adc.da.search.entity.StandLawsEO; import com.adc.da.search.service.StandLawsSearchService; +import com.adc.da.slrs.NewsFeed.entity.NewsFeed; +import com.adc.da.slrs.NewsFeed.service.INewsFeedService; import com.adc.da.slrs.otConvertMq.dao.OtConvertMqDao; import com.adc.da.slrs.otConvertMq.entity.OtConvertMq; import com.adc.da.slrs.sarBussStandAttrInfo.dao.SarBussStandAttrInfoDao; @@ -155,6 +157,9 @@ public class SarBussionessStandServiceImpl extends ServiceImpl newMap = new HashMap<>(); + Map oldMap = beforeSarStandardsInfo.getAttrInfoMap(); + String attrStr = sarStandardsInfoEO.getSarStandAttrEOStr(); + if (org.apache.commons.lang3.StringUtils.isNotBlank(attrStr)) { + newMap = JSONObject.fromObject(attrStr); + } + + // 发布稿 + List fbgNew = Arrays.stream(newMap.getOrDefault("FBGBJBD", "").toString().split(",")) + .map(String::trim).collect(Collectors.toList()); + + List fbgOld = Arrays.stream(oldMap.getOrDefault("FBGBJBD", "").toString().split(",")) + .map(String::trim).collect(Collectors.toList()); + // 取差集 判断是否有新的发布稿 + List filterDisunityFbg = fbgNew.stream() + .filter(item -> !new ArrayList<>(fbgOld) + .contains(item)) + .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 usNew = Arrays.stream(strUsNew.split(",")) + .map(String::trim).collect(Collectors.toList()); + List usOld = Arrays.stream(strUsOld.split(",")) + .map(String::trim).collect(Collectors.toList()); + // 取差集 判断是否有新的在研稿件 + List filterDisunityUs = usNew.stream() + .filter(item -> !new ArrayList<>(usOld) + .contains(item)) + .collect(Collectors.toList()); + + // 0 发布稿件 新的文件数量 大于等于 在研稿件 就属于发布动态消息 则 为 1 在研 + if(filterDisunityFbg.size() >= filterDisunityUs.size()){ + saveNewFeed(sarStandardsInfoEO, "2"); + }else { + saveNewFeed(sarStandardsInfoEO, ""); + } + } + + private void saveNewFeed(SarBussionessStand sarStandardsInfoEO, String s) { + NewsFeed newsFeed = new NewsFeed(); + newsFeed.setId(UUIDUtils.randomUUID20()); + newsFeed.setRenewTime(new Date()); + newsFeed.setStandardId(sarStandardsInfoEO.getId()); + newsFeed.setResourceType("BUSINESS"); + newsFeed.setMessageType(s); + newsFeed.setStandard(verifyObj(sarStandardsInfoEO.getStandCode()).toString()); + newsFeed.setStandardName(verifyObj(sarStandardsInfoEO.getStandName()).toString()); + newsFeed.setReleaseDate(verifyObj(sarStandardsInfoEO.getIssueTime()).toString()); + // 企标 技术标准或产品标准走完流程 文本状态默认 发布状态 + newsFeed.setTextState("6jnqba2mby"); + iNewsFeedService.insertNewsFeed(newsFeed); + } + public void saveUpdateLog(SarBussionessStand sarStandardsInfoEO,SarBussionessStand beforeSarStandardsInfo) throws Exception{ Map newMap = new HashMap<>(); Map oldMap = beforeSarStandardsInfo.getAttrInfoMap(); diff --git a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java index f605e2b0..32e0808e 100644 --- a/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java +++ b/adc-da-slrs/src/main/java/com/adc/da/slrs/sarStandardsInfo/service/impl/SarStandardsInfoServiceImpl.java @@ -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 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 newMap = new HashMap<>(); + Map oldMap = beforeSarStandardsInfo.getAttrInfoMap(); + String attrStr = sarStandardsInfoEO.getSarStandAttrEOStr(); + if (StringUtils.isNotBlank(attrStr)) { + newMap = JSONObject.fromObject(attrStr); + } + + // 发布稿 + List fbgNew = Arrays.stream(newMap.getOrDefault("FBGBJBD", "").toString().split(",")) + .map(String::trim).collect(Collectors.toList()); + + List fbgOld = Arrays.stream(oldMap.getOrDefault("FBGBJBD", "").toString().split(",")) + .map(String::trim).collect(Collectors.toList()); + // 取差集 判断是否有新的发布稿 + List 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 usNew = Arrays.stream(strUsNew.split(",")) + .map(String::trim).collect(Collectors.toList()); + List usOld = Arrays.stream(strUsOld.split(",")) + .map(String::trim).collect(Collectors.toList()); + // 取差集 判断是否有新的在研稿件 + List 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 newMap = new HashMap<>(); Map oldMap = beforeSarStandardsInfo.getAttrInfoMap();