【feat】新增Task与Event关于WhoId和WhatId的处理逻辑

This commit is contained in:
Kris 2025-07-01 15:23:10 +08:00
parent 690a6da050
commit c05010b9ad
2 changed files with 49 additions and 25 deletions

View File

@ -582,6 +582,10 @@ public class CommonServiceImpl implements CommonService {
if ("Attachment".equals(api) || "FeedItem".equals(api)) {
fields.add("Parent.type");
}
if ("Task".equals(api) || "Event".equals(api)) {
fields.add("Who.type");
fields.add("What.type");
}
DataObject dataObject = dataObjectService.getById(api);
if (dataObject != null && StringUtils.isNotBlank(dataObject.getExtraField())) {
fields.addAll(Arrays.asList(StringUtils.split(dataObject.getExtraField().replaceAll(StringUtils.SPACE, StringUtils.EMPTY), ",")));
@ -757,16 +761,16 @@ public class CommonServiceImpl implements CommonService {
maps.add(paramMap2);
}
// Task和Event
// if ("Task".equals(api) || "Event".equals(api)){
// Map<String, Object> paramwhoMap = Maps.newHashMap();
// paramwhoMap.put("key", "WhoId_Type__c");
// paramwhoMap.put("value", jsonObject.get("Who_Type"));
// maps.add(paramwhoMap);
// Map<String, Object> paramwhatMap = Maps.newHashMap();
// paramwhoMap.put("key", "WhatId_Type__c");
// paramwhoMap.put("value", jsonObject.get("What_Type"));
// maps.add(paramwhoMap);
// }
if ("Task".equals(api) || "Event".equals(api)){
Map<String, Object> paramwhoMap = Maps.newHashMap();
paramwhoMap.put("key", "WhoId_Type__c");
paramwhoMap.put("value", jsonObject.get("Who_Type"));
maps.add(paramwhoMap);
Map<String, Object> paramwhatMap = Maps.newHashMap();
paramwhoMap.put("key", "WhatId_Type__c");
paramwhoMap.put("value", jsonObject.get("What_Type"));
maps.add(paramwhoMap);
}
//附件关联表 插入更新时给关联对象赋值
// if ("ContentDocumentLink".equals(api)) {
@ -934,18 +938,18 @@ public class CommonServiceImpl implements CommonService {
map.put("name", "new_id");
list.add(map);
// if ("Task".equals(apiName) || "Event".equals(apiName)){
// Map<String, Object> LinkedMap = Maps.newHashMap();
// LinkedMap.put("type", "varchar(18)");
// LinkedMap.put("comment", "whatId关联对象");
// LinkedMap.put("name", "WhatId_Type__c");
// list.add(LinkedMap);
// Map<String, Object> LinkedMap1 = Maps.newHashMap();
// LinkedMap1.put("type", "varchar(18)");
// LinkedMap1.put("comment", "whoId关联对象");
// LinkedMap1.put("name", "WhoId_Type__c");
// list.add(LinkedMap1);
// }
if ("Task".equals(apiName) || "Event".equals(apiName)){
Map<String, Object> LinkedMap = Maps.newHashMap();
LinkedMap.put("type", "varchar(18)");
LinkedMap.put("comment", "whatId关联对象");
LinkedMap.put("name", "WhatId_Type__c");
list.add(LinkedMap);
Map<String, Object> LinkedMap1 = Maps.newHashMap();
LinkedMap1.put("type", "varchar(18)");
LinkedMap1.put("comment", "whoId关联对象");
LinkedMap1.put("name", "WhoId_Type__c");
list.add(LinkedMap1);
}
if ("ContentDocumentLink".equals(apiName)){
//文档关联表新增关联对象字段

View File

@ -767,12 +767,32 @@ public class DataImportNewServiceImpl implements DataImportNewService {
}
}
} else {
if (api.equals("Task") || api.equals("Event")) {
if ("WhatId_Type__c".equals(field) || "WhoId_Type__c".equals(field)){
Map<String, Object> m = customMapper.getById("new_id", String.valueOf(map.get(field)), value);
if (m != null && !m.isEmpty()) {
account.setField(field, m.get("new_id"));
}else {
String message = "对象类型:" + api + "的数据:"+ map.get("Id") +"的引用对象:" + dataField.getReferenceTo() + "的数据:"+ map.get(field) +"不存在!";
EmailUtil.send("DataDump ERROR", message);
log.info(message);
return;
}
}else {
if (map.get(field) != null && StringUtils.isNotBlank(dataField.getSfType())) {
account.setField(field, DataUtil.localDataToSfData(dataField.getSfType(), value));
}else {
account.setField(field, map.get(field));
}
}
}else {
if (map.get(field) != null && StringUtils.isNotBlank(dataField.getSfType())) {
account.setField(field, DataUtil.localDataToSfData(dataField.getSfType(), value));
}else {
account.setField(field, map.get(field));
}
}
}
}
account.setField("old_owner_id__c", map.get("OwnerId"));
account.setField("old_sfdc_id__c", map.get("Id"));