服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2025-03-20 8d50f77ff706e213955e3c8dd2029dc10e9f9b63
优化清点逻辑,支持扫箱条码,增加退货的数量处理
更新实体
已删除2个文件
已修改14个文件
已重命名1个文件
已添加2个文件
964 ■■■■■ 文件已修改
Tiger.Api/Language.db 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/ERP/U9C_WMS.cs 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.WMS/Transaction/Yada/Count_BIZ_U9_ASN.cs 313 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/BIZ_U9_RETURN.cs 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/BIZ_U9_RETURN_SN.cs 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/BIZ_U9_RMA.cs 151 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/BIZ_U9_RMA_DTL.cs 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/BIZ_U9_RMA_SN.cs 141 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/V_ITEM_BIZ_ERP_RECEIPT_SN.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/V_WMS_ITEM.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/V_WMS_ITEM_A.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/V_WMS_ITEM_D.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/V_WMS_ITEM_HIS.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/V_WMS_ITEM_X.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/V_WMS_ITEM_Y.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/WMS_ITEM.cs 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Entitys/WMS/WMS_ITEM_HIS.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Model.Net/Tiger.Model.Net.csproj 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Api/Language.db
Binary files differ
Tiger.Business.WMS/ERP/U9C_WMS.cs
@@ -328,7 +328,7 @@
                {
                    BIZ_U9_RECEIPT_DTL info = new()
                    {
                        STATUS = BIZ_U9_RETURN.STATUSs.Imported.GetValue(), //状态
                        STATUS = BIZ_U9_RMA.STATUSs.Imported.GetValue(), //状态
                        ORDER_NO = item.DocNo,  //单据号
                        LINE_NO = item.DocLineNo.ToString(), //单据行号
                        ITEM_CODE = item.ItemCode, //物料编码
@@ -387,13 +387,13 @@
            string UserCode = "U9C_In_GetReturn";
            var list = db.Queryable<mes_ReturnedDocInfo>().Where(x => x.SplitFlag == 0 && x.ReceivementType == 1 && x.ModifiedOn > input.startTime.ToDateTime() && x.ModifiedOn < input.endTime.ToDateTime()).ToList();
            var orgs = Biz.Db.Queryable<SYS_ORGANIZATION>().ToList();
            List<BIZ_U9_RETURN> result = new();
            List<BIZ_U9_RETURN_DTL> resultDt = new();
            List<BIZ_U9_RMA> result = new();
            List<BIZ_U9_RMA_DTL> resultDt = new();
            if (list != null && list.Count > 0)
            {
                result = list
                .GroupBy(x => new { x.DocNo })
                .Select(x => new BIZ_U9_RETURN
                .Select(x => new BIZ_U9_RMA
                {
                    STATUS = BIZ_U9_RECEIPT.STATUSs.Init.GetValue(),  //状态
                    ORDER_NO = x.Key.DocNo,   //单号
@@ -413,9 +413,9 @@
                Logger.Scheduler.Info($"退货单表头信息存入实体中,总数:[{result.Count}]");
                foreach (var item in list)
                {
                    BIZ_U9_RETURN_DTL info = new()
                    BIZ_U9_RMA_DTL info = new()
                    {
                        STATUS = BIZ_U9_RETURN.STATUSs.Imported.GetValue(), //状态
                        STATUS = BIZ_U9_RMA.STATUSs.Imported.GetValue(), //状态
                        ORDER_NO = item.DocNo,  //单据号
                        LINE_NO = item.DocLineNo.ToString(), //单据行号
                        ITEM_CODE = item.ItemCode, //物料编码
@@ -617,7 +617,7 @@
                    {
                        ORDER_NO = item.DocNo,  //单据号
                        LINE_NO = item.DocLineNo.ToString(), //单据行号
                        STATUS = BIZ_U9_RETURN.STATUSs.Imported.GetValue(), //状态
                        STATUS = BIZ_U9_RMA.STATUSs.Imported.GetValue(), //状态
                        ITEM_CODE = item.ItemCode, //物料编码
                       UNIT =item.StoreUOM,// UNIT å•位 
                       QTY = item.StoreUOMQty,//QTY å•据数量
Tiger.Business.WMS/Transaction/Yada/Count_BIZ_U9_ASN.cs
@@ -84,203 +84,72 @@
            var action = new ApiAction<ScanOutput>(new ScanOutput() { Command = Command });
            try
            {
                if (CurInvItem.IsNullOrEmpty())
                //解析条码
                Barcode barcode = new Barcode(input.SN);
                if (barcode.IsException)
                {
                    //解析条码
                    Barcode barcode = new Barcode(input.SN);
                    if (barcode.IsException)
                    {
                        throw barcode.AnalyseException;
                    }
                    //非法条码
                    else if (!barcode.IsRegular)
                    {
                        action.IsSuccessed = false;
                        //action.LocaleMsg = Biz.L("条码为非法条码");
                        action.LocaleMsg = Biz.L("WMS.WmsItem.Barcode.IllegalFailure", input.SN);
                        return action;
                    }
                    throw barcode.AnalyseException;
                }
                //非法条码
                else if (!barcode.IsRegular)
                {
                    action.IsSuccessed = false;
                    //action.LocaleMsg = Biz.L("条码为非法条码");
                    action.LocaleMsg = Biz.L("WMS.WmsItem.Barcode.IllegalFailure", input.SN);
                    return action;
                }
                    if (barcode.Type == Barcode.Types.OuterPackage)
                if (barcode.Type == Barcode.Types.OuterPackage)
                {
                    CurSn = MainDB.Queryable<BIZ_U9_ASN_SN>().Where(q => q.CARTON_NO == barcode.SN).ToList();
                }
                else
                {
                    CurSn = MainDB.Queryable<BIZ_U9_ASN_SN>().Where(q => q.SN == barcode.SN).ToList();
                    foreach (var sn in CurSn)
                    {
                        CurSn = MainDB.Queryable<BIZ_U9_ASN_SN>().Where(q => q.CARTON_NO == barcode.SN).ToList();
                        sn.META_SN = input.SN;
                    }
                    else
                    {
                        CurSn = MainDB.Queryable<BIZ_U9_ASN_SN>().Where(q => q.SN == barcode.SN).ToList();
                        foreach (var sn in CurSn)
                        {
                            sn.META_SN = input.SN;
                        }
                    }
                    if (CurSn.IsNullOrEmpty())
                    {
                        action.IsSuccessed = false;
                        //action.LocaleMsg = Biz.L("ASN单中不存在条码[{0}]");
                        action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.SnNotExists", input.SN);
                        return action;
                    }
                    if (CurSn.First().AUTH_ORG != input.AuthOption.CurOrg)
                    {
                        action.IsSuccessed = false;
                        //action.LocaleMsg = Biz.L($"条码所属组织[{0}]与当前登录组织[{1}]不一致,请重新选择组织");
                        action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.OrgNotCorrect", CurSn.First().AUTH_ORG, input.AuthOption.CurOrg);
                        return action;
                    }
                    //验证条码是否正确
                    if (CurSn.First().STATUS > WMS_ITEM.STATUSs.Incoming.GetValue())
                    {
                        action.IsSuccessed = false;
                        //action.LocaleMsg = Biz.L("状态[{0}]异常,请重新扫描");
                        action.LocaleMsg = Biz.L("WMS.Default.ScanItem.StatusException", CurSn.First().STATUS.GetEnumDesc<WMS_ITEM.STATUSs>());
                        return action;
                    }
                }
                    Result<IInventory> result = WMS_ITEM_Biz.WmsItem.Get(barcode.SN, input.AuthOption, true);
                    if (!result.IsSuccessed)
                    {
                        action.IsSuccessed = false;
                        action.LocaleMsg = result.LocaleMsg;
                        return action;
                    }
                    var inv = result.Data as Inventory;
                    //物料验证
                    if (inv.ItemInfo.IsNullOrEmpty() || inv.ItemInfo.IS_ACTIVE == "N")
                    {
                        action.IsSuccessed = false;
                        //action.LocaleMsg = Biz.L("物料编码[{0}]不存在或者该物料未启用");
                        action.LocaleMsg = Biz.L("WMS.Default.ScanItem.ItemCodeNotExistsOrNotActive", (inv.ItemInfo?.ITEM_CODE).IsNullOrEmpty(inv.Barcode.ItemCode));
                        return action;
                    }
                    if (inv.Items.Count == 0)
                    {
                        WMS_ITEM Item;
                        WMS_ITEM_PKG ItemPkgs;
                        Item = new()
                        {
                            SN = inv.Barcode.SN,
                            ITEM_CODE = inv.Barcode.ItemCode,
                            AUTH_ORG = input.AuthOption.CurOrg,
                            STATUS = WMS_ITEM.STATUSs.WaitIn.GetValue(),
                            QTY = inv.Barcode.Qty.ToDouble(),
                            PROD_DATE = (inv.Barcode.DateCode?? DateTime.Now.ToString("yyyy-MM-dd")).ToDateTime(),
                            UNIT = inv.Barcode.Unit,
                        };
                        ItemPkgs = new()
                        {
                            SN = inv.Barcode.SN,
                            AUTH_ORG = input.AuthOption.CurOrg,
                            ITEM_CODE = inv.Barcode.ItemCode,
                            QTY = inv.Barcode.Qty.ToDouble(),
                            UNIT = inv.Barcode.Unit,
                        };
                        var noExt = inv.Items.Where(q => !inv.ItemsExt.Any(s => s.SN == q.SN)).ToList();
                        //扩展表不存在时新建
                        foreach (var item in noExt)
                        {
                            inv.ItemsExt.Add(new()
                            {
                                SN = item.SN,
                                META_SN = inv.Barcode.MetaSn,
                                QR_CODE = inv.Barcode.MetaSn
                            });
                        }
                        inv.Items.Add(Item);
                        inv.Packages.Add(ItemPkgs);
                    }
                    //雅达不从条码上更新数量
                    //else if (inv.Items.Count == 1)
                    //{
                    //    inv.Items.First().QTY = inv.Barcode.Qty.ToDouble();
                    //    inv.Items.First().ERP_WH = CurScanShelf.WarehouseCode;
                    //    inv.Items.First().AUTH_ORG = input.AuthOption.CurOrg;
                    //    inv.Packages.First().QTY = inv.Barcode.Qty.ToDouble();
                    //    inv.Packages.First().ERP_WH = CurScanShelf.WarehouseCode;
                    //    inv.Packages.First().AUTH_ORG = input.AuthOption.CurOrg;
                    //}
                    //如果扫描外箱的不能更新数量
                    else
                    {
                        foreach (var item in inv.Items)
                        {
                            item.ERP_WH = "";
                            item.AUTH_ORG = input.AuthOption.CurOrg;
                        }
                        foreach (var item in inv.Packages)
                        {
                            item.ERP_WH = "";
                            item.AUTH_ORG = input.AuthOption.CurOrg;
                        }
                    }
                    CurInvItem = inv;
                    //检查物料数量,如果没有则查询雅达条码主档,更新条码数量
                    if (CurInvItem.Items.Any(q => q.QTY <= 0))
                    {
                        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 = CurInvItem.Items.First(q => q.SN == qty.Code);
                            item.QTY = qty.WhQty;
                            item.SUPP_LOTNO = new Barcode(qty.Code).LotNo; //供应商批次号
                            var pkg = CurInvItem.Packages.First(q => q.SN == qty.Code);
                            pkg.QTY = qty.WhQty;
                        }
                        CurInvItem.UpdatePkgQty();
                    }
                if (CurSn.IsNullOrEmpty())
                {
                    action.IsSuccessed = false;
                    //action.LocaleMsg = Biz.L("ASN单中不存在条码[{0}]");
                    action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.SnNotExists", input.SN);
                    return action;
                }
                if (CurSn.First().AUTH_ORG != input.AuthOption.CurOrg)
                {
                    action.IsSuccessed = false;
                    //action.LocaleMsg = Biz.L($"条码所属组织[{0}]与当前登录组织[{1}]不一致,请重新选择组织");
                    action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.OrgNotCorrect", CurSn.First().AUTH_ORG, input.AuthOption.CurOrg);
                    return action;
                }
                //验证条码是否正确
                if (CurSn.First().STATUS > WMS_ITEM.STATUSs.Incoming.GetValue())
                {
                    action.IsSuccessed = false;
                    //action.LocaleMsg = Biz.L("状态[{0}]异常,请重新扫描");
                    action.LocaleMsg = Biz.L("WMS.Default.ScanItem.StatusException", CurSn.First().STATUS.GetEnumDesc<WMS_ITEM.STATUSs>());
                    return action;
                }
                //执行清点数据处理
                foreach (var sn in CurSn)
                {
                    sn.STATUS = WMS_ITEM.STATUSs.Counted.GetValue();
                    sn.QTY = CurInvItem.Items.Where(q => q.SN == sn.SN).Sum(q => q.QTY);
                    sn.RECEIVER = UserCode;
                    sn.RECEIVE_DATE = DateTime.Now;
                }
                foreach (var item in CurInvItem.Items)
                {
                    var sn = CurSn.First(q => q.SN == item.SN);
                    item.AUTH_ORG = sn.AUTH_ORG;
                    item.STATUS = WMS_ITEM.STATUSs.Counted.GetValue();
                    item.SOURCE_CODE = item.TRANS_CODE;
                    item.SOURCE_ORDER = item.TRANS_NO;
                    item.SOURCE_LINE = item.TRANS_LINE;
                    item.TRANS_CODE = nameof(BIZ_U9_ASN);
                    item.TRANS_NO = sn.ORDER_NO;
                    item.TRANS_LINE = sn.LINE_NO;
                    CurInvItem.History.Add(new WMS_ITEM_HIS(item, $"条码[{CurInvItem.SN}]清点完成,操作单据[{item.TRANS_NO}]"));
                }
                //创建变量克隆对象用于传入DBSubmitAction中保存当前需要暂存的数据值
                var _CurSn = CurSn.Clone();
                var _Items = CurInvItem.Items.Clone();
                var _Packages = CurInvItem.Packages.Clone();
                var _History = CurInvItem.History.Clone();
                var _ItemsExt = CurInvItem.ItemsExt.Clone();
                //创建变量克隆对象用于传入DBSubmitAction中保存当前需要暂存的数据值
                var _CurSn = CurSn.Clone();
                AddCommitAction("Counted", () =>
                {
                    //使用统一的事务DB对象
                    var db = GetCommitDB();
                    //数据保存逻辑
                    var t = db.Storageable(_Items, UserCode).ToStorage();
                    t.AsInsertable.ExecuteCommand();
                    t.AsUpdateable.UpdateColumns(q => new { q.QTY, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand();
                    var p = db.Storageable(_Packages, UserCode).ToStorage();
                    p.AsInsertable.ExecuteCommand();
                    p.AsUpdateable.UpdateColumns(q => new { q.QTY, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand();
                    db.Storageable(_Packages, UserCode).ToStorage().AsInsertable.ExecuteCommand();
                    db.Insertable(_History, UserCode).ExecuteCommand();
                    var e = db.Storageable(_ItemsExt, UserCode).ToStorage().AsInsertable.ExecuteCommand();//不存在插入
                    db.Updateable<BIZ_U9_ASN>(UserCode).SetColumns(q => q.STATUS == BIZ_U9_ASN.STATUSs.Counting.GetValue()).Where(q => q.ORDER_NO == _CurSn.First().ORDER_NO).ExecuteCommand();
                    db.Storageable(_CurSn, UserCode).ExecuteCommand();
                });
@@ -318,7 +187,7 @@
            action.Data.Data = ScanList;
            //action.LocaleMsg = Biz.L($"条码[{0}]清点成功!");
            action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.CountSuccess", CurInvItem.SN);
            action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.CountSuccess", CurSn.First().SN);
            //重置工序
            ResetScan();
@@ -341,28 +210,28 @@
                    sn.RECEIVE_DATE = DateTime.MinValue;
                }
                var historys = new List<WMS_ITEM_HIS>();
                var items = await Biz.Db.Queryable<WMS_ITEM>().Where(q => ScanList.Select(s => s.SN).Contains(q.SN)).ToListAsync();
                foreach (var item in items)
                {
                    var order = item.TRANS_CODE;
                    item.STATUS = WMS_ITEM.STATUSs.Incoming.GetValue();
                    item.SOURCE_CODE = "";
                    item.SOURCE_ORDER = "";
                    item.SOURCE_LINE = "";
                    item.TRANS_CODE = item.SOURCE_CODE;
                    item.TRANS_NO = item.SOURCE_ORDER;
                    item.TRANS_LINE = item.SOURCE_LINE;
                    historys.Add(new WMS_ITEM_HIS(item, $"条码[{item.SN}]取消清点,操作单据[{order}]"));
                }
                //var historys = new List<WMS_ITEM_HIS>();
                //var items = await Biz.Db.Queryable<WMS_ITEM>().Where(q => ScanList.Select(s => s.SN).Contains(q.SN)).ToListAsync();
                //foreach (var item in items)
                //{
                //    var order = item.TRANS_CODE;
                //    item.STATUS = WMS_ITEM.STATUSs.Incoming.GetValue();
                //    item.SOURCE_CODE = "";
                //    item.SOURCE_ORDER = "";
                //    item.SOURCE_LINE = "";
                //    item.TRANS_CODE = item.SOURCE_CODE;
                //    item.TRANS_NO = item.SOURCE_ORDER;
                //    item.TRANS_LINE = item.SOURCE_LINE;
                //    historys.Add(new WMS_ITEM_HIS(item, $"条码[{item.SN}]取消清点,操作单据[{order}]"));
                //}
                
                //使用统一的事务DB对象
                var db = GetCommitDB();
                var dbTran = db.UseTran(() =>
                {
                    db.Updateable(ScanList, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS }).ExecuteCommandAsync();
                    db.Updateable(items, UserCode).ExecuteCommand();
                    db.Insertable(historys, UserCode).ExecuteCommand();
                    //db.Updateable(items, UserCode).ExecuteCommand();
                    //db.Insertable(historys, UserCode).ExecuteCommand();
                });
                if (dbTran.IsSuccess)
                {
@@ -392,15 +261,15 @@
            var action = new ApiAction();
            try
            {
                var item = await Biz.Db.Queryable<WMS_ITEM>().Where(q => q.SN == input.SN).FirstAsync();
                var order = item.TRANS_CODE;
                item.STATUS = WMS_ITEM.STATUSs.Incoming.GetValue();
                item.SOURCE_CODE = "";
                item.SOURCE_ORDER = "";
                item.SOURCE_LINE = "";
                item.TRANS_CODE = item.SOURCE_CODE;
                item.TRANS_NO = item.SOURCE_ORDER;
                item.TRANS_LINE = item.SOURCE_LINE;
                //var item = await Biz.Db.Queryable<WMS_ITEM>().Where(q => q.SN == input.SN).FirstAsync();
                //var order = item.TRANS_CODE;
                //item.STATUS = WMS_ITEM.STATUSs.Incoming.GetValue();
                //item.SOURCE_CODE = "";
                //item.SOURCE_ORDER = "";
                //item.SOURCE_LINE = "";
                //item.TRANS_CODE = item.SOURCE_CODE;
                //item.TRANS_NO = item.SOURCE_ORDER;
                //item.TRANS_LINE = item.SOURCE_LINE;
                
                //使用统一的事务DB对象
                var db = GetCommitDB();
@@ -410,8 +279,8 @@
                        .SetColumns(q => q.RECEIVER == null)
                        .SetColumns(q => q.RECEIVE_DATE == DateTime.MinValue)
                        .Where(q => q.SN == input.SN).ExecuteCommand();
                    db.Updateable(item, UserCode).ExecuteCommand();
                    db.Insertable(new WMS_ITEM_HIS(item, $"条码[{item.SN}]取消清点,操作单据[{order}]"), UserCode).ExecuteCommand();
                    //db.Updateable(item, UserCode).ExecuteCommand();
                    //db.Insertable(new WMS_ITEM_HIS(item, $"条码[{item.SN}]取消清点,操作单据[{order}]"), UserCode).ExecuteCommand();
                });
                if (dbTran.IsSuccess)
                {
@@ -463,9 +332,10 @@
                    foreach (var dtl in order.Details)
                    {
                        dtl.SnList = order.SnList.Where(q => q.LINE_NO == dtl.LINE_NO).OrderByDescending(q => q.STATUS).ToList();
                        dtl.QTY_COUNTED = dtl.SnList.Where(q => q.STATUS == WMS_ITEM.STATUSs.Counted.GetValue()).Sum(q => q.QTY);
                        dtl.QTY_COUNTED = dtl.SnList.Where(q => q.STATUS == WMS_ITEM.STATUSs.Counted.GetValue() || q.STATUS == WMS_ITEM.STATUSs.Rejected.GetValue()).Sum(q => q.QTY);
                    }
                }
                    order.IsFinished = !order.Details.Where(q => q.QTY != q.QTY_COUNTED).Any();
                }
            }
            return action;
        }
@@ -529,12 +399,12 @@
                }
                //查询是否清点完成
                var noFinish = order.Details.Where(q => q.QTY != order.SnList.Sum(s => s.QTY));
                var noFinish = order.Details.Where(q => q.QTY != order.SnList.Where(s => s.LINE_NO == q.LINE_NO && (s.STATUS == WMS_ITEM.STATUSs.Counted.GetValue() || q.STATUS == WMS_ITEM.STATUSs.Rejected.GetValue())).Sum(s => s.QTY));
                if (noFinish.Any())
                {
                    action.IsSuccessed = false;
                    //action.LocaleMsg = Biz.L("清点数量不对");// Biz.L("WMS.InReceipt.ScanItem.CheckingDataToSubmit");  //$"清点数量不对";
                    action.LocaleMsg = Biz.L($"送货单[{0}]未清点完成,请先清点完成");
                    //action.LocaleMsg = Biz.L("送货单[{0}]未清点完成,请先清点完成,未完成清点的行号如下:{1}");
                    action.LocaleMsg = Biz.L("WMS.Count_BIZ_U9_ASN.GenerateReceipt.NoFinishCounting", orderNo, string.Join(",", noFinish.Select(q => q.LINE_NO)));
                    return action;
                }
@@ -544,7 +414,7 @@
                    IsLogin = true,
                    CreateRcvBySrcASNParam = new ()
                    {
                        aSNToRcvTransDTOs = order.Details.Select(q => new ASNToRcvTransDTO { ASNLineKey = q.ID, TransQty = new() { m_amount1 = q.QTY + q.QTY_GIFT } }).ToList(),
                        aSNToRcvTransDTOs = order.Details.Select(q => new ASNToRcvTransDTO { ASNLineKey = q.ID, TransQty = new() { m_amount1 = q.QTY } }).ToList(),
                    }
                };
                var result = await DI.Resolve<IWMS_U9C>().CreateRcvBySrcASN(iInput);
@@ -626,10 +496,11 @@
                //更新库存表信息
                var items = MainDB.Queryable<WMS_ITEM>().Where(q => SqlFunc.Subqueryable<BIZ_U9_ASN_SN>().Where(s => s.SN == q.SN && s.ORDER_NO == order.ORDER_NO).Any()).ToList();
                var historys = new List<WMS_ITEM_HIS>();
                var historys = new List<WMS_ITEM_HIS>();
                foreach (var item in items)
                {
                    item.STATUS = WMS_ITEM.STATUSs.WaitIn.GetValue();
                    item.AUTH_ORG = receipt.AUTH_ORG;
                    item.STATUS = WMS_ITEM.STATUSs.WaitIn.GetValue();
                    item.SOURCE_CODE = item.TRANS_CODE;
                    item.SOURCE_ORDER = item.TRANS_NO;
                    item.SOURCE_LINE = item.TRANS_LINE;
@@ -638,6 +509,17 @@
                    item.TRANS_LINE = receipt.SnList.First(q => q.SN == item.SN).LINE_NO;
                    historys.Add(new WMS_ITEM_HIS(item, $"送货单[{order.ORDER_NO}]的条码[{item.SN}]生成收货单[{receipt.ORDER_NO}],待检验完成后可入库"));
                }
                var pkgs = MainDB.Queryable<WMS_ITEM_PKG>().Where(q => SqlFunc.Subqueryable<BIZ_U9_ASN_SN>().Where(s => s.SN == q.SN && s.ORDER_NO == order.ORDER_NO).Any()).ToList();
                foreach (var item in pkgs)
                {
                    item.AUTH_ORG = receipt.AUTH_ORG;
                    item.SOURCE_CODE = item.TRANS_CODE;
                    item.SOURCE_ORDER = item.TRANS_NO;
                    item.SOURCE_LINE = item.TRANS_LINE;
                    item.TRANS_CODE = nameof(BIZ_U9_RECEIPT);
                    item.TRANS_NO = receipt.ORDER_NO;
                    item.TRANS_LINE = receipt.SnList.First(q => q.SN == item.SN).LINE_NO;
                }
                order.STATUS = BIZ_U9_ASN.STATUSs.Finished.GetValue();
                order.RECEIVER_ID = receipt.ID;
                order.RECEIVER_NO = receipt.ORDER_NO;
@@ -648,8 +530,9 @@
                var db = GetCommitDB();
                var dbTran = db.UseTran(() =>
                {
                    db.Updateable(items, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS, q.TRANS_CODE, q.TRANS_NO, q.TRANS_LINE, q.SOURCE_CODE, q.SOURCE_ORDER, q.SOURCE_LINE }).ExecuteCommand();
                    db.Insertable(historys, UserCode).ExecuteCommand();
                    db.Updateable(items, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.AUTH_ORG, q.STATUS, q.TRANS_CODE, q.TRANS_NO, q.TRANS_LINE, q.SOURCE_CODE, q.SOURCE_ORDER, q.SOURCE_LINE }).ExecuteCommand();
                    db.Updateable(pkgs, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.AUTH_ORG, q.TRANS_CODE, q.TRANS_NO, q.TRANS_LINE, q.SOURCE_CODE, q.SOURCE_ORDER, q.SOURCE_LINE }).ExecuteCommand();
                    db.Insertable(historys, UserCode).ExecuteCommand();
                    db.Updateable(order, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.STATUS, q.RECEIVER, q.RECEIVE_DATE, q.RECEIVER_ID, q.RECEIVER_NO }).ExecuteCommand();
                    db.Insertable(receipt, UserCode).ExecuteCommand();
                    db.Insertable(receipt.Details, UserCode).ExecuteCommand();
Tiger.Model.Net/Entitys/WMS/BIZ_U9_ASN.cs
@@ -29,10 +29,10 @@
        /// </summary>
        [DisplayName("单据号")]
        public string ORDER_NO { get; set; }
        /// <summary>
        /// çŠ¶æ€(0Init初始化|1Imported已导入|2Arrived已送达|3Counting清点中|4InQC检验中|5Storing上架中|6Review待审核|7Finished已完成|8Cancel已作废)
        /// </summary>
        [DisplayName("状态(0Init初始化|1Imported已导入|2Arrived已送达|3Counting清点中|4InQC检验中|5Storing上架中|6Review待审核|7Finished已完成|8Cancel已作废)")]
        /// <summary>
        /// çŠ¶æ€(0Init初始化|1Imported已导入|2Arrived已送达|3Counting清点中|4Finished已完成|5Cancel已作废)
        /// </summary>
        [DisplayName("状态(0Init初始化|1Imported已导入|2Arrived已送达|3Counting清点中|4Finished已完成|5Cancel已作废)")]
        public int STATUS { get; set; }
        /// <summary>
        /// ä¾›åº”商编码
@@ -121,6 +121,8 @@
        [SugarColumn(IsIgnore = true)]
        public string FieldName { get; set; }
        */
        [SugarColumn(IsIgnore = true)]
        public bool IsFinished { get; set; }
        #endregion
        #region å¤–键属性
@@ -153,7 +155,7 @@
        */
        /// <summary>
        /// æžšä¸¾ï¼šçŠ¶æ€(0Init初始化|1Imported已导入|2Arrived已送达|3Counting清点中|4InQC检验中|5Storing上架中|6Review待审核|7Finished已完成|8Cancel已作废)
        /// æžšä¸¾ï¼šçŠ¶æ€(0Init初始化|1Imported已导入|2Arrived已送达|3Counting清点中|4Finished已完成|5Cancel已作废)
        /// </summary>
        public enum STATUSs
        {
Tiger.Model.Net/Entitys/WMS/BIZ_U9_RETURN.cs
ÎļþÒÑɾ³ý
Tiger.Model.Net/Entitys/WMS/BIZ_U9_RETURN_SN.cs
ÎļþÒÑɾ³ý
Tiger.Model.Net/Entitys/WMS/BIZ_U9_RMA.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,151 @@
using System;
using SqlSugar;
using System.Linq;
using System.ComponentModel;
using System.Collections.Generic;
namespace Tiger.Model
{
    /// <summary>
    /// å®žä½“:退货单(U9)
    /// </summary>
    [Description("Primary:ID")]
    [DisplayName("退货单(U9)")]
    [Serializable]
    [SugarTable("BIZ_U9_RMA")]
    public class BIZ_U9_RMA : DbEntityWithAuth
    {
        #region æž„造函数
        /// <summary>
        /// å®žä½“:退货单(U9)
        /// </summary>
        public BIZ_U9_RMA() {}
        #endregion
        #region å…¬å…±å±žæ€§
        /// <summary>
        /// å•据号
        /// </summary>
        [DisplayName("单据号")]
        public string ORDER_NO { get; set; }
        /// <summary>
        /// çŠ¶æ€(0Init初始化|1Imported已导入|2Arrived已送达|3Counting清点中|4InQC检验中|5Storing上架中|6Review待审核|7Finished已完成|8Cancel已作废)
        /// </summary>
        [DisplayName("状态(0Init初始化|1Imported已导入|2Arrived已送达|3Counting清点中|4InQC检验中|5Storing上架中|6Review待审核|7Finished已完成|8Cancel已作废)")]
        public int STATUS { get; set; }
        /// <summary>
        /// ä¾›åº”商编码
        /// </summary>
        [DisplayName("供应商编码")]
        public string SUPP_CODE { get; set; }
        /// <summary>
        /// ä¾›åº”商名称
        /// </summary>
        [DisplayName("供应商名称")]
        public string SUPP_NAME { get; set; }
        /// <summary>
        /// å•据日期
        /// </summary>
        [DisplayName("单据日期")]
        public DateTime ORDER_DATE { get; set; } = DateTime.MinValue;
        /// <summary>
        /// æ”¶è´§äºº
        /// </summary>
        [DisplayName("收货人")]
        public string RECEIVER { get; set; }
        /// <summary>
        /// æ”¶è´§æ—¥æœŸ
        /// </summary>
        [DisplayName("收货日期")]
        public DateTime RECEIVE_DATE { get; set; } = DateTime.MinValue;
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        [DisplayName("备注")]
        public string REMARK { get; set; }
        /// <summary>
        /// -1:未处理,0:同步处理完,>0:同步处理失败次数
        /// </summary>
        [DisplayName("-1:未处理,0:同步处理完,>0:同步处理失败次数")]
        public int HANDLED { get; set; } = -1;
        /// <summary>
        /// æœ€åŽä¸€æ¬¡åŒæ­¥å¤„理日期
        /// </summary>
        [DisplayName("最后一次同步处理日期")]
        public DateTime HANDLED_DATE { get; set; } = DateTime.MinValue;
        /// <summary>
        /// è¿‡è´¦æäº¤çš„JSON
        /// </summary>
        [DisplayName("过账提交的JSON")]
        public string COMMIT_JSON { get; set; }
        /// <summary>
        /// è¿‡è´¦æäº¤çš„返回信息
        /// </summary>
        [DisplayName("过账提交的返回信息")]
        public string COMMIT_MSG { get; set; }
        #endregion
        #region è™šæ‹Ÿå±žæ€§
        /*例子
        [SugarColumn(IsIgnore = true)]
        public string FieldName { get; set; }
        */
        #endregion
        #region å¤–键属性
        /*例子
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BIZ_U9_RMA类里面的外键ID字段
        public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.BIZ_U9_RMAId))]//ClassA表中的BIZ_U9_RMAId
        public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.BIZ_U9_RMAId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
        */
        #endregion
        #region æžšä¸¾å˜é‡
        /*例子
        public enum FieldNames
        {
            [Description("枚举描述0")]
            Enum0,
            [Description("枚举描述1")]
            Enum1,
        }
        */
        /// <summary>
        /// æžšä¸¾ï¼šçŠ¶æ€(0Init初始化|1Imported已导入|2Arrived已送达|3Counting清点中|4InQC检验中|5Storing上架中|6Review待审核|7Finished已完成|8Cancel已作废)
        /// </summary>
        public enum STATUSs
        {
            [Description("初始化")]
            Init = 0,
            [Description("已导入")]
            Imported = 1,
            [Description("已送达")]
            Arrived = 2,
            [Description("清点中")]
            Counting = 3,
            [Description("检验中")]
            InQC = 4,
            [Description("上架中")]
            Storing = 5,
            [Description("待审核")]
            Review = 6,
            [Description("已完成")]
            Finished = 7,
            [Description("已作废")]
            Cancel = 8,
        }
        #endregion
        #region å…¬å…±æ–¹æ³•
        #endregion
    }//endClass
}
Tiger.Model.Net/Entitys/WMS/BIZ_U9_RMA_DTL.cs
ÎļþÃû´Ó Tiger.Model.Net/Entitys/WMS/BIZ_U9_RETURN_DTL.cs ÐÞ¸Ä
@@ -12,14 +12,14 @@
    [Description("Primary:ID")]
    [DisplayName("退货单(U9)明细")]
    [Serializable]
    [SugarTable("BIZ_U9_RETURN_DTL")]
    public class BIZ_U9_RETURN_DTL : DbEntityWithAuth
    [SugarTable("BIZ_U9_RMA_DTL")]
    public class BIZ_U9_RMA_DTL : DbEntityWithAuth
    {
        #region æž„造函数
        /// <summary>
        /// å®žä½“:退货单(U9)明细
        /// </summary>
        public BIZ_U9_RETURN_DTL() {}
        public BIZ_U9_RMA_DTL() {}
        #endregion
        #region å…¬å…±å±žæ€§
@@ -124,13 +124,13 @@
        #region å¤–键属性
        /*例子
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BIZ_U9_RETURN_DTL类里面的外键ID字段
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BIZ_U9_RMA_DTL类里面的外键ID字段
        public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.BIZ_U9_RETURN_DTLId))]//ClassA表中的BIZ_U9_RETURN_DTLId
        [Navigate(NavigateType.OneToMany, nameof(ClassA.BIZ_U9_RMA_DTLId))]//ClassA表中的BIZ_U9_RMA_DTLId
        public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.BIZ_U9_RETURN_DTLId), nameof(MappingClass.ClassAId))]//注意顺序
        [Navigate(typeof(MappingClass), nameof(MappingClass.BIZ_U9_RMA_DTLId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
        */
        [Navigate(NavigateType.OneToMany, nameof(BAS_ITEM.ITEM_CODE), nameof(ITEM_CODE), "GHOST_ROW = 0")]//一对一 ClassAId是MES_WIP_DATA类里面的外键ID字段
Tiger.Model.Net/Entitys/WMS/BIZ_U9_RMA_SN.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,141 @@
using System;
using SqlSugar;
using System.Linq;
using System.ComponentModel;
using System.Collections.Generic;
namespace Tiger.Model
{
    /// <summary>
    /// å®žä½“:退货单(U9)条码明细
    /// </summary>
    [Description("Primary:ID")]
    [DisplayName("退货单(U9)条码明细")]
    [Serializable]
    [SugarTable("BIZ_U9_RMA_SN")]
    public class BIZ_U9_RMA_SN : DbEntityWithAuth
    {
        #region æž„造函数
        /// <summary>
        /// å®žä½“:退货单(U9)条码明细
        /// </summary>
        public BIZ_U9_RMA_SN() {}
        #endregion
        #region å…¬å…±å±žæ€§
        /// <summary>
        /// å•据号
        /// </summary>
        [DisplayName("单据号")]
        public string ORDER_NO { get; set; }
        /// <summary>
        /// å•据行号
        /// </summary>
        [DisplayName("单据行号")]
        public string LINE_NO { get; set; }
        /// <summary>
        /// æ¡ç 
        /// </summary>
        [DisplayName("条码")]
        public string SN { get; set; }
        /// <summary>
        /// å…ƒæ¡ç 
        /// </summary>
        [DisplayName("元条码")]
        public string META_SN { get; set; }
        /// <summary>
        /// ç‰©æ–™ç¼–码
        /// </summary>
        [DisplayName("物料编码")]
        public string ITEM_CODE { get; set; }
        /// <summary>
        /// çŠ¶æ€(同WMS_ITEM状态)
        /// </summary>
        [DisplayName("状态(同WMS_ITEM状态)")]
        public int STATUS { get; set; }
        /// <summary>
        /// æ•°é‡
        /// </summary>
        [DisplayName("数量")]
        public double QTY { get; set; }
        /// <summary>
        /// å•位
        /// </summary>
        [DisplayName("单位")]
        public string UNIT { get; set; }
        /// <summary>
        /// æ˜¯å¦è‰¯å“(Y/N)
        /// </summary>
        [DisplayName("是否良品(Y/N)")]
        public string IS_OK { get; set; }
        /// <summary>
        /// æ˜¯å¦å…¥åº“(Y/N)
        /// </summary>
        [DisplayName("是否入库(Y/N)")]
        public string IS_IN { get; set; }
        /// <summary>
        /// æ˜¯å¦æŠ¥åºŸ(Y/N)
        /// </summary>
        [DisplayName("是否报废(Y/N)")]
        public string IS_SCRAP { get; set; }
        /// <summary>
        /// æ‰¹æ¬¡å·
        /// </summary>
        [DisplayName("批次号")]
        public string LOTNO { get; set; }
        /// <summary>
        /// ç®±å·
        /// </summary>
        [DisplayName("箱号")]
        public string CARTON_NO { get; set; }
        /// <summary>
        /// æ ˆæ¿å·
        /// </summary>
        [DisplayName("栈板号")]
        public string PALLET_NO { get; set; }
        /// <summary>
        /// å¤‡æ³¨
        /// </summary>
        [DisplayName("备注")]
        public string REMARK { get; set; }
        #endregion
        #region è™šæ‹Ÿå±žæ€§
        /*例子
        [SugarColumn(IsIgnore = true)]
        public string FieldName { get; set; }
        */
        #endregion
        #region å¤–键属性
        /*例子
        //一对一外键导航
        [Navigate(NavigateType.OneToOne, nameof(ClassAId))]//一对一 ClassAId是BIZ_U9_RMA_SN类里面的外键ID字段
        public ClassA ClassA { get; set; } //注意禁止手动赋值,只能是null
        //一对多外键导航
        [Navigate(NavigateType.OneToMany, nameof(ClassA.BIZ_U9_RMA_SNId))]//ClassA表中的BIZ_U9_RMA_SNId
        public List<ClassA> ClassAList { get; set; }//注意禁止手动赋值,只能是null
        //多对多外键导航
        [Navigate(typeof(MappingClass), nameof(MappingClass.BIZ_U9_RMA_SNId), nameof(MappingClass.ClassAId))]//注意顺序
        public List<ClassA> ClassAList { get; set; } //注意禁止手动赋值,只能是null
        */
        #endregion
        #region æžšä¸¾å˜é‡
        /*例子
        public enum FieldNames
        {
            [Description("枚举描述0")]
            Enum0,
            [Description("枚举描述1")]
            Enum1,
        }
        */
        #endregion
        #region å…¬å…±æ–¹æ³•
        #endregion
    }//endClass
}
Tiger.Model.Net/Entitys/WMS/V_ITEM_BIZ_ERP_RECEIPT_SN.cs
@@ -34,7 +34,7 @@
        /// </summary>
        public string ITEM_CODE { get; set; }
        /// <summary>
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|21Rejected需退货|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// </summary>
        public int STATUS { get; set; }
        /// <summary>
Tiger.Model.Net/Entitys/WMS/V_WMS_ITEM.cs
@@ -46,7 +46,7 @@
        /// </summary>
        public string SN_TYPE { get; set; }
        /// <summary>
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|21Rejected需退货|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// </summary>
        public int STATUS { get; set; }
        /// <summary>
Tiger.Model.Net/Entitys/WMS/V_WMS_ITEM_A.cs
@@ -46,7 +46,7 @@
        /// </summary>
        public string SN_TYPE { get; set; }
        /// <summary>
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|21Rejected需退货|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// </summary>
        public int STATUS { get; set; }
        /// <summary>
Tiger.Model.Net/Entitys/WMS/V_WMS_ITEM_D.cs
@@ -46,7 +46,7 @@
        /// </summary>
        public string SN_TYPE { get; set; }
        /// <summary>
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|21Rejected需退货|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// </summary>
        public int STATUS { get; set; }
        /// <summary>
Tiger.Model.Net/Entitys/WMS/V_WMS_ITEM_HIS.cs
@@ -48,7 +48,7 @@
        /// </summary>
        public string SN_TYPE { get; set; }
        /// <summary>
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|21Rejected需退货|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// </summary>
        public int STATUS { get; set; }
        /// <summary>
Tiger.Model.Net/Entitys/WMS/V_WMS_ITEM_X.cs
@@ -46,7 +46,7 @@
        /// </summary>
        public string SN_TYPE { get; set; }
        /// <summary>
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|21Rejected需退货|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// </summary>
        public int STATUS { get; set; }
        /// <summary>
Tiger.Model.Net/Entitys/WMS/V_WMS_ITEM_Y.cs
@@ -46,7 +46,7 @@
        /// </summary>
        public string SN_TYPE { get; set; }
        /// <summary>
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|21Rejected需退货|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// </summary>
        public int STATUS { get; set; }
        /// <summary>
Tiger.Model.Net/Entitys/WMS/WMS_ITEM.cs
@@ -45,7 +45,7 @@
        public string SN_TYPE { get; set; }
        /// <summary>
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|21Rejected需退货|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// </summary>
        public int STATUS { get; set; }
@@ -204,7 +204,7 @@
        #region æžšä¸¾å˜é‡
        /// <summary>
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|21Rejected需退货|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// </summary>
        public enum STATUSs
        {
@@ -220,6 +220,9 @@
            [Description("待检验")]
            WaitTest = 20,
            [Description("需退货")]
            Rejected = 22,
            [Description("待入库")]
            WaitIn = 30,
Tiger.Model.Net/Entitys/WMS/WMS_ITEM_HIS.cs
@@ -74,7 +74,7 @@
        /// </summary>
        public string SN_TYPE { get; set; }
        /// <summary>
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// å‚¨å­˜çŠ¶æ€(0NotExists不存在|10Incoming送货中|20WaitTest待检验|21Rejected需退货|30WaitIn待入库|40InStore在库|50OffShelf已下架|60Sended已发料|70Loaded已上料|80UseUp已耗尽|90Returned已退料|100Shipped已出货)
        /// </summary>
        public int STATUS { get; set; }
        /// <summary>
Tiger.Model.Net/Tiger.Model.Net.csproj
@@ -291,9 +291,9 @@
    <Compile Include="Entitys\WMS\BIZ_U9_RECEIPT.cs" />
    <Compile Include="Entitys\WMS\BIZ_U9_RECEIPT_DTL.cs" />
    <Compile Include="Entitys\WMS\BIZ_U9_RECEIPT_SN.cs" />
    <Compile Include="Entitys\WMS\BIZ_U9_RETURN.cs" />
    <Compile Include="Entitys\WMS\BIZ_U9_RETURN_DTL.cs" />
    <Compile Include="Entitys\WMS\BIZ_U9_RETURN_SN.cs" />
    <Compile Include="Entitys\WMS\BIZ_U9_RMA.cs" />
    <Compile Include="Entitys\WMS\BIZ_U9_RMA_DTL.cs" />
    <Compile Include="Entitys\WMS\BIZ_U9_RMA_SN.cs" />
    <Compile Include="Entitys\WMS\BIZ_WMS_PREP.cs" />
    <Compile Include="Entitys\WMS\BIZ_WMS_PREP_DTL.cs" />
    <Compile Include="Entitys\WMS\BIZ_WMS_PREP_SN.cs" />