1
yuyou_x
2024-02-02 0d0ab647110b34bbe002db2c749f7cf5ab9d73ee
1
1个文件已修改
112 ■■■■■ 已修改文件
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -1638,7 +1638,7 @@
                        PalletNo = model.PalletNo,
                        PalletNo2 = "",
                        PalletNo3 = "",
                        Qty = 0,
                        Qty = model.SkuQty,
                        FullQty = pNum,
                        Status = "0",
                        Type = "0",
@@ -1666,69 +1666,75 @@
                #region 箱码信息
                var msgStr = $"箱号为{model.BoxNo}";
                var boxInfoList = new List<BllBoxInfo>();
                //首箱
                var boxInfo = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo && m.Status == "0").ToList();
                if (boxInfo.Count == 0)
                if (model.SkuQty == 0)
                {
                    throw new Exception("-1:箱码信息不存在!");
                }
                boxInfoList.AddRange(boxInfo);
                //是否连续组托
                if (model.IsContinue == "1")
                {
                    //尾箱
                    var boxInfo2 = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.TailBoxNo && m.Status == "0").ToList();
                    if (boxInfo2.Count == 0)
                    //首箱
                    var boxInfo = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo && m.Status == "0").ToList();
                    if (boxInfo.Count == 0)
                    {
                        throw new Exception("-1:尾箱码信息不存在!");
                        throw new Exception("-1:箱码信息不存在!");
                    }
                    boxInfoList.AddRange(boxInfo2);
                    var sql = $"select * from BllBoxInfo where IsDel = '0' and Status = '0' and boxNo>'{model.BoxNo}' and boxNo<'{model.TailBoxNo}'; ";
                    var list = Db.Ado.SqlQuery<BllBoxInfo>(sql);
                    boxInfoList.AddRange(list);
                    msgStr += $"尾箱号为{model.TailBoxNo}";
                    boxInfoList.AddRange(boxInfo);
                    //是否连续组托
                    if (model.IsContinue == "1")
                    {
                        //尾箱
                        var boxInfo2 = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.TailBoxNo && m.Status == "0").ToList();
                        if (boxInfo2.Count == 0)
                        {
                            throw new Exception("-1:尾箱码信息不存在!");
                        }
                        boxInfoList.AddRange(boxInfo2);
                        var sql = $"select * from BllBoxInfo where IsDel = '0' and Status = '0' and boxNo>'{model.BoxNo}' and boxNo<'{model.TailBoxNo}'; ";
                        var list = Db.Ado.SqlQuery<BllBoxInfo>(sql);
                        boxInfoList.AddRange(list);
                        msgStr += $"尾箱号为{model.TailBoxNo}";
                    }
                }
                #endregion
                // 更改箱支关系表
                decimal factQty = 0.00m;//托盘总数量
                var boxGroup = boxInfoList.GroupBy(m => m.BoxNo).ToList();
                foreach (var g in boxGroup)
                if (model.SkuQty == 0)
                {
                    var boxFullQty = 0;//箱内总数量
                    foreach (var box in g)
                    var boxGroup = boxInfoList.GroupBy(m => m.BoxNo).ToList();
                    foreach (var g in boxGroup)
                    {
                        if (box.BindNo != null && box.BindNo != 0)
                        var boxFullQty = 0;//箱内总数量
                        foreach (var box in g)
                        {
                            continue;
                            if (box.BindNo != null && box.BindNo != 0)
                            {
                                continue;
                            }
                            //箱内物料批次与单据明细不符合
                            if (box.SkuNo != detail.SkuNo || box.LotNo != detail.LotNo)
                            {
                                throw new Exception($"-1:{box.BoxNo}箱内物料及批次与单据不一致,请核实!");
                            }
                            box.ASNNo = model.AsnNo;
                            box.ASNDetailNo = model.AsnDetailId;
                            box.BindNo = bindId;
                            box.PalletNo = model.PalletNo;
                            box.Status = "1";
                            box.CompleteTime = DateTime.Now;
                            box.UpdateTime = DateTime.Now;
                            box.UpdateUser = userId;
                            factQty += box.Qty;
                            boxFullQty += box.Qty;
                        }
                        //箱内物料批次与单据明细不符合
                        if (box.SkuNo != detail.SkuNo || box.LotNo != detail.LotNo)
                        if (boxFullQty > bNum)
                        {
                            throw new Exception($"-1:{box.BoxNo}箱内物料及批次与单据不一致,请核实!");
                            throw new Exception($"绑定失败,{g.Key}箱码绑定数量大于该物品包装数量!");
                        }
                        box.ASNNo = model.AsnNo;
                        box.ASNDetailNo = model.AsnDetailId;
                        box.BindNo = bindId;
                        box.PalletNo = model.PalletNo;
                        box.Status = "1";
                        box.CompleteTime = DateTime.Now;
                        box.UpdateTime = DateTime.Now;
                        box.UpdateUser = userId;
                        factQty += box.Qty;
                        boxFullQty += box.Qty;
                    }
                    if (boxFullQty > bNum)
                    {
                        throw new Exception($"绑定失败,{g.Key}箱码绑定数量大于该物品包装数量!");
                    }
                    Db.Updateable(boxInfoList).ExecuteCommand();
                    // 更新托盘绑定表
                    bind.Qty += factQty;
                }
                Db.Updateable(boxInfoList).ExecuteCommand();
                // 更新托盘绑定表
                bind.Qty += factQty;
                if (bind.FullQty < bind.Qty)
                {
                    throw new Exception("托盘绑定数量已超出该物料包装数量");
@@ -1742,7 +1748,15 @@
                // 更改入库单明细已组数量
                var sqlString = string.Empty;
                sqlString += $"update BllArrivalNoticeDetail set FactQty = FactQty + '{factQty}' where id = '{model.AsnDetailId}';";
                if (factQty == 0)
                {
                    sqlString += $"update BllArrivalNoticeDetail set FactQty = FactQty + '{bind.Qty}' where id = '{model.AsnDetailId}';";
                }
                else
                {
                    sqlString += $"update BllArrivalNoticeDetail set FactQty = FactQty + '{factQty}' where id = '{model.AsnDetailId}';";
                }
                Db.Ado.ExecuteCommand(sqlString);
                // 更改入库单及入库明细状态