调用K3Cloud webapi

 public class K3CloudWebApi
    {
        #region 表单保存、提交、审核

        /// <summary>
        /// 验证登陆
        /// </summary>
        /// <param name="context"></param>
        /// <param name="DBCenterID"></param>
        /// <param name="F_AT_ServiceSettings"></param>
        /// <param name="F_AT_USERNAME"></param>
        /// <param name="F_AT_Password"></param>
        /// <returns></returns>
        public static KeyValuePair<bool, K3CloudApiClient> ValidateLogin(Context context, string DBCenterID, string F_AT_ServiceSettings, string F_AT_USERNAME, string F_AT_Password)
        {

            F_AT_ServiceSettings = F_AT_ServiceSettings + "/";
            K3CloudApiClient client = new K3CloudApiClient(F_AT_ServiceSettings);
            var ret = client.ValidateLogin(DBCenterID, F_AT_USERNAME, F_AT_Password, 2052);
            var result = JObject.Parse(ret)["LoginResultType"].Value<int>();
            if (result == 1)
            {
                return new KeyValuePair<bool, K3CloudApiClient>(true, client);
            }
            return new KeyValuePair<bool, K3CloudApiClient>(false, null);
        }
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="client"></param>
        /// <param name="formId"></param>
        /// <param name="Entity"></param>
        /// <returns></returns>
        public static KeyValuePair<bool, string> FormSave<T>(K3CloudApiClient client, string formId, RequestBase<T> Entity)
        {
            var ret1 = client.Save(formId, JsonConvert.SerializeObject(Entity));
            var result1 = JsonConvert.DeserializeObject<K3CloudResponse>(ret1);
            if (!result1.Result.ResponseStatus.IsSuccess)
            {
                string errMsg = "保存失败原因:";
                foreach (var error in result1.Result.ResponseStatus.Errors)
                {
                    errMsg += error.Message + ";";
                }
                return new KeyValuePair<bool, string>(false, errMsg + "\n");
            }
            else
            {
                string Number = "";
                foreach (var entity in result1.Result.ResponseStatus.SuccessEntitys)
                {
                    Number += entity.Number + ",";
                }
                return new KeyValuePair<bool, string>(true, Number.Trim(','));
            }
        }

        /// <summary>
        /// 提交
        /// </summary>
        /// <param name="client"></param>
        /// <param name="formId"></param>
        /// <param name="Numbers"></param>
        /// <returns></returns>
        public static KeyValuePair<bool, string> FormSubmit(K3CloudApiClient client, string formId, string[] Numbers)
        {
            //提交
            var submitDate = new
            {
                CreateOrgId = 0,
                Numbers = Numbers,
                Ids = "",
                SelectedPostId = 0
            };
            var ret1 = client.Submit(formId, JsonConvert.SerializeObject(submitDate));
            var result1 = JsonConvert.DeserializeObject<K3CloudResponse>(ret1);
            if (!result1.Result.ResponseStatus.IsSuccess)
            {
                string errMsg = "提交失败原因:";
                foreach (var error in result1.Result.ResponseStatus.Errors)
                {
                    errMsg += error.Message + ";";
                }
                return new KeyValuePair<bool, string>(false, errMsg + "\n");
            }
            else
            {
                string Number = "";
                foreach (var entity in result1.Result.ResponseStatus.SuccessEntitys)
                {
                    Number += entity.Number + ",";
                }
                return new KeyValuePair<bool, string>(true, Number.Trim(','));
            }
        }

        /// <summary>
        /// 审核
        /// </summary>
        /// <param name="client"></param>
        /// <param name="formId"></param>
        /// <param name="Numbers"></param>
        /// <returns></returns>
        public static KeyValuePair<bool, string> FormAudit(K3CloudApiClient client, string formId, string[] Numbers)
        {
            //审核 
            var auditDate = new
            {
                CreateOrgId = 0,
                Numbers = Numbers,
                Ids = "",
                InterationFlags = ""
            };
            var ret1 = client.Audit(formId, JsonConvert.SerializeObject(auditDate));
            var result1 = JsonConvert.DeserializeObject<K3CloudResponse>(ret1);
            if (!result1.Result.ResponseStatus.IsSuccess)
            {
                string errMsg = "审核失败原因:";
                foreach (var error in result1.Result.ResponseStatus.Errors)
                {
                    errMsg += error.Message + ";";
                }
                return new KeyValuePair<bool, string>(false, errMsg + "\n");
            }
            else
            {
                string Number = "";
                foreach (var entity in result1.Result.ResponseStatus.SuccessEntitys)
                {
                    Number += entity.Number + ",";
                }
                return new KeyValuePair<bool, string>(true, Number.Trim(','));
            }
        }

        #endregion

        #region 查询
        public static KeyValuePair<bool, List<List<object>>> ExecuteBillQuery(K3CloudApiClient client, string formId, string FieldKeys, string FilterString)
        {
            //查询
            var date = new
            {
                FormId = formId,
                FieldKeys = FieldKeys,//"FID,FBILLNO,FEntity_FENTRYID,FEntity_FSeq,FMaterialID,FMaterialName,FMaterialID.FName,FMaterialID.FStockId",
                FilterString = FilterString,//"FBILLNO = 'XSCKD000001'",
                OrderString = "",
                TopRowCount = 0,
                StartRow = 0,
                Limit = 0
            };
            var result1 = client.ExecuteBillQuery(JsonConvert.SerializeObject(date));
            if (result1.Any())
            {
                return new KeyValuePair<bool, List<List<object>>>(true, result1);
            }
            return new KeyValuePair<bool, List<List<object>>>(false, null);

        }
        #endregion

        /// <summary>
        /// 新增--销售订单
        /// </summary>
        /// <param name="client"></param>
        /// <param name="Entity"></param>
        /// <returns></returns>
        public static KeyValuePair<bool, string> InsertSalOrder(K3CloudApiClient client, RequestBase<SALORDER> Entity)
        {

            return FormSave(client, "SAL_SaleOrder", Entity);
        }
        /// <summary>
        /// 新增--客户
        /// </summary>
        /// <param name="client"></param>
        /// <param name="Entity"></param>
        /// <returns></returns>
        public static KeyValuePair<bool, string> InsertSalCust(K3CloudApiClient client, RequestBase<BD_Customer> Entity)
        {
            var saveResult = FormSave(client, "BD_Customer", Entity);
            if (saveResult.Key)
            {
                string[] Numbers = { saveResult.Value };
                var submitResult = FormSubmit(client, "BD_Customer", Numbers);
                if (submitResult.Key)
                {
                    return FormAudit(client, "BD_Customer", Numbers);
                }
                return new KeyValuePair<bool, string>(false, submitResult.Value);
            }
            return new KeyValuePair<bool, string>(false, saveResult.Value);
        }
        /// <summary>
        /// 新增--计量单位
        /// </summary>
        /// <param name="client"></param>
        /// <param name="Entity"></param>
        /// <returns></returns>
        public static KeyValuePair<bool, string> InsertSalUnit(K3CloudApiClient client, RequestBase<BD_UNIT> Entity)
        {
            var saveResult = FormSave(client, "BD_UNIT", Entity);
            if (saveResult.Key)
            {
                string[] Numbers = { saveResult.Value };
                var submitResult = FormSubmit(client, "BD_UNIT", Numbers);
                if (submitResult.Key)
                {
                    return FormAudit(client, "BD_UNIT", Numbers);
                }
                return new KeyValuePair<bool, string>(false, submitResult.Value);
            }
            return new KeyValuePair<bool, string>(false, saveResult.Value);
        }
        /// <summary>
        /// 新增--物料
        /// </summary>
        /// <param name="client"></param>
        /// <param name="Entity"></param>
        /// <returns></returns>
        public static KeyValuePair<bool, string> InsertSalMaterial(K3CloudApiClient client, RequestBase<BD_MATERIAL> Entity)
        {

            var saveResult = FormSave(client, "BD_MATERIAL", Entity);
            if (saveResult.Key)
            {
                string[] Numbers = { saveResult.Value };
                var submitResult = FormSubmit(client, "BD_MATERIAL", Numbers);
                if (submitResult.Key)
                {
                    return FormAudit(client, "BD_MATERIAL", Numbers);
                }
                return new KeyValuePair<bool, string>(false, submitResult.Value);
            }
            return new KeyValuePair<bool, string>(false, saveResult.Value);
        }
        /// <summary>
        /// 新增--职员
        /// </summary>
        /// <param name="client"></param>
        /// <param name="Entity"></param>
        /// <returns></returns>
        public static KeyValuePair<bool, string> InsertEmployee(K3CloudApiClient client, RequestBase<HR_EMPINFO> Entity)
        {

            var saveResult = FormSave(client, "HR_EMPINFO" ,Entity);
            if (saveResult.Key)
            {
                string[] Numbers = { saveResult.Value };
                var submitResult = FormSubmit(client, "HR_EMPINFO", Numbers);
                if (submitResult.Key)
                {
                    return FormAudit(client, "HR_EMPINFO", Numbers);
                }
                return new KeyValuePair<bool, string>(false, submitResult.Value);
            }
            return new KeyValuePair<bool, string>(false, saveResult.Value);
        }
        /// <summary>
        /// 新增--供应商
        /// </summary>
        /// <param name="client"></param>
        /// <param name="Entity"></param>
        /// <returns></returns>
        public static KeyValuePair<bool, string> InsertSupplier(K3CloudApiClient client, RequestBase<BD_SUPPLIER> Entity)
        {

            var saveResult = FormSave(client, "BD_SUPPLIER",Entity);
            if (saveResult.Key)
            {
                string[] Numbers = { saveResult.Value };
                var submitResult = FormSubmit(client, "BD_SUPPLIER", Numbers);
                if (submitResult.Key)
                {
                    return FormAudit(client, "BD_SUPPLIER", Numbers);
                }
                return new KeyValuePair<bool, string>(false, submitResult.Value);
            }
            return new KeyValuePair<bool, string>(false, saveResult.Value);
        }

    }

  

猜你喜欢

转载自www.cnblogs.com/yuking/p/10754813.html