using Kingdee.CDP.WebApi.SDK; using MyCode.Project.Domain.Message.Request.KingDee; using MyCode.Project.Domain.Message.Response.KingDee.K3Result; using MyCode.Project.Domain.Message.Response.KingDee.K3Result.Model; using MyCode.Project.Infrastructure.Common; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; namespace MyCode.Project.OutSideService.Implementation { public class KingDeeService : IKingDeeService { public KingDeeService() { } public static K3CloudApi staClient = null; public static DateTime timeOut = DateTime.Now; #region /// /// 获取一个K3客户端 /// /// public K3CloudApi GetK3CloudClient(string yuYan = "") { /*** * "Kingdee": { "Default": { //第三方系统登录授权的账套ID "AcctID": "65edc24ab975db", //第三方系统登录授权的应用ID "AppID": "302967_20fp7YsL2kpWR9VG5Y3LSbUHzv3/SDmv", //第三方系统登录授权的应用密钥 "AppSec": "5e38f16711514126ae1511ca4ead3232", //第三方系统登录授权的用户 "UserName": "ERP1", //账套语系,默认2052 "LCID": 2052, //服务Url地址 (只有私有云用户需要配置Serverurl,公有云用户走网关不需要配置) "ServerUrl": "http://8.138.110.197/K3Cloud", // 时间 "Timestamp": 30 } } 语言ID,中文2052(默认),英文1033,繁体3076; * * * */ if (staClient == null || DateTime.Now > timeOut || 1 == 1) { string AppID = ConfigurationManager.AppSettings.Get("X-KDApi-AppID"); string UserName = ConfigurationManager.AppSettings.Get("X-KDApi-UserName"); string AcctID = ConfigurationManager.AppSettings.Get("X-KDApi-AcctID"); string AppSec = ConfigurationManager.AppSettings.Get("X-KDApi-AppSec"); string LCID = ConfigurationManager.AppSettings.Get("X-KDApi-LCID"); if (yuYan != "") LCID = yuYan; string ServerUrl = ConfigurationManager.AppSettings.Get("X-KDApi-ServerUrl"); //staClient = new K3CloudApi(ServerUrl); timeOut = DateTime.Now.AddMinutes(5); staClient = new K3CloudApi(); staClient.InitClient(AcctID, AppID, AppSec, UserName, int.Parse(LCID), "100", ServerUrl); //staClient.InitClient("65edc24ab975db", "302967_20fp7YsL2kpWR9VG5Y3LSbUHzv3/SDmv", "5e38f16711514126ae1511ca4ead3232", "ERP1", 2052, "100", "http://8.138.110.197/k3cloud/"); } return staClient; } #endregion #region 保存一个订单对象 /// /// 保存一个订单对象 /// /// /// /// public K3CloudResponseStatus Save(string formId, BillSave billSave) { var id = Guid.NewGuid(); staClient = GetK3CloudClient(); var datastr = JsonHelper.ToJson(billSave, false, false, true); LogHelper.Info("调度Id:" + id + ",金蝶云接口请求:" + datastr); var resultString = staClient.Save(formId, datastr); LogHelper.Info("调度Id:" + id + "金蝶云接口响应:" + resultString); var result = JsonHelper.ToObject(resultString); if (!result.Result.ResponseStatus.IsSuccess) { string Message = string.Join("\r\n", result.Result.ResponseStatus.Errors.Select(t => t.Message).ToList()); throw new Exception("调度Id:" + id + "云星空接口调用失败,错误信息:" + Message); } var data = result.Result.ResponseStatus; return data; } #endregion #region Delete(删除某个订单) /// /// 删除某个订单 /// /// /// /// /// //public dynamic Delete(string formId, BillDelete billdelete) //{ // staClient = GetK3CloudClient(); // var datastr = JsonHelper.ToJson(billdelete); // LogHelper.Info(datastr); // var resultString = staClient.Delete(formId, datastr); // if (resultString.Contains("ErrorCode")) // { // LogHelper.Error("金蝶云接口调用失败,请检查"); // LogHelper.Error(resultString); // string Message = ""; // try // { // ErrorResponse errorResponse = JsonHelper.ToObject(resultString); // Message = string.Join(",", errorResponse.Result.ResponseStatus.Errors.Select(t => t.Message).ToList()); // } // catch (Exception ex) // { // string ds = ex.Message; // throw new Exception("2云星空接口调用失败,请联系管理员,错误信息:" + resultString); // } // throw new Exception("1云星空接口调用失败,请联系管理员,错误信息:" + Message); // } // var result = JsonHelper.ToObject(resultString); // var data = result["Result"]["ResponseStatus"]["SuccessEntitys"]; // return JsonHelper.ToJson(data); //} #endregion } }