Demo
2024-03-16 24ea35cb1a3a43dc137d15009cbbcb0904759c85
修改BUG问题
6个文件已修改
189 ■■■■ 已修改文件
HTML/views/SOSetting/ExportAllot.html 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Model/ModelDto/DataDto/StockDetailDto.cs 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/Logic/AllotSku.cs 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HTML/views/SOSetting/ExportAllot.html
@@ -829,25 +829,33 @@
                console.log(obj);
                if (obj.event === 'del') {
                    layer.confirm('确定撤销选中的分配信息吗?', function (index) {
                        var param = {
                            Id: parseInt(obj.data.Id)
                        };
                        sendData(IP + "/BllSo/DelExportAllot", param, 'post', function (res) {
                            console.log(res);
                            if (res.code == 0) { //成功
                                layer.msg(res.msg, {
                                    icon: 1,
                                    time: 1000 //2秒关闭(如果不配置,默认是3秒)
                                }, function () {
                                    refreshTable();
                                });
                            } else { //不成功
                                layer.msg(res.msg, {
                                    icon: 2,
                                    time: 2000 //2秒关闭(如果不配置,默认是3秒)
                                }, function () { });
                            }
                        });
                        if (doing) {
                            doing = false;
                            var param = {
                                Id: parseInt(obj.data.Id)
                            };
                            sendData(IP + "/BllSo/DelExportAllot", param, 'post', function (res) {
                                console.log(res);
                                if (res.code == 0) { //成功
                                    layer.msg(res.msg, {
                                        icon: 1,
                                        time: 1000 //2秒关闭(如果不配置,默认是3秒)
                                    }, function () {
                                        refreshTable();
                                        doing = true;
                                    });
                                } else { //不成功
                                    layer.msg(res.msg, {
                                        icon: 2,
                                        time: 2000 //2秒关闭(如果不配置,默认是3秒)
                                    }, function () {
                                        doing = true;
                                     });
                                }
                            });
                        }
                    });
                }
            });
Wms/Model/ModelDto/DataDto/StockDetailDto.cs
@@ -199,5 +199,10 @@
        /// Nullable:True
        /// </summary>           
        public string Demo { get; set; }
        /// <summary>
        /// 储位深度
        /// </summary>
        public int Dept { get; set; }
    }
}
Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
@@ -768,7 +768,7 @@
                            SupplierLot = supplierLot,
                            InspectMark = "0",
                            BitBoxMark = bNum > boxQty ? "1":"0",
                            InspectStatus = "",
                            InspectStatus = "0",
                            ProductionTime = DateTime.Parse(productionTime),
                            StoreTime = DateTime.Parse(storeTime),
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -469,6 +469,7 @@
                    //修改出库分配信息
                    allot.CompleteQty += pickQty;
                    allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
                    allot.UpdateTime = DateTime.Now;
                    Db.Updateable(allot).ExecuteCommand();
                    //删除库存明细
                    Db.Deleteable(stockDetail).ExecuteCommand();
@@ -642,6 +643,7 @@
                    //修改出库分配信息
                    allot.CompleteQty += pickQty;
                    allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
                    allot.UpdateTime = DateTime.Now;
                    if (allot.Status == "5")
                    {
                        //判断该托盘是否还存在物料 存在改为待回库 待回库完成后改为已完成
@@ -841,6 +843,7 @@
                //修改出库分配信息
                allot.CompleteQty += int.Parse(PickQty);
                allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
                allot.UpdateTime = DateTime.Now;
                Db.Updateable(allot).ExecuteCommand();
                int isDel = 0;
@@ -1503,6 +1506,7 @@
                            OutMode = "",//出库口
                            CreateUser = userId,
                            UpdateTime = DateTime.Now
                        };
                        var fp = Db.Insertable(addAllot).ExecuteReturnEntity();
@@ -1887,6 +1891,7 @@
                    //修改出库分配信息
                    allot.CompleteQty += pickQty;
                    allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
                    allot.UpdateTime = DateTime.Now;
                    if (allot.Status == "5")
                    {
                        //判断该托盘是否还存在物料 存在改为待回库 待回库完成后改为已完成
@@ -2108,6 +2113,7 @@
                            OutMode = "",//出库口
                            CreateUser = userId,
                            UpdateTime = DateTime.Now
                        };
                        var fp = Db.Insertable(addAllot).ExecuteReturnEntity();
@@ -2351,6 +2357,8 @@
                    //修改出库分配信息
                    allot.CompleteQty += int.Parse(PickQty);
                    allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
                    allot.UpdateTime = DateTime.Now;
                    Db.Updateable(allot).ExecuteCommand();
                    int isDel = 0;
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -392,6 +392,15 @@
                {
                    throw new Exception("未查到对应出库类型的物料");
                }
                if (type!="8")
                {
                    skuList = skuList.Where(m => m != "100088").ToList();
                }
                else
                {
                    skuList = skuList.Where(m => m == "100088").ToList();
                }
                //skuList = sku.Select(m => m.SkuNo).ToList();
                var stockRst = new StockServer();
                var stockDetailRst = new StockDetailServer();
@@ -3013,6 +3022,8 @@
                //库存明细
                var stockList = Db.Queryable<DataStockDetail>().Where(a => stockIds.Contains(a.Id)).ToList();
                //分配信息
                var allots = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.SODetailNo == detail.Id && m.Status == "0").ToList();
                //库存总表
                //var stockz = Db.Queryable<DataStock>().First(d => d.IsDel == "0" && d.SkuNo == detail.SkuNo && d.LotNo == detail.LotNo);
@@ -3030,33 +3041,44 @@
                    {
                        throw new Exception("操作失败,出库数量超出库存数量!");
                    }
                    //添加分配表信息
                    var allot = new BllExportAllot
                    {
                        SONo = notice.SONo,
                        WaveNo = "",
                        SODetailNo = detail.Id,
                        StockId = st.StockId,
                        LotNo = stock.LotNo,
                        LotText = stock.LotText,
                        SupplierLot = stock.SupplierLot,
                        SkuNo = stock.SkuNo,
                        SkuName = stock.SkuName,
                        Standard = stock.Standard,
                        PalletNo = stock.PalletNo,
                        IsBale = stock.IsBale,
                        IsBelt = stock.IsBelt,
                        Qty = st.Qty,
                        CompleteQty = 0,
                        Status = "0",
                        LogisticsId = notice.LogisticsId,
                        IsAdvance = "0",
                        OutMode = "",//出库口
                        CreateUser = userId,
                        CreateTime = DateTime.Now
                    };
                    allotList.Add(allot);
                    var bl = allots.FirstOrDefault(m => m.StockId == st.StockId);
                    if (bl == null)
                    {
                        //添加分配表信息
                        var allot = new BllExportAllot
                        {
                            SONo = notice.SONo,
                            WaveNo = "",
                            SODetailNo = detail.Id,
                            StockId = st.StockId,
                            LotNo = stock.LotNo,
                            LotText = stock.LotText,
                            SupplierLot = stock.SupplierLot,
                            SkuNo = stock.SkuNo,
                            SkuName = stock.SkuName,
                            Standard = stock.Standard,
                            PalletNo = stock.PalletNo,
                            IsBale = stock.IsBale,
                            IsBelt = stock.IsBelt,
                            Qty = st.Qty,
                            CompleteQty = 0,
                            Status = "0",
                            LogisticsId = notice.LogisticsId,
                            IsAdvance = "0",
                            OutMode = "",//出库口
                            CreateUser = userId,
                            CreateTime = DateTime.Now
                        };
                        allotList.Add(allot);
                    }
                    else
                    {
                        bl.Qty += st.Qty;
                        Db.Updateable(bl).ExecuteCommand();
                    }
                    //库存明细
                    stock.LockQty += st.Qty;
                    stock.Status = stock.LockQty == stock.Qty ? "2" : "1";
Wms/WMS.BLL/Logic/AllotSku.cs
@@ -2,6 +2,8 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Model.ModelDto.DataDto;
using SqlSugar;
using WMS.Entity.Context;
using WMS.Entity.DataEntity;
using WMS.Entity.SysEntity;
@@ -54,8 +56,10 @@
                decimal qty = 0; //分配的总数量
                var ztNum = needQty / fullPalletQty;//需要整托数
                var zps = palletList.Where(s => s.Qty >= fullPalletQty).ToList();//整托
                var sps = palletList.Where(s => s.Qty < fullPalletQty).ToList();//散托(有可能是被锁定了数量的)
                var list = GetDataListOrderByDept(palletList);
                var zps = list.Where(s => s.Qty >= fullPalletQty).ToList();//整托
                var sps = list.Where(s => s.Qty < fullPalletQty).ToList();//散托(有可能是被锁定了数量的)
                if (allotSet == 0)//优先零箱(出完零箱出整箱)
                {
@@ -218,6 +222,7 @@
        //--------------------------------------------------------------------------------------------------------------
        #region MyRegion
        ///// <summary>
        ///// 获得背包承重w,装货物o,从第k件向后考虑,得到的最大价值
@@ -260,5 +265,50 @@
        //    return a > b ? a : b;
        //}
        #endregion
        private List<StockDetailDto> GetDataListOrderByDept(List<DataStockDetail> palletList)
        {
            try
            {
                var Db = DataContext.Db;
                var data = new List<StockDetailDto>();
                //库外托盘
                var detail1 = palletList.Where(m => string.IsNullOrWhiteSpace(m.LocatNo)).ToList();
                //平库内托盘
                var detail2 = palletList.Where(m => m.WareHouseNo == "W02").ToList();
                //立库内托盘
                var detail3 = palletList.Where(m => m.WareHouseNo == "W01").ToList();
                var data1 = detail1.Select(m => new StockDetailDto()).ToList();
                var data2 = detail2.Select(m => new StockDetailDto()).ToList();
                var data3 = detail3.Select(m => new StockDetailDto()).ToList();
                foreach (var item in data2)
                {
                    var dept = item.LocatNo.Substring(5,2);
                    item.Dept = int.Parse(dept);
                }
                foreach (var item in data3)
                {
                    var dept = item.LocatNo.Substring(6, 2);
                    item.Dept = int.Parse(dept);
                }
                data.AddRange(data1);
                data.AddRange(data2.OrderBy(m => m.Dept).ToList());
                data.AddRange(data3.OrderBy(m => m.Dept).ToList());
                return data;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
    }
}