From 2df22d081aa4d3677b474962e9bbc38db8efa536 Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期一, 24 三月 2025 17:08:45 +0800 Subject: [PATCH] Merge branch 'master' of http://47.115.28.255:8110/r/TigerClouds-Tech/Server/TigerApi6_2024 --- Tiger.Business.MES/WorkAction/PackageInputCheck.cs | 77 ++++++++++++++++++++++++++++++++++++-- 1 files changed, 72 insertions(+), 5 deletions(-) diff --git a/Tiger.Business.MES/WorkAction/PackageInputCheck.cs b/Tiger.Business.MES/WorkAction/PackageInputCheck.cs index 8d487a0..0e1f541 100644 --- a/Tiger.Business.MES/WorkAction/PackageInputCheck.cs +++ b/Tiger.Business.MES/WorkAction/PackageInputCheck.cs @@ -17,6 +17,7 @@ { #region Propertys & Variables #region 鍥哄畾鍐欐硶锛屽伐搴忎腑鐨勫繀瑕佷俊鎭� + public DbClient MainDB { get; set; } public bool IsFinished { get; set; } = false; public IWorkStep CurStep { get; set; } public IPosition CurPosition { get; set; } @@ -26,6 +27,7 @@ public MES_CUST_SN FlowCSN { get; set; } public List<mes_MOPickList> MoPickList { get; set; } public BAS_ITEM_CUST CustInfo { get; set; } + public double U9Cost = 0; #endregion Propertys & Variables #region Functions @@ -36,6 +38,7 @@ public void Init(IWorkStep curStep, IPosition position, MES_WO_NODE_ACT nodeAct, MES_WO_ACTION setting) { #region 鍥哄畾鍐欐硶锛岀粰榛樿鍙橀噺璧嬪�� + MainDB = position.MainDB; CurStep = curStep; CurPosition = position; NodeAct = nodeAct; @@ -43,7 +46,7 @@ #endregion //鑾峰彇褰撳墠浜у搧鍦ㄥ綋鍓嶅鎴风殑鍏崇郴 - CustInfo = Biz.Db.Queryable<BAS_ITEM_CUST>().Where(q => q.ITEM_ID == CurPosition.WorkBatch.WO.ItemInfo.ID && q.CUST_CODE == CurPosition.WorkBatch.WO.CUST_CODE).First(); + CustInfo = MainDB.Queryable<BAS_ITEM_CUST>().Where(q => q.ITEM_ID == CurPosition.WorkBatch.WO.ItemInfo.ID && q.CUST_CODE == CurPosition.WorkBatch.WO.CUST_CODE).First(); CurStep.Message = Biz.L("鎵弿鍘傚唴鏉$爜鎴栧鎴锋潯鐮�"); CurStep.Status = StepStatus.Normal; @@ -101,7 +104,23 @@ } var wipSn = CurPosition.CurWipSNs.First(); - FlowCSN = Biz.Db.Queryable<MES_CUST_SN>().Where(q => q.FLOW_SN == wipSn.SN || q.CUST_SN == wipSn.SN).First(); + //鍒ゆ柇褰撳墠鏉$爜鏄惁鍦║9鎶曚骇 + var begin = DateTime.Now; + if (Biz.DataSource["YadaU9C"].Client.Queryable<mes_HisBoxBarCode>().Any(q => q.BarCode == wipSn.SN)) + { + CurStep.Message = Biz.L("鎶曟枡閿欒"); + CurStep.Status = StepStatus.Error; + action.Data.ShortMsg = new("鎶曟枡閿欒", ShortMessage.Types.Failed); + action.IsSuccessed = false; + //action.LocaleMsg = new($"鎶曟枡閿欒锛屾潯鐮乕{0}]宸茬粡鍦║9鏈夋姇浜ц褰曪紝涓嶅厑璁稿湪MES閲嶅鎶曞叆"); + action.LocaleMsg = new("MES.WorkAction.PackageInputCheck.U9HasHistory", wipSn.SN); + //閲嶇疆宸ュ簭鎿嶄綔 + CurPosition.ResetNode(); + return action; + } + U9Cost = (DateTime.Now - begin).TotalSeconds; + + FlowCSN = MainDB.Queryable<MES_CUST_SN>().Where(q => q.FLOW_SN == wipSn.SN || q.CUST_SN == wipSn.SN).First(); //鎵句笉鍒扮敓浜ц褰曪紝璁や负鎵弿閿欒 if (FlowCSN.IsNullOrEmpty()) { @@ -173,11 +192,12 @@ //鏇存柊鍘傚唴娴佺▼鐮� FlowCSN.CUST_CODE = CurPosition.WorkBatch.WO.CUST_CODE; - FlowCSN.WORK_ORDER = CurPosition.WorkBatch.WO.ORDER_NO; - FlowCSN.ITEM_CODE = CurPosition.WorkBatch.WO.ITEM_CODE; + FlowCSN.PKG_ORDER = CurPosition.WorkBatch.WO.ORDER_NO; + FlowCSN.PROD_CODE = CurPosition.WorkBatch.WO.ITEM_CODE; //璁板綍琛屼负鎿嶄綔璁板綍 var wipActs = new List<MES_WIP_ACT>(); + var wipVars = new List<MES_WIP_ACT_VAR>(); var woSns = new List<BIZ_MES_WO_SN>(); var snHiss = new List<MES_WIP_HIS>(); foreach (var wipSn in CurPosition.CurWipSNs) @@ -228,10 +248,55 @@ PRD_CODE = wipSn.PRD_CODE, ACT_TYPE = NodeAct.ACT_TYPE, ACT_SN = wipSn.SN, + ACT_VAR_DIC = CurStep.ActionDic.ToJson(), ACT_RESULT = "Y", - TRACE_INFO = $"鏉$爜[{wipSn.SN}]鍙互鍦ㄥ伐鍗昜{wipSn.WORK_ORDER}]鎶曟枡鐢熶骇", + ELAPSED_TIME = CurStep.GetElapsedTime().TotalMilliseconds.ToInt64(), + TRACE_INFO = $"鏉$爜[{wipSn.SN}]鍙互鍦ㄥ伐鍗昜{wipSn.WORK_ORDER}]鎶曟枡鐢熶骇锛屽叾涓璘9妫�鏌ヨ�楁椂{U9Cost:0.0000}绉�", }; wipActs.Add(wipAct); + foreach (var item in NodeAct.Variables) + { + var wipVar = new MES_WIP_ACT_VAR() + { + AUTH_ORG = CurPosition.WorkBatch.WO.AUTH_ORG, + AUTH_PROD = CurPosition.CurLine.LINE_CODE, + HIS_ID = CurPosition.CurWipSNHiss.First(q => q.SN == wipSn.SN).ID, + WIP_ID = wipSn.ID, + SN = wipSn.SN, + ITEM_CODE = wipSn.ITEM_CODE, + WORK_ORDER = wipSn.WORK_ORDER, + BATCH_NO = wipSn.BATCH_NO, + CUST_CODE = CurPosition.WorkBatch.WO.CUST_CODE, + ROT_CODE = wipSn.ROT_CODE, + NODE_ID = wipSn.NODE_ID, + NODE_NAME = wipSn.NODE_NAME, + ACT_ID = NodeAct.ID, + ACT_NAME = NodeAct.ACT_NAME, + FTY_CODE = wipSn.FTY_CODE, + WS_CODE = wipSn.WS_CODE, + LINE_CODE = wipSn.LINE_CODE, + POST_CODE = wipSn.POST_CODE, + OPER_CODE = wipSn.OPER_CODE, + SEGMENT = wipSn.SEGMENT, + FLOW_SN = wipSn.FLOW_SN, + TRAY_SN = wipSn.TRAY_SN, + INNER_SN = wipSn.INNER_SN, + CARTON_SN = wipSn.CARTON_SN, + PALLET_SN = wipSn.PALLET_SN, + OPERATION_TIME = DateTime.Now, + SFTS_CODE = wipSn.SFTS_CODE, + SFT_CODE = wipSn.SFT_CODE, + PRD_CODE = wipSn.PRD_CODE, + VAR_CODE = item.VAR_CODE, + VAR_NAME = item.VAR_NAME, + VAR_CONTROL = item.VAR_CONTROL, + VALUE_TYPE = item.VALUE_TYPE, + PROCESS_VAR = item.PROCESS_VAR, + INPUT_VALUE = CurStep.ActionDic.GetOrDefault(item.VAR_CODE), + TRACE_INFO = CurStep.ActionDic.ToJson(), + }; + wipVars.Add(wipVar); + } } //鍒涘缓鍙橀噺鍏嬮殕瀵硅薄鐢ㄤ簬浼犲叆DBSubmitAction涓繚瀛樺綋鍓嶉渶瑕佹殏瀛樼殑鏁版嵁鍊� @@ -239,6 +304,7 @@ var _snHiss = snHiss.Clone(); var _woSns = woSns.Clone(); var _wipActs = wipActs.Clone(); + var _wipVars = wipVars.Clone(); var _FlowCSN = FlowCSN.Clone(); //淇濆瓨鏁版嵁 CurStep.DBSubmitAction = () => @@ -248,6 +314,7 @@ db.Storageable(_snHiss, CurPosition.UserCode).ExecuteCommand(); db.Storageable(_woSns, CurPosition.UserCode).ExecuteCommand(); db.Storageable(_wipActs, CurPosition.UserCode).ExecuteCommand(); + db.Storageable(_wipVars, CurPosition.UserCode).ExecuteCommand(); db.Storageable(_FlowCSN, CurPosition.UserCode).ExecuteCommand(); }; -- Gitblit v1.9.3