コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        public static ObjectData ConvertJsonToObjectData(ObjectDataFromJson dataObject, int tenantId, string metaObjectName)
        {
            MetaObject metaData = MetaObjectProvider.GetObjectMeta(metaObjectName, tenantId);

            return(ConvertJsonToObjectData(dataObject, tenantId, metaData));
        }