服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
2024-12-17 35afcfe07fef52f74a2079fdb5977a87f88ddbb6
提交前检查是否岗位、工单和不良代码
已修改8个文件
199 ■■■■■ 文件已修改
Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MES/Transaction/Position.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Controllers.MES/Controllers/MESController.CollectNode.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Controllers.MES/Controllers/MESController.PackingNode.cs 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Controllers.MES/Controllers/MESController.TestNode.cs 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Controllers.MES/Controllers/MESController.YadaPacking.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.IBusiness.MES/Transaction/IPosition.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs
@@ -37,7 +37,7 @@
            Logger.Scheduler.Info(context.Trigger.ConvertToMonitor());
            try
            {
                var _lastRunTime = Cache.SysParam["GetWo_LastRun", "Interface_LastRun"].PARAM_VALUE;
                var _lastRunTime = Cache.SysParam["GetWo_LastRun", "Interface_LastRun"].PARAM_VALUE;
                var LastRunTime = string.IsNullOrEmpty(_lastRunTime) ? DateTime.Now.AddMinutes(-10) : Convert.ToDateTime(_lastRunTime);
                if ((DateTime.Now - LastRunTime).TotalMinutes > 10)
                {
Tiger.Business.MES/Transaction/Position.cs
@@ -994,11 +994,18 @@
        }
        #endregion
        #region 提交前通用方法
        public async Task<ApiAction> CheckCode(string code) {
            var action = new ApiAction();
        /// <summary>
        /// 提交前检查是否岗位、工单和不良代码
        /// </summary>
        /// <param name="code"></param>
        /// <returns></returns>
        public async Task<ApiAction<CheckCodeOutput>> CheckCode(string code) {
            var action = new ApiAction<CheckCodeOutput>($"检查条码{code}成功", new CheckCodeOutput());
            try
            {
                action.Data.Position = DbCache.Cache.Position[code];
                action.Data.WorkOrder = await MainDB.Queryable<BIZ_MES_WO>().Where(q=>q.ORDER_NO == code).FirstAsync();
                action.Data.Defect = DbCache.Cache.Defect[code];
            }
            catch (Exception ex)
            {
Tiger.Controllers.MES/Controllers/MESController.CollectNode.cs
@@ -231,5 +231,49 @@
            return Ok(response);
        }
        /// <summary>
        /// 提交前检查是否岗位、工单和不良代码
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
        [HttpPost]
        [Route("api/[controller]/CollectNode/CheckCode")]
        public async Task<IActionResult> CollectNode_CheckCodeAsync([FromBody] ApiAction action)
        {
            ApiAction response;
            ICollectNode trans = null;
            try
            {
                if (iBiz.MES.Context.GetTransDic().ContainsKey(action.ID))
                {
                    trans = iBiz.MES.Context.GetTransDic()[action.ID] as ICollectNode;
                    if (!trans.IsFinished)
                    {
                        if (action.IsAsync)
                        {
                            response = action.GetResponse(await trans.CheckCode(action.Data?.ToString()));
                        }
                        else
                        {
                            lock (trans.TransLock) { response = action.GetResponse(trans.CheckCode(action.Data?.ToString()).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);
        }
    }
}
Tiger.Controllers.MES/Controllers/MESController.PackingNode.cs
@@ -277,5 +277,49 @@
            return Ok(response);
        }
        /// <summary>
        /// 提交前检查是否岗位、工单和不良代码
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
        [HttpPost]
        [Route("api/[controller]/PackingNode/CheckCode")]
        public async Task<IActionResult> PackingNode_CheckCodeAsync([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.CheckCode(action.Data?.ToString()));
                        }
                        else
                        {
                            lock (trans.TransLock) { response = action.GetResponse(trans.CheckCode(action.Data?.ToString()).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);
        }
    }
}
Tiger.Controllers.MES/Controllers/MESController.TestNode.cs
@@ -269,5 +269,50 @@
            return Ok(response);
        }
        /// <summary>
        /// 提交前检查是否岗位、工单和不良代码
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
        [HttpPost]
        [Route("api/[controller]/TestNode/CheckCode")]
        public async Task<IActionResult> TestNode_CheckCodeAsync([FromBody] ApiAction action)
        {
            ApiAction response;
            ITestNode trans = null;
            try
            {
                if (iBiz.MES.Context.GetTransDic().ContainsKey(action.ID))
                {
                    trans = iBiz.MES.Context.GetTransDic()[action.ID] as ITestNode;
                    if (!trans.IsFinished)
                    {
                        if (action.IsAsync)
                        {
                            response = action.GetResponse(await trans.CheckCode(action.Data?.ToString()));
                        }
                        else
                        {
                            lock (trans.TransLock) { response = action.GetResponse(trans.CheckCode(action.Data?.ToString()).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);
        }
    }//endClass
}
Tiger.Controllers.MES/Controllers/MESController.YadaPacking.cs
@@ -366,5 +366,45 @@
            trans?.AddHistory(Request, action);
            return Ok(response);
        }
        [HttpPost]
        [Route("api/[controller]/YadaPacking/CheckCode")]
        public async Task<IActionResult> YadaPacking_CheckCodeAsync([FromBody] ApiAction action)
        {
            ApiAction response;
            IYadaPacking trans = null;
            try
            {
                if (iBiz.MES.Context.GetTransDic().ContainsKey(action.ID))
                {
                    trans = iBiz.MES.Context.GetTransDic()[action.ID] as IYadaPacking;
                    if (!trans.IsFinished)
                    {
                        if (action.IsAsync)
                        {
                            response = action.GetResponse(await trans.CheckCode(action.Data?.ToString()));
                        }
                        else
                        {
                            lock (trans.TransLock) { response = action.GetResponse(trans.CheckCode(action.Data?.ToString()).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);
        }
    }
}
Tiger.IBusiness.MES/Transaction/IPosition.cs
@@ -87,6 +87,7 @@
        /// <param name="curAction"></param>
        /// <returns></returns>
        public string GenerateSN(string ruleCode, IWorkAction curAction);
        public Task<ApiAction<CheckCodeOutput>> CheckCode(string code);
        #endregion Functions
    }
}
Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs
@@ -335,4 +335,14 @@
        public int ShipQty { get; set; }
    }
    /// <summary>
    /// 提交前检查输出参数
    /// </summary>
    public class CheckCodeOutput
    {
        public MES_POSITION Position { get; set; }
        public BIZ_MES_WO WorkOrder { get; set; }
        public BAS_DEFECT Defect { get; set; }
    }
}