服务端的TigerApi 框架,基于.NET6 2024 版本
Ben Lin
2025-01-10 dc203bafb60dc9985c805c6a4ec5f8018f3d3cf6
Tiger.Business.WMS/Transaction/In_Default.cs
@@ -48,7 +48,7 @@
        /// </summary>
        public async Task<ApiAction<ScanOutput>> Scan(BaseInput input)
        {
            var action = new ApiAction<ScanOutput>();
            var action = new ApiAction<ScanOutput>(new ScanOutput());
            try
            {
                if (input.SN.IsNullOrEmpty())
@@ -61,7 +61,7 @@
                //判断扫描的是否货架
                var whUnit = await Biz.Db.Queryable<V_WH_UNIT>().Where(t => (t.SHELF_CODE.ToUpper() == input.SN || t.LOCATION_CODE.ToUpper() == input.SN) && t.AUTH_ORG == OrgCode).IncludesAllFirstLayer().FirstAsync();
                //if (string.IsNullOrEmpty(CurScanShelf?.ShelfCode))
                if (!whUnit.IsNullOrEmpty())
                if (!whUnit.IsNullOrEmpty() || string.IsNullOrEmpty(CurScanShelf?.ShelfCode))
                {
                    action = await ScanShelf(input.SN, whUnit);
                }
@@ -90,7 +90,8 @@
            {
                if (CurInvItem.IsNullOrEmpty())
                {
                   Result<IInventory> result = WMS_ITEM_Biz.WmsItem.Get(input.SN, input.AuthOption, true);
                    //解析条码
                    Result<IInventory> result = WMS_ITEM_Biz.WmsItem.Get(input.SN, input.AuthOption, true);
                   if (!result.IsSuccessed)
                   {
                       action.IsSuccessed = false;
@@ -186,23 +187,23 @@
                            item.AUTH_ORG = input.AuthOption.CurOrg;
                        }
                    }
                    CurInvItem = inv;
                    //检查物料数量,如果没有则查询雅达条码主档,把数量返回前端确认
                    if (inv.Items.Any(q => q.QTY <= 0))
                    if (CurInvItem.Items.Any(q => q.QTY <= 0))
                    {
                        var qtyList = Biz.DataSource["YadaU9C"].Client.Queryable<mes_MaterialBarCode>().Where(q => inv.Items.Select(q => q.SN).Contains(q.Code)).ToList();
                        var qtyList = Biz.DataSource["YadaU9C"].Client.Queryable<mes_MaterialBarCode>().Where(q => CurInvItem.Items.Select(q => q.SN).Contains(q.Code)).ToList();
                        foreach (var qty in qtyList)
                        {
                            var item = inv.Items.First(q => q.SN == qty.Code);
                            var item = CurInvItem.Items.First(q => q.SN == qty.Code);
                            item.QTY = qty.WhQty;
                        }
                        action.Data.Data = inv.Items.Select(q => new { q.SN, q.QTY });
                        action.Data.Data = CurInvItem.Items.Select(q => new { q.SN, q.QTY });
                        action.Data.Command = Command = "ComfirmQty";
                        //action.LocaleMsg = Biz.L("请确认条码[{0}]的数量是否正确");
                        action.LocaleMsg = Biz.L("WMS.Default.ScanItem.ComfirmQty", input.SN);
                        return action;
                    }
                    CurInvItem = inv;
                }
                //更新已确认物料数量
@@ -224,7 +225,11 @@
                       {
                           var item = CurInvItem.Items.First(q => q.SN == qty.SN);
                           item.QTY = qty.QTY;
                       }
                            var pkg = CurInvItem.Packages.First(q => q.SN == qty.SN);
                            pkg.QTY = qty.QTY;
                        }
                        CurInvItem.UpdatePkgQty();
                        Command = "Normal";
                    }
                }