156 lines
5.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
/// <summary>
/// 获取一个K3客户端
/// </summary>
/// <returns></returns>
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
/// <summary>
/// 保存一个订单对象
/// </summary>
/// <param name="formId"></param>
/// <param name="billSave"></param>
/// <returns></returns>
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<K3ApiResult>(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()
/// <summary>
/// 删除某个订单
/// </summary>
/// <param name="formId"></param>
/// <param name="billdelete"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
//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<ErrorResponse>(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<dynamic>(resultString);
// var data = result["Result"]["ResponseStatus"]["SuccessEntitys"];
// return JsonHelper.ToJson(data);
//}
#endregion
}
}