From 35afcfe07fef52f74a2079fdb5977a87f88ddbb6 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期二, 17 十二月 2024 20:40:47 +0800
Subject: [PATCH] 提交前检查是否岗位、工单和不良代码

---
 Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs                     |    2 
 Tiger.Business.MES/Transaction/Position.cs                       |   13 ++
 Tiger.Controllers.MES/Controllers/MESController.CollectNode.cs   |   44 +++++++++++
 Tiger.Controllers.MES/Controllers/MESController.YadaPacking.cs   |   40 ++++++++++
 Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs |   10 ++
 Tiger.IBusiness.MES/Transaction/IPosition.cs                     |    1 
 Tiger.Controllers.MES/Controllers/MESController.PackingNode.cs   |   44 +++++++++++
 Tiger.Controllers.MES/Controllers/MESController.TestNode.cs      |   45 +++++++++++
 8 files changed, 195 insertions(+), 4 deletions(-)

diff --git a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs b/Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs
index 37e3293..eeca62b 100644
--- a/Tiger.Business.MES/Task/Jobs.U9C_ME_GetWo.cs
+++ b/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)
                 {
diff --git a/Tiger.Business.MES/Transaction/Position.cs b/Tiger.Business.MES/Transaction/Position.cs
index 83c2ad7..601f1a3 100644
--- a/Tiger.Business.MES/Transaction/Position.cs
+++ b/Tiger.Business.MES/Transaction/Position.cs
@@ -994,11 +994,18 @@
         }
         #endregion
         #region 鎻愪氦鍓嶉�氱敤鏂规硶
-        public async Task<ApiAction> CheckCode(string code) {
-            var action = new ApiAction();
+        /// <summary>
+        /// 鎻愪氦鍓嶆鏌ユ槸鍚﹀矖浣嶃�佸伐鍗曞拰涓嶈壇浠g爜
+        /// </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)
             {
diff --git a/Tiger.Controllers.MES/Controllers/MESController.CollectNode.cs b/Tiger.Controllers.MES/Controllers/MESController.CollectNode.cs
index 05ca13e..27a358d 100644
--- a/Tiger.Controllers.MES/Controllers/MESController.CollectNode.cs
+++ b/Tiger.Controllers.MES/Controllers/MESController.CollectNode.cs
@@ -231,5 +231,49 @@
             return Ok(response);
         }
 
+        /// <summary>
+        /// 鎻愪氦鍓嶆鏌ユ槸鍚﹀矖浣嶃�佸伐鍗曞拰涓嶈壇浠g爜
+        /// </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);
+        }
     }
 }
diff --git a/Tiger.Controllers.MES/Controllers/MESController.PackingNode.cs b/Tiger.Controllers.MES/Controllers/MESController.PackingNode.cs
index 82e7481..eab6535 100644
--- a/Tiger.Controllers.MES/Controllers/MESController.PackingNode.cs
+++ b/Tiger.Controllers.MES/Controllers/MESController.PackingNode.cs
@@ -277,5 +277,49 @@
             return Ok(response);
         }
 
+        /// <summary>
+        /// 鎻愪氦鍓嶆鏌ユ槸鍚﹀矖浣嶃�佸伐鍗曞拰涓嶈壇浠g爜
+        /// </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);
+        }
     }
 }
diff --git a/Tiger.Controllers.MES/Controllers/MESController.TestNode.cs b/Tiger.Controllers.MES/Controllers/MESController.TestNode.cs
index 2b29632..4899fc2 100644
--- a/Tiger.Controllers.MES/Controllers/MESController.TestNode.cs
+++ b/Tiger.Controllers.MES/Controllers/MESController.TestNode.cs
@@ -269,5 +269,50 @@
             return Ok(response);
         }
 
+        /// <summary>
+        /// 鎻愪氦鍓嶆鏌ユ槸鍚﹀矖浣嶃�佸伐鍗曞拰涓嶈壇浠g爜
+        /// </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
 }
diff --git a/Tiger.Controllers.MES/Controllers/MESController.YadaPacking.cs b/Tiger.Controllers.MES/Controllers/MESController.YadaPacking.cs
index b55fbae..dc1176f 100644
--- a/Tiger.Controllers.MES/Controllers/MESController.YadaPacking.cs
+++ b/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);
+        }
     }
 }
diff --git a/Tiger.IBusiness.MES/Transaction/IPosition.cs b/Tiger.IBusiness.MES/Transaction/IPosition.cs
index 75bc542..3ece515 100644
--- a/Tiger.IBusiness.MES/Transaction/IPosition.cs
+++ b/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
     }
 }
diff --git a/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs b/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs
index d74c353..6f04db8 100644
--- a/Tiger.Model.Net/Entitys/MES/ParameterEntity/PositionParameter.cs
+++ b/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; }
+    }
+
 }

--
Gitblit v1.9.3