admin
7 天以前 da2e6b77437a3f199e292477f70f1be4f7f3c6d8
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -128,7 +128,12 @@
                    if (palletNo != palletNoNew)//非整托拣货                                                
                    {
                        var pinStockDetails = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.Id != pinStockDetail.Id).ToList();
                        if (pinStockDetails.Count(m => m.SONo != notice.SONo) > 0)
                        //if (pinStockDetails.Count(m => m.SONo != notice.SONo) > 0)
                        //{
                        //    throw Oops.Bah("拼托托盘上只能放同一个出库单下的物料!");
                        //}
                        //只允许绑定同一个出库单下的物料
                        if (pinStockDetails.GroupBy(e => e.SONo).Count() > 0 && pinStockDetails.Count(m => m.SONo != notice.SONo) > 0)
                        {
                            throw Oops.Bah("拼托托盘上只能放同一个出库单下的物料!");
                        }
@@ -140,7 +145,7 @@
                {
                    isNew = true;
                    var newPalletInfo = await Db.Queryable<SysPallets>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.Status == "0");
                    var newPalletInfo = await Db.Queryable<SysPallets>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNoNew);//&& m.Status == "0"
                    if (newPalletInfo == null)
                    {
                        throw Oops.Bah("新托盘信息不存在!");
@@ -148,9 +153,14 @@
                    if (newPalletInfo.Status == "0")
                    {
                        var pinStockDetails = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNoNew && (m.SkuNo != stockDetail.SkuNo || m.LotNo != stockDetail.LotNo)).ToList();
                        if (pinStockDetails.Count(m => m.SONo != notice.SONo) > 0)
                        //if (pinStockDetails.Count(m => m.SONo != notice.SONo) > 0)
                        //{
                        //    throw Oops.Bah("一个托盘只能接受一个出库单拼托!");
                        //}
                        //只允许绑定同一个出库单下的物料
                        if (pinStockDetails.GroupBy(e => e.SONo).Count() > 0 && pinStockDetails.Count(m => m.SONo != notice.SONo) > 0)
                        {
                            throw Oops.Bah("一个托盘只能接受一个出库单拼托!");
                            throw Oops.Bah("拼托托盘上只能放同一个出库单下的物料!");
                        }
                    }
                    else
@@ -234,10 +244,10 @@
                        {
                            throw Oops.Bah($"当前{item.BoxNo}已拣货完成,请勿重复拣货");
                        }
                        if (item.SkuNo != allot.SkuNo || item.LotNo != allot.LotNo)
                        {
                            throw Oops.Bah("当前托盘上有其他不同物料批次,拣货失败");
                        }
                        //if (item.SkuNo != allot.SkuNo || item.LotNo != allot.LotNo)
                        //{
                        //    throw Oops.Bah("当前托盘上有其他不同物料批次,拣货失败");
                        //}
                        //添加拣货明细
                        var completeDetail = new BllCompleteDetail()
                        {
@@ -1779,14 +1789,13 @@
                #endregion
                //添加操作日志记录
                var k = new OperationSOServer().AddLogOperationSo("PDA模块", "车间出库",
                    skuModel.SkuName, "拣货", $"在PDA车间出库页上对::{skuModel.SkuName}的物料进行拣货操作", userId);
                var k = new OperationSOServer().AddLogOperationSo("PDA模块", "车间出库", skuModel.SkuName, "拣货", $"在PDA车间出库页上对:{skuModel.SkuName}的物料进行拣货操作", userId);
                Db.CommitTran();
            }
            catch (AppFriendlyException e)
            {
                Db.RollbackTran();
            }
            //catch (AppFriendlyException e)
            //{
            //    Db.RollbackTran();
            //}
            catch (Exception e)
            {
                Db.RollbackTran();
@@ -1870,12 +1879,12 @@
            //}
            if (type == "1")//平库出库获取单据
            {
                var allotList = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "1" && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToListAsync();
                var allotList = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "1" && m.PalletNo == palletNo).OrderByDescending(m => m.SONo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToListAsync();
                return allotList;
            }
            var noticeList = Db.Queryable<BllExportNotice>().Where(w => w.IsDel == "0" && (w.Status == "3" || w.Status == "4")).Select(s => s.SONo).ToList();
            //获取状态为待拣货或者部分拣货的出库单
            var allotList2 = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.Status == "2" || m.Status == "3" || m.Status == "5") && m.PalletNo == palletNo && noticeList.Contains(m.SONo)).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToListAsync();
            var allotList2 = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.Status == "2" || m.Status == "3" || m.Status == "5") && m.PalletNo == palletNo && noticeList.Contains(m.SONo)).OrderByDescending(m => m.SONo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToListAsync();
            //var allotList = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToList();
            //获取出库单据不为待拣货 执行完毕 订单关闭 等待执行的单据