文档订阅后, 编辑时发送飞书消息
This commit is contained in:
+325
-20
@@ -2980,13 +2980,13 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
if (ObjectUtils.isNotEmpty(value)) {
|
if (ObjectUtils.isNotEmpty(value)) {
|
||||||
if (ObjectUtils.isNotEmpty(valueTemp) && !value.equals(valueTemp)) {
|
if (ObjectUtils.isNotEmpty(valueTemp) && !value.equals(valueTemp)) {
|
||||||
if("1".equals(flag)){
|
if("1".equals(flag)){
|
||||||
sb.append(dbFieldTxt +" from \""+ value + "\" to \"" + valueTemp + "\",");
|
sb.append(dbFieldTxt +" was changed from \""+ value + "\" to \"" + valueTemp + "\",");
|
||||||
}else{
|
}else{
|
||||||
sb.append(dbFieldTxt + "由\"" + value + "\"改为\"“" + valueTemp + "\",");
|
sb.append(dbFieldTxt + "由\"" + value + "\"改为\"“" + valueTemp + "\",");
|
||||||
}
|
}
|
||||||
} else if (ObjectUtils.isEmpty(valueTemp)) {
|
} else if (ObjectUtils.isEmpty(valueTemp)) {
|
||||||
if("1".equals(flag)){
|
if("1".equals(flag)){
|
||||||
sb.append(dbFieldTxt + " from \""+value + "\" to null " + ",");
|
sb.append(dbFieldTxt + " was changed from \""+value + "\" to null " + ",");
|
||||||
}else{
|
}else{
|
||||||
sb.append(dbFieldTxt + "由\"" + value + "\"改为空" + ",");
|
sb.append(dbFieldTxt + "由\"" + value + "\"改为空" + ",");
|
||||||
}
|
}
|
||||||
@@ -2994,7 +2994,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
} else {
|
} else {
|
||||||
if (ObjectUtils.isNotEmpty(valueTemp)) {
|
if (ObjectUtils.isNotEmpty(valueTemp)) {
|
||||||
if("1".equals(flag)){
|
if("1".equals(flag)){
|
||||||
sb.append(dbFieldTxt + " from null to \"" + valueTemp + "\",");
|
sb.append(dbFieldTxt + " was changed from null to \"" + valueTemp + "\",");
|
||||||
}else{
|
}else{
|
||||||
sb.append(dbFieldTxt + "由空改为\"" + valueTemp + "\",");
|
sb.append(dbFieldTxt + "由空改为\"" + valueTemp + "\",");
|
||||||
}
|
}
|
||||||
@@ -3023,13 +3023,13 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
if (fileNameListTemp.size() != 0 && !checkDiffrent) {
|
if (fileNameListTemp.size() != 0 && !checkDiffrent) {
|
||||||
if("1".equals(flag)){
|
if("1".equals(flag)){
|
||||||
//sysUser
|
//sysUser
|
||||||
sb.append(dbFieldTxt +" from \""+ StringUtils.join(fileNameList, ",") + "\" to \"" + StringUtils.join(fileNameListTemp, ",") + "\",");
|
sb.append(dbFieldTxt +" was changed from \""+ StringUtils.join(fileNameList, ",") + "\" to \"" + StringUtils.join(fileNameListTemp, ",") + "\",");
|
||||||
}else{
|
}else{
|
||||||
sb.append(dbFieldTxt + "由\"" + StringUtils.join(fileNameList, ",") + "\"改为\"" + StringUtils.join(fileNameListTemp, ",") + "\",");
|
sb.append(dbFieldTxt + "由\"" + StringUtils.join(fileNameList, ",") + "\"改为\"" + StringUtils.join(fileNameListTemp, ",") + "\",");
|
||||||
}
|
}
|
||||||
} else if (fileNameListTemp.size() == 0) {
|
} else if (fileNameListTemp.size() == 0) {
|
||||||
if("1".equals(flag)){
|
if("1".equals(flag)){
|
||||||
sb.append(dbFieldTxt + " from \""+StringUtils.join(fileNameList, ",") + "\" to null " + ",");
|
sb.append(dbFieldTxt + " was changed from \""+StringUtils.join(fileNameList, ",") + "\" to null " + ",");
|
||||||
}else{
|
}else{
|
||||||
sb.append(dbFieldTxt + "由\"" + StringUtils.join(fileNameList, ",") + "\"改为空" + ",");
|
sb.append(dbFieldTxt + "由\"" + StringUtils.join(fileNameList, ",") + "\"改为空" + ",");
|
||||||
}
|
}
|
||||||
@@ -3038,7 +3038,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
} else {
|
} else {
|
||||||
if (fileNameListTemp.size() != 0) {
|
if (fileNameListTemp.size() != 0) {
|
||||||
if("1".equals(flag)){
|
if("1".equals(flag)){
|
||||||
sb.append(dbFieldTxt + " from null to \"" + StringUtils.join(fileNameListTemp, ",") + "\",");
|
sb.append(dbFieldTxt + " was changed from null to \"" + StringUtils.join(fileNameListTemp, ",") + "\",");
|
||||||
}else{
|
}else{
|
||||||
sb.append(dbFieldTxt + "由空改为\"" + StringUtils.join(fileNameListTemp, ",") + "\",");
|
sb.append(dbFieldTxt + "由空改为\"" + StringUtils.join(fileNameListTemp, ",") + "\",");
|
||||||
}
|
}
|
||||||
@@ -3059,13 +3059,13 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
if (ObjectUtils.isNotEmpty(value)) {
|
if (ObjectUtils.isNotEmpty(value)) {
|
||||||
if (ObjectUtils.isNotEmpty(valueTemp) && !value.equals(valueTemp)) {
|
if (ObjectUtils.isNotEmpty(valueTemp) && !value.equals(valueTemp)) {
|
||||||
if("1".equals(flag)){
|
if("1".equals(flag)){
|
||||||
sb.append(dbFieldTxt +" from \""+ value + "\" to \"" + valueTemp + "\",");
|
sb.append(dbFieldTxt +" was changed from \""+ value + "\" to \"" + valueTemp + "\",");
|
||||||
}else{
|
}else{
|
||||||
sb.append(dbFieldTxt + "由\"" + value + "\"改为\"" + valueTemp + "\",");
|
sb.append(dbFieldTxt + "由\"" + value + "\"改为\"" + valueTemp + "\",");
|
||||||
}
|
}
|
||||||
} else if (ObjectUtils.isEmpty(valueTemp)) {
|
} else if (ObjectUtils.isEmpty(valueTemp)) {
|
||||||
if("1".equals(flag)){
|
if("1".equals(flag)){
|
||||||
sb.append(dbFieldTxt + " from \""+value + "\" to null " + ",");
|
sb.append(dbFieldTxt + " was changed from \""+value + "\" to null " + ",");
|
||||||
}else{
|
}else{
|
||||||
sb.append(dbFieldTxt + "由\"" + value + "\"改为空" + ",");
|
sb.append(dbFieldTxt + "由\"" + value + "\"改为空" + ",");
|
||||||
}
|
}
|
||||||
@@ -3073,7 +3073,203 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
} else {
|
} else {
|
||||||
if (ObjectUtils.isNotEmpty(valueTemp)) {
|
if (ObjectUtils.isNotEmpty(valueTemp)) {
|
||||||
if("1".equals(flag)){
|
if("1".equals(flag)){
|
||||||
sb.append(dbFieldTxt + " from null to \"" + valueTemp + "\",");
|
sb.append(dbFieldTxt + " was changed from null to \"" + valueTemp + "\",");
|
||||||
|
}else{
|
||||||
|
sb.append(dbFieldTxt + "由空改为\"" + valueTemp + "\",");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return sb;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private StringBuilder getUpdateInfoCn(Map<String, Object> map, List<Map<String, Object>> dataList,
|
||||||
|
List<OnlCgformField> fieldList, List<OnlCgformField> fieldDateList,
|
||||||
|
List<OnlCgformField> fieldFileList, List<OnlCgformField> fieldPullList,
|
||||||
|
String cut,String flagTemp) {
|
||||||
|
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
|
//调整dataList中map中字段顺序与表单中的一致
|
||||||
|
Map<String, Object> mapNew = new LinkedHashMap<>();
|
||||||
|
for (OnlCgformField onlCgformField : fieldList) {
|
||||||
|
for (Map.Entry<String, Object> entry : dataList.get(0).entrySet()) {
|
||||||
|
if (onlCgformField.getDbFieldName().equals(entry.getKey())) {
|
||||||
|
mapNew.put(entry.getKey(), entry.getValue());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dataList.remove(0);
|
||||||
|
dataList.add(mapNew);
|
||||||
|
Map<String, Object> mapTemp = new HashMap<>();
|
||||||
|
mapCopy(map, mapTemp);
|
||||||
|
//时间类型的字段
|
||||||
|
List<String> fieldDate = fieldDateList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList());
|
||||||
|
//文件类型的字段
|
||||||
|
List<String> fieldFile = fieldFileList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList());
|
||||||
|
//下拉类型的字段
|
||||||
|
//过滤出树形字段
|
||||||
|
List<OnlCgformField> treeFieldList = fieldList.stream()
|
||||||
|
.filter(e -> FieldTypeEnum.TREE.getValue().equals(e.getFieldShowType()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
//数据字典
|
||||||
|
List<SysDictItem> sysDictItems = sysDictItemServiceImpl.selectItemsAll();
|
||||||
|
//树形数据字典
|
||||||
|
List<SysCategory> categoryList = sysCategoryService.list();
|
||||||
|
//下拉选处理数据字典
|
||||||
|
for (Map.Entry<String, Object> entry : dataList.get(0).entrySet()) {
|
||||||
|
//下拉选处理数据字典
|
||||||
|
dictItemCn(sysDictItems, entry, cut, fieldList,flagTemp);
|
||||||
|
treeDictItemCn(categoryList, entry, treeFieldList, cut,flagTemp);
|
||||||
|
}
|
||||||
|
for (Map.Entry<String, Object> entry : mapTemp.entrySet()) {
|
||||||
|
//下拉选处理数据字典
|
||||||
|
dictItemCn(sysDictItems, entry, cut, fieldList,flagTemp);
|
||||||
|
treeDictItemCn(categoryList, entry, treeFieldList, cut,flagTemp);
|
||||||
|
}
|
||||||
|
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
dataList.get(0).entrySet().forEach(entry -> {
|
||||||
|
String key = entry.getKey();
|
||||||
|
Object value = entry.getValue();
|
||||||
|
//字段中文名
|
||||||
|
List<OnlCgformField> fields = fieldList.stream().filter(e -> e.getDbFieldName().equals(key)).collect(Collectors.toList());
|
||||||
|
|
||||||
|
if (fields.size() != 0) {
|
||||||
|
String dbFieldTxt = fields.get(0).getDbFieldTxt();
|
||||||
|
if("2".equals(flagTemp)){
|
||||||
|
dbFieldTxt = fields.get(0).getDbFieldTxt();
|
||||||
|
}else{
|
||||||
|
dbFieldTxt = fields.get(0).getDbFieldTxt();
|
||||||
|
}
|
||||||
|
dbFieldTxt = "<text class='highlight-class'>" + dbFieldTxt + "</text>";
|
||||||
|
if (value == null) {
|
||||||
|
value = "";
|
||||||
|
}
|
||||||
|
for (Map.Entry<String, Object> entryTemp : mapTemp.entrySet()) {
|
||||||
|
String keyTemp = entryTemp.getKey();
|
||||||
|
Object valueTemp = entryTemp.getValue();
|
||||||
|
if (valueTemp == null) {
|
||||||
|
valueTemp = "";
|
||||||
|
}
|
||||||
|
if (!"create_time".equals(key) && !"update_time".equals(key)) {
|
||||||
|
if (key.equals(keyTemp)) {
|
||||||
|
if (fieldDate.contains(key)) {
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
if (ObjectUtils.isNotEmpty(value)) {
|
||||||
|
value = sdf.format(value);
|
||||||
|
}
|
||||||
|
if (ObjectUtils.isNotEmpty(valueTemp)) {
|
||||||
|
try {
|
||||||
|
valueTemp = sdf.format(sdf.parse((String) valueTemp));
|
||||||
|
} catch (ParseException e) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//处理时间类型字段
|
||||||
|
if (ObjectUtils.isNotEmpty(value)) {
|
||||||
|
if (ObjectUtils.isNotEmpty(valueTemp) && !value.equals(valueTemp)) {
|
||||||
|
if("2".equals(flagTemp)){
|
||||||
|
sb.append(dbFieldTxt + "由\"" + value + "\"改为\"“" + valueTemp + "\",");
|
||||||
|
}else{
|
||||||
|
sb.append(dbFieldTxt + "由\"" + value + "\"改为\"“" + valueTemp + "\",");
|
||||||
|
}
|
||||||
|
} else if (ObjectUtils.isEmpty(valueTemp)) {
|
||||||
|
if("2".equals(flagTemp)){
|
||||||
|
sb.append(dbFieldTxt + "由\"" + value + "\"改为空" + ",");
|
||||||
|
}else{
|
||||||
|
sb.append(dbFieldTxt + "由\"" + value + "\"改为空" + ",");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ObjectUtils.isNotEmpty(valueTemp)) {
|
||||||
|
if("2".equals(flagTemp)){
|
||||||
|
sb.append(dbFieldTxt + "由空改为\"" + valueTemp + "\",");
|
||||||
|
}else{
|
||||||
|
sb.append(dbFieldTxt + "由空改为\"" + valueTemp + "\",");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (fieldFile.contains(key)) {
|
||||||
|
//处理文件类型字段
|
||||||
|
List<String> fileNameList = new ArrayList<>();
|
||||||
|
List<String> fileNameListTemp = new ArrayList<>();
|
||||||
|
//之前的文件
|
||||||
|
if (ObjectUtils.isNotEmpty(value)) {
|
||||||
|
List<OSSFile> fileInfos = iOSSFileService.getFileInfosByConnectId((String) value);
|
||||||
|
fileNameList = fileInfos.stream().map(OSSFile::getFileName).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
//修改的文件
|
||||||
|
if (ObjectUtils.isNotEmpty(valueTemp)) {
|
||||||
|
List<OSSFile> fileInfosTemp = iOSSFileService.getFileInfos((String) valueTemp);
|
||||||
|
fileNameListTemp = fileInfosTemp.stream().map(OSSFile::getFileName).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ObjectUtils.isNotEmpty(value)) {
|
||||||
|
boolean checkDiffrent = checkDiffrent(fileNameList, fileNameListTemp);
|
||||||
|
|
||||||
|
if (fileNameListTemp.size() != 0 && !checkDiffrent) {
|
||||||
|
if("2".equals(flagTemp)){
|
||||||
|
//sysUser
|
||||||
|
sb.append(dbFieldTxt + "由\"" + StringUtils.join(fileNameList, ",") + "\"改为\"" + StringUtils.join(fileNameListTemp, ",") + "\",");
|
||||||
|
}else{
|
||||||
|
sb.append(dbFieldTxt + "由\"" + StringUtils.join(fileNameList, ",") + "\"改为\"" + StringUtils.join(fileNameListTemp, ",") + "\",");
|
||||||
|
}
|
||||||
|
} else if (fileNameListTemp.size() == 0) {
|
||||||
|
if("2".equals(flagTemp)){
|
||||||
|
sb.append(dbFieldTxt + "由\"" + StringUtils.join(fileNameList, ",") + "\"改为空" + ",");
|
||||||
|
}else{
|
||||||
|
sb.append(dbFieldTxt + "由\"" + StringUtils.join(fileNameList, ",") + "\"改为空" + ",");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (fileNameListTemp.size() != 0) {
|
||||||
|
if("2".equals(flagTemp)){
|
||||||
|
sb.append(dbFieldTxt + "由空改为\"" + StringUtils.join(fileNameListTemp, ",") + "\",");
|
||||||
|
}else{
|
||||||
|
sb.append(dbFieldTxt + "由空改为\"" + StringUtils.join(fileNameListTemp, ",") + "\",");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// if ("replace_standard".equals(key) || "corresponding_standard".equals(key)) {
|
||||||
|
// if (ObjectUtils.isNotEmpty(value)) {
|
||||||
|
// value = getReplaceStandardName(value);
|
||||||
|
// }
|
||||||
|
// if (ObjectUtils.isNotEmpty(valueTemp)) {
|
||||||
|
// valueTemp = getReplaceStandardName(valueTemp);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//其他类型(被代替标准不处理)
|
||||||
|
if (!"replaced_standard".equals(key)) {
|
||||||
|
if (ObjectUtils.isNotEmpty(value)) {
|
||||||
|
if (ObjectUtils.isNotEmpty(valueTemp) && !value.equals(valueTemp)) {
|
||||||
|
if("2".equals(flagTemp)){
|
||||||
|
sb.append(dbFieldTxt + "由\"" + value + "\"改为\"" + valueTemp + "\",");
|
||||||
|
}else{
|
||||||
|
sb.append(dbFieldTxt + "由\"" + value + "\"改为\"" + valueTemp + "\",");
|
||||||
|
}
|
||||||
|
} else if (ObjectUtils.isEmpty(valueTemp)) {
|
||||||
|
if("2".equals(flagTemp)){
|
||||||
|
sb.append(dbFieldTxt + "由\"" + value + "\"改为空" + ",");
|
||||||
|
}else{
|
||||||
|
sb.append(dbFieldTxt + "由\"" + value + "\"改为空" + ",");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ObjectUtils.isNotEmpty(valueTemp)) {
|
||||||
|
if("2".equals(flagTemp)){
|
||||||
|
sb.append(dbFieldTxt + "由空改为\"" + valueTemp + "\",");
|
||||||
}else{
|
}else{
|
||||||
sb.append(dbFieldTxt + "由空改为\"" + valueTemp + "\",");
|
sb.append(dbFieldTxt + "由空改为\"" + valueTemp + "\",");
|
||||||
}
|
}
|
||||||
@@ -3114,20 +3310,34 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
List<OnlCgformField> fieldFileList,
|
List<OnlCgformField> fieldFileList,
|
||||||
List<OnlCgformField> fieldPullList,
|
List<OnlCgformField> fieldPullList,
|
||||||
String cut) {
|
String cut) {
|
||||||
|
List<Map<String, Object>> dataListTemp = new ArrayList<>();
|
||||||
|
for (Map<String, Object> stringObjectMap : dataList) {
|
||||||
|
Map<String, Object> mapT = new HashMap<>();
|
||||||
|
mapCopy(stringObjectMap, mapT);
|
||||||
|
dataListTemp.add(mapT);
|
||||||
|
}
|
||||||
|
|
||||||
String technologyTerritoryNew = (String) dataList.get(0).get("technology_territory");
|
String technologyTerritoryNew = (String) dataList.get(0).get("technology_territory");
|
||||||
//1. 处理订阅的发送消息
|
//1. 处理订阅的发送消息
|
||||||
//修改的内容
|
//修改的内容
|
||||||
String flag ="1";//消息的标识(英文)
|
String flag ="1";//消息的标识(英文)
|
||||||
StringBuilder sb = getUpdateInfo(map, dataList, fieldList, fieldDateList, fieldFileList, fieldPullList, null,flag);
|
StringBuilder sb = getUpdateInfo(map, dataList, fieldList, fieldDateList, fieldFileList, fieldPullList, null,flag);
|
||||||
|
String flagTemp ="2";//消息的标识(中文--消息采用卡片型式发送, 消息内容包含中英文, 所以此处需要获取消息的中文)
|
||||||
|
StringBuilder sbCn = getUpdateInfoCn(map, dataListTemp, fieldList, fieldDateList, fieldFileList, fieldPullList, null,flagTemp);
|
||||||
//树形数据字典
|
//树形数据字典
|
||||||
List<SysCategory> categoryList = sysCategoryService.list();
|
List<SysCategory> categoryList = sysCategoryService.list();
|
||||||
String sbStr = "";
|
String sbStr = "";
|
||||||
if (ObjectUtils.isNotEmpty(sb)) {
|
if (ObjectUtils.isNotEmpty(sb)) {
|
||||||
sbStr = sb.substring(0, sb.length() - 1);
|
sbStr = sb.substring(0, sb.length() - 1);
|
||||||
}
|
}
|
||||||
|
String sbStrCn = "";
|
||||||
|
if (ObjectUtils.isNotEmpty(sbCn)) {
|
||||||
|
sbStrCn = sbCn.substring(0, sbCn.length() - 1);
|
||||||
|
}
|
||||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||||
String serialNumber = (String) dataList.get(0).get("serial_number");
|
String serialNumber = (String) dataList.get(0).get("serial_number");
|
||||||
String category = (String)map.get("lei4_bie2");
|
String category = (String)map.get("lei4_bie2");
|
||||||
|
String categoryCn = (String)map.get("lei4_bie2");
|
||||||
String technologyTerritory = (String) map.get("technology_territory");
|
String technologyTerritory = (String) map.get("technology_territory");
|
||||||
if(StringUtils.isNotBlank(category)){
|
if(StringUtils.isNotBlank(category)){
|
||||||
List<SysDictItem> dictItemList = sysDictItemServiceImpl.selectItemsAll();
|
List<SysDictItem> dictItemList = sysDictItemServiceImpl.selectItemsAll();
|
||||||
@@ -3137,6 +3347,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
if(stateDictItemList.size() != 0){
|
if(stateDictItemList.size() != 0){
|
||||||
category = stateDictItemList.get(0).getEnName();
|
category = stateDictItemList.get(0).getEnName();
|
||||||
|
categoryCn = stateDictItemList.get(0).getItemText();
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
category = "";
|
category = "";
|
||||||
@@ -3272,20 +3483,28 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
}
|
}
|
||||||
//订阅文档的飞书消息
|
//订阅文档的飞书消息
|
||||||
try {
|
try {
|
||||||
|
//英文消息
|
||||||
|
String contentInfoFei = "In the "+category + " " + serialNumber +" you subscribed to, "+ sbStr.toString();;
|
||||||
|
//中文消息
|
||||||
|
String contentInfoFeiCn ="您所订阅的"+categoryCn+ serialNumber +","+ sbStrCn.toString();;
|
||||||
|
//跳转文档详情
|
||||||
|
String url = backUrl + "/docManage/library/detail?id=" + id;
|
||||||
|
FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
|
||||||
|
feishuMsgVo.setTitle(MessageTypeEnum.READ.getName());
|
||||||
|
feishuMsgVo.setUrl(url);
|
||||||
|
String replaceAll = contentInfoFei.replaceAll("\"", "<");
|
||||||
|
feishuMsgVo.setContentEn(replaceAll);
|
||||||
|
|
||||||
|
String replaceAllCn = contentInfoFeiCn.replaceAll("<text class='highlight-class'>", "")
|
||||||
|
.replaceAll("</text>","").replaceAll("\"", "<");
|
||||||
|
feishuMsgVo.setContent(replaceAllCn);
|
||||||
|
//
|
||||||
|
iFeishuService.sendCardMsgDocument(userIdListUpdateFeishu.toArray(new String[]{}), feishuMsgVo);
|
||||||
|
|
||||||
// String contentInfoFei = "In the "+category + " " + serialNumber +" you subscribed to, "+sysUser.getUsername()+" changed the " + sbStr.toString();;
|
// String contentInfoFei = "In the "+category + " " + serialNumber +" you subscribed to, "+sysUser.getUsername()+" changed the " + sbStr.toString();;
|
||||||
// //跳转文档详情
|
// //跳转文档详情
|
||||||
// String url = backUrl + "/docManage/library/detail?id=" + id;
|
// String url = backUrl + "/docManage/library/detail?id=" + id;
|
||||||
// FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
|
// iFeishuService.batchSendMessage(userIdListUpdateFeishu.toArray(new String[]{}), contentInfoFei, MessageTypeEnum.READ.getName(), url);
|
||||||
// feishuMsgVo.setTitle(MessageTypeEnum.READ.getName());
|
|
||||||
// feishuMsgVo.setUrl(url);
|
|
||||||
// String replaceAll = contentInfoFei.replaceAll("\"", "<");
|
|
||||||
// feishuMsgVo.setContent(replaceAll);
|
|
||||||
//
|
|
||||||
// iFeishuService.sendCardMsgDocument(userIdListUpdateFeishu.toArray(new String[]{}), feishuMsgVo);
|
|
||||||
String contentInfoFei = "In the "+category + " " + serialNumber +" you subscribed to, "+sysUser.getUsername()+" changed the " + sbStr.toString();;
|
|
||||||
//跳转文档详情
|
|
||||||
String url = backUrl + "/docManage/library/detail?id=" + id;
|
|
||||||
iFeishuService.batchSendMessage(userIdListUpdateFeishu.toArray(new String[]{}), contentInfoFei, MessageTypeEnum.READ.getName(), url);
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.error("文档新增飞书消息推送失败");
|
log.error("文档新增飞书消息推送失败");
|
||||||
}
|
}
|
||||||
@@ -3939,6 +4158,64 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 用于获取飞书消息中的中文消息
|
||||||
|
*
|
||||||
|
* @param sysDictItems
|
||||||
|
* @param entry
|
||||||
|
*/
|
||||||
|
public void dictItemCn(List<SysDictItem> sysDictItems, Map.Entry<String, Object> entry, String cut, List<OnlCgformField> fieldList,String flagTemp) {
|
||||||
|
//通过dictField判断字段是否为下拉选(不为空则为下拉选)
|
||||||
|
List<OnlCgformField> onlCgformFieldList = fieldList.stream().filter(e -> entry.getKey().equals(e.getDbFieldName())).collect(Collectors.toList());
|
||||||
|
//数据字典中文
|
||||||
|
List<String> dictItemsCh = new ArrayList<>();
|
||||||
|
List<String> dictItemsEn = new ArrayList<>();
|
||||||
|
for (OnlCgformField onlCgformField : onlCgformFieldList) {
|
||||||
|
if (FieldTypeEnum.PULL_SINGLE.getValue().equals(onlCgformField.getFieldShowType())
|
||||||
|
|| FieldTypeEnum.PULL_MORE.getValue().equals(onlCgformField.getFieldShowType())) {
|
||||||
|
String value = (String) entry.getValue();
|
||||||
|
if (StringUtils.isNotBlank(value) && onlCgformFieldList.size() != 0 && StringUtils.isNotBlank(onlCgformFieldList.get(0).getDictField())) {
|
||||||
|
for (String itemValue : value.split(",")) {
|
||||||
|
//字段的数据字典
|
||||||
|
List<SysDictItem> dictItemList = sysDictItems.stream()
|
||||||
|
.filter(e -> StringUtils.isNotBlank(e.getDictCode()) && e.getDictCode().equals(onlCgformFieldList.get(0).getDictField()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
if (dictItemList.size() != 0) {
|
||||||
|
List<SysDictItem> dictItems = dictItemList.stream()
|
||||||
|
.filter(e -> itemValue.equals(e.getItemValue()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
if (dictItems.size() != 0) {
|
||||||
|
List<String> itemText = new ArrayList<>();
|
||||||
|
if (CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
itemText = dictItems.stream().map(SysDictItem::getItemText).collect(Collectors.toList());
|
||||||
|
} else if(CutEnum.EN.getValue().equals(cut)) {
|
||||||
|
itemText = dictItems.stream().map(SysDictItem::getEnName).collect(Collectors.toList());
|
||||||
|
}else if("2".equals(flagTemp)){
|
||||||
|
itemText = dictItems.stream().map(SysDictItem::getItemText).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
dictItemsCh.addAll(itemText);
|
||||||
|
dictItemsEn.addAll(itemText);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (onlCgformFieldList.size() != 0 && StringUtils.isNotBlank(onlCgformFieldList.get(0).getDictField())) {
|
||||||
|
if(FieldTypeEnum.PULL_SINGLE.getValue().equals(onlCgformFieldList.get(0).getFieldShowType())
|
||||||
|
|| FieldTypeEnum.PULL_MORE.getValue().equals(onlCgformFieldList.get(0).getFieldShowType())){
|
||||||
|
if (CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
entry.setValue(StringUtils.join(dictItemsCh, ","));
|
||||||
|
} else if(CutEnum.EN.getValue().equals(cut)){
|
||||||
|
entry.setValue(StringUtils.join(dictItemsEn, ","));
|
||||||
|
}else if("2".equals(flagTemp)){
|
||||||
|
entry.setValue(StringUtils.join(dictItemsEn, ","));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -4963,6 +5240,34 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 用于获取飞书消息中的中文消息
|
||||||
|
*
|
||||||
|
* @param categoryList
|
||||||
|
* @param entry
|
||||||
|
* @param treeFieldList
|
||||||
|
* @param cut
|
||||||
|
*/
|
||||||
|
public void treeDictItemCn(List<SysCategory> categoryList, Map.Entry<String, Object> entry, List<OnlCgformField> treeFieldList, String cut,String flagTemp) {
|
||||||
|
List<String> treeFields = treeFieldList.stream().map(OnlCgformField::getDbFieldName).collect(Collectors.toList());
|
||||||
|
String key = entry.getKey();
|
||||||
|
if (treeFields.contains(entry.getKey())) {
|
||||||
|
String value = StringUtils.valueOf(entry.getValue());
|
||||||
|
if (StringUtils.isNotBlank(value)) {
|
||||||
|
List<String> idList = Arrays.asList(value.split(","));
|
||||||
|
List<SysCategory> sysCategoryList = categoryList.stream().filter(e -> idList.contains(e.getId())).collect(Collectors.toList());
|
||||||
|
List<String> nameList = sysCategoryList.stream().map(SysCategory::getName).collect(Collectors.toList());
|
||||||
|
List<String> nameEnList = sysCategoryList.stream().map(SysCategory::getEnName).collect(Collectors.toList());
|
||||||
|
if (CutEnum.CN.getValue().equals(cut)) {
|
||||||
|
entry.setValue(StringUtils.join(nameList, ","));
|
||||||
|
} else if(CutEnum.EN.getValue().equals(cut)){
|
||||||
|
entry.setValue(StringUtils.join(nameEnList, ","));
|
||||||
|
}else if("2".equals(flagTemp)){
|
||||||
|
entry.setValue(StringUtils.join(nameList, ","));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
|
|||||||
+62
-10
@@ -25,6 +25,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -299,7 +300,7 @@ public class FeishuServiceImpl implements IFeishuService {
|
|||||||
StringBuilder contentSb = new StringBuilder();
|
StringBuilder contentSb = new StringBuilder();
|
||||||
contentSb.append("{");
|
contentSb.append("{");
|
||||||
contentSb.append("\"elements\": [");
|
contentSb.append("\"elements\": [");
|
||||||
// 补充内容
|
// 内容中文
|
||||||
if (StrUtil.isNotEmpty(feishuMsgVo.getContent())){
|
if (StrUtil.isNotEmpty(feishuMsgVo.getContent())){
|
||||||
contentSb.append("{");
|
contentSb.append("{");
|
||||||
contentSb.append("\"tag\": \"div\",");
|
contentSb.append("\"tag\": \"div\",");
|
||||||
@@ -309,6 +310,19 @@ public class FeishuServiceImpl implements IFeishuService {
|
|||||||
contentSb.append("}");
|
contentSb.append("}");
|
||||||
contentSb.append("},");
|
contentSb.append("},");
|
||||||
};
|
};
|
||||||
|
contentSb.append("{\"tag\": \"hr\"},");
|
||||||
|
|
||||||
|
//内容英文
|
||||||
|
if (StrUtil.isNotEmpty(feishuMsgVo.getContentEn())){
|
||||||
|
contentSb.append("{");
|
||||||
|
contentSb.append("\"tag\": \"div\",");
|
||||||
|
contentSb.append("\"text\": {");
|
||||||
|
contentSb.append("\"content\": \"" + feishuMsgVo.getContentEn() + "\",");
|
||||||
|
contentSb.append("\"tag\": \"lark_md\"");
|
||||||
|
contentSb.append("}");
|
||||||
|
contentSb.append("},");
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
contentSb.append("{\"tag\": \"hr\"},");
|
contentSb.append("{\"tag\": \"hr\"},");
|
||||||
@@ -341,15 +355,35 @@ public class FeishuServiceImpl implements IFeishuService {
|
|||||||
|
|
||||||
JSONObject jsonObject = JSONObject.parseObject(contentSb.toString());
|
JSONObject jsonObject = JSONObject.parseObject(contentSb.toString());
|
||||||
|
|
||||||
// String content = JSONObject.parseObject(JSONObject.parseObject(JSONArray.parseArray(jsonObject.get("elements").toString()).get(0).toString()).get("text").toString()).get("content").toString();
|
String content = JSONObject.parseObject(
|
||||||
// String contentReplaceAll = content.replaceAll("<", "\"");
|
JSONObject.parseObject(JSONArray.parseArray(jsonObject.get("elements").toString()).get(0).toString()).get("text").toString())
|
||||||
// JSONObject.parseObject(JSONObject.parseObject(JSONArray.parseArray(jsonObject.get("elements").toString()).get(0).toString()).get("text").toString()).put("content",contentReplaceAll);
|
.get("content").toString();
|
||||||
// JSONObject jsonObject1 = JSONObject.parseObject(JSONObject.parseObject(JSONArray.parseArray(jsonObject.get("elements").toString()).get(0).toString()).get("text").toString());
|
String contentEn = JSONObject.parseObject(
|
||||||
// jsonObject1.put("content",contentReplaceAll);
|
JSONObject.parseObject(JSONArray.parseArray(jsonObject.get("elements").toString()).get(2).toString()).get("text").toString())
|
||||||
//
|
.get("content").toString();
|
||||||
//
|
|
||||||
// JSONObject text = JSONObject.parseObject(JSONObject.parseObject(JSONArray.parseArray(jsonObject.get("elements").toString()).get(0).toString()).get("text").toString());
|
JSONObject elementTwo =
|
||||||
// text.put("value",jsonObject1);
|
JSONObject.parseObject(JSONArray.parseArray(jsonObject.get("elements").toString()).get(1).toString());
|
||||||
|
JSONObject elementFour =
|
||||||
|
JSONObject.parseObject(JSONArray.parseArray(jsonObject.get("elements").toString()).get(3).toString());
|
||||||
|
JSONObject elementFive =
|
||||||
|
JSONObject.parseObject(JSONArray.parseArray(jsonObject.get("elements").toString()).get(4).toString());
|
||||||
|
|
||||||
|
//处理内容中的双引号(将尖括号替换成双引号)
|
||||||
|
JSONObject elementOne = getJsonObject(jsonObject, content);
|
||||||
|
JSONObject elementThree = getJsonObject(jsonObject, contentEn);
|
||||||
|
|
||||||
|
JSONArray jsonArray = new JSONArray();
|
||||||
|
jsonArray.add(elementOne);
|
||||||
|
jsonArray.add(elementTwo);
|
||||||
|
jsonArray.add(elementThree);
|
||||||
|
jsonArray.add(elementFour);
|
||||||
|
jsonArray.add(elementFive);
|
||||||
|
|
||||||
|
jsonObject.put("elements",jsonArray);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 设置请求参数
|
// 设置请求参数
|
||||||
@@ -368,6 +402,24 @@ public class FeishuServiceImpl implements IFeishuService {
|
|||||||
return tokenJson.get("msg").toString();
|
return tokenJson.get("msg").toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private JSONObject getJsonObject(JSONObject jsonObject, String content) {
|
||||||
|
String contentReplaceAll = content.replaceAll("<", "\"");
|
||||||
|
|
||||||
|
JSONObject jsonObject1 = JSONObject.parseObject(
|
||||||
|
JSONObject.parseObject(
|
||||||
|
JSONArray.parseArray(jsonObject.get("elements").toString()).get(0).toString())
|
||||||
|
.get("text").toString());
|
||||||
|
jsonObject1.put("content",contentReplaceAll);
|
||||||
|
|
||||||
|
|
||||||
|
JSONObject elementOne =
|
||||||
|
JSONObject.parseObject(JSONArray.parseArray(jsonObject.get("elements").toString()).get(0).toString());
|
||||||
|
|
||||||
|
elementOne.put("text",jsonObject1);
|
||||||
|
return elementOne;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 翻译文本
|
* 翻译文本
|
||||||
* 参数:
|
* 参数:
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ public class FeishuMsgVo {
|
|||||||
|
|
||||||
private String content; //内容
|
private String content; //内容
|
||||||
|
|
||||||
|
private String contentEn; //内容英文
|
||||||
|
|
||||||
private String taskType; //任务类型
|
private String taskType; //任务类型
|
||||||
|
|
||||||
private String regulationNo; //法规编号
|
private String regulationNo; //法规编号
|
||||||
|
|||||||
Reference in New Issue
Block a user