From 2253747562c0c456b062f91b0df33f38c5ff04c0 Mon Sep 17 00:00:00 2001 From: Kris <2893855659@qq.com> Date: Mon, 7 Jul 2025 11:18:10 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90feat=E3=80=91=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E5=86=99=E5=85=A5Createdate,createdbyId=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E7=9A=84=E6=A0=87=E5=87=86=E5=AF=B9=E8=B1=A1Insert=E6=97=B6?= =?UTF-8?q?=E4=B8=8D=E5=86=99=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DataImportBatchServiceImpl.java | 29 ++++++++------- .../service/impl/DataImportServiceImpl.java | 36 +++++++++++-------- 2 files changed, 37 insertions(+), 28 deletions(-) diff --git a/src/main/java/com/celnet/datadump/service/impl/DataImportBatchServiceImpl.java b/src/main/java/com/celnet/datadump/service/impl/DataImportBatchServiceImpl.java index 0f1044a..acef55d 100644 --- a/src/main/java/com/celnet/datadump/service/impl/DataImportBatchServiceImpl.java +++ b/src/main/java/com/celnet/datadump/service/impl/DataImportBatchServiceImpl.java @@ -39,6 +39,7 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; +import java.text.ParseException; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.ZonedDateTime; @@ -234,6 +235,21 @@ public class DataImportBatchServiceImpl implements DataImportBatchService { || "Id".equals(dataField.getField())){ continue; } + if ("CreatedDate".equals(dataField.getField()) && dataField.getIsCreateable()){ + // 转换为UTC时间并格式化 + LocalDateTime localDateTime = LocalDateTime.parse(String.valueOf(data.get(j - 1).get("CreatedDate")), inputFormatter); + ZonedDateTime utcDateTime = localDateTime.atZone(ZoneId.of("UTC")).minusHours(8) ; + String convertedTime = utcDateTime.format(outputFormatter); + account.put("CreatedDate", convertedTime); + continue; + } + if ("CreatedById".equals(dataField.getField()) && dataField.getIsCreateable()){ + Map CreatedByIdMap = customMapper.getById("new_id", "User", data.get(j-1).get("CreatedById").toString()); + if(CreatedByIdMap.get("new_id") != null && StringUtils.isNotEmpty(CreatedByIdMap.get("new_id").toString())){ + account.put("CreatedById", CreatedByIdMap.get("new_id")); + } + continue; + } if (dataField.getIsCreateable() !=null && dataField.getIsCreateable() && !dataField.getIsNillable() && !dataField.getIsDefaultedOnCreate()) { if ("reference".equals(dataField.getSfType())){ String reference = dataField.getReferenceTo(); @@ -275,19 +291,6 @@ public class DataImportBatchServiceImpl implements DataImportBatchService { account.put(dataField.getField(), DataUtil.fieldTypeToSf(dataField)); } - // 转换为UTC时间并格式化 - LocalDateTime localDateTime = LocalDateTime.parse(String.valueOf(data.get(j - 1).get("CreatedDate")), inputFormatter); - - ZonedDateTime utcDateTime = localDateTime.atZone(ZoneId.of("UTC")).minusHours(8) ; - - String convertedTime = utcDateTime.format(outputFormatter); - - account.put("CreatedDate", convertedTime); - Map CreatedByIdMap = customMapper.getById("new_id", "User", data.get(j-1).get("CreatedById").toString()); - if(CreatedByIdMap.get("new_id") != null && StringUtils.isNotEmpty(CreatedByIdMap.get("new_id").toString())){ - account.put("CreatedById", CreatedByIdMap.get("new_id")); - } - } ids[j-1] = data.get(j-1).get("Id").toString(); diff --git a/src/main/java/com/celnet/datadump/service/impl/DataImportServiceImpl.java b/src/main/java/com/celnet/datadump/service/impl/DataImportServiceImpl.java index 48633d8..75153cf 100644 --- a/src/main/java/com/celnet/datadump/service/impl/DataImportServiceImpl.java +++ b/src/main/java/com/celnet/datadump/service/impl/DataImportServiceImpl.java @@ -296,6 +296,27 @@ public class DataImportServiceImpl implements DataImportService { || "Id".equals(dataField.getField())){ continue; } + if ("CreatedDate".equals(dataField.getField()) && dataField.getIsCreateable()){ + //object类型转Date类型 + Date date; + try { + date = sdf.parse(String.valueOf(data.get(j - 1).get("CreatedDate"))); + }catch (ParseException e){ + //解决当时间秒为0时,转换秒精度丢失问题 + date = sdf.parse(data.get(j - 1).get("CreatedDate")+":00"); + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + account.setField("CreatedDate", calendar); + continue; + } + if ("CreatedById".equals(dataField.getField()) && dataField.getIsCreateable()){ + Map CreatedByIdMap = customMapper.getById("new_id", "User", data.get(j-1).get("CreatedById").toString()); + if(CreatedByIdMap.get("new_id") != null && StringUtils.isNotEmpty(CreatedByIdMap.get("new_id").toString())){ + account.setField("CreatedById", CreatedByIdMap.get("new_id")); + } + continue; + } if (dataField.getIsCreateable() != null && dataField.getIsCreateable() && !dataField.getIsNillable() && !dataField.getIsDefaultedOnCreate()) { if ("reference".equals(dataField.getSfType())){ log.info("----------" + dataField.getField() + " ------------" + dataField.getSfType()); @@ -334,21 +355,6 @@ public class DataImportServiceImpl implements DataImportService { account.setField(dataField.getField(), DataUtil.fieldTypeToSf(dataField)); } } - //object类型转Date类型 - Date date; - try { - date = sdf.parse(String.valueOf(data.get(j - 1).get("CreatedDate"))); - }catch (ParseException e){ - //解决当时间秒为0时,转换秒精度丢失问题 - date = sdf.parse(data.get(j - 1).get("CreatedDate")+":00"); - } - Calendar calendar = Calendar.getInstance(); - calendar.setTime(date); - account.setField("CreatedDate", calendar); - Map CreatedByIdMap = customMapper.getById("new_id", "User", data.get(j-1).get("CreatedById").toString()); - if(CreatedByIdMap.get("new_id") != null && StringUtils.isNotEmpty(CreatedByIdMap.get("new_id").toString())){ - account.setField("CreatedById", CreatedByIdMap.get("new_id")); - } if (api.equals("vlink__Wechat_User__c")){ List> maps = customMapper.list("new_id", "vlink__Wechat_Account__c", "new_id is not null and id = '" + data.get(j - 1).get("vlink__Wechat_Account__c") + "' limit 1");