From 723992f663823a901fa5522d95ddc7594d46c8b6 Mon Sep 17 00:00:00 2001 From: Kris <2893855659@qq.com> Date: Tue, 24 Jun 2025 10:52:11 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90feat=E3=80=91=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E4=BB=A3=E7=A0=81data=5Findex=E5=80=BC=E5=A2=9E=E5=BD=A2?= =?UTF-8?q?=E5=BC=8F=EF=BC=8Cbulk=E5=90=8C=E6=AD=A5=E6=95=B0=E6=8D=AEdate?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/DataImportBatchServiceImpl.java | 13 +++----- .../impl/DataImportNewServiceImpl.java | 7 ---- .../service/impl/DataImportServiceImpl.java | 3 +- .../com/celnet/datadump/util/DataUtil.java | 33 +++++++++++++++++++ 4 files changed, 38 insertions(+), 18 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 d122d5b..ce73868 100644 --- a/src/main/java/com/celnet/datadump/service/impl/DataImportBatchServiceImpl.java +++ b/src/main/java/com/celnet/datadump/service/impl/DataImportBatchServiceImpl.java @@ -247,7 +247,7 @@ public class DataImportBatchServiceImpl implements DataImportBatchService { maxIndex.ne("name", api); Map map = dataObjectService.getMap(maxIndex); //如果必填lookup字段没有值,跳过 - update.setDataIndex(Integer.parseInt(map.get("data_index").toString()+1)); + update.setDataIndex(Integer.parseInt(map.get("data_index").toString()) + 1); dataObjectService.updateById(update); String message = "api:" + api + "的引用对象:" + reference + "不存在数据!"; String format = String.format("数据导入 error, api name: %s, \nparam: %s, \ncause:\n%s", api, com.alibaba.fastjson2.JSON.toJSONString(param, DataDumpParam.getFilter()), message); @@ -538,13 +538,6 @@ public class DataImportBatchServiceImpl implements DataImportBatchService { if (m != null && !m.isEmpty()) { account.put(field, m.get("new_id")); }else { - QueryWrapper maxIndex = new QueryWrapper<>(); - maxIndex.select("IFNULL(max(data_index),0) as data_index"); - maxIndex.ne("name", api); - Map mapTo = dataObjectService.getMap(maxIndex); - //如果必填lookup字段没有值,跳过 - update.setDataIndex(Integer.parseInt(mapTo.get("data_index").toString()+1)); - dataObjectService.updateById(update); String message = "对象类型:" + api + "的数据:"+ m.get("Id") +"的引用对象:" + dataField.getReferenceTo() + "的数据:"+ map.get(field) +"不存在!"; String format = String.format("数据导入 error, api name: %s, \nparam: %s, \ncause:\n%s", api, com.alibaba.fastjson2.JSON.toJSONString(param, DataDumpParam.getFilter()), message); EmailUtil.send("DataDump ERROR", format); log.info(message); @@ -553,7 +546,9 @@ public class DataImportBatchServiceImpl implements DataImportBatchService { } } else { if (map.get(field) != null && StringUtils.isNotBlank(dataField.getSfType())) { - account.put(field, DataUtil.localDataToSfData(dataField.getSfType(), String.valueOf(map.get(field)))); + + + account.put(field, DataUtil.localBulkDataToSfData(dataField.getSfType(), String.valueOf(map.get(field)))); }else { account.put(field, map.get(field)); } 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 b68b4e0..1813454 100644 --- a/src/main/java/com/celnet/datadump/service/impl/DataImportNewServiceImpl.java +++ b/src/main/java/com/celnet/datadump/service/impl/DataImportNewServiceImpl.java @@ -758,13 +758,6 @@ public class DataImportNewServiceImpl implements DataImportNewService { if (m != null && !m.isEmpty()) { account.setField(field, m.get("new_id")); }else { - QueryWrapper maxIndex = new QueryWrapper<>(); - maxIndex.select("IFNULL(max(data_index),0) as data_index"); - maxIndex.ne("name", api); - Map mapTo = dataObjectService.getMap(maxIndex); - //如果必填lookup字段没有值,跳过 - update.setDataIndex(Integer.parseInt(mapTo.get("data_index").toString()) +1); - dataObjectService.updateById(update); String message = "对象类型:" + api + "的数据:"+ m.get("Id") +"的引用对象:" + dataField.getReferenceTo() + "的数据:"+ map.get(field) +"不存在!"; String format = String.format("数据导入 error, api name: %s, \nparam: %s, \ncause:\n%s", api, com.alibaba.fastjson2.JSON.toJSONString(param, DataDumpParam.getFilter()), message); EmailUtil.send("DataDump ERROR", format); log.info(message); 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 2eb4411..6150dc6 100644 --- a/src/main/java/com/celnet/datadump/service/impl/DataImportServiceImpl.java +++ b/src/main/java/com/celnet/datadump/service/impl/DataImportServiceImpl.java @@ -309,9 +309,8 @@ public class DataImportServiceImpl implements DataImportService { maxIndex.select("IFNULL(max(data_index),0) as data_index"); maxIndex.ne("name", api); Map map = dataObjectService.getMap(maxIndex); - //如果必填lookup字段没有值,跳过 - update.setDataIndex(Integer.parseInt(map.get("data_index").toString()+1)); + update.setDataIndex(Integer.parseInt(map.get("data_index").toString()) + 1); dataObjectService.updateById(update); return; }else{ diff --git a/src/main/java/com/celnet/datadump/util/DataUtil.java b/src/main/java/com/celnet/datadump/util/DataUtil.java index f07a4fb..92b55df 100644 --- a/src/main/java/com/celnet/datadump/util/DataUtil.java +++ b/src/main/java/com/celnet/datadump/util/DataUtil.java @@ -392,6 +392,39 @@ public class DataUtil { } } + public static Object localBulkDataToSfData(String fieldType, String data) throws ParseException { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); + SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); + Date date; + //date转Calendar类型 + Calendar calendar = Calendar.getInstance(); + switch (fieldType) { + case "int": + return Integer.parseInt(data); + case "double": + case "currency": + case "percent": + return new BigDecimal(data); + case "boolean": + return Boolean.valueOf(data); + case "date": + return data+"T08:00:00Z"; + case "datetime": + try { + date = sd.parse(data); + }catch (ParseException e){ + //解决当时间秒为0时,转换秒精度丢失问题 + date = sd.parse(data+":00"); + } + calendar.setTime(date); + return calendar; + case "time": + return adjustHour(data); + default: + return data; + } + } + public static Object localDataToSfData(String fieldType, String data) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");