服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-11-20 e8710d52e1b63dd6f640054aa92a496247edbb08
Tiger.Business.MES/WorkAction/PackingAction.cs
@@ -571,7 +571,7 @@
                    CurPkgItem.Package.WIP_ID = CurPosition.CurWipSNs.Count == 1 ? CurPosition.CurWipSNs.First().ID : null;
                    CurPkgItem.Package.PKG_TYPE = dtl.PkgType.PKG_NAME;
                    CurPkgItem.Package.ITEM_CODE = CurPosition.CurWipSNs.First().ITEM_CODE;
                    CurPkgItem.Package.QTY = CurPosition.CurWipSNs.First().QTY;
                    CurPkgItem.Package.QTY = CurPosition.CurWipSNs.Sum(q => q.QTY);
                    CurPkgItem.Package.UNIT = dtl.PkgType.PKG_NAME;
                    CurPkgItem.Package.WORK_ORDER = CurPosition.CurWipSNs.First().WORK_ORDER;
                    CurPkgItem.Package.BATCH_NO = CurPosition.CurWipSNs.First().BATCH_NO;
@@ -882,7 +882,8 @@
                //创建变量克隆对象用于传入DBSubmitAction中保存当前需要暂存的数据值
                var _wipActs = wipActs.Clone();
                var _pkgList = CurPkg.IsFinished ? CurPosition.GetPackageList(CurPkg.Item) : new();
                var _pkgList = CurPkg.IsFinished ? CurPosition.GetPackageList(CurPkg.Item).Clone() : new();
                var _wipIDs = CurPkg.IsFinished ? CurPkg.Item.GetWipSnList().Select(q => q.Key).ToList().Clone() : new();
                //保存数据
                CurStep.DBSubmitAction = () =>
                {
@@ -894,7 +895,7 @@
                    if (_pkgList.Any())
                    {
                        db.Storageable(_pkgList, CurPosition.UserCode).ExecuteCommand();
                        var wipIDs = _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty()).Select(q => q.WIP_ID).ToList();
                        //var wipIDs = _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty()).Select(q => q.WIP_ID).ToList();
                        var nodeID = _pkgList.First().NODE_ID;
                        var actID = _pkgList.First().ACT_ID;
                        var wo = _pkgList.First().WORK_ORDER;
@@ -903,27 +904,27 @@
                            .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 && wipIDs.Contains(q.ID))
                            .Where(q => q.WORK_ORDER == wo && _wipIDs.Contains(q.ID))
                            .ExecuteCommand();
                        //包装信息保存到生产过程记录
                        db.Updateable<MES_WIP_HIS>(CurPosition.UserCode)
                            .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.NODE_ID == nodeID && wipIDs.Contains(q.WIP_ID))
                            .Where(q => q.WORK_ORDER == wo && q.NODE_ID == nodeID && _wipIDs.Contains(q.WIP_ID))
                            .ExecuteCommand();
                        //包装信息保存到生产行为记录
                        db.Updateable<MES_WIP_ACT>(CurPosition.UserCode)
                            .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.NODE_ID == nodeID && q.ACT_ID == actID && wipIDs.Contains(q.WIP_ID))
                            .Where(q => q.WORK_ORDER == wo && q.NODE_ID == nodeID && q.ACT_ID == actID && _wipIDs.Contains(q.WIP_ID))
                            .ExecuteCommand();
                        //包装信息保存到工单条码明细表
                        db.Updateable<BIZ_MES_WO_SN>(CurPosition.UserCode)
                            .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN)
                            .SetColumns(q => q.OUTER_SN == CurPkg.Item.Package.SN)
                            .Where(q => q.WORK_ORDER == wo && wipIDs.Contains(q.WIP_ID))
                            .Where(q => q.WORK_ORDER == wo && _wipIDs.Contains(q.WIP_ID))
                            .ExecuteCommand();
                    }
                };
@@ -933,6 +934,7 @@
                if (CurPkg.IsFinished)
                {
                    var _pkgList = CurPosition.GetPackageList(CurPkg.Item).Clone();
                    var _wipIDs = CurPkg.Item.GetWipSnList().Select(q => q.Key).ToList().Clone();
                    var _lastWipID = CurPosition.LastWipSNs?.FirstOrDefault()?.ID;
                    //最外层包装已经完成包装,则把工序中暂存标记设为false,统一提交包装内产品的过站记录
@@ -944,7 +946,7 @@
                        if (_pkgList.Any())
                        {
                            db.Storageable(_pkgList, CurPosition.UserCode).ExecuteCommand();
                            var wipIDs = _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty()).Select(q => q.WIP_ID).ToList();
                            //var wipIDs = _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty()).Select(q => q.WIP_ID).ToList();
                            var nodeID = _pkgList.First(q => !q.WIP_ID.IsNullOrEmpty()).NODE_ID;
                            var actID = _pkgList.First(q => !q.WIP_ID.IsNullOrEmpty()).ACT_ID;
                            var wo = _pkgList.First(q => !q.WIP_ID.IsNullOrEmpty()).WORK_ORDER;
@@ -953,7 +955,7 @@
                                .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 && wipIDs.Contains(q.ID))
                                .Where(q => q.WORK_ORDER == wo && _wipIDs.Contains(q.ID))
                                .ExecuteCommand();
                            //包装信息保存到生产过程记录
                            var endOperCode = CurPkg.IsReachedEndNode ? "EndNode" : "NotReachedEndNode";
@@ -961,14 +963,14 @@
                                .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.NODE_ID == nodeID || q.OPER_CODE == endOperCode) && wipIDs.Contains(q.WIP_ID))
                                .Where(q => q.WORK_ORDER == wo && (q.NODE_ID == nodeID || q.OPER_CODE == endOperCode) && _wipIDs.Contains(q.WIP_ID))
                                .ExecuteCommand();
                            //包装信息保存到生产行为记录
                            db.Updateable<MES_WIP_ACT>(CurPosition.UserCode)
                                .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.NODE_ID == nodeID && q.ACT_ID == actID && wipIDs.Contains(q.WIP_ID))
                                .Where(q => q.WORK_ORDER == wo && q.NODE_ID == nodeID && q.ACT_ID == actID && _wipIDs.Contains(q.WIP_ID))
                                .ExecuteCommand();
                            db.Updateable<MES_WIP_ACT>(CurPosition.UserCode)
                                .SetColumns(q => q.ACT_VALUE_1 == (CurPkg.IsFinished ? "Y" : "N"))
@@ -989,7 +991,7 @@
                            db.Updateable<BIZ_MES_WO_SN>(CurPosition.UserCode)
                                .SetColumns(q => q.TRAY_SN == CurPkg.Item.Package.SN)
                                .SetColumns(q => q.OUTER_SN == CurPkg.Item.Package.SN)
                                .Where(q => q.WORK_ORDER == wo && wipIDs.Contains(q.WIP_ID))
                                .Where(q => q.WORK_ORDER == wo && _wipIDs.Contains(q.WIP_ID))
                                .ExecuteCommand();
                        }
                    });