From f0c7f4ba26a8bcb4e551c50d6d9468edb542c063 Mon Sep 17 00:00:00 2001 From: Rodney Chen <rodney.chen@hotmail.com> Date: 星期日, 27 十月 2024 14:07:05 +0800 Subject: [PATCH] 优化手动结束包装支持打印入库标签 --- Tiger.Business.MES/Transaction/Position.cs | 83 +++++++++++++++++++++++++++++------------ 1 files changed, 58 insertions(+), 25 deletions(-) diff --git a/Tiger.Business.MES/Transaction/Position.cs b/Tiger.Business.MES/Transaction/Position.cs index 21362c9..415cecb 100644 --- a/Tiger.Business.MES/Transaction/Position.cs +++ b/Tiger.Business.MES/Transaction/Position.cs @@ -62,6 +62,7 @@ public WorkBatch CurBatch { get; set; } public IWorkBatch WorkBatch => CurBatch; public List<MES_WIP_DATA> CurWipSNs { get; set; } = new(); + public List<MES_WIP_DATA> LastWipSNs { get; set; } = new(); public string CurSN => (CurWipSNs.Any() ? (CurWipSNs.First().TRAY_SN.IsNullOrEmpty() ? CurWipSNs.First().SN : CurWipSNs.First().TRAY_SN) : ""); public List<MES_WIP_HIS> CurWipSNHiss { get; set; } = new(); public List<MES_WIP_DFT> CurDefects { get; set; } = new(); @@ -479,6 +480,9 @@ throw dbTran.ErrorException; } } + //璁板綍鏈�鍚庢垚鍔熻繃绔欑殑鏉$爜 + LastWipSNs.Clear(); + LastWipSNs.AddRange(CurWipSNs); } protected void DoSaveToDB() @@ -538,7 +542,7 @@ /// <param name="labelPVs">杩囩▼鍙橀噺鍒楄〃</param> /// <param name="lv">鏍囩妯℃澘鍙橀噺</param> /// <returns></returns> - public string GetPrintProcessValue(List<BAS_LABEL_PV> labelPVs, BAS_LABEL_VAR lv, List<BAS_LABEL_VAR> lvars, IWorkAction action) + public string GetPrintProcessValue(List<BAS_LABEL_PV> labelPVs, BAS_LABEL_VAR lv, List<BAS_LABEL_VAR> lvars, IWorkAction curAction) { var pv = labelPVs.FirstOrDefault(q => q.VAR_CODE == lv.VAR_VALUE); if (!pv.IsNullOrEmpty()) @@ -552,34 +556,38 @@ case "GetSN": return CurSN; case "GetBAS_ITEM": - return WorkBatch.Product.CUST_PROD_CODE; + return GetLabelVarWo(lv, WorkBatch.Product.CUST_PROD_CODE); case "GetItemName": - return WorkBatch.Product.ITEM_NAME; + return GetLabelVarWo(lv, WorkBatch.Product.ITEM_NAME); case "GetCustomer": - return WorkBatch.Batch.Customer.ToJson(); + return GetLabelVarWo(lv, WorkBatch.Batch.Customer.ToJson()); + case "GetSalesOrder": + return GetLabelVarWo(lv, WorkBatch.WO.SALES_ORDER); + case "GetPackNumber": + return GetLabelVarWo(lv, WorkBatch.WO.ORDER_NO); case "GetBoxQR": - return action is PackingAction ? GetBoxCode(lvars, action as PackingAction) : ""; + return curAction is PackingAction ? GetBoxCode(lvars, curAction as PackingAction) : ""; case "GetCardQR": - return action is PackingAction ? GetCardOrBoxQR(GetCardCode(lvars), lvars, action as PackingAction) : ""; + return curAction is PackingAction ? GetCardOrBoxQR(GetCardCode(lvars), lvars, curAction as PackingAction) : ""; case "GetCardSN": List<string> minPkgList = new List<string>(); - var _pkaction = action is PackingAction ? action as PackingAction : null; + var _pkaction = curAction is PackingAction ? curAction as PackingAction : null; if (_pkaction != null) { minPkgList = GetMinPkgList(_pkaction); } return string.Join("\r\n", minPkgList); case "GetDescription": - return WorkBatch.Product.ITEM_DESC; + return GetLabelVarWo(lv, WorkBatch.Product.ITEM_DESC); case "GetFengZ": - return WorkBatch.Product.ExtInfo.Packaging; + return GetLabelVarWo(lv, WorkBatch.Product.ExtInfo.Packaging); case "GetPAndO": - return WorkBatch.WO.SALES_CONTRACT; + return GetLabelVarWo(lv, WorkBatch.WO.SALES_CONTRACT); case "GetLTD": - return WorkBatch.WO.Customer?.CUST_NAME_CN; + return GetLabelVarWo(lv, WorkBatch.WO.Customer?.CUST_NAME_CN); case "GetHWDate": List<string> list = new List<string>(); - var _action = action is PackingAction ? action as PackingAction : null; + var _action = curAction is PackingAction ? curAction as PackingAction : null; if (_action != null) { list = GetMinPkgList(_action); @@ -587,7 +595,7 @@ return GetHuaWeiWeek(WorkBatch.Batch.ORDER_NO, list); case "GetQty": List<string> qtylist = new List<string>(); - var _qtyAction = action is PackingAction ? action as PackingAction : null; + var _qtyAction = curAction is PackingAction ? curAction as PackingAction : null; if (_qtyAction != null) { qtylist = GetMinPkgList(_qtyAction); @@ -607,7 +615,7 @@ return GetLabelVarWo(lv, ""); case "GetLOTNO": string _lotnos = ""; - var _orderAction = action is PackingAction ? action as PackingAction : null; + var _orderAction = curAction is PackingAction ? curAction as PackingAction : null; if (_orderAction != null) { var snList = _orderAction.GetMinPackageList(_orderAction.CurPkg.Item).Select(q => q.FLOW_SN).ToList(); @@ -622,7 +630,7 @@ } return ""; case "GetNOTES": - return WorkBatch.Product.ExtInfo?.Remark; + return GetLabelVarWo(lv, WorkBatch.Product.ExtInfo?.Remark); case "GetXH": return GetCardCode(lvars); case "GetCardNo": @@ -630,9 +638,9 @@ case "GetCardTotal": return ""; case "GetModelSpec": //Model+绌烘牸+SPEC, - return $"{WorkBatch.Product.ExtInfo?.Model} {WorkBatch.Product.SPEC}"; + return GetLabelVarWo(lv, $"{WorkBatch.Product.ExtInfo?.Model} {WorkBatch.Product.SPEC}"); case "GetDATE": - return $"{DateTime.Now.ToString("yyyy/MM/dd")}"; + return GetLabelVarWo(lv, $"{DateTime.Now.ToString("yyyy/MM/dd")}"); default: return ""; } @@ -695,7 +703,7 @@ } else { - result = value.IsNullOrEmpty() ? (labelVarwos.Count > 0 ? labelVarwos.First().DEFAULT_VALUE : "") : value; + result = value.IsNullOrEmpty() ? (labelVarwos.Count > 0 ? labelVarwos.First(q => q.WORK_ORDER.IsNullOrEmpty()).DEFAULT_VALUE : "") : value; } return result; } @@ -758,13 +766,13 @@ var itemCode = action.CurPkg.CustSN?.ITEM_CODE; var weight = action.CurPkg.WeightInfo.Weight; var unit = action.CurPkg.WeightInfo.Unit.ToUpper(); - var model = WorkBatch.Product.ExtInfo.Model; - var Input = WorkBatch.Product.ExtInfo.Input; - var OutPut = WorkBatch.Product.ExtInfo.OutPut; - var Power = WorkBatch.Product.ExtInfo.Power; - var Accuracy = WorkBatch.Product.ExtInfo.Accuracy; - var Display = WorkBatch.Product.ExtInfo.Display; - var Remark = WorkBatch.Product.ExtInfo.Remark; + var model = WorkBatch.Product.ExtInfo?.Model; + var Input = WorkBatch.Product.ExtInfo?.Input; + var OutPut = WorkBatch.Product.ExtInfo?.OutPut; + var Power = WorkBatch.Product.ExtInfo?.Power; + var Accuracy = WorkBatch.Product.ExtInfo?.Accuracy; + var Display = WorkBatch.Product.ExtInfo?.Display; + var Remark = WorkBatch.Product.ExtInfo?.Remark; return $"{code}|{itemCode}|{wo}|\r\n{snList}|{weight}{unit}|鍨嬪彿:{model},杈撳叆:{Input},鏄剧ず:{Display},杈撳嚭:{OutPut},鐢垫簮:{Power},绮惧害:{Accuracy},澶囨敞:{Remark}"; } @@ -812,6 +820,31 @@ } } #endregion + #region 鏉$爜瑙勫垯鏂规硶 + /// <summary> + /// 鑾峰彇鏍规嵁鏉$爜瑙勫垯鐢熸垚鏉$爜 + /// </summary> + /// <param name="ruleCode"></param> + /// <param name="curAction"></param> + /// <returns></returns> + public string GenerateSN(string ruleCode, IWorkAction curAction) + { + var rule = Biz.CodeRule[ruleCode ?? ""]; + if (!rule.IsNullOrEmpty()) + { + switch (rule.RULE_CODE) + { + case "WhiteBoxNo": + return rule.Generate("W", $"{WorkBatch.Batch.BATCH_NO}-{WorkBatch.Batch.PLAN_QTY}-").Data.ToString() ?? ""; + case "CartonNo": + return rule.Generate("B", $"{WorkBatch.Batch.BATCH_NO}-{WorkBatch.Batch.PLAN_QTY}-").Data.ToString() ?? ""; + default: + return rule.Generate().Data.ToString() ?? ""; + } + } + return ""; + } + #endregion #region 鍖呰涓撶敤鏂规硶 /// <summary> /// 鏍规嵁浼犲叆鐨勫寘瑁呭璞¤繑鍥炴墍鏈夌殑鍖呰瀹炰綋鍒楄〃 -- Gitblit v1.9.3