From c05010b9adbb7798f2c328a2883345f9df7ed37f Mon Sep 17 00:00:00 2001 From: Kris <2893855659@qq.com> Date: Tue, 1 Jul 2025 15:23:10 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90feat=E3=80=91=E6=96=B0=E5=A2=9ETask?= =?UTF-8?q?=E4=B8=8EEvent=E5=85=B3=E4=BA=8EWhoId=E5=92=8CWhatId=E7=9A=84?= =?UTF-8?q?=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CommonServiceImpl.java | 48 ++++++++++--------- .../impl/DataImportNewServiceImpl.java | 26 ++++++++-- 2 files changed, 49 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/celnet/datadump/service/impl/CommonServiceImpl.java b/src/main/java/com/celnet/datadump/service/impl/CommonServiceImpl.java index 6e4cfba..832c1ae 100644 --- a/src/main/java/com/celnet/datadump/service/impl/CommonServiceImpl.java +++ b/src/main/java/com/celnet/datadump/service/impl/CommonServiceImpl.java @@ -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 paramwhoMap = Maps.newHashMap(); -// paramwhoMap.put("key", "WhoId_Type__c"); -// paramwhoMap.put("value", jsonObject.get("Who_Type")); -// maps.add(paramwhoMap); -// Map 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 paramwhoMap = Maps.newHashMap(); + paramwhoMap.put("key", "WhoId_Type__c"); + paramwhoMap.put("value", jsonObject.get("Who_Type")); + maps.add(paramwhoMap); + Map 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 LinkedMap = Maps.newHashMap(); -// LinkedMap.put("type", "varchar(18)"); -// LinkedMap.put("comment", "whatId关联对象"); -// LinkedMap.put("name", "WhatId_Type__c"); -// list.add(LinkedMap); -// Map 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 LinkedMap = Maps.newHashMap(); + LinkedMap.put("type", "varchar(18)"); + LinkedMap.put("comment", "whatId关联对象"); + LinkedMap.put("name", "WhatId_Type__c"); + list.add(LinkedMap); + Map 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)){ //文档关联表新增关联对象字段 diff --git a/src/main/java/com/celnet/datadump/service/impl/DataImportNewServiceImpl.java b/src/main/java/com/celnet/datadump/service/impl/DataImportNewServiceImpl.java index bc90baa..040858e 100644 --- a/src/main/java/com/celnet/datadump/service/impl/DataImportNewServiceImpl.java +++ b/src/main/java/com/celnet/datadump/service/impl/DataImportNewServiceImpl.java @@ -767,10 +767,30 @@ public class DataImportNewServiceImpl implements DataImportNewService { } } } else { - if (map.get(field) != null && StringUtils.isNotBlank(dataField.getSfType())) { - account.setField(field, DataUtil.localDataToSfData(dataField.getSfType(), value)); + if (api.equals("Task") || api.equals("Event")) { + if ("WhatId_Type__c".equals(field) || "WhoId_Type__c".equals(field)){ + Map 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 { - 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)); + } } } }