虚拟清单-发布处理数据+消息
This commit is contained in:
+40
@@ -0,0 +1,40 @@
|
||||
package com.jero.modules.dummy.enums;
|
||||
|
||||
|
||||
public enum DummyInventoryBaseDictCodeEnum {
|
||||
DUTY_TERRITORY("责任领域","duty_territory"),
|
||||
IMPLEMENT_TYPE("实施类别","implement_type"),
|
||||
ATTESTATION_TYPE("认证类型","attestation_type"),
|
||||
ATTESTATION_RANK("认证级别","attestation_rank"),
|
||||
DELIVERABLE_TEMPLATE("交付物类型","deliverable_template"),
|
||||
FA1_QI3_REN2("发起人","fa1_qi3_ren2"),
|
||||
ZE2_REN2_REN2("责任人","ze2_ren4_ren2"),
|
||||
|
||||
;
|
||||
|
||||
|
||||
|
||||
String name;
|
||||
String value;
|
||||
|
||||
private DummyInventoryBaseDictCodeEnum(String name, String value) {
|
||||
this.name = name;
|
||||
this.value = value;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getValue() {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void setValue(String value) {
|
||||
this.value = value;
|
||||
}
|
||||
}
|
||||
+391
-145
@@ -14,6 +14,7 @@ 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.DummyReadEO;
|
||||
import com.jero.modules.dummy.enums.DummyInventoryBaseDictCodeEnum;
|
||||
import com.jero.modules.dummy.enums.InventoryStateEnum;
|
||||
import com.jero.modules.dummy.enums.ReadFlagEnum;
|
||||
import com.jero.modules.dummy.mapper.DummyInventoryBaseEOMapper;
|
||||
@@ -23,11 +24,14 @@ 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.feishu.service.IFeishuService;
|
||||
import com.jero.modules.message.websocket.WebSocket;
|
||||
import com.jero.modules.system.entity.SysAnnouncement;
|
||||
import com.jero.modules.system.entity.SysCategory;
|
||||
import com.jero.modules.system.entity.SysDictItem;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.mapper.SysDictItemMapper;
|
||||
import com.jero.modules.system.service.ISysAnnouncementService;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@@ -70,8 +74,10 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
private String backUrl;
|
||||
@Resource
|
||||
private IFeishuService iFeishuService;
|
||||
@Resource
|
||||
private WebSocket webSocket;
|
||||
@Autowired
|
||||
private SysCategoryServiceImpl sysCategoryService;
|
||||
@Autowired
|
||||
private SysDictItemMapper sysDictItemMapper;
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
@@ -165,11 +171,11 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
List<String> dummyReadIdList = dummyReadEOS.stream().map(DummyReadEO::getDummyInventoryBaseId).collect(Collectors.toList());
|
||||
for (DummyInventoryBaseEO record : pageList.getRecords()) {
|
||||
//订阅标识
|
||||
if(dummyReadIdList.contains(record.getId())){
|
||||
record.setReadFlag(ReadFlagEnum.READ.getValue());
|
||||
}else{
|
||||
record.setReadFlag(ReadFlagEnum.CANCEL_READ.getValue());
|
||||
}
|
||||
if(dummyReadIdList.contains(record.getId())){
|
||||
record.setReadFlag(ReadFlagEnum.READ.getValue());
|
||||
}else{
|
||||
record.setReadFlag(ReadFlagEnum.CANCEL_READ.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -219,6 +225,9 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
//没有变化-->不发消息,数据不处理
|
||||
|
||||
//先判断是发布还是撤回 1-->发布 2-->撤回
|
||||
//撤回需要发消息
|
||||
|
||||
|
||||
if(InventoryStateEnum.ISSUE.getValue().equals(dummyInventoryBaseEO.getState())){
|
||||
//先判断第一次发布的时候是否保存过数据
|
||||
LambdaQueryWrapper<DummyContentChangeEO> wrapper =new LambdaQueryWrapper<>();
|
||||
@@ -285,57 +294,89 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
|
||||
//4.2详情表数据(一条基础数据可能对应多个详情数据---一对多)
|
||||
//数据库里原来的详情数据
|
||||
Map<String, String> infoDiff = null;
|
||||
List<Map<String, String>> infoDiffList=null;
|
||||
String addSerialNumber=null;
|
||||
String deleteSerialNumber=null;
|
||||
List<String> addSerialNumberList =null;
|
||||
List<String> deleteSerialNumberList =null;
|
||||
//对比,获取值不同的字段
|
||||
for(DummyContentChangeEO dummyContentChangeEO : dummyContentChangeEOInfoList) {
|
||||
String infoCJ = dummyContentChangeEO.getContentJson();
|
||||
List<DummyInventoryInfoEO> infoCJList = JSONArray.parseArray(infoCJ, DummyInventoryInfoEO.class);//json转list
|
||||
//获取数据库和传入同时存在的编号
|
||||
List<String> infoCJBaseSerialNumberList = infoCJList.stream().map(e -> e.getSerialNumber()).collect(Collectors.toList());
|
||||
List<String> dummyInventoryInfoEOSerialNumberList = dummyInventoryInfoEOList.stream().map(e -> e.getSerialNumber()).collect(Collectors.toList());
|
||||
if (CollectionUtils.isNotEmpty(dummyInventoryInfoEOSerialNumberList)) {
|
||||
dummyInventoryInfoEOSerialNumberList.removeIf(s -> !infoCJBaseSerialNumberList.contains(s));
|
||||
|
||||
//获取数据库里保存的json
|
||||
String infoCJ = dummyContentChangeEOInfoList.get(0).getContentJson();
|
||||
List<DummyInventoryInfoEO> infoCJList = JSONArray.parseArray(infoCJ, DummyInventoryInfoEO.class);//json转list
|
||||
|
||||
//翻译字典code值
|
||||
disposeData(infoCJList);
|
||||
disposeData(dummyInventoryInfoEOList);
|
||||
|
||||
//获取数据库和传入同时存在的编号
|
||||
//获取两个的编号
|
||||
List<String> infoCJBaseSerialNumberList = infoCJList.stream().map(e -> e.getSerialNumber()).collect(Collectors.toList());
|
||||
|
||||
|
||||
List<String> dummyInventoryInfoEOSerialNumberList = dummyInventoryInfoEOList.stream().map(e -> e.getSerialNumber()).collect(Collectors.toList());
|
||||
|
||||
|
||||
List<DummyInventoryInfoEO> sameDummyInventoryInfoEOList = new ArrayList<>();
|
||||
List<DummyInventoryInfoEO> sameinfoCJList = new ArrayList<>();
|
||||
if (CollectionUtils.isNotEmpty(dummyInventoryInfoEOSerialNumberList)) {
|
||||
//查询共有编号
|
||||
List<String> sameSerialNumberList = infoCJBaseSerialNumberList.stream().filter(t -> dummyInventoryInfoEOSerialNumberList.contains(t)).collect(Collectors.toList());
|
||||
|
||||
if(CollectionUtils.isNotEmpty(sameSerialNumberList)) {
|
||||
for (String sameSerialNumber : sameSerialNumberList) {
|
||||
//查询传入里包含共有编号的数据
|
||||
for(DummyInventoryInfoEO dummyInventoryInfoEO :dummyInventoryInfoEOList){
|
||||
if (dummyInventoryInfoEO.getSerialNumber().equals(sameSerialNumber)) {
|
||||
sameDummyInventoryInfoEOList.add(dummyInventoryInfoEO);
|
||||
}
|
||||
}
|
||||
|
||||
//查询数据库里包含共有编号的数据
|
||||
for (DummyInventoryInfoEO midInfoCJ : infoCJList) {
|
||||
if (midInfoCJ.getSerialNumber().equals(sameSerialNumber)) {
|
||||
sameinfoCJList.add(midInfoCJ);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
System.out.println(dummyInventoryInfoEOSerialNumberList);
|
||||
}
|
||||
|
||||
//4.2.1处理原有详情数据
|
||||
for (int i = 0; i < infoCJList.size(); i++) {
|
||||
infoDiff = ListDiff.compareObject(infoCJList.get(i), dummyInventoryInfoEOList.get(i));
|
||||
|
||||
//4.2.1处理现原共有有详情数据不同值字段
|
||||
Map<String, String> infoDiff = null;
|
||||
List<Map<String, String>> infoDiffList=new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < sameinfoCJList.size(); i++) {
|
||||
infoDiff = ListDiff.compareObject(sameinfoCJList.get(i), sameDummyInventoryInfoEOList.get(i));
|
||||
if (MapUtils.isNotEmpty(infoDiff)) {
|
||||
infoDiffList.add(infoDiff);
|
||||
}
|
||||
|
||||
//4.2.2处理新增数据
|
||||
List<String> infoCJSerialNumberList = infoCJList.stream().map(e -> e.getSerialNumber()).collect(Collectors.toList());
|
||||
for (DummyInventoryInfoEO dummyInventoryInfoEO : infoCJList) {
|
||||
addSerialNumberList = dummyInventoryInfoEOList.stream().filter(e -> !dummyInventoryInfoEO.equals(e.getId()))
|
||||
.map(f -> f.getSerialNumber()).collect(Collectors.toList());
|
||||
}
|
||||
//去掉发布时传入的和数据库同时有的数据
|
||||
for(String midSerialNumber:infoCJSerialNumberList){
|
||||
addSerialNumberList.remove(midSerialNumber);
|
||||
}
|
||||
addSerialNumber =StringUtils.join(addSerialNumberList,",");
|
||||
|
||||
|
||||
//4.2.3处理删除的数据
|
||||
for (DummyInventoryInfoEO dummyInventoryInfoEO : infoCJList) {
|
||||
deleteSerialNumberList = dummyInventoryInfoEOList.stream().filter(e -> !dummyInventoryInfoEO.equals(e.getId()))
|
||||
.map(f -> f.getSerialNumber()).collect(Collectors.toList());
|
||||
|
||||
}
|
||||
for(String midSerialNumber:deleteSerialNumberList){
|
||||
infoCJSerialNumberList.remove(midSerialNumber);
|
||||
}
|
||||
deleteSerialNumber=StringUtils.join(infoCJSerialNumberList,",");
|
||||
}
|
||||
|
||||
//4.2.2处理新增数据
|
||||
List<String> infoCJSerialNumberList = infoCJList.stream().map(e -> e.getSerialNumber()).collect(Collectors.toList());
|
||||
for (DummyInventoryInfoEO dummyInventoryInfoEO : infoCJList) {
|
||||
addSerialNumberList = dummyInventoryInfoEOList.stream().filter(e -> !dummyInventoryInfoEO.equals(e.getId()))
|
||||
.map(f -> f.getSerialNumber()).collect(Collectors.toList());
|
||||
}
|
||||
//去掉发布时传入的和数据库同时有的数据
|
||||
for(String midSerialNumber:infoCJSerialNumberList){
|
||||
addSerialNumberList.remove(midSerialNumber);
|
||||
}
|
||||
addSerialNumber =StringUtils.join(addSerialNumberList,",");
|
||||
|
||||
//4.2.3处理删除的数据
|
||||
for (DummyInventoryInfoEO dummyInventoryInfoEO : infoCJList) {
|
||||
deleteSerialNumberList = dummyInventoryInfoEOList.stream().filter(e -> !dummyInventoryInfoEO.equals(e.getId()))
|
||||
.map(f -> f.getSerialNumber()).collect(Collectors.toList());
|
||||
|
||||
}
|
||||
for(String midSerialNumber:deleteSerialNumberList){
|
||||
infoCJSerialNumberList.remove(midSerialNumber);
|
||||
}
|
||||
deleteSerialNumber=StringUtils.join(infoCJSerialNumberList,",");
|
||||
|
||||
//向订阅该领域管理的人发消息和飞书
|
||||
sendMsg(baseDiff,dummyContentChangeEOBaseList.get(0).getConnectId(),infoDiff,addSerialNumber,deleteSerialNumber);
|
||||
sendMsg(baseDiff,dummyContentChangeEOBaseList.get(0).getConnectId(),infoDiffList,addSerialNumber,deleteSerialNumber);
|
||||
|
||||
|
||||
//5.数据对比完成后.删除之前保存的dummy_inventory_info中的数据,重新保存最新的数据
|
||||
@@ -352,7 +393,118 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
|
||||
}
|
||||
|
||||
private void sendMsg(Map<String, String> baseDiff, String idTemp,Map<String, String> infoDiff,String addSerialNumber,String deleteSerialNumber) {
|
||||
public void disposeData(List<DummyInventoryInfoEO> records) {
|
||||
Set<String> technologyTerritorySet = new HashSet<>();
|
||||
for (DummyInventoryInfoEO dummyInventoryInfoEO : records) {
|
||||
//技术领域
|
||||
if(StringUtils.isNotBlank(dummyInventoryInfoEO.getTechnologyTerritory())){
|
||||
List<String> list = Arrays.asList(dummyInventoryInfoEO.getTechnologyTerritory().split(","));
|
||||
technologyTerritorySet.addAll(list);
|
||||
}
|
||||
//树形结构数据字典(技术领域)
|
||||
List<SysCategory> categoryList = new ArrayList<>();
|
||||
if(technologyTerritorySet.size() != 0){
|
||||
LambdaQueryWrapper<SysCategory> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.in(SysCategory::getId, technologyTerritorySet);
|
||||
categoryList = sysCategoryService.list(wrapper);
|
||||
}
|
||||
//技术领域
|
||||
if (categoryList.size() != 0 && StringUtils.isNotBlank(dummyInventoryInfoEO.getTechnologyTerritory())) {
|
||||
List<String> technologyTerritoryList = Arrays.asList(dummyInventoryInfoEO.getTechnologyTerritory().split(","));
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (String technologyTerritory : technologyTerritoryList) {
|
||||
List<SysCategory> collect = categoryList.stream().filter(e -> technologyTerritory.equals(e.getId())).collect(Collectors.toList());
|
||||
if(collect.size() != 0){
|
||||
// if (CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())) {
|
||||
sb.append(collect.get(0).getName()+ ",");
|
||||
// } else {
|
||||
// sb.append(collect.get(0).getEnName()+ ",");
|
||||
// }
|
||||
}
|
||||
}
|
||||
String technologyTerritoryName = null;
|
||||
if (StringUtils.isNotBlank(sb)) {
|
||||
technologyTerritoryName = sb.substring(0, sb.length() - 1);
|
||||
}
|
||||
dummyInventoryInfoEO.setTechnologyTerritoryName(technologyTerritoryName);
|
||||
}
|
||||
//责任领域
|
||||
List<SysDictItem> dutyTerritory = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseDictCodeEnum.DUTY_TERRITORY.getValue());
|
||||
List<String> dutyTerritoryList = Arrays.asList(dummyInventoryInfoEO.getDutyTerritory().split(","));
|
||||
StringBuilder dutyTerritoryBuilder =new StringBuilder();
|
||||
for(String midDutyTerritory : dutyTerritoryList){
|
||||
String dutyTerritoryName = dutyTerritory.stream().filter(e -> e.getItemValue().equals(midDutyTerritory)).map(f -> f.getItemText()).collect(Collectors.joining(","));
|
||||
dutyTerritoryBuilder.append(dutyTerritoryName).append(",");
|
||||
|
||||
}
|
||||
dummyInventoryInfoEO.setDutyTerritory(dutyTerritoryBuilder.substring(0,dutyTerritoryBuilder.toString().length()-1));
|
||||
|
||||
//实施类别
|
||||
List<SysDictItem> implementType = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseDictCodeEnum.IMPLEMENT_TYPE.getValue());
|
||||
String implementTypeName = implementType.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getImplementType())).map(f -> f.getItemText()).collect(Collectors.joining(","));
|
||||
dummyInventoryInfoEO.setImplementType(implementTypeName);
|
||||
|
||||
//认证级别
|
||||
List<SysDictItem> attestationType = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseDictCodeEnum.ATTESTATION_TYPE.getValue());
|
||||
String attestationTypeName = attestationType.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getAttestationType())).map(f -> f.getItemText()).collect(Collectors.joining(","));
|
||||
dummyInventoryInfoEO.setAttestationType(attestationTypeName);
|
||||
|
||||
//认证级别
|
||||
List<SysDictItem> attestationRank = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseDictCodeEnum.ATTESTATION_RANK.getValue());
|
||||
String attestationRankName = attestationRank.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getAttestationRank())).map(f -> f.getItemText()).collect(Collectors.joining(","));
|
||||
dummyInventoryInfoEO.setAttestationRank(attestationRankName);
|
||||
|
||||
//交付物类型
|
||||
List<SysDictItem> deliverableTemplate = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseDictCodeEnum.DELIVERABLE_TEMPLATE.getValue());
|
||||
//设计符合性确认-交付物类型
|
||||
// designDeliverableType;
|
||||
String designDeliverableTypeName = deliverableTemplate.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getDesignDeliverableType())).map(f -> f.getItemText()).collect(Collectors.joining(","));
|
||||
dummyInventoryInfoEO.setDesignDeliverableType(designDeliverableTypeName);
|
||||
//prehomo确认-交付物类型
|
||||
// prehomoDeliverableType;
|
||||
String prehomoDeliverableTypeName = deliverableTemplate.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getPrehomoDeliverableType())).map(f -> f.getItemText()).collect(Collectors.joining(","));
|
||||
dummyInventoryInfoEO.setPrehomoDeliverableType(prehomoDeliverableTypeName);
|
||||
//验证符合性确认-交付物类型
|
||||
// verifyDeliverableType;
|
||||
String verifyDeliverableTypeName = deliverableTemplate.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getVerifyDeliverableType())).map(f -> f.getItemText()).collect(Collectors.joining(","));
|
||||
dummyInventoryInfoEO.setVerifyDeliverableType(verifyDeliverableTypeName);
|
||||
|
||||
//发起人
|
||||
List<SysDictItem> fa1_qi3_ren2 = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseDictCodeEnum.FA1_QI3_REN2.getValue());
|
||||
//设计符合性确认-发起人
|
||||
// designInitiator;
|
||||
String designInitiatorName = fa1_qi3_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getDesignInitiator())).map(f -> f.getItemText()).collect(Collectors.joining(","));
|
||||
dummyInventoryInfoEO.setDesignInitiator(designInitiatorName);
|
||||
//prehomo确认-发起人
|
||||
// prehomoInitiator;
|
||||
String prehomoInitiatorName = fa1_qi3_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getPrehomoInitiator())).map(f -> f.getItemText()).collect(Collectors.joining(","));
|
||||
dummyInventoryInfoEO.setPrehomoInitiator(prehomoInitiatorName);
|
||||
//验证符合性确认-发起人
|
||||
// verifyInitiator;
|
||||
String verifyInitiatorName = fa1_qi3_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getVerifyInitiator())).map(f -> f.getItemText()).collect(Collectors.joining(","));
|
||||
dummyInventoryInfoEO.setVerifyInitiator(verifyInitiatorName);
|
||||
|
||||
//责任人
|
||||
List<SysDictItem> ze2_ren4_ren2 = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseDictCodeEnum.ZE2_REN2_REN2.getValue());
|
||||
//设计符合性确认-责任人
|
||||
// designDuty;
|
||||
String designDutyName = ze2_ren4_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getDesignDuty())).map(f -> f.getItemText()).collect(Collectors.joining(","));
|
||||
dummyInventoryInfoEO.setDesignDuty(designDutyName);
|
||||
//prehomo确认-责任人
|
||||
// prehomoDuty;
|
||||
String prehomoDutyName = ze2_ren4_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getPrehomoDuty())).map(f -> f.getItemText()).collect(Collectors.joining(","));
|
||||
dummyInventoryInfoEO.setPrehomoDuty(prehomoDutyName);
|
||||
//验证符合性确认-责任人
|
||||
// verifyDuty;
|
||||
String verifyDutyName = ze2_ren4_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getVerifyDuty())).map(f -> f.getItemText()).collect(Collectors.joining(","));
|
||||
dummyInventoryInfoEO.setVerifyDuty(verifyDutyName);
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
//发送消息
|
||||
private void sendMsg(Map<String, String> baseDiff, String idTemp,List<Map<String, String>> infoDiffList,String addSerialNumber,String deleteSerialNumber) {
|
||||
|
||||
String baseName=queryById(idTemp).getName();//基础表id
|
||||
List<String> userNameList = dummyReadEOService.queryReadUserInfo(idTemp);
|
||||
@@ -367,10 +519,11 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
String href = backUrl + "/dummy/dummyInventoryBaseEO/issue?id=" + idTemp;
|
||||
|
||||
//The xx virtual list you subscribed to has been updated as follows:1 . xxxxx 2.xxxx
|
||||
String content ="The " + baseName + " virtual list you subscribed to has been updated.";
|
||||
String contentInfo ="The " + baseName + " virtual list you subscribed to has been updated as follows : " + "\r\n";
|
||||
setContentInfo(contentInfo,baseDiff,infoDiff,addSerialNumber,deleteSerialNumber);
|
||||
|
||||
String content = "The " + baseName + " virtual list you subscribed to has been updated.";
|
||||
String contentInfo = "The " + baseName + " virtual list you subscribed to has been updated as follows : " + "\r\n";
|
||||
//拼接维护清单的消息
|
||||
contentInfo =setContentInfo(contentInfo,baseDiff,infoDiffList,addSerialNumber,deleteSerialNumber);
|
||||
System.out.println(contentInfo);
|
||||
//封装消息的实体类
|
||||
SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(userIdList, content, contentInfo);
|
||||
sysAnnouncementService.saveAnnouncement(sysAnnouncement);
|
||||
@@ -384,7 +537,9 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
}
|
||||
}
|
||||
|
||||
public void setContentInfo(String contentInfo,Map<String, String> baseDiff,Map<String, String> infoDiff,String addSerialNumber,String deleteSerialNumber) {
|
||||
////拼接维护清单的消息
|
||||
public String setContentInfo(String contentInfo, Map<String, String> baseDiff, List<Map<String, String>> infoDiffList
|
||||
, String addSerialNumber, String deleteSerialNumber) {
|
||||
int row = 1;
|
||||
//设置虚拟清单列表的修改消息
|
||||
if(MapUtils.isNotEmpty(baseDiff)) {
|
||||
@@ -419,99 +574,190 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
}
|
||||
|
||||
//设置维护清单的修改消息
|
||||
if(MapUtils.isNotEmpty(infoDiff)) {
|
||||
//技术领域
|
||||
if (StringUtils.isNotBlank(infoDiff.get("technologyTerritory"))) {
|
||||
List<String> technologyTerritoryList = Arrays.asList(infoDiff.get("technologyTerritory").split(","));
|
||||
String infoDiffOldTechnologyTerritory = technologyTerritoryList.get(0);
|
||||
String infoDiffNewTechnologyTerritory = technologyTerritoryList.get(1);
|
||||
contentInfo += row + ". " + infoDiffOldTechnologyTerritory + " has been changed to" + infoDiffNewTechnologyTerritory + ".\r\n";
|
||||
if(CollectionUtils.isNotEmpty(infoDiffList)) {
|
||||
for(Map<String, String> infoDiff: infoDiffList) {
|
||||
int infoDiffRow=1;
|
||||
contentInfo += row + ". The serial Number " + infoDiff.get("serialNumber") + " has been updated as follows : " + "\r\n";
|
||||
//技术领域
|
||||
if (StringUtils.isNotBlank(infoDiff.get("technologyTerritoryName"))) {
|
||||
|
||||
List<String> list = Arrays.asList(infoDiff.get("technologyTerritoryName").split("\\|"));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Technology territory has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//新车型实施日期
|
||||
if (StringUtils.isNotBlank(infoDiff.get("xin1Che1Xing2Shi2Shi1Ri4Qi1"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("xin1Che1Xing2Shi2Shi1Ri4Qi1").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). The implementation date of new model has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//在产车实施日期
|
||||
if (StringUtils.isNotBlank(infoDiff.get("implementTime"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("implementTime").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Implement time has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//WVTA ID
|
||||
if (StringUtils.isNotBlank(infoDiff.get("wvtaId"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("wvtaId").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). WVTA ID has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//子标题
|
||||
if (StringUtils.isNotBlank(infoDiff.get("subtitle"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("subtitle").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Subtitle has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//实施类别
|
||||
if (StringUtils.isNotBlank(infoDiff.get("implementType"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("implementType").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Implement type has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//认证类型
|
||||
if (StringUtils.isNotBlank(infoDiff.get("attestationType"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("attestationType").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Attestation type has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//认证级别
|
||||
if (StringUtils.isNotBlank(infoDiff.get("attestationRank"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("attestationRank").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Attestation rank has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//责任领域
|
||||
if (StringUtils.isNotBlank(infoDiff.get("dutyTerritory"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("dutyTerritory").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Duty territory has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//备注
|
||||
if (StringUtils.isNotBlank(infoDiff.get("remark"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("remark").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);
|
||||
contentInfo += "(" + infoDiffRow + "). Remark has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//设计符合性确认-交付物类型
|
||||
if (StringUtils.isNotBlank(infoDiff.get("designDeliverableType"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("designDeliverableType").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Design deliverable type has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//设计符合性确认-交付物模板
|
||||
if (StringUtils.isNotBlank(infoDiff.get("designDeliverableTemplate"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("designDeliverableTemplate").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Design deliverable template has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//设计符合性确认-发起人
|
||||
if (StringUtils.isNotBlank(infoDiff.get("designInitiator"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("designInitiator").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Design initiator has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//设计符合性确认-责任人
|
||||
if (StringUtils.isNotBlank(infoDiff.get("designDuty"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("designDuty").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Design duty has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//prehomo确认-交付物类型
|
||||
if (StringUtils.isNotBlank(infoDiff.get("prehomoDeliverableType"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("prehomoDeliverableType").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Prehomo deliverable type has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//prehomo确认-交付物模板
|
||||
if (StringUtils.isNotBlank(infoDiff.get("prehomoDeliverableTemplate"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("prehomoDeliverableTemplate").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Prehomo deliverable template has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//prehomo确认-发起人
|
||||
if (StringUtils.isNotBlank(infoDiff.get("prehomoInitiator"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("prehomoInitiator").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Prehomo initiator has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//prehomo确认-责任人
|
||||
if (StringUtils.isNotBlank(infoDiff.get("prehomoDuty"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("prehomoDuty").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Prehomo duty has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//验证符合性确认-交付物类型
|
||||
if (StringUtils.isNotBlank(infoDiff.get("verifyDeliverableType"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("verifyDeliverableType").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Verify deliverable type has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//验证符合性确认-交付物模板
|
||||
if (StringUtils.isNotBlank(infoDiff.get("verifyDeliverableTemplate"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("verifyDeliverableTemplate").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Verify deliverable template has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//验证符合性确认-发起人
|
||||
if (StringUtils.isNotBlank(infoDiff.get("verifyInitiator"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("verifyInitiator").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Verify initiator has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
//验证符合性确认-责任人
|
||||
if (StringUtils.isNotBlank(infoDiff.get("verifyDuty"))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get("verifyDuty").split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);//需要翻译
|
||||
contentInfo += "(" + infoDiffRow + "). Verify duty has been changed from " + infoDiffOld + " to " + infoDiffNew + ".\r\n";
|
||||
infoDiffRow++;
|
||||
}
|
||||
row++;
|
||||
}
|
||||
//新车型实施日期
|
||||
if (StringUtils.isNotBlank(infoDiff.get("xin1Che1Xing2Shi2Shi1Ri4Qi1"))) {
|
||||
List<String> xin1Che1Xing2Shi2Shi1Ri4Qi1List = Arrays.asList(infoDiff.get("xin1Che1Xing2Shi2Shi1Ri4Qi1").split(","));
|
||||
String infoDiffOldXin1Che1Xing2Shi2Shi1Ri4Qi1 = xin1Che1Xing2Shi2Shi1Ri4Qi1List.get(0);
|
||||
String infoDiffNewXin1Che1Xing2Shi2Shi1Ri4Qi1 = xin1Che1Xing2Shi2Shi1Ri4Qi1List.get(1);
|
||||
contentInfo += row + ". " + infoDiffOldXin1Che1Xing2Shi2Shi1Ri4Qi1 + " has been changed to" + infoDiffNewXin1Che1Xing2Shi2Shi1Ri4Qi1 + ".\r\n";
|
||||
row++;
|
||||
}
|
||||
//在产车实施日期
|
||||
if (StringUtils.isNotBlank(infoDiff.get("implementTime"))) {
|
||||
List<String> implementTimeList = Arrays.asList(infoDiff.get("implementTime").split(","));
|
||||
String infoDiffOldImplementTime = implementTimeList.get(0);
|
||||
String infoDiffNewImplementTime = implementTimeList.get(1);
|
||||
contentInfo += row + ". " + infoDiffOldImplementTime + " has been changed to" + infoDiffNewImplementTime + ".\r\n";
|
||||
row++;
|
||||
}
|
||||
//WVTA ID
|
||||
if (StringUtils.isNotBlank(infoDiff.get("wvtaId"))) {
|
||||
List<String> wvtaIdList = Arrays.asList(infoDiff.get("wvtaId").split(","));
|
||||
String infoDiffOldWvtaId = wvtaIdList.get(0);
|
||||
String infoDiffNewWvtaId = wvtaIdList.get(1);
|
||||
contentInfo += row + ". " + infoDiffOldWvtaId + " has been changed to" + infoDiffNewWvtaId + ".\r\n";
|
||||
row++;
|
||||
}
|
||||
//子标题
|
||||
if (StringUtils.isNotBlank(infoDiff.get("subtitle"))) {
|
||||
List<String> subtitleList = Arrays.asList(infoDiff.get("subtitle").split(","));
|
||||
String infoDiffOldSubtitle = subtitleList.get(0);
|
||||
String infoDiffNewSubtitle = subtitleList.get(1);
|
||||
contentInfo += row + ". " + infoDiffOldSubtitle + " has been changed to" + infoDiffNewSubtitle + ".\r\n";
|
||||
row++;
|
||||
}
|
||||
//实施类别
|
||||
if (StringUtils.isNotBlank(infoDiff.get("implementType"))) {
|
||||
List<String> implementTypeList = Arrays.asList(infoDiff.get("implementType").split(","));
|
||||
String infoDiffOldImplementType = implementTypeList.get(0);
|
||||
String infoDiffNewImplementType = implementTypeList.get(1);
|
||||
contentInfo += row + ". " + infoDiffOldImplementType + " has been changed to" + infoDiffNewImplementType + ".\r\n";
|
||||
row++;
|
||||
}
|
||||
//认证类型
|
||||
if (StringUtils.isNotBlank(infoDiff.get("attestationType"))) {
|
||||
List<String> attestationTypeList = Arrays.asList(infoDiff.get("attestationType").split(","));
|
||||
String infoDiffOldAttestationType = attestationTypeList.get(0);
|
||||
String infoDiffNewAttestationType = attestationTypeList.get(1);
|
||||
contentInfo += row + ". " + infoDiffOldAttestationType + " has been changed to" + infoDiffNewAttestationType + ".\r\n";
|
||||
row++;
|
||||
}
|
||||
|
||||
//认证级别
|
||||
//责任领域
|
||||
//备注
|
||||
//设计符合性确认-交付物类型
|
||||
//设计符合性确认-交付物模板
|
||||
//设计符合性确认-发起人
|
||||
//设计符合性确认-责任人
|
||||
//prehomo确认-交付物类型
|
||||
//prehomo确认-交付物模板
|
||||
//prehomo确认-发起人
|
||||
//prehomo确认-责任人
|
||||
//验证符合性确认-交付物类型
|
||||
//验证符合性确认-交付物模板
|
||||
//验证符合性确认-发起人
|
||||
//验证符合性确认-责任人
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public void setContent(String contentInfo,Map<String, String> infoDiff, String field,int row){
|
||||
|
||||
if (StringUtils.isNotBlank(infoDiff.get(field))) {
|
||||
List<String> list = Arrays.asList(infoDiff.get(field).split(","));
|
||||
String infoDiffOld = list.get(0);
|
||||
String infoDiffNew = list.get(1);
|
||||
contentInfo += row + ". " + infoDiffOld + " has been changed to" + infoDiffNew + ".\r\n";
|
||||
row++;
|
||||
}
|
||||
return contentInfo;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,17 +18,19 @@ public class ListDiff <T> {
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
if(f.getName().equals("serialNumber")){
|
||||
result.put(f.getName(),v1.toString());
|
||||
}
|
||||
if( ! equals(v1, v2) && !f.getName().contains("create")
|
||||
&& !f.getName().contains("update") ){
|
||||
&& !f.getName().contains("update") && !f.getName().equals("id")){
|
||||
|
||||
StringBuilder v1String= new StringBuilder(String.valueOf(v1));
|
||||
StringBuilder v2String= new StringBuilder(String.valueOf(v2));
|
||||
|
||||
|
||||
|
||||
result.put(f.getName(), v1String.append(",").append(v2String).toString());
|
||||
|
||||
if(f.getName().contains("erritory") || f.getName().contains("emplate")){
|
||||
result.put(f.getName(), v1String.append("|").append(v2String).toString());
|
||||
}else {
|
||||
result.put(f.getName(), v1String.append(",").append(v2String).toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user