From a18b6286678e90a00c3ac20c8e937d40104d2ef9 Mon Sep 17 00:00:00 2001
From: Rodney Chen <rodney.chen@hotmail.com>
Date: 星期六, 12 十月 2024 21:45:26 +0800
Subject: [PATCH] 工序结束返回包装信息

---
 Tiger.Business.MES/Common/WorkBatch.cs |   23 ++++++++++++++++-------
 1 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/Tiger.Business.MES/Common/WorkBatch.cs b/Tiger.Business.MES/Common/WorkBatch.cs
index 72c507a..cbfdad6 100644
--- a/Tiger.Business.MES/Common/WorkBatch.cs
+++ b/Tiger.Business.MES/Common/WorkBatch.cs
@@ -53,13 +53,25 @@
         public WorkBatch Init(string lineCode)
         {
             LineCode = lineCode;
+            WO = Biz.Db.Queryable<BIZ_MES_WO>().Where(q => q.ORDER_NO == OrderNo).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();
             GetBatchInfo();
             return this;
         }
 
         public void Update()
         {
-            if (!WoContext.WoBatchDic.ContainsKey(Batch.BATCH_NO))
+            WO = Biz.Db.Queryable<BIZ_MES_WO>().Where(q => q.ORDER_NO == OrderNo).IncludesAllFirstLayer().First();
+            Batch = Biz.Db.Queryable<BIZ_MES_WO_BATCH>().Where(q => q.BATCH_NO == Batch.BATCH_NO).First();
+            if (WoContext.WoBatchDic.ContainsKey(Batch.BATCH_NO))
+            {
+                if (WO.STATUS > BIZ_MES_WO.STATUSs.Working.GetValue() || Batch.STATUS > BIZ_MES_WO_BATCH.STATUSs.Working.GetValue())
+                {
+                    WoContext.WoBatchDic.Remove(Batch.BATCH_NO);
+                }
+            }
+            else
             {
                 GetBatchInfo();
                 WoContext.WoBatchDic.Add(Batch.BATCH_NO, this);
@@ -68,10 +80,7 @@
 
         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).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();
             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();
@@ -126,8 +135,8 @@
         {
             var action = new ApiAction<SubmitOutput>(new SubmitOutput(), true);
 
-            WO = Biz.Db.Queryable<BIZ_MES_WO>().Where(q => q.ORDER_NO == OrderNo).IncludesAllFirstLayer().First();
-            Batch = Biz.Db.Queryable<BIZ_MES_WO_BATCH>().Where(q => q.ORDER_NO == OrderNo && q.ACT_LINE == LineCode).First();
+            Update();
+
             //宸ュ崟鎵规鐘舵�佷笉鏄凡涓嬪彂鎴栬�呯敓浜т腑锛屽垯涓嶅厑璁哥敓浜�
             if (Batch.STATUS != BIZ_MES_WO_BATCH.STATUSs.Release.GetValue() && Batch.STATUS != BIZ_MES_WO_BATCH.STATUSs.Working.GetValue())
             {
@@ -248,7 +257,7 @@
         /// <returns></returns>
         public MES_WO_OPER GetNodeSetting(MES_WO_NODE node)
         {
-            return NodeSets.FirstOrDefault(q => q.NODE_ID == node.ID);
+            return NodeSets.FirstOrDefault(q => q.NODE_ID == node?.ID);
         }
 
         /// <summary>

--
Gitblit v1.9.3