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

View File

@ -767,10 +767,30 @@ public class DataImportNewServiceImpl implements DataImportNewService {
} }
} }
} else { } else {
if (map.get(field) != null && StringUtils.isNotBlank(dataField.getSfType())) { if (api.equals("Task") || api.equals("Event")) {
account.setField(field, DataUtil.localDataToSfData(dataField.getSfType(), value)); 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 { }else {
account.setField(field, map.get(field)); if (map.get(field) != null && StringUtils.isNotBlank(dataField.getSfType())) {
account.setField(field, DataUtil.localDataToSfData(dataField.getSfType(), value));
}else {
account.setField(field, map.get(field));
}
} }
} }
} }