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