public static ObjectData ConvertJsonToObjectData(ObjectDataFromJson dataObject, int tenantId, MetaObject metaData) { var datalist = dataObject.metaFields; ObjectData objectData = new ObjectData(metaData); foreach (var data in datalist) { objectData[data.name] = data.value; } return(objectData); }
public OperationResult ImportUserInfoExcel(ObjectDataFromJson dataObject) { var resultMsg = new OperationResult() { Code = 200 }; bool isAsync = false; try { var tenantId = ApplicationContext.Current.TenantId; var userId = ApplicationContext.Current.UserId; var datalist = dataObject.metaFields; Dictionary <string, string> dic = new Dictionary <string, string>(); foreach (var data in datalist) { dic.AddOrUpdate(data.name, data.value); } var dfsPath = dic["FileUpload"]; var appAccountId = dic["PObjectDataID"]; //通过Id获取AppAccount数据 var appAccountInfo = ProviderGateway.AppAccountProvider.Get(appAccountId); if (appAccountInfo != null) { string appId = appAccountInfo.AppId; //处理excel:当数据大于1000条时 开启异步 var workbook = ExcelService.Instance.GetExcel(dfsPath); if (workbook.NumberOfSheets < 1) { AppConnectLogHelper.Error("导入的数据excel缺少sheet页"); resultMsg.Code = 500; } else { var staffSheet = workbook.GetSheetAt(0);//获取 人员信息的sheet页 if (staffSheet.LastRowNum > EnterpriseESBConfigHandler.Instance.ImportAsyncThreshold) { isAsync = true; AppConnectTask.AddTask(() => { AppContext.Set(tenantId, userId); //处理比较多的数据 AppAccountService.Instance.BatchHandleExcelData(tenantId, userId, staffSheet, appId, isAsync); }); } else { AppAccountService.Instance.BatchHandleExcelData(tenantId, userId, staffSheet, appId, isAsync); } } } } catch (Exception ex) { AppConnectLogHelper.Error("导入人员信息表发生异常:" + ex.Message); resultMsg.Code = 417; resultMsg.Message = "导入人员信息表异常!"; } string popMsg = isAsync ? "因耗时较长,任务转为后台执行,导入完成后系统将向您发送通知,请留意系统消息" : "导入数据成功!"; if (resultMsg.Code == 200) { resultMsg.Message = popMsg; resultMsg.TipType = "normalTip"; } else { ApplicationContext.Current.Put(Const.BeisenContextXHasException, ExceptionType.KnownException); ApplicationContext.Current.Put(Const.BeisenContextXExResultModel, new ResultModel { code = "417", message = resultMsg.Message }); } return(resultMsg); }
public static ObjectData ConvertJsonToObjectData(ObjectDataFromJson dataObject, int tenantId, string metaObjectName) { MetaObject metaData = MetaObjectProvider.GetObjectMeta(metaObjectName, tenantId); return(ConvertJsonToObjectData(dataObject, tenantId, metaData)); }