From 0c0309afae85b72746bd2431c10c7f5982e210e3 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期三, 30 四月 2025 17:46:44 +0800
Subject: [PATCH] 一些更改

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

diff --git a/Tiger.Business.MES/Common/WorkBatch.cs b/Tiger.Business.MES/Common/WorkBatch.cs
index fa91614..1de3073 100644
--- a/Tiger.Business.MES/Common/WorkBatch.cs
+++ b/Tiger.Business.MES/Common/WorkBatch.cs
@@ -10,7 +10,6 @@
 using Tiger.IBusiness;
 using Tiger.Model.Entitys.MES.Position;
 using Tiger.Business.MES;
-using static Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser;
 using Org.BouncyCastle.Ocsp;
 using System.IO;
 
@@ -50,7 +49,7 @@
 
         #region Functions
         /// <summary>
-        /// 鍒濆鍖栧伐鍗曡祫鏂�
+        /// 鍒濆鍖栧伐鍗曟壒娆¤祫鏂�
         /// </summary>
         /// <returns></returns>
         public WorkBatch Init(string lineCode)
@@ -63,6 +62,10 @@
             return this;
         }
 
+        /// <summary>
+        /// 鏇存柊宸ュ崟鎵规璧勬枡
+        /// </summary>
+        /// <param name="updateAll"></param>
         public void Update(bool updateAll = false)
         {
             var strat = DateTime.Now;
@@ -149,6 +152,7 @@
 
             Update();
 
+            var woSNs = Biz.Db.Queryable<BIZ_MES_WO_SN>().Where(q => q.WORK_ORDER == OrderNo).ToList();
             //宸ュ崟鎵规鐘舵�佷笉鏄凡涓嬪彂鎴栬�呯敓浜т腑锛屽垯涓嶅厑璁哥敓浜�
             if (Batch.STATUS != BIZ_MES_WO_BATCH.STATUSs.Release.GetValue() && Batch.STATUS != BIZ_MES_WO_BATCH.STATUSs.Working.GetValue())
             {
@@ -166,24 +170,25 @@
                 action.LocaleMsg = new("MES.WorkBatch.WoStatusCanNotWork", WO.ORDER_NO, Batch.STATUS.GetEnumDesc<BIZ_MES_WO.STATUSs>());
             }
             //宸ュ崟鎵规鎶曞叆鏁伴噺鍑忓幓鎶ュ簾鏁伴噺濡傛灉澶т簬绛変簬璁″垝鏁伴噺锛屽垯涓嶅厑璁哥敓浜�
-            var batchInput = WoSNs.Where(q => q.BATCH_NO == Batch.BATCH_NO && BIZ_MES_WO_SN.STATUSs.NotInput.GetValue() < q.STATUS && q.STATUS <= BIZ_MES_WO_SN.STATUSs.Finished.GetValue()).DistinctBy(q => q.WIP_ID).Sum(q => q.QTY);
+            var batchInput = woSNs.Where(q => q.BATCH_NO == Batch.BATCH_NO && BIZ_MES_WO_SN.STATUSs.NotInput.GetValue() < q.STATUS && q.STATUS <= BIZ_MES_WO_SN.STATUSs.Finished.GetValue()).DistinctBy(q => q.WIP_ID).Sum(q => q.QTY);
             if (curNode.IS_FIRST_NODE == "Y" && batchInput >= Batch.PLAN_QTY)
             {
                 action.IsSuccessed = false;
                 action.Data.SetValue(this, null);
                 //action.LocaleMsg = new($"宸ュ崟鎵规[{0}]宸叉姇鍏� {1}锛屽叾涓姤搴� {2}锛屼互婊¤冻璁″垝鏁伴噺[{3}]锛屾棤闇�缁х画鎶曞叆");
-                action.LocaleMsg = new("MES.WorkBatch.BatchInputEnough", Batch.BATCH_NO, batchInput, WoSNs.Where(q => q.BATCH_NO == Batch.BATCH_NO && q.STATUS > BIZ_MES_WO_SN.STATUSs.Finished.GetValue()).DistinctBy(q => q.WIP_ID).Sum(q => q.QTY), Batch.PLAN_QTY);
+                action.LocaleMsg = new("MES.WorkBatch.BatchInputEnough", Batch.BATCH_NO, batchInput, woSNs.Where(q => q.BATCH_NO == Batch.BATCH_NO && q.STATUS > BIZ_MES_WO_SN.STATUSs.Finished.GetValue()).DistinctBy(q => q.WIP_ID).Sum(q => q.QTY), Batch.PLAN_QTY);
             }
             //宸ュ崟鎶曞叆鏁伴噺鍑忓幓鎶ュ簾鏁伴噺濡傛灉澶т簬绛変簬璁″垝鏁伴噺锛屽垯涓嶅厑璁哥敓浜�
-            var woInput = WoSNs.Where(q => q.WORK_ORDER == WO.ORDER_NO && BIZ_MES_WO_SN.STATUSs.NotInput.GetValue() < q.STATUS && q.STATUS <= BIZ_MES_WO_SN.STATUSs.Finished.GetValue()).DistinctBy(q => q.WIP_ID).Sum(q => q.QTY);
+            var woInput = woSNs.Where(q => q.WORK_ORDER == WO.ORDER_NO && BIZ_MES_WO_SN.STATUSs.NotInput.GetValue() < q.STATUS && q.STATUS <= BIZ_MES_WO_SN.STATUSs.Finished.GetValue()).DistinctBy(q => q.WIP_ID).Sum(q => q.QTY);
             if (curNode.IS_FIRST_NODE == "Y" && woInput >= 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, woInput, WoSNs.Where(q => q.WORK_ORDER == WO.ORDER_NO && q.STATUS > BIZ_MES_WO_SN.STATUSs.Finished.GetValue()).DistinctBy(q => q.WIP_ID).Sum(q => q.QTY), WO.PLAN_QTY);
+                action.LocaleMsg = new("MES.WorkBatch.WoInputEnough", WO.ORDER_NO, woInput, woSNs.Where(q => q.WORK_ORDER == WO.ORDER_NO && q.STATUS > BIZ_MES_WO_SN.STATUSs.Finished.GetValue()).DistinctBy(q => q.WIP_ID).Sum(q => q.QTY), WO.PLAN_QTY);
             }
 
