From cf2d2398c62f5e13049d3ee92ffc12aa79cbfee5 Mon Sep 17 00:00:00 2001
From: Rodney Chen <rodney.chen@hotmail.com>
Date: 星期四, 15 八月 2024 09:48:12 +0800
Subject: [PATCH] WoContext增加获取SN的下一个工序节点列表方法

---
 Tiger.Business/MES/WoContext.cs |   65 ++++++++++++++++++++++++++++++++
 1 files changed, 65 insertions(+), 0 deletions(-)

diff --git a/Tiger.Business/MES/WoContext.cs b/Tiger.Business/MES/WoContext.cs
index f0184b1..afd8333 100644
--- a/Tiger.Business/MES/WoContext.cs
+++ b/Tiger.Business/MES/WoContext.cs
@@ -1,11 +1,14 @@
 锘縰sing Microsoft.AspNetCore.Http;
 using Rhea.Common;
+using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
 using Tiger.IBusiness;
+using Tiger.Model;
+using Tiger.Model.Entitys.MES.Position;
 using static Tiger.Business.Biz;
 
 namespace Tiger.Business.MES
@@ -87,6 +90,68 @@
                 return false;
             }
         }
+
+        /// <summary>
+        /// 鑾峰彇SN鐨勪笅涓�涓伐搴忚妭鐐瑰垪琛�
+        /// </summary>
+        /// <param name="sn"></param>
+        /// <returns></returns>
+        public static ApiAction<List<MES_WO_NODE>> GetSnNextNodes(string sn)
+        {
+            var action = new ApiAction<List<MES_WO_NODE>>(new List<MES_WO_NODE>());
+            try
+            {
+                var wipSNs = Biz.Db.Queryable<MES_WIP_DATA>().IncludesAllFirstLayer().Where(q => (q.SN == sn || q.FLOW_SN == sn || q.TRAY_SN == sn || q.INNER_SN == sn || q.CARTON_SN == sn || q.PALLET_SN == sn)).ToList();
+                if (wipSNs.IsNullOrEmpty())
+                {
+                    var woSNs = Biz.Db.Queryable<BIZ_MES_WO_SN>().Where(q => (q.SN == sn || q.TRAY_SN == sn || q.OUTER_SN == sn)).ToList();
+                    //鏌ユ壘鍒版潯鐮佸凡缁戝畾鐨勫伐鍗�
+                    if (!woSNs.IsNullOrEmpty())
+                    {
+                        foreach (var woSN in woSNs)
+                        {
+                            var wipSN = new MES_WIP_DATA()
+                            {
+                                SN = sn,
+                                FLOW_SN = sn,
+                                STATUS = MES_WIP_DATA.STATUSs.Init.GetValue(),
+                                ITEM_CODE = woSN.ITEM_CODE,
+                                WORK_ORDER = woSN.WORK_ORDER,
+                                BATCH_NO = woSN.BATCH_NO,
+                                HOLD_FLAG = "N",
+                                FINISHED_FLAG = "N",
+                                INV_FLAG = "N",
+                                DFT_FLAG = "N",
+                                DFT_COUNT = 0,
+                            };
+                            wipSNs.Add(wipSN);
+                        }
+                    }
+                }
+                if (wipSNs.IsNullOrEmpty())
+                {
+                    action.IsSuccessed = false;
+                    //action.LocaleMsg = new($"鎵句笉鍒版潯鐮乕{sn}]鐨勭敓浜т俊鎭�", sn);
+                    action.LocaleMsg = new("MES.WoContext.SnNotFound", sn);
+                }
+                else
+                {
+                    if (!WoBatchDic.Any(q => q.Value.WO.ORDER_NO == wipSNs.First().WORK_ORDER))
+                    {
+                        var wb = new WorkBatch(wipSNs.First().WORK_ORDER).Init("");
+                        WoBatchDic.Add(wb.Batch.BATCH_NO, wb);
+                    }
+                    var wo = WoBatchDic.FirstOrDefault(q => q.Value.WO.ORDER_NO == wipSNs.First().WORK_ORDER).Value;
+                    action.Data = wo.GetNextNodes(wipSNs.First());
+                }
+            }
+            catch (Exception ex)
+            {
+                //action.CatchExceptionWithLog(ex, $"鑾峰彇鏉$爜[{sn}]鐨勪笅涓�涓伐搴忚妭鐐瑰垪琛ㄥ紓甯�");
+                action.CatchExceptionWithLog(ex, Biz.L("MES.WoContext.GetSnNextNodesException"));
+            }
+            return action;
+        }
         #endregion
     }
 }

--
Gitblit v1.9.3