二开案例-【WebAPI】如何通过WebAPI操作生产订单状态机,并指定执行时间

【应用场景】
针对部分二开需要指定生产订单明细行业务状态,并且指定时间
【注意事项】
该实现方案以生产订单执行到完工为例,执行时间以当前天数加三天,生产订单分录内码为测试数据
【案例演示】

【实现步骤】
<1>编写自定义WebAPI接口,代码如下:
/// <summary>
/// 生产订单信息
/// </summary>
public class MoInfos
{
/// <summary>
/// 生产订单分录内码与执行时间数据包
/// </summary>
public List<Tuple<long, DateTime>> MoEntryIdsOfDate { get; set; }
/// <summary>
/// 操作代码
/// </summary>
public string OperationNumber { get; set; }
/// <summary>
/// 生产订单分录内码
/// </summary>
public List<long> MoEntryIds { get; set; }
}
public class ExtSetMoStatusWebAPIService : AbstractWebApiBusinessService
{
public ExtSetMoStatusWebAPIService(KDServiceContext context) : base(context) { }
public JObject ExecuteService(string info)
{
JObject result = new JObject();
var param = JsonConvert.DeserializeObject<MoInfos>(info);
OperateOption option = OperateOption.Create();
option.SetVariableValue("LstMoEntryIdOfExecDate", param.MoEntryIdsOfDate);
option.SetVariableValue(Consts.ForceNoTransaction, true);
IOperationResult exeResult = AppServiceContext.PRDService.MOService.MOStateTransfer(
this.KDContext.Session.AppContext, param.MoEntryIds.Distinct(), param.OperationNumber, option);
if (!exeResult.ValidationErrors.IsEmpty())
{
StringBuilder errMsg = new StringBuilder();
foreach (var item in exeResult.ValidationErrors)
{
errMsg.AppendLine(item.Message);
}
result.Add("IsSuccess", false);
result.Add("Message", string.Format("执行失败:{0}", errMsg.ToString()));
}
else
{
result.Add("IsSuccess", true);
result.Add("Message", "执行成功");
}
result.Add("Data", JsonConvert.SerializeObject(exeResult));
return result;
}
}<2>调用演示,代码如下:
[Description("WebAPI生产订单执行状态机指定时间")]
public class MoWebAPI : AbstractBillPlugIn
{
public override void BarItemClick(BarItemClickEventArgs e)
{
base.BarItemClick(e);
switch (e.BarItemKey.ToUpperInvariant())
{
case "TBTEST":
string webSiteUrl = "http://localhost:1780/k3cloud/";
K3CloudApiClient client = new K3CloudApiClient(webSiteUrl);
var loginResult = client.ValidateLogin("5e688b60010075", "demo", "888888", 2052);
var loginResultJson = JsonConvert.DeserializeObject<JObject>(loginResult);
var resultType = JObject.Parse(loginResult)["LoginResultType"].Value<int>();
if (resultType == 1)
{
string userToken = loginResultJson["Context"]["UserToken"].ToString();
二开案例-【WebAPI】如何通过WebAPI操作生产订单状态机,并指定执行时间
【应用场景】针对部分二开需要指定生产订单明细行业务状态,并且指定时间【注意事项】该实现方案以生产订单执行到完工为例,执行时间以当前...
点击下载文档文档为doc格式
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
上一篇
已经是第一篇



