yuyou_x
2024-03-16 cd8800f471c9d7ee62dd915c4407f809638471af
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -17,6 +17,7 @@
using Model.ModelDto.PdaDto;
using Dm;
using Model.InterFaceModel;
using WMS.Entity.BllQualityEntity;
namespace WMS.BLL.BllPdaServer
{
@@ -1788,9 +1789,9 @@
                }
                //根据单据号获取入库单总单
                var notice = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.AsnNo);
                if (notice.Status != "0" && notice.Status != "1")
                if (notice.Status != "0" && notice.Status != "1" && notice.Status != "2")
                {
                    throw new Exception("-1:入库单状态不是等待执行或执行完成!");
                    throw new Exception("-1:该单据已关单!");
                }
                if (string.IsNullOrEmpty(model.LotNo))
                {
@@ -1894,7 +1895,7 @@
                    throw new Exception("该托盘未在库外,请核实!");
                }
                // 验证入库单明细是否存在
                var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo && model.LotNo.Contains(m.LotNo));
                var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo && m.LotNo.Contains(model.LotNo));
                if (detail == null)
                {
                    throw new Exception("-1:当前物料及批次与单据无关联,请核实!");
@@ -2224,7 +2225,7 @@
                    #endregion
                    #region 箱码信息
                    var boxInfoList = Db.Queryable<BllBoxInfo>().Where(w => w.IsDel == "0" && w.ASNNo == model.ASNNo).ToList();
                    var boxInfoList = Db.Queryable<BllBoxInfo>().Where(w => w.IsDel == "0" && w.ASNNo == model.ASNNo && w.PalletNo == model.PalletNo).ToList();
                    // type 0:成品入库 1:采购入库 2:中间品入库 3:退货入库 4:车间余料退回入库 5:其它入库 6:代储入库 7:寄存入库
                    if (notice.Type == "2" || notice.Type == "6" || notice.Type == "7")
                    {
@@ -2298,6 +2299,12 @@
                            CreateUser = (int)model.CreateUser,
                            CreateTime = serverTime
                        };
                        //维护库存货主信息
                        if (notice.Type == "0" || notice.Type == "2" || notice.Type == "4" || notice.Type == "6" || notice.Type == "7")//0:成品入库,2:中间品入库,4:车间余料入库,6:代储入库,7:寄存入库
                        {
                            stockModel.OwnerNo = notice.CustomerNo;//货主编码
                            stockModel.OwnerName = notice.CustomerName;//货主名称
                        }
                        //新增库存总信息
                        Db.Insertable<DataStock>(stockModel).ExecuteCommand();
                    }
@@ -2350,11 +2357,43 @@
                            PackagNo = sku.PackagNo,
                            IsBale = bindInfo.IsBale,
                            IsBelt = bindInfo.IsBelt,
                            CreateUser = (int)model.CreateUser,
                            CreateTime = serverTime
                        };
                        //维护库存明细货主/供应商信息
                        if (notice.Type == "0" || notice.Type == "2" || notice.Type == "4" || notice.Type == "6" || notice.Type == "7")//0:成品入库,2:中间品入库,4:车间余料入库,6:代储入库,7:寄存入库
                        {
                            detailModel.OwnerNo = notice.CustomerNo;//货主编码
                            detailModel.OwnerName = notice.CustomerName;//货主名称
                        }
                        else if (notice.Type == "1" || notice.Type == "5")//1:采购入库,2:其它入库
                        {
                            detailModel.SupplierNo = notice.CustomerNo;//供应商编码
                            detailModel.SupplierName = notice.CustomerName;//供应商名称
                        }
                        #region  维护质检结果
                        //获取该批次最终质检结果
                        var quality = Db.Queryable<BllQualityInspect>().Where(a => a.LotNo == noticeDetail.LotNo && a.IsDel == "0").OrderByDescending(a => a.CreateTime).First();
                        if (quality != null)
                        {
                            //修改合格不合格数量
                            if (quality.IsQualified == "1") //合格
                            {
                                //增加合格数量
                                quality.PassQty += detailModel.Qty;
                                detailModel.InspectStatus = "1";
                            }
                            else if (quality.IsQualified == "0") //不合格
                            {
                                //增加不合格数量
                                quality.FailQty += detailModel.Qty;
                                detailModel.InspectStatus = "2";
                            }
                            Db.Updateable(quality).ExecuteCommand(); //修改质检信息
                        }
                        #endregion
                        stId = Db.Insertable<DataStockDetail>(detailModel).ExecuteReturnIdentity();
                    }
                    else
                    {