bklLiudl
2024-09-02 1b86f1120560fbfcad792606064a9bef15d42827
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -81,6 +81,24 @@
            return allotList2;
        }
        //获取托盘中含有的执行中的单据
        public async Task<List<string>> GetRunNoticeList(string type)
        {
            if (type == "1")//平库出库获取单据
            {
                var allotList = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.Status == "1" || m.Status =="0")).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToListAsync();
                return allotList;
            }
            //获取状态为待拣货或者部分拣货的出库单
            var allotList2 = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.Status == "2" || m.Status == "3")).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();
            //获取出库单据不为待拣货 执行完毕 订单关闭 等待执行的单据
            //var export = Db.Queryable<BllExportNotice>().Where(a => a.IsDel == "0" && a.Status == "1" || a.Status == "2" || a.Status == "3").Select(a => a.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToList();
            return allotList2;
        }
        //获取出库托盘上的物料批次(根据托盘码)
        public async Task<List<DetailIdSkuLotNo>> GetSoSkuLotNoListByPallet(string palletNo, string soNo)
        {
@@ -960,6 +978,7 @@
            catch (Exception e)
            {
                Db.RollbackTran();
                throw e;
            }
        }
@@ -1175,18 +1194,34 @@
        //获取平库托盘信息
        public async Task<List<BoxInfo>> GetPingKuInfoByPallet(string soNo, string palletNo)
        {
            var info = Db.Queryable<BllExportAllot>().Where(m => m.SONo == soNo && m.PalletNo == palletNo && m.IsDel == "0");
            var info = Db.Queryable<BllExportAllot>()
                .LeftJoin<DataStockDetail>((a, b) => a.PalletNo == b.PalletNo)
                .Where(a=>a.IsDel == "0" && (a.Status == "0"||a.Status =="1") && a.SONo == soNo)
                .GroupBy((a,b) => new { a.SkuNo, a.SkuName, a.LotNo, a.PalletNo,b.LocatNo }).Select((a,b) => new BoxInfo()
                {
                    PalletNo = a.PalletNo,
                    SkuNo = a.SkuNo,
                    SkuName = a.SkuName,
                    LotNo = a.LotNo,
                    LocatNo =  b.LocatNo
                }).ToListAsync();
            var data = await info;
            /*var a = info.First().LocatNo;
            if (await info.CountAsync() == 0)
            {
                throw Oops.Bah("未查询到托盘分配下发的信息");
            }
            var data = await info.GroupBy(m => new { m.SkuNo, m.SkuName, m.LotNo }).Select(m => new BoxInfo()
            var data = await info.GroupBy(a => new { a.SkuNo, a.SkuName, a.LotNo,a.PalletNo }).Select(a => new BoxInfo()
            {
                SkuNo = m.SkuNo,
                SkuName = m.SkuName,
                LotNo = m.LotNo
            }).ToListAsync();
                PalletNo = a.PalletNo,
                SkuNo = a.SkuNo,
                SkuName = a.SkuName,
                LotNo = a.LotNo
            }).ToListAsync();*/
            return data;
        }
@@ -1328,6 +1363,7 @@
            catch (Exception e)
            {
                Db.RollbackTran();
                throw e;
            }
        }
@@ -1385,7 +1421,8 @@
        }
        //取样出库拣货(标签)
        public async Task SampleSoSetPick(string soType, string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string pickQty1, string asnNo, int userId)
        public async Task SampleSoSetPick(string soType, string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3,
            string pickQty1, string asnNo, int userId)
        {
            Db.BeginTran();
            try
@@ -2025,6 +2062,7 @@
            catch (Exception e)
            {
                Db.RollbackTran();
                throw e;
            }
        }
@@ -2497,6 +2535,7 @@
            catch (Exception e)
            {
                Db.RollbackTran();
                throw e;
            }
        }
@@ -3032,6 +3071,7 @@
            catch (Exception e)
            {
                Db.RollbackTran();
                throw e;
            }
        }
        /// <summary>
@@ -3345,6 +3385,7 @@
            catch (Exception e)
            {
                Db.RollbackTran();
                throw e;
            }
        }
        #endregion
@@ -3389,7 +3430,7 @@
            var samplingQty = await Db.Queryable<BllSamplingDetails>().Where(m => m.IsDel == "0" && m.QcNo == qcNo).SumAsync(m => m.CompleteQty);
            data.QcNo = qcNo;
            data.Sku = inspectionRequest.SkuNo;
            data.Sku = inspectionRequest.SkuNo + "-" + inspectionRequest.SkuName;
            data.LotNo = inspectionRequest.LotNo;
            data.Qty = inspectionRequest.SamplingQty.ToString();
            data.SamplingQty = samplingQty == null ? "0" : samplingQty.ToString();
@@ -3855,6 +3896,7 @@
            catch (Exception e)
            {
                Db.RollbackTran();
                throw e;
            }
        }
@@ -3899,14 +3941,20 @@
                    throw Oops.Bah("请验单状态错误,请核实");
                }
                //库存明细信息
                var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNo && m.SkuNo == inspecd.SkuNo && m.LotNo == inspecd.LotNo);
                var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNo
                && m.SkuNo == inspecd.SkuNo && m.LotNo == inspecd.LotNo);
                if (stockDetail == null)
                {
                    throw Oops.Bah("未在库存中查询出当前托盘信息");
                }
                // 判断托盘是否在库内
                if (!string.IsNullOrWhiteSpace(stockDetail.LocatNo))
                {
                    throw Oops.Bah("当前托盘不是库外托盘,请核实");
                    var wareHouseData = await Db.Queryable<SysWareHouse>().FirstAsync(m => m.IsDel == "0" && m.WareHouseNo == stockDetail.WareHouseNo);
                    if (wareHouseData.Type != "2")
                    {
                        throw Oops.Bah("当前托盘不是库外托盘,请核实");
                    }
                }
                //库存总表
                var stock = await Db.Queryable<DataStock>().FirstAsync(m => m.IsDel == "0" && m.SkuNo == inspecd.SkuNo && m.LotNo == inspecd.LotNo);
@@ -4033,8 +4081,6 @@
                await Db.Updateable(inspecd).ExecuteCommandAsync();
                #endregion
                //添加操作日志记录
                var k = new OperationSOServer().AddLogOperationSo("PDA模块", "取样拣货", qcNo, "拣货", $"在PDA上对请验单号为:{qcNo}的托盘码为:{palletNo}的拣货操作", userId);
                Db.CommitTran();
@@ -4042,6 +4088,7 @@
            catch (Exception e)
            {
                Db.RollbackTran();
                throw e;
            }
        }