+            WoSNs = woSNs;
             return action;
         }
 
@@ -199,7 +204,7 @@
                 WO.STATUS = BIZ_MES_WO.STATUSs.Working.GetValue();
                 WO.ACT_START_TIME = WO.ACT_START_TIME < new DateTime(2000, 1, 1) ? DateTime.Now : WO.ACT_START_TIME;
                 Batch.STATUS = BIZ_MES_WO_BATCH.STATUSs.Working.GetValue();
-                Batch.ACT_START_TIME = WO.ACT_START_TIME < new DateTime(2000, 1, 1) ? DateTime.Now : WO.ACT_START_TIME;
+                Batch.ACT_START_TIME = Batch.ACT_START_TIME < new DateTime(2000, 1, 1) ? DateTime.Now : Batch.ACT_START_TIME;
                 //淇濆瓨鏁版嵁搴�
                 var db = Biz.Db;
                 var dbTran = db.UseTran(() =>
@@ -254,7 +259,7 @@
 
             //鍒ゆ柇褰撳墠宸ュ崟鎵规鏄惁宸插畬宸�
             if (!woSNs.Any(q => q.BATCH_NO == Batch.BATCH_NO && q.STATUS < BIZ_MES_WO_SN.STATUSs.Finished.GetValue()) && 
-                 woSNs.Count(q => q.BATCH_NO == Batch.BATCH_NO && q.STATUS == BIZ_MES_WO_SN.STATUSs.Finished.GetValue()) == Batch.PLAN_QTY)
+                 woSNs.Where(q => q.BATCH_NO == Batch.BATCH_NO && q.STATUS == BIZ_MES_WO_SN.STATUSs.Finished.GetValue()).Sum(q=>q.QTY) == Batch.PLAN_QTY)
             {
                 Batch.STATUS = BIZ_MES_WO_BATCH.STATUSs.Closed.GetValue();
                 Batch.ACT_END_TIME = DateTime.Now;
@@ -262,7 +267,7 @@
 
             //鍒ゆ柇褰撳墠宸ュ崟鏄惁宸插畬宸�
             if (!woSNs.Any(q => q.STATUS < BIZ_MES_WO_SN.STATUSs.Finished.GetValue()) && 
-                 woSNs.Count(q => q.STATUS == BIZ_MES_WO_SN.STATUSs.Finished.GetValue()) == WO.PLAN_QTY)
+                 woSNs.Where(q => q.STATUS == BIZ_MES_WO_SN.STATUSs.Finished.GetValue()).Sum(q => q.QTY) == WO.PLAN_QTY)
             {
                 WO.STATUS = BIZ_MES_WO.STATUSs.Closed.GetValue();
                 WO.ACT_END_TIME = DateTime.Now;
@@ -642,7 +647,7 @@
                             .ExecuteCommand();
                 //MES_WIP_DATA & MES_WIP_HIS
                 var wipHiss = new List<MES_WIP_HIS>();
-                foreach (var wipSN in wipList.Where(q => q.STATUS != MES_WIP_DATA.STATUSs.Offline.GetValue()))
+                foreach (var wipSN in wipList) //.Where(q => q.STATUS != MES_WIP_DATA.STATUSs.Offline.GetValue())
                 {
                     wipSN.STATUS = MES_WIP_DATA.STATUSs.Offline.GetValue();
                     wipSN.TRAY_SN = wipSN.INNER_SN = wipSN.CARTON_SN = wipSN.PALLET_SN = wipSN.SHIPPING_ORDER = null;
@@ -651,6 +656,7 @@
                     wipSN.NODE_ID = "";
                     wipSN.NODE_NAME = "涓嬬嚎閫�搴�";
                     wipSN.OPERATION_TIME = DateTime.Now;
+                    wipSN.OPERATION_END = DateTime.Now;
                     var his = new MES_WIP_HIS(wipSN, $"宸ュ崟[{wipSN.WORK_ORDER}]鏉$爜[{wipSN.SN}]涓嬬嚎");
                     wipHiss.Add(his);
                 }

--
Gitblit v1.9.3