| | |
| | | /// <summary> |
| | | /// 保存工步的数据库提交操作到数据库 |
| | | /// </summary> |
| | | protected void SaveStepsCommitActionToDB() |
| | | /// <param name="appendToSave">提交完工步数据后,提交附加的保存内容</param> |
| | | public void SaveStepsCommitActionToDB(Action appendToSave = null) |
| | | { |
| | | //保存工步的数据库提交操作到提交操作列表 |
| | | var commitList = new List<Action>(); |
| | | foreach (var step in Steps.OrderBy(q => q.Sequence)) |
| | | if (!Steps.IsNullOrEmpty()) |
| | | { |
| | | commitList.Add(step.DBSubmitAction); |
| | | var commitList = new List<Action>(); |
| | | foreach (var step in Steps.OrderBy(q => q.Sequence)) |
| | | { |
| | | commitList.Add(step.DBSubmitAction); |
| | | } |
| | | //记录工序耗时 |
| | | commitList.Add(() => |
| | | { |
| | | EndAt = DateTime.Now; |
| | | var ids = CurWipSNHiss.Select(q => q.ID).ToList(); |
| | | GetCommitDB().Updateable<MES_WIP_HIS>().SetColumns(q => q.ELAPSED_TIME == ElapsedTime.TotalMilliseconds.ToInt64()).Where(q => ids.Contains(q.ID)).ExecuteCommand(); |
| | | }); |
| | | //增加附加的保存内容 |
| | | if (!appendToSave.IsNullOrEmpty()) |
| | | { |
| | | commitList.Add(appendToSave); |
| | | } |
| | | DBCommitList.Add(CurSN, commitList); |
| | | } |
| | | DBCommitList.Add(CurSN, commitList); |
| | | else |
| | | { |
| | | //增加附加的保存内容 |
| | | if (!appendToSave.IsNullOrEmpty()) |
| | | { |
| | | if (!DBCommitList.ContainsKey("AppendSaveAction")) |
| | | { |
| | | DBCommitList.Add("AppendSaveAction", new List<Action>()); |
| | | } |
| | | var commitList = DBCommitList["AppendSaveAction"]; |
| | | commitList.Add(appendToSave); |
| | | } |
| | | } |
| | | |
| | | //如果不需要临时存储数据库提交操作,则把提交操作列表提交到数据库 |
| | | if (!NeedTemporaryStoreDBCommitAction) |
| | | { |
| | |
| | | var dbTran = GetCommitDB().UseTran(() => |
| | | { |
| | | //在同一个事务中保存所有工步的数据 |
| | | foreach (var wipSn in DBCommitList.Keys) |
| | | foreach (var wipSn in DBCommitList.Keys.Where(q => q != "AppendSaveAction")) |
| | | { |
| | | foreach (var action in DBCommitList[wipSn]) |
| | | { |
| | | action.Invoke(); |
| | | } |
| | | } |
| | | //记录工序耗时 |
| | | EndAt = DateTime.Now; |
| | | var ids = CurWipSNHiss.Select(q => q.ID).ToList(); |
| | | GetCommitDB().Updateable<MES_WIP_HIS>().SetColumns(q => q.ELAPSED_TIME == ElapsedTime.TotalMilliseconds.ToInt64()).Where(q => ids.Contains(q.ID)).ExecuteCommand(); |
| | | //附加的保存内容 |
| | | if (DBCommitList.ContainsKey("AppendSaveAction")) |
| | | { |
| | | foreach (var action in DBCommitList["AppendSaveAction"]) |
| | | { |
| | | action.Invoke(); |
| | | } |
| | | } |
| | | }); |
| | | if (dbTran.IsSuccess) |
| | | { |
| | |
| | | case "GetBAS_ITEM": |
| | | return WorkBatch.Product.CUST_PROD_CODE; |
| | | case "GetCustomer": |
| | | return WorkBatch.Batch.ToJson(); |
| | | return WorkBatch.Batch.Customer.ToJson(); |
| | | case "GetBoxQR": |
| | | return action is PackingAction ? GetBoxCode(lvars, action as PackingAction) : ""; |
| | | case "GetCardQR": |
| | | return action is PackingAction ? GetCardCode(lvars, action as PackingAction) : ""; |
| | | case "GetDescription": |
| | | return WorkBatch.Product.ITEM_DESC; |
| | | return WorkBatch.Product.ExtInfo.Packaging; //WorkBatch.Product.ITEM_DESC; |
| | | case "GetPAndO": |
| | | return WorkBatch.WO.SALES_CONTRACT; |
| | | case "GetLTD": |
| | |
| | | switch (pv.VAR_METHOD) |
| | | { |
| | | case "GetCartonGenerate": |
| | | return Biz.CodeRule[lv.BARCODE_RULE ?? ""]?.Generate($"{WorkBatch.Batch.BATCH_NO}-{WorkBatch.Batch.PLAN_QTY}-").Data.ToString() ?? ""; |
| | | return Biz.CodeRule[lv.BARCODE_RULE ?? ""]?.Generate("B", $"{WorkBatch.Batch.BATCH_NO}-{WorkBatch.Batch.PLAN_QTY}-").Data.ToString() ?? ""; |
| | | case "GetHW21SNGenerate": |
| | | return Biz.CodeRule[lv.BARCODE_RULE ?? ""]?.Generate("SN:", "05").Data.ToString() ?? ""; |
| | | default: |
| | |
| | | /// <returns></returns> |
| | | private string GetBoxCode(List<BAS_LABEL_VAR> lvars, PackingAction action) |
| | | { |
| | | return GetCardOrBoxQR(CurSN, lvars, action); |
| | | var boxCode = Biz.CodeRule["WhiteBoxNo"]?.Generate("W", $"{WorkBatch.Batch.BATCH_NO}-{WorkBatch.Batch.PLAN_QTY}-").Data.ToString() ?? ""; |
| | | return GetCardOrBoxQR(boxCode, lvars, action); |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// <returns></returns> |
| | | private string GetCardCode(List<BAS_LABEL_VAR> lvars, PackingAction action) |
| | | { |
| | | var cardCode = lvars.First(q=>q.VAR_NAME == "CardQR").Value; |
| | | var cardCode = Biz.CodeRule["CartonNo"]?.Generate("B", $"{WorkBatch.Batch.BATCH_NO}-{WorkBatch.Batch.PLAN_QTY}-").Data.ToString() ?? "" ; |
| | | return GetCardOrBoxQR(cardCode, lvars, action); |
| | | } |
| | | |
| | |
| | | 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}|型号:{model},输入:{Input},输出:{OutPut},电源:{Power},精度:{Accuracy},备注:{Remark}"; |
| | | return $"{code}|{itemCode}|{wo}|\r\n{snList}|{weight}{unit}|型号:{model},输入:{Input},显示:{Display},输出:{OutPut},电源:{Power},精度:{Accuracy},备注:{Remark}"; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | this.IsFinished = true; |
| | | return IsFinished ? base.Close(needSaveHistoryLog) : IsFinished; |
| | | } |
| | | |
| | | }//endClass |
| | | } |