K3Cloud服务操作接口(ExcuteOperation)实战及更新冻结人字段(续篇)

/// <summary>
/// 服务接口(同步)
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
public CloudResult CloudExcuteOperation(string formid, string type, string data)
{
List<object> Parameters = new List<object>();
Parameters.Add(formid);
Parameters.Add(type);
Parameters.Add(data);
var result = HttpClientHelper_HttpPost(CloudLinkConfigModel.excuteOperationUrl, JsonConvert.SerializeObject(Parameters));
return result == null ? new CloudResult() : JsonConvert.DeserializeObject<CloudResult>(result);
}
using Model;
namespace K3CloudLink
{
public interface ICloudLink
{
/// <summary>
/// 登陆验证
/// </summary>
/// <returns></returns>
bool CloudLogin();
/// <summary>
/// 登陆验证(异步)
/// </summary>
/// <returns></returns>
Task<bool> CloudLoginAsync();
/// <summary>
/// 根据单号或者ID查询数据
/// </summary>
/// <param name="formid">业务对象ID 例子:SAL_SaleOrder</param>
/// <param name="data">数据包Json 例子:"{\"Number\":\"XSDD000040\"}" "{\"Id\":0}"</param>
/// <returns>单据数据包JOSN</returns>
string CloudView(string formid, string data);
/// <summary>
/// 根据单号或者ID查询数据(异步)
/// </summary>
/// <param name="formid">业务对象ID 例子:SAL_SaleOrder</param>
/// <param name="data">数据包Json 例子:"{\"Number\":\"XSDD000040\"}" "{\"Id\":0}"</param>
/// <returns>单据数据包JOSN</returns>
Task<string> CloudViewAsync(string formid, string data);
/// <summary>
/// 保存
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
CloudResult CloudSave(string formid, string data);
/// <summary>
/// 保存(异步)
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
Task<CloudResult> CloudSaveAsync(string formid, string data);
/// <summary>
/// 批量保存
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
CloudResult CloudBatchSave(string formid, string data);
/// <summary>
/// 批量保存(异步)
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
Task<CloudResult> CloudBatchSaveAsync(string formid, string data);
/// <summary>
/// 删除
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
CloudResult CloudDelete(string formid, string data);
/// <summary>
/// 删除(异步)
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
Task<CloudResult> CloudDeleteAsync(string formid, string data);
/// <summary>
/// 审核
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
CloudResult CloudAudit(string formid, string data);
/// <summary>
/// 审核(异步)
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
Task<CloudResult> CloudAuditAsync(string formid, string data);
/// <summary>
/// 反审核
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
CloudResult CloudUnAudit(string formid, string data);
/// <summary>
/// 反审核(异步)
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
Task<CloudResult> CloudUnAuditAsync(string formid, string data);
/// <summary>
/// 用语句查询数据库
/// </summary>
/// <param name="sql">数据库语句</param>
/// <returns></returns>
(string status, string errmsg, string result) CloudDbWebApi(string sql);
/// <summary>
/// 用语句查询数据库(异步)
/// </summary>
/// <param name="sql">数据库语句</param>
/// <returns></returns>
Task<(string status, string errmsg, string result)> CloudDbWebApiAsync(string sql);
/// <summary>
/// 下推
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
CloudResult CloudPush(string formid, string data);
/// <summary>
/// 下推(异步)
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
Task<CloudResult> CloudPushAsync(string formid, string data);
/// <summary>
/// 分配
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
CloudResult CloudAllocate(string formid, string data);
/// <summary>
/// 分配(异步)
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
Task<CloudResult> CloudAllocateAsync(string formid, string data);
/// <summary>
/// 暂存
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
CloudResult CloudDraftSave(string formid, string data);
/// <summary>
/// 暂存(异步)
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
Task<CloudResult> CloudDraftSaveAsync(string formid, string data);
/// <summary>
/// 提交
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
CloudResult CloudSubmit(string formid, string data);
/// <summary>
/// 表单查询
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
string CloudExecuteBillQuery(string data);
/// <summary>
/// 表单查询(异步)
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
Task<string> CloudExecuteBillQueryAsync(string data);
/// <summary>
/// 服务接口(异步)
/// </summary>
/// <param name="formid"></param>
/// <param name="type">服务类型</param>
/// <param name="data"></param>
/// <returns></returns>
Task<CloudResult> CloudExcuteOperationAsync(string formid, string type, string data);
/// <summary>
/// 服务接口(同步)
/// </summary>
/// <param name="formid"></param>
/// <param name="data"></param>
/// <returns></returns>
public CloudResult CloudExcuteOperation(string formid, string type, string data);
}
}
using Common;
using Model;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Diagnostics;
namespace K3CloudLink
{
public class CloudLinkN : ICloudLink
{
static CloudLinkN()
{
ConfigInitialization();
}
/// <summary>
/// 初始化配置
/// </summary>
private static void ConfigInitialization()
{
if (string.IsNullOrEmpty(CloudLinkConfigModel.dbId))
{
CloudLinkConfigModel.dbId = ConfigManager.AppSettings("dbId").ToString();
CloudLinkConfigModel.userName = ConfigManager.AppSettings("userName").ToString();
CloudLinkConfigModel.userPassword = ConfigManager.AppSettings("userPassword").ToString();
CloudLinkConfigModel.saveUrl = ConfigManager.AppSettings("saveUrl").ToString();
CloudLinkConfigModel.submitUrl = ConfigManager.AppSettings("submitUrl").ToString();
CloudLinkConfigModel.unAuditUrl = ConfigManager.AppSettings("unAuditUrl").ToString();
CloudLinkConfigModel.viewUrl = ConfigManager.AppSettings("viewUrl").ToString();
CloudLinkConfigModel.validateUserUrl = ConfigManager.AppSettings("validateUserUrl").ToString();
CloudLinkConfigModel.executeBillQueryUrl = ConfigManager.AppSettings("executeBillQueryUrl").ToString();
CloudLinkConfigModel.deleteUrl = ConfigManager.AppSettings("deleteUrl").ToString();
CloudLinkConfigModel.auditUrl = ConfigManager.AppSettings("auditUrl").ToString();
CloudLinkConfigModel.customWebApiUrl = ConfigManager.AppSettings("customWebApiUrl").ToString();
CloudLinkConfigModel.pushUrl = ConfigManager.AppSettings("pushUrl").ToString();
CloudLinkConfigModel.allocateUrl = ConfigManager.AppSettings("allocateUrl").ToString();
CloudLinkConfigModel.draftUrl = ConfigManager.AppSettings("draftUrl").ToString();
CloudLinkConfigModel.excuteOperationUrl = ConfigManager.AppSettings("ExcuteOperationUrl").ToString();
CloudLinkConfigModel.batchSaveUrl = ConfigManager.AppSettings("batchSaveUrl").ToString();
}
}
public async Task<string> HttpClientHelper_HttpPostAsync(string Url, string Content) {
JObject jObj = new JObject();
jObj.Add("format", 1);
jObj.Add("useragent", "ApiClient");
jObj.Add("rid", Guid.NewGuid().ToString().GetHashCode().ToString());
jObj.Add("parameters", Content);
jObj.Add("timestamp", DateTime.Now);
jObj.Add("v", "1.0");
return await HttpClientHelper.HttpPostAsync(Url, jObj.ToString(), null, "application/json");
}
public string HttpClientHelper_HttpPost(string Url, string Content)
{
JObject jObj = new JObject();
jObj.Add("format", 1);
jObj.Add("useragent", "ApiClient");
jObj.Add("rid", Guid.NewGuid().ToString().GetHashCode().ToString());
jObj.Add("parameters", Content);
jObj.Add("timestamp", DateTime.Now);
jObj.Add("v", "1.0");
try
{
return HttpClientHelper.HttpPost(Url, jObj.ToString(), null, "application/json");
}
catch (OperationCanceledException oce)
{
//https://github.com/dotnet/runtime/issues/21965
// Check ex.CancellationToken.IsCancellationRequested here.
// If false, it's pretty safe to assume it was a timeout.
if (false==oce.CancellationToken.IsCancellationRequested)
{
Log.Default.Process(Log.F_LEVEL.Error, $"oce_HttpClientHelper_HttpPost_{oce.ToString()}_具体报错调用串:{jObj.ToString()}");
throw new Exception("oce_HttpClientHelper_HttpPost请求超时错误!");
}
else
throw oce;
}
catch (Exception ex)
{
Log.Default.Process(Log.F_LEVEL.Error, "HttpClientHelper_HttpPost_"+ ex.ToString() + "_具体报错调用串:" + jObj.ToString());
throw ex;
}
}
/// <summary>
/// 登陆验证
/// </summary>
/// <returns></returns>
public bool CloudLogin()
{
List<object> Parameters = new List<object>();
Parameters.Add(CloudLinkConfigModel.dbId);//帐套Id
Parameters.Add(CloudLinkConfigModel.userName);//用户名
Parameters.Add(CloudLinkConfigModel.userPassword);//密码
Parameters.Add(2052);
string url = CloudLinkConfigModel.validateUserUrl;
string postData = JsonConvert.SerializeObject(Parameters);
string res =HttpClientHelper_HttpPost(url, postData);
var iResult = JObject.Parse(res)["LoginResultType"].Value<int>();
//HttpClientHelper.HttpPostAsync()
if (iResult == 1)
return true;
else
return false;
}
/// <summary>
/// 登陆验证
/// </summary>
/// <returns></returns>
public async Task<bool> CloudLoginAsync()
{
List<object> Parameters = new List<object>();
Parameters.Add(CloudLinkConfigModel.dbId);//帐套Id
Parameters.Add(CloudLinkConfigModel.userName);//用户名
Parameters.Add(CloudLinkConfigModel.userPassword);//密码
Parameters.Add(2052);
string url = CloudLinkConfigModel.validateUserUrl;
string postData = JsonConvert.SerializeObject(Parameters);
string res = await HttpClientHelper_HttpPostAsync(url, postData);
var iResult = JObject.Parse(res)["LoginResultType"].Value<int>();
//HttpClientHelper.HttpPostAsync()
if (iResult == 1)
return true;
else
return false;
}
/// <summary>
/// 根据单号或者ID查询数据
/// </summary>
/// <param name="formid">业务对象ID 例子:SAL_SaleOrder</param>
/// <param name="data">数据包Json 例子:"{\"Number\":\"XSDD000040\"}" "{\"Id\":0}"</param>
/// <returns>单据数据包JOSN</returns>
public string CloudView(string formid, string data)
{
List<object> Parameters = new List<object>();
Parameters.Add(formid);
Parameters.Add(data);
var result = HttpClientHelper_HttpPost(CloudLinkConfigModel.viewUrl, JsonConvert.SerializeObject(Parameters));
return result == null ? "" : result;
}
/// <summary>
/// 根据单号或者ID查询数据(异步)
/// </summary>
/// <param name="formid">业务对象ID 例子:SAL_SaleOrder</param>
/// <param name="data">数据包Json 例子:"{\"Number\":\"XSDD000040\"}" "{\"Id\":0}"</param>
/// <returns>单据数据包JOSN</returns>
public async Task<string> CloudViewAsync(string formid, string data)
{
List<object> Parameters = new List<object>();
Parameters.Add(formid);
Parameters.Add(data);
return await HttpClientHelper_HttpPostAsync(CloudLinkConfigModel.viewUrl, JsonConvert.SerializeObject(Parameters));
}
/// <summary>
/// Cloud表单查询
/// </summary>
/// <param name="data">CloudExecuteBillQueryModel 反序列化后Json格式</param>
/// <returns></returns>
public string CloudExecuteBillQuery(string data)
{
List<object> Parameters = new List<object>();
Parameters.Add(data);
var result = HttpClientHelper_HttpPost(CloudLinkConfigModel.executeBillQueryUrl, JsonConvert.SerializeObject(Parameters));
return result == null ? "" : result;
}
/// <summary>
/// Cloud表单查询(异步)
/// </summary>
/// <param name="data">CloudExecuteBillQueryModel 反序列化后Json格式</param>
/// <returns></returns>
public async Task<string> CloudExecuteBillQueryAsync(string data)
{
List<object> Parameters = new List<object>();
Parameters.Add(data);
return await HttpClientHelper_HttpPostAsync(CloudLinkConfigModel.executeBillQueryUrl, JsonConvert.SerializeObject(Parameters));
}
/// <summary>
/// 用语句查询数据库
/// </summary>
/// <paraK3Cloud服务操作接口(ExcuteOperation)实战及更新冻结人字段(续篇)
/// <summary> /// 服务接口(同步) /// </summary> /// <param name="formid"></param> /// <param name="dat...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



