电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

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

来源:金蝶云社区作者:金蝶2024-09-2348

二开案例-【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格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信