服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-10-18 c827cf7fe5e4561dbb8424f6d423200f2f03caa4
Tiger.Business.MES/Transaction/PackingNode.cs
@@ -89,7 +89,7 @@
                                info.InputQty = CurOperInfo(input.Locale).InputQty;
                                action.Data.OperInfo = info;
                            }
                            else if (!IsFinishAllSteps)
                            else if (Steps.Any() && !IsFinishAllSteps)
                            {
                                action.Data.OperInfo = SetOperNodeInfo(CurOperInfo(input.Locale));
                            }
@@ -114,13 +114,14 @@
                                    action.LocaleMsg = new("MES.Transaction.PackingNode.Submit.OnlyMinPackage", input.SN);
                                    return action;
                                }
                                if (Context.ContainsKey("CurPackage") && !Context["CurPackage"].IsNullOrEmpty() && (Context["CurPackage"] as WipPkg).WorkBatch != curSNs.First().Batch.BATCH_NO)
                                var curPkg = Context.ContainsKey("CurPackage") ? Context["CurPackage"] as WipPkg : null;
                                if (!curPkg.IsNullOrEmpty() && !curPkg.IsFinished && curPkg.WorkBatch != curSNs.First().Batch.BATCH_NO)
                                {
                                    action.Data.ShortMsg = new("工单批次错误", ShortMessage.Types.Error);
                                    action.Data.OperInfo = new();
                                    action.IsSuccessed = false;
                                    //action.LocaleMsg = new($"正在包装工单批次[{0}]的产品,请先完成当前包装后再扫描其他批次[{1}]的产品[{2}]");
                                    action.LocaleMsg = new("MES.Transaction.PackingNode.Submit.BatchError", (Context["CurPackage"] as WipPkg).WorkBatch, curSNs.First().Batch.BATCH_NO, input.SN);
                                    action.LocaleMsg = new("MES.Transaction.PackingNode.Submit.BatchError", curPkg.WorkBatch, curSNs.First().Batch.BATCH_NO, input.SN);
                                    return action;
                                }
                                if (curSNs.First().Batch.ACT_LINE != CurLine.LINE_CODE)
@@ -476,7 +477,7 @@
                    CurWipSNHiss.Clear();
                    foreach (var wipSN in wipSNs)
                    {
                        var his = new MES_WIP_HIS(wipSN, $"工单[{wipSN.WORK_ORDER}]条码[{wipSN.SN}]在岗位[{wipSN.POST_CODE}]过站工序[{wipSN.NODE_NAME}]成功");
                        var his = new MES_WIP_HIS(wipSN, $"工单[{wipSN.WORK_ORDER}]条码[{wipSN.SN}]在岗位[{wipSN.POST_CODE}]过站工序[{wipSN.NODE_NAME}]成功(TransId:{TransID})");
                        wipSN.History.Add(his);
                        CurWipSNHiss.Add(his);
                    }
@@ -649,6 +650,7 @@
                    wipSN.NODE_NAME = curNode.NODE_NAME;
                    wipSN.OPER_CODE = curNode.OPER_CODE;
                    wipSN.SEGMENT = curNode.SEGMENT;
                    wipSN.OPERATION_TIME = DateTime.Now;
                }
                var wipHiss = new List<MES_WIP_HIS>();
@@ -670,34 +672,20 @@
                    //使用统一的事务DB对象
                    var db = GetCommitDB();
                    //数据保存逻辑
                    db.Storageable(_woSns, UserCode).ExecuteCommand();
                    db.Storageable(_wipSns, UserCode).ExecuteCommand();
                    db.Updateable(_woSns, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS }).ExecuteCommand();
                    db.Updateable(_wipSns, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS, q.NODE_ID, q.NODE_NAME, q.OPER_CODE, q.SEGMENT, q.OPERATION_TIME }).ExecuteCommand();
                    db.Storageable(_wipHiss, UserCode).ExecuteCommand();
                    if (_pkgList.Any())
                    {
                        foreach (var pkg in _pkgList)
                        {
                            ////包装信息保存到在制品信息表
                            //db.Updateable<MES_WIP_DATA>()
                            //    .SetColumns(q => q.TRAY_SN == curPkg.Item.Package.SN)
                            //    .SetColumns(q => q.INNER_SN == q.CARTON_SN)
                            //    .SetColumns(q => q.CARTON_SN == curPkg.Item.Package.SN)
                            //    .Where(q => q.WORK_ORDER == pkg.WORK_ORDER && q.ID == pkg.WIP_ID)
                            //    .ExecuteCommand();
                            //包装信息保存到生产过程记录
                            db.Updateable<MES_WIP_HIS>()
                                .SetColumns(q => q.TRAY_SN == curPkg.Item.Package.SN)
                                .SetColumns(q => q.INNER_SN == q.CARTON_SN)
                                .SetColumns(q => q.CARTON_SN == curPkg.Item.Package.SN)
                                .Where(q => q.WORK_ORDER == pkg.WORK_ORDER && q.WIP_ID == pkg.WIP_ID && q.OPER_CODE == "EndNode")
                                .ExecuteCommand();
                            ////包装信息保存到工单条码明细表
                            //db.Updateable<BIZ_MES_WO_SN>()
                            //    .SetColumns(q => q.TRAY_SN == curPkg.Item.Package.SN)
                            //    .SetColumns(q => q.OUTER_SN == curPkg.Item.Package.SN)
                            //    .Where(q => q.WORK_ORDER == pkg.WORK_ORDER && q.WIP_ID == pkg.WIP_ID)
                            //    .ExecuteCommand();
                        }
                        var wipIDs = _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty()).Select(q => q.WIP_ID).ToList();
                        var wo = _pkgList.First().WORK_ORDER;
                        //包装信息保存到生产过程记录
                        db.Updateable<MES_WIP_HIS>()
                            .SetColumns(q => q.TRAY_SN == curPkg.Item.Package.SN)
                            .SetColumns(q => q.INNER_SN == q.CARTON_SN)
                            .SetColumns(q => q.CARTON_SN == curPkg.Item.Package.SN)
                            .Where(q => q.WORK_ORDER == wo && q.OPER_CODE == "EndNode" && wipIDs.Contains(q.WIP_ID))
                            .ExecuteCommand();
                    }
                };
            }