yuyou_x
2024-03-26 5b4f00ff3ea04a3246a8f6f86bdefe749fcfd0c4
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -255,9 +255,9 @@
                                //{
                                //    if (expr)
                                //    {
                                //    }
                                //}
                                var com = comInfo.FirstOrDefault(m => m.IsDel == "0" && m.BoxNo3 != null && m.BoxNo3 == demo.BoxNo);
                                if (com != null)
@@ -336,7 +336,7 @@
                        throw new Exception($"未查询到对应分配信息,请核实!");
                    }
                }
                //库存明细
                var detail = Db.Queryable<DataStockDetail>().First(a => a.IsDel == "0" && a.PalletNo == palletNo);
                if (detail == null)
@@ -352,7 +352,7 @@
                {
                    SkuNo = detail.SkuNo,
                    BoxNo = detail.SkuNo,
                    Qty = allot == null ? (int)(detail.Qty-detail.LockQty) : (int)allot.Qty,
                    Qty = allot == null ? (int)(detail.Qty - detail.LockQty) : (int)allot.Qty,
                    PickedQty = allot == null ? 0 : (int)allot.CompleteQty,
                };
@@ -452,7 +452,7 @@
                    var comList = new List<BllCompleteDetail>();
                    foreach (var item in boxInfos)
                    {
                        if (comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
                        if (comDetailList.Any(m => m.BoxNo3 == item.BoxNo3) && item.BoxNo3 != null)
                        {
                            throw new Exception($"当前{item.BoxNo}中{item.BoxNo3}已拣货完成,请勿重复拣货");
                        }
@@ -617,7 +617,7 @@
                        }
                    }
                    var pickQty = 0;//拣货的数量
                    var comList = new List<BllCompleteDetail>();
                    foreach (var item in boxInfos)
                    {
@@ -648,7 +648,7 @@
                        if (biaoShi != "2")
                        {
                            //删除库存箱码明细
                            Db.Deleteable(item).ExecuteCommand();
                            Db.Deleteable(item).ExecuteCommand();
                        }
                        else//数量拣货
                        {
@@ -935,7 +935,7 @@
                    pallet.Status = "0";
                    Db.Updateable(pallet).ExecuteCommand();
                }
                //修改出库单明细拣货数量
                noticeDetail.CompleteQty += int.Parse(PickQty);
                Db.Updateable(noticeDetail).ExecuteCommand();
@@ -1330,25 +1330,25 @@
            {
                var type = "";
                var detail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNo);
                if (detail== null)
                if (detail == null)
                {
                    throw new Exception("当前托盘未在库存中");
                }
                //怎么判断当前托盘是库外要取样的托盘,正常出库剩余托盘目前这种情况也能拣货啊,也没有分配信息
                var allot = Db.Queryable<BllExportAllot>().First(m =>
                    m.IsDel == "0" && m.PalletNo == palletNo && m.Status != "5" && m.Status != "6");
                if (allot!=null)
                if (allot != null)
                {
                    var soNo = Db.Queryable<BllExportNotice>()
                        .First(m => m.IsDel == "0" && m.SONo == allot.SONo);
                    if (soNo == null)
                    {
                        throw new Exception("未找到托盘上出库单据信息");
                    }
                    }
                    if (soNo.Type != "3")
                    {
                        throw new Exception("该托盘不是取样托盘");
                    }
                    }
                    type = "0";//库内取样
                }
                else
@@ -1391,7 +1391,7 @@
        }
        //取样出库拣货(标签)
        public void SampleSoSetPick(string soType,string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string pickQty1, string asnNo, int userId)
        public void SampleSoSetPick(string soType, string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string pickQty1, string asnNo, int userId)
        {
            Db.BeginTran();
            try
@@ -1400,7 +1400,7 @@
                {
                    throw new Exception("取样标识不能为空");
                }
                //soType: 0库内取样,有出库单及分配信息; 1库前取样,反向添加出库单及分配信息
                if (soType == "1")
                {
@@ -1410,7 +1410,7 @@
                    if (string.IsNullOrWhiteSpace(asnNo))
                    {
                        throw new Exception("入库单不能为空");
                    }
                    }
                    if (string.IsNullOrWhiteSpace(palletNo))
                    {
                        throw new Exception("托盘码不能为空");
@@ -1435,7 +1435,7 @@
                        throw new Exception("未查询到该托盘的库存明细信息!");
                    }
                    var sku = Db.Queryable<SysMaterials>().First(m=>m.IsDel == "0" && m.SkuNo == stockDetail.SkuNo);
                    var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == stockDetail.SkuNo);
                    if (sku == null)
                    {
                        throw new Exception("未查询到当前托盘上的物料信息");
@@ -1450,7 +1450,7 @@
                    //出库单
                    var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.AsnSampleNo == asnNo);
                    //创建出库单
                    if (notice == null ||  notice.Status == "6")
                    if (notice == null || notice.Status == "6")
                    {
                        var billNo = "";
                        var bl = true;
@@ -1462,7 +1462,7 @@
                            bl = Db.Queryable<BllExportNotice>().Any(m => m.SONo == no);
                        } while (bl);
                        var addNotice = new BllExportNotice()
                        {
                            SONo = billNo,
@@ -1474,7 +1474,7 @@
                            WaveNo = "",
                            IsDespatch = "0",
                            CompleteTime = DateTime.Now,
                            CreateUser = userId,
                            CreateUser = userId,
                        };
                        var n = Db.Insertable(addNotice).ExecuteReturnEntity();
@@ -1508,7 +1508,7 @@
                            IsIssueLotNo = "0",
                            Status = "3",
                            CreateUser = userId,
                        };
                        var m = Db.Insertable(addNoticeDetail).ExecuteReturnEntity();
                        noticeDetail = m;
@@ -1531,8 +1531,8 @@
                            SkuName = sku.SkuName,
                            Standard = sku.Standard,
                            PalletNo = palletNo,
                            IsBale = "0" , //是否裹包
                            IsBelt = "0" , //是否打带
                            IsBale = "0", //是否裹包
                            IsBelt = "0", //是否打带
                            Qty = 0,
                            CompleteQty = 0,
@@ -1549,7 +1549,7 @@
                        var fp = Db.Insertable(addAllot).ExecuteReturnEntity();
                        allot2 = fp;
                    }
                    #endregion
@@ -1623,7 +1623,7 @@
                        }
                    }
                    var pickQty = 0;//拣货的数量
                    var comList = new List<BllCompleteDetail>();
                    foreach (var item in boxInfos)
                    {
@@ -1678,7 +1678,7 @@
                        }
                        pickQty += biaoShi == "2" ? int.Parse(pickQty1) : item.Qty;
                    }
                    //改变库内箱码是否零箱信息
                    if (biaoShi == "1")
@@ -1695,13 +1695,13 @@
                    Db.Insertable(comList).ExecuteCommand();
                    //修改出库分配信息
                    allot2.Qty += pickQty;
                    allot2.CompleteQty += pickQty;
                    allot2.CompleteQty += pickQty;
                    Db.Updateable(allot2).ExecuteCommand();
                    //删除或修改库存明细
                    stockDetail.BitPalletMark = "1";//修改为零托标识
                    stockDetail.Qty -= pickQty;
                    if (stockDetail.Qty <= 0)
                    {
                        Db.Deleteable(stockDetail).ExecuteCommand();
@@ -1740,7 +1740,7 @@
                    Db.Updateable(noticeDetail).ExecuteCommand();
                }
                else if(soType == "0")
                else if (soType == "0")
                {
                    #region 判断
@@ -1886,7 +1886,7 @@
                        }
                    }
                    var pickQty = 0;//拣货的数量
                    var comList = new List<BllCompleteDetail>();
                    foreach (var item in boxInfos)
                    {
@@ -2215,7 +2215,7 @@
                            SkuName = allot2.SkuName,
                            Standard = allot2.Standard,
                            PalletNo = palletNo,
                            CompleteQty = int.Parse(PickQty) ,
                            CompleteQty = int.Parse(PickQty),
                            InspectMark = "1",
                            CreateUser = userId
@@ -2238,7 +2238,7 @@
                    //修改出库分配信息
                    allot2.Qty += int.Parse(PickQty);
                    allot2.CompleteQty += int.Parse(PickQty);
                    allot2.CompleteQty += int.Parse(PickQty);
                    Db.Updateable(allot2).ExecuteCommand();
                    int isDel = 0;
@@ -2247,7 +2247,7 @@
                    stockDetail.BitPalletMark = "1";//修改为零托标识
                    stockDetail.InspectMark = "1";//修改为抽检托标识
                    stockDetail.Qty -= int.Parse(PickQty);
                    if (stockDetail.Qty == stockDetail.LockQty&& stockDetail.Qty != 0)
                    if (stockDetail.Qty == stockDetail.LockQty && stockDetail.Qty != 0)
                    {
                        stockDetail.Status = "2";
                    }
@@ -2300,7 +2300,7 @@
                    noticeDetail.CompleteQty += int.Parse(PickQty);
                    noticeDetail.Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * noticeDetail.Qty;
                    Db.Updateable(noticeDetail).ExecuteCommand();
                }
                else if (soType == "0")
                {
@@ -2515,7 +2515,7 @@
        /// <param name="pickQty1"></param>
        /// <param name="palletNoNew"></param>
        /// <param name="userId"></param>
        public void SoSetPinPick(string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string pickQty1,string palletNoNew,int userId)
        public void SoSetPinPick(string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string pickQty1, string palletNoNew, int userId)
        {
            Db.BeginTran();
            try
@@ -2617,7 +2617,7 @@
                {
                    isNew = true;
                    var newPalletInfo = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.Status=="0");
                    var newPalletInfo = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.Status == "0");
                    if (newPalletInfo == null)
                    {
                        throw new Exception("新托盘信息不存在或已被使用!");
@@ -2635,7 +2635,7 @@
                    sd.SkuNo = stockDetail.SkuNo;
                    sd.SkuName = stockDetail.SkuName;
                    sd.Standard = stockDetail.Standard;
                    sd.FrozenQty = 0;
                    sd.InspectQty = 0;
                    sd.ASNNo = "";
@@ -2673,7 +2673,7 @@
                    sdId = Db.Insertable(sd).ExecuteReturnIdentity();
                }
                #endregion
                var pickQty = 0;//拣货的数量
                if (string.IsNullOrWhiteSpace(boxNo))//整托拣货
                {
@@ -3047,7 +3047,7 @@
        /// <param name="PickQty"></param>
        /// <param name="palletNoNew"></param>
        /// <param name="userId"></param>
        public void SoSetQtyPinPick(string soNo, string soDetailId, string palletNo, string PickQty,string palletNoNew, int userId)
        public void SoSetQtyPinPick(string soNo, string soDetailId, string palletNo, string PickQty, string palletNoNew, int userId)
        {
            Db.BeginTran();
            try
@@ -3155,7 +3155,7 @@
                    newPalletInfo.Status = "1";
                    Db.Updateable(newPalletInfo).ExecuteCommand();
                }
                if (isNew)
                {
                    var sd = new DataStockDetail();