虚拟清单-发布发送消息修改

This commit is contained in:
xiejunyu
2022-05-09 10:57:21 +08:00
parent f071c1fe2a
commit f9c08b1828
2 changed files with 40 additions and 32 deletions
@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.constant.enums.MessageTypeEnum; import com.jero.common.constant.enums.MessageTypeEnum;
import com.jero.common.exception.JeroBootException; import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser; import com.jero.common.system.vo.LoginUser;
@@ -257,6 +258,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
list.add(dummyContentChangeEOBase); list.add(dummyContentChangeEOBase);
} }
if(dummyInventoryInfoEOList.size() != 0){ if(dummyInventoryInfoEOList.size() != 0){
disposeData(dummyInventoryInfoEOList);
String info = JSONArray.toJSONString(dummyInventoryInfoEOList); String info = JSONArray.toJSONString(dummyInventoryInfoEOList);
DummyContentChangeEO dummyContentChangeEOInfo = new DummyContentChangeEO(); DummyContentChangeEO dummyContentChangeEOInfo = new DummyContentChangeEO();
dummyContentChangeEOInfo.setParentId(dummyInventoryBaseEO.getId()); dummyContentChangeEOInfo.setParentId(dummyInventoryBaseEO.getId());
@@ -308,7 +310,6 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
List<DummyInventoryInfoEO> infoCJList = JSONArray.parseArray(infoCJ, DummyInventoryInfoEO.class);//json转list List<DummyInventoryInfoEO> infoCJList = JSONArray.parseArray(infoCJ, DummyInventoryInfoEO.class);//json转list
//翻译字典code值 //翻译字典code值
disposeData(infoCJList);
disposeData(dummyInventoryInfoEOList); disposeData(dummyInventoryInfoEOList);
//获取数据库和传入同时存在的编号 //获取数据库和传入同时存在的编号
@@ -382,10 +383,15 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
} }
deleteSerialNumber=StringUtils.join(infoCJSerialNumberList,","); deleteSerialNumber=StringUtils.join(infoCJSerialNumberList,",");
//列表维护清单不同的字段都为空->不发送消息,数据不处理 //列表,维护清单不同的字段,addSerialNumber,deleteSerialNumber都为空->证明是没有更新的数据,不发送消息,数据不处理
if(MapUtils.isNotEmpty(baseDiff) || CollectionUtils.isNotEmpty(infoDiffList)) { if(MapUtils.isNotEmpty(baseDiff) || CollectionUtils.isNotEmpty(infoDiffList)
|| StringUtils.isNotEmpty(addSerialNumber) || StringUtils.isNotEmpty(deleteSerialNumber)) {
//向订阅该领域管理的人发消息和飞书 //向订阅该领域管理的人发消息和飞书
sendMsg(baseDiff, dummyContentChangeEOBaseList.get(0).getConnectId(), infoDiffList, addSerialNumber, deleteSerialNumber,dummyInventoryBaseEO.getState()); sendMsg(baseDiff, dummyContentChangeEOBaseList.get(0).getConnectId(), infoDiffList, addSerialNumber, deleteSerialNumber,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut());
//更新log
// updateLog(map, dataList, fieldList, fieldDateList, fieldFileList, fieldPullList, cut);
Date now=new Date(); Date now=new Date();
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//5.数据对比完成后.更新之前保存的dummy_inventory_info中的content_json数据,重新保存最新的数据 //5.数据对比完成后.更新之前保存的dummy_inventory_info中的content_json数据,重新保存最新的数据
@@ -398,12 +404,13 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
.eq("connect_id",dummyInventoryBaseEOList.get(0).getId()); .eq("connect_id",dummyInventoryBaseEOList.get(0).getId());
dummyContentChangeEOMapper.update(null,baseUpdateWrapper); dummyContentChangeEOMapper.update(null,baseUpdateWrapper);
} }
if(CollectionUtils.isNotEmpty(infoDiffList)){//维护清单有不同字段 if(CollectionUtils.isNotEmpty(infoDiffList) || StringUtils.isNotEmpty(addSerialNumber)
|| StringUtils.isNotEmpty(deleteSerialNumber)){//维护清单有不同字段,addSerialNumber,deleteSerialNumber也有数据
String info = JSONArray.toJSONString(dummyInventoryInfoEOList); String info = JSONArray.toJSONString(dummyInventoryInfoEOList);
UpdateWrapper<DummyContentChangeEO> infoUpdateWrapper=new UpdateWrapper<>(); UpdateWrapper<DummyContentChangeEO> infoUpdateWrapper=new UpdateWrapper<>();
infoUpdateWrapper.set("content_json",info) infoUpdateWrapper.set("content_json",info)
.set("update_by",sysUser.getUsername()) .set("update_by",sysUser.getUsername())
.set("update_time",now) .set("update_time",now)
.eq("parent_id",dummyInventoryBaseEOList.get(0).getId()); .eq("parent_id",dummyInventoryBaseEOList.get(0).getId());
dummyContentChangeEOMapper.update(null,infoUpdateWrapper); dummyContentChangeEOMapper.update(null,infoUpdateWrapper);
} }
@@ -411,7 +418,11 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
} }
}else{ }else{
//撤回,需要发消息 //撤回,需要发消息
sendMsg(null, dummyInventoryBaseEO.getId(),null, null , null,dummyInventoryBaseEO.getState()); try {
sendMsg(null, dummyInventoryBaseEO.getId(),null, null , null,dummyInventoryBaseEO.getState(),dummyInventoryBaseEO.getCut());
}catch (Exception e){
e.printStackTrace();
}
} }
} }
@@ -451,8 +462,7 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
dummyInventoryInfoEO.setTechnologyTerritoryName(technologyTerritoryName); dummyInventoryInfoEO.setTechnologyTerritoryName(technologyTerritoryName);
} }
//适用范围 SHI4_YONG4_FAN4_WEI2("","apply_scope"), //适用范围
// REGION("适用地区","region"),
if (StringUtils.isNotBlank(dummyInventoryInfoEO.getShi4Yong4Fan4Wei2())) { if (StringUtils.isNotBlank(dummyInventoryInfoEO.getShi4Yong4Fan4Wei2())) {
List<SysDictItem> shi4Yong4Fan4Wei2 = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseDictCodeEnum.SHI4_YONG4_FAN4_WEI2.getValue()); List<SysDictItem> shi4Yong4Fan4Wei2 = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseDictCodeEnum.SHI4_YONG4_FAN4_WEI2.getValue());
List<String> shi4Yong4Fan4Wei2List = Arrays.asList(dummyInventoryInfoEO.getShi4Yong4Fan4Wei2().split(",")); List<String> shi4Yong4Fan4Wei2List = Arrays.asList(dummyInventoryInfoEO.getShi4Yong4Fan4Wei2().split(","));
@@ -506,19 +516,16 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
//交付物类型 //交付物类型
List<SysDictItem> deliverableTemplate = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseDictCodeEnum.DELIVERABLE_TEMPLATE.getValue()); List<SysDictItem> deliverableTemplate = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseDictCodeEnum.DELIVERABLE_TEMPLATE.getValue());
//设计符合性确认-交付物类型 //设计符合性确认-交付物类型
// designDeliverableType;
if (StringUtils.isNotBlank(dummyInventoryInfoEO.getDesignDeliverableType())) { if (StringUtils.isNotBlank(dummyInventoryInfoEO.getDesignDeliverableType())) {
String designDeliverableTypeName = deliverableTemplate.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getDesignDeliverableType())).map(f -> f.getItemText()).collect(Collectors.joining(",")); String designDeliverableTypeName = deliverableTemplate.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getDesignDeliverableType())).map(f -> f.getItemText()).collect(Collectors.joining(","));
dummyInventoryInfoEO.setDesignDeliverableType(designDeliverableTypeName); dummyInventoryInfoEO.setDesignDeliverableType(designDeliverableTypeName);
} }
//prehomo确认-交付物类型 //prehomo确认-交付物类型
// prehomoDeliverableType;
if (StringUtils.isNotBlank(dummyInventoryInfoEO.getPrehomoDeliverableType())) { if (StringUtils.isNotBlank(dummyInventoryInfoEO.getPrehomoDeliverableType())) {
String prehomoDeliverableTypeName = deliverableTemplate.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getPrehomoDeliverableType())).map(f -> f.getItemText()).collect(Collectors.joining(",")); String prehomoDeliverableTypeName = deliverableTemplate.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getPrehomoDeliverableType())).map(f -> f.getItemText()).collect(Collectors.joining(","));
dummyInventoryInfoEO.setPrehomoDeliverableType(prehomoDeliverableTypeName); dummyInventoryInfoEO.setPrehomoDeliverableType(prehomoDeliverableTypeName);
} }
//验证符合性确认-交付物类型 //验证符合性确认-交付物类型
// verifyDeliverableType;
if (StringUtils.isNotBlank(dummyInventoryInfoEO.getVerifyDeliverableType())) { if (StringUtils.isNotBlank(dummyInventoryInfoEO.getVerifyDeliverableType())) {
String verifyDeliverableTypeName = deliverableTemplate.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getVerifyDeliverableType())).map(f -> f.getItemText()).collect(Collectors.joining(",")); String verifyDeliverableTypeName = deliverableTemplate.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getVerifyDeliverableType())).map(f -> f.getItemText()).collect(Collectors.joining(","));
dummyInventoryInfoEO.setVerifyDeliverableType(verifyDeliverableTypeName); dummyInventoryInfoEO.setVerifyDeliverableType(verifyDeliverableTypeName);
@@ -527,19 +534,16 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
//发起人 //发起人
List<SysDictItem> fa1_qi3_ren2 = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseDictCodeEnum.FA1_QI3_REN2.getValue()); List<SysDictItem> fa1_qi3_ren2 = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseDictCodeEnum.FA1_QI3_REN2.getValue());
//设计符合性确认-发起人 //设计符合性确认-发起人
// designInitiator;
if (StringUtils.isNotBlank(dummyInventoryInfoEO.getDesignInitiator())) { if (StringUtils.isNotBlank(dummyInventoryInfoEO.getDesignInitiator())) {
String designInitiatorName = fa1_qi3_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getDesignInitiator())).map(f -> f.getItemText()).collect(Collectors.joining(",")); String designInitiatorName = fa1_qi3_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getDesignInitiator())).map(f -> f.getItemText()).collect(Collectors.joining(","));
dummyInventoryInfoEO.setDesignInitiator(designInitiatorName); dummyInventoryInfoEO.setDesignInitiator(designInitiatorName);
} }
//prehomo确认-发起人 //prehomo确认-发起人
// prehomoInitiator;
if (StringUtils.isNotBlank(dummyInventoryInfoEO.getPrehomoInitiator())) { if (StringUtils.isNotBlank(dummyInventoryInfoEO.getPrehomoInitiator())) {
String prehomoInitiatorName = fa1_qi3_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getPrehomoInitiator())).map(f -> f.getItemText()).collect(Collectors.joining(",")); String prehomoInitiatorName = fa1_qi3_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getPrehomoInitiator())).map(f -> f.getItemText()).collect(Collectors.joining(","));
dummyInventoryInfoEO.setPrehomoInitiator(prehomoInitiatorName); dummyInventoryInfoEO.setPrehomoInitiator(prehomoInitiatorName);
} }
//验证符合性确认-发起人 //验证符合性确认-发起人
// verifyInitiator;
if (StringUtils.isNotBlank(dummyInventoryInfoEO.getVerifyInitiator())) { if (StringUtils.isNotBlank(dummyInventoryInfoEO.getVerifyInitiator())) {
String verifyInitiatorName = fa1_qi3_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getVerifyInitiator())).map(f -> f.getItemText()).collect(Collectors.joining(",")); String verifyInitiatorName = fa1_qi3_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getVerifyInitiator())).map(f -> f.getItemText()).collect(Collectors.joining(","));
dummyInventoryInfoEO.setVerifyInitiator(verifyInitiatorName); dummyInventoryInfoEO.setVerifyInitiator(verifyInitiatorName);
@@ -548,19 +552,16 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
//责任人 //责任人
List<SysDictItem> ze2_ren4_ren2 = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseDictCodeEnum.ZE2_REN2_REN2.getValue()); List<SysDictItem> ze2_ren4_ren2 = sysDictItemMapper.selectItemsByDictCode(DummyInventoryBaseDictCodeEnum.ZE2_REN2_REN2.getValue());
//设计符合性确认-责任人 //设计符合性确认-责任人
// designDuty;
if (StringUtils.isNotBlank(dummyInventoryInfoEO.getDesignDuty())) { if (StringUtils.isNotBlank(dummyInventoryInfoEO.getDesignDuty())) {
String designDutyName = ze2_ren4_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getDesignDuty())).map(f -> f.getItemText()).collect(Collectors.joining(",")); String designDutyName = ze2_ren4_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getDesignDuty())).map(f -> f.getItemText()).collect(Collectors.joining(","));
dummyInventoryInfoEO.setDesignDuty(designDutyName); dummyInventoryInfoEO.setDesignDuty(designDutyName);
} }
//prehomo确认-责任人 //prehomo确认-责任人
// prehomoDuty;
if (StringUtils.isNotBlank(dummyInventoryInfoEO.getPrehomoDuty())) { if (StringUtils.isNotBlank(dummyInventoryInfoEO.getPrehomoDuty())) {
String prehomoDutyName = ze2_ren4_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getPrehomoDuty())).map(f -> f.getItemText()).collect(Collectors.joining(",")); String prehomoDutyName = ze2_ren4_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getPrehomoDuty())).map(f -> f.getItemText()).collect(Collectors.joining(","));
dummyInventoryInfoEO.setPrehomoDuty(prehomoDutyName); dummyInventoryInfoEO.setPrehomoDuty(prehomoDutyName);
} }
//验证符合性确认-责任人 //验证符合性确认-责任人
// verifyDuty;
if (StringUtils.isNotBlank(dummyInventoryInfoEO.getVerifyDuty())) { if (StringUtils.isNotBlank(dummyInventoryInfoEO.getVerifyDuty())) {
String verifyDutyName = ze2_ren4_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getVerifyDuty())).map(f -> f.getItemText()).collect(Collectors.joining(",")); String verifyDutyName = ze2_ren4_ren2.stream().filter(e -> e.getItemValue().equals(dummyInventoryInfoEO.getVerifyDuty())).map(f -> f.getItemText()).collect(Collectors.joining(","));
dummyInventoryInfoEO.setVerifyDuty(verifyDutyName); dummyInventoryInfoEO.setVerifyDuty(verifyDutyName);
@@ -570,12 +571,12 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
} }
//发送消息 //发送消息
private void sendMsg(Map<String, String> baseDiff, String idTemp,List<Map<String, String>> infoDiffList, private void sendMsg(Map<String, String> baseDiff, String idTemp,List<Map<String, String>> infoDiffList,
String addSerialNumber,String deleteSerialNumber,String state) { String addSerialNumber,String deleteSerialNumber,String state,String cut) {
String baseName = queryById(idTemp).getName();//基础表id String baseName = queryById(idTemp).getName();//基础表id
//查询订阅用户 //查询订阅用户
List<String> userNameList = dummyReadEOService.queryReadUserInfo(idTemp); List<String> userNameList = dummyReadEOService.queryReadUserInfo(idTemp);
if (CollectionUtils.isNotEmpty(userNameList)) { if (CollectionUtils.isNotEmpty(userNameList)) {//有订阅的用户,发送消息
List<String> userIdList = sysUserService.queryUserIdListByNameList(userNameList).stream().map(e -> e.getId()).collect(Collectors.toList()); List<String> userIdList = sysUserService.queryUserIdListByNameList(userNameList).stream().map(e -> e.getId()).collect(Collectors.toList());
//给发送消息的用户 //给发送消息的用户
if (userIdList.size() == 0) { if (userIdList.size() == 0) {
@@ -609,11 +610,18 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
log.error("飞书消息推送失败"); log.error("飞书消息推送失败");
} }
} }
} else { }else {//没有订阅用户
throw new JeroBootException("该虚拟清单未被订阅,消息发送失败"); //没有订阅用户,发布时,不发送消息
if(InventoryStateEnum.ISSUE.getValue().equals(state)) {
if(CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("该虚拟清单未被订阅,消息发送失败");
}else{
throw new JeroBootException("The virtual list has not been subscribed, and the message sending failed.");
}
}
} }
} }
////拼接维护清单的消息 //拼接维护清单的消息
public String setContentInfo(String contentInfo, Map<String, String> baseDiff, List<Map<String, String>> infoDiffList public String setContentInfo(String contentInfo, Map<String, String> baseDiff, List<Map<String, String>> infoDiffList
, String addSerialNumber, String deleteSerialNumber) { , String addSerialNumber, String deleteSerialNumber) {
int row = 1; int row = 1;
@@ -1,9 +1,8 @@
package com.jero.modules.dummy.util; package com.jero.modules.dummy.util;
import org.apache.commons.lang3.StringUtils;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.*; import java.util.HashMap;
import java.util.Map;
public class ListDiff <T> { public class ListDiff <T> {
public static <T> Map<String, String> compareObject(T obj1, T Obj2) { public static <T> Map<String, String> compareObject(T obj1, T Obj2) {
@@ -25,14 +24,15 @@ public class ListDiff <T> {
} }
if( ! equals(v1, v2) && !f.getName().contains("create") if( ! equals(v1, v2) && !f.getName().contains("create")
&& !f.getName().contains("update") && !f.getName().equals("id")){ && !f.getName().contains("update") && !f.getName().equals("id")){
if (StringUtils.isBlank(v1.toString())){
v1 = "null";
}
if (StringUtils.isBlank(v2.toString())){
v2 = "null";
}
StringBuilder v1String= new StringBuilder(String.valueOf(v1)); StringBuilder v1String= new StringBuilder(String.valueOf(v1));
StringBuilder v2String= new StringBuilder(String.valueOf(v2)); StringBuilder v2String= new StringBuilder(String.valueOf(v2));
// if (StringUtils.isEmpty(v1.toString())){
// v1String = new StringBuilder("null");
// }
// if (StringUtils.isEmpty(v2.toString())){
// v2String = new StringBuilder("null");
// }
if(f.getName().contains("erritory") || f.getName().contains("emplate") if(f.getName().contains("erritory") || f.getName().contains("emplate")
|| f.getName().equals(("shi4Yong4Fan4Wei2")) || f.getName().equals("region")){ || f.getName().equals(("shi4Yong4Fan4Wei2")) || f.getName().equals("region")){
result.put(f.getName(), v1String.append("|").append(v2String).toString()); result.put(f.getName(), v1String.append("|").append(v2String).toString());