服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
2024-09-22 6f0a6b40e86e2024c218d1d38cbdc5515fb95209
Tiger.Api/Controllers/MES/MESController.PackingNode.cs
@@ -102,6 +102,45 @@
        /// <summary>
        /// Reset(ApiAction)
        /// 重置工序操作
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
        [HttpPost]
        [Route("api/[controller]/PackingNode/Reset")]
        public async Task<IActionResult> PackingNode_ResetAsync([FromBody] ApiAction action)
        {
            ApiAction response;
            IPackingNode trans = null;
            try
            {
                if (iBiz.MES.Context.GetTransDic().ContainsKey(action.ID))
                {
                    trans = iBiz.MES.Context.GetTransDic()[action.ID] as IPackingNode;
                    if (!trans.IsFinished)
                    {
                        lock (trans.TransLock) { response = action.GetResponse(trans.Reset()); }
                    }
                    else
                    {
                        response = action.GetResponse($"Transaction Error: 岗位[{trans.PostCode}]的包装工序事务[ID:{action.ID}]已经关闭", false);
                    }
                }
                else
                {
                    response = action.GetResponse($"Transaction Error: 岗位的包装工序事务[ID:{action.ID}]已经被关闭", false);
                }
            }
            catch (System.Exception ex)
            {
                response = action.GetResponse().CatchExceptionWithLog(ex);
            }
            trans?.AddHistory(Request, action);
            return Ok(response);
        }
        /// <summary>
        /// SelectWO(ApiAction(Data:{WoInput}))
        /// 包装工序:选择工单
        /// </summary>
@@ -149,7 +188,7 @@
        /// <summary>
        /// Submit(ApiAction(Data:{SubmitInput}))
        /// 测试工序:提交操作数据
        /// 包装工序:提交操作数据
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
@@ -193,5 +232,51 @@
            return Ok(response);
        }
        /// <summary>
        /// CompletePkg(ApiAction)
        /// 包装工序:手动结束包装
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
        [HttpPost]
        [Route("api/[controller]/PackingNode/CompletePkg")]
        public async Task<IActionResult> PackingNode_CompletePkgAsync([FromBody] ApiAction action)
        {
            ApiAction response;
            IPackingNode trans = null;
            try
            {
                if (iBiz.MES.Context.GetTransDic().ContainsKey(action.ID))
                {
                    trans = iBiz.MES.Context.GetTransDic()[action.ID] as IPackingNode;
                    if (!trans.IsFinished)
                    {
                        if (action.IsAsync)
                        {
                            response = action.GetResponse(await trans.CompletePkg(action));
                        }
                        else
                        {
                            lock (trans.TransLock) { response = action.GetResponse(trans.CompletePkg(action).Result); }
                        }
                    }
                    else
                    {
                        response = action.GetResponse($"Transaction Error: 岗位[{trans.PostCode}]的包装工序事务[ID:{action.ID}]已经关闭", false);
                    }
                }
                else
                {
                    response = action.GetResponse($"Transaction Error: 岗位的包装工序事务[ID:{action.ID}]已经被关闭", false);
                }
            }
            catch (System.Exception ex)
            {
                response = action.GetResponse().CatchExceptionWithLog(ex);
            }
            trans?.AddHistory(Request, action);
            return Ok(response);
        }
    }
}