服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-10-16 869738d1cdf4385203e7a5fc5e4f2735e9840d46
Tiger.Business.MES/WorkAction/PackingAction.cs
@@ -868,36 +868,37 @@
                    if (_pkgList.Any())
                    {
                        db.Storageable(_pkgList, CurPosition.UserCode).ExecuteCommand();
                        foreach (var pkg in _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty()))
                        {
                            //包装信息保存到在制品信息表
                            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.NODE_ID == pkg.NODE_ID)
                                .ExecuteCommand();
                            //包装信息保存到生产行为记录
                            db.Updateable<MES_WIP_ACT>()
                                .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.NODE_ID == pkg.NODE_ID && q.ACT_ID == pkg.ACT_ID)
                                .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 nodeID = _pkgList.First().NODE_ID;
                        var actID = _pkgList.First().ACT_ID;
                        var wo = _pkgList.First().WORK_ORDER;
                        //包装信息保存到在制品信息表
                        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 == wo && wipIDs.Contains(q.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 == wo && q.NODE_ID == nodeID && wipIDs.Contains(q.WIP_ID))
                            .ExecuteCommand();
                        //包装信息保存到生产行为记录
                        db.Updateable<MES_WIP_ACT>()
                            .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))
                            .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 == wo && wipIDs.Contains(q.WIP_ID))
                            .ExecuteCommand();
                    }
                };
            }
@@ -916,36 +917,38 @@
                        if (_pkgList.Any())
                        {
                            db.Storageable(_pkgList, CurPosition.UserCode).ExecuteCommand();
                            foreach (var pkg in _pkgList.Where(q => !q.WIP_ID.IsNullOrEmpty()))
                            {
                                //包装信息保存到在制品信息表
                                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.NODE_ID == pkg.NODE_ID)
                                    .ExecuteCommand();
                                //包装信息保存到生产行为记录
                                db.Updateable<MES_WIP_ACT>()
                                    .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.NODE_ID == pkg.NODE_ID && q.ACT_ID == pkg.ACT_ID)
                                    .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 nodeID = _pkgList.First().NODE_ID;
                            var actID = _pkgList.First().ACT_ID;
                            var wo = _pkgList.First().WORK_ORDER;
                            //包装信息保存到在制品信息表
                            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 == wo && wipIDs.Contains(q.ID))
                                .ExecuteCommand();
                            //包装信息保存到生产过程记录
                            var endOperCode = CurPkg.IsReachedEndNode ? "EndNode" : "NotReachedEndNode";
                            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.NODE_ID == nodeID || q.OPER_CODE == endOperCode) && wipIDs.Contains(q.WIP_ID))
                                .ExecuteCommand();
                            //包装信息保存到生产行为记录
                            db.Updateable<MES_WIP_ACT>()
                                .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))
                                .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 == wo && wipIDs.Contains(q.WIP_ID))
                                .ExecuteCommand();
                        }
                    });
                    //如果当前条码已经完工,检查当前工单批次和工单是否完工