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
}
}