From 6f0a6b40e86e2024c218d1d38cbdc5515fb95209 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期日, 22 九月 2024 19:03:57 +0800
Subject: [PATCH] 获取工单模板变量

---
 Tiger.Business/MES/Biz.WorkBatch.cs |   33 +++++++++++++++++++++++++++------
 1 files changed, 27 insertions(+), 6 deletions(-)

diff --git a/Tiger.Business/MES/Biz.WorkBatch.cs b/Tiger.Business/MES/Biz.WorkBatch.cs
index e22c66b..e56ae10 100644
--- a/Tiger.Business/MES/Biz.WorkBatch.cs
+++ b/Tiger.Business/MES/Biz.WorkBatch.cs
@@ -55,11 +55,26 @@
             public WorkBatch Init(string lineCode)
             {
                 LineCode = lineCode;
+                GetBatchInfo();
+                return this;
+            }
+
+            public void Update()
+            {
+                if (!WoContext.WoBatchDic.ContainsKey(Batch.BATCH_NO))
+                {
+                    GetBatchInfo();
+                    WoContext.WoBatchDic.Add(Batch.BATCH_NO, this);
+                }
+            }
+
+            private void GetBatchInfo()
+            {
                 WO = Biz.Db.Queryable<BIZ_MES_WO>().Where(q => q.ORDER_NO == OrderNo).IncludesAllFirstLayer().First();
-                Product = Biz.Db.Queryable<BAS_ITEM>().Where(q => q.ITEM_CODE == WO.ITEM_CODE && q.AUTH_ORG == WO.AUTH_ORG).First();
+                Product = Biz.Db.Queryable<BAS_ITEM>().Where(q => q.ITEM_CODE == WO.ITEM_CODE && q.AUTH_ORG == WO.AUTH_ORG).IncludesAllFirstLayer().First();
                 Batch = Biz.Db.Queryable<BIZ_MES_WO_BATCH>().Where(q => q.ORDER_NO == OrderNo && q.ACT_LINE == LineCode &&
                                     (q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Release.GetValue() || q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue())).First();
-                Customer = Biz.Db.Queryable<BAS_CUSTOMER>().Where(q => q.CUST_CODE == WO.CUST_CODE).First();    
+                Customer = Biz.Db.Queryable<BAS_CUSTOMER>().Where(q => q.CUST_CODE == WO.CUST_CODE).First();
                 WoSNs = Biz.Db.Queryable<BIZ_MES_WO_SN>().Where(q => q.WORK_ORDER == OrderNo).ToList();
                 Edges = Biz.Db.Queryable<MES_WO_EDGE>().Where(q => q.WORK_ORDER == OrderNo).ToList();
                 Nodes = Biz.Db.Queryable<MES_WO_NODE>().Where(q => q.WORK_ORDER == OrderNo).IncludesAllFirstLayer().ToList();
@@ -74,8 +89,6 @@
                 var first = Nodes.First(q => q.IS_FIRST_NODE == "Y");
                 first.Sequence = 1;
                 NodeSorting(first);
-
-                return this;
             }
 
             /// <summary>
@@ -139,8 +152,16 @@
                 {
                     action.IsSuccessed = false;
                     action.Data.SetValue(this, null);
-                    action.LocaleMsg = new($"宸ュ崟鎵规[{0}]宸叉姇鍏� {1}锛屽叾涓姤搴� {2}锛屼互婊¤冻璁″垝鏁伴噺[{3}]锛屾棤闇�缁х画鎶曞叆");
-                    action.LocaleMsg = new("MES.WorkBatch.WoInputEnough", Batch.BATCH_NO, WoSNs.Count(q => q.BATCH_NO == Batch.BATCH_NO), Batch.SCRAP_QTY, Batch.PLAN_QTY);
+                    //action.LocaleMsg = new($"宸ュ崟鎵规[{0}]宸叉姇鍏� {1}锛屽叾涓姤搴� {2}锛屼互婊¤冻璁″垝鏁伴噺[{3}]锛屾棤闇�缁х画鎶曞叆");
+                    action.LocaleMsg = new("MES.WorkBatch.BatchInputEnough", Batch.BATCH_NO, WoSNs.Count(q => q.BATCH_NO == Batch.BATCH_NO), Batch.SCRAP_QTY, Batch.PLAN_QTY);
+                }
+                //宸ュ崟鎶曞叆鏁伴噺鍑忓幓鎶ュ簾鏁伴噺濡傛灉澶т簬绛変簬璁″垝鏁伴噺锛屽垯涓嶅厑璁哥敓浜�
+                if (curNode.IS_INPUT == "Y" && WoSNs.Count(q => q.WORK_ORDER == WO.ORDER_NO) - WO.SCRAP_QTY >= WO.PLAN_QTY)
+                {
+                    action.IsSuccessed = false;
+                    action.Data.SetValue(this, null);
+                    //action.LocaleMsg = new($"宸ュ崟[{0}]宸叉姇鍏� {1}锛屽叾涓姤搴� {2}锛屼互婊¤冻璁″垝鏁伴噺[{3}]锛屾棤闇�缁х画鎶曞叆");
+                    action.LocaleMsg = new("MES.WorkBatch.WoInputEnough", WO.ORDER_NO, WoSNs.Count(q => q.WORK_ORDER == WO.ORDER_NO), WO.SCRAP_QTY, WO.PLAN_QTY);
                 }
 
                 return action;

--
Gitblit v1.9.3