yuyou_x
2024-03-15 a533b43a8d57b1973f505089aff75da669103d34
Wms/WMS.BLL/BllQualityServer/QualityInspectServer.cs
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Text;
using Model.ModelDto.BllQualityDto;
using Model.ModelVm;
@@ -9,6 +10,7 @@
using WMS.Entity.BllQualityEntity;
using WMS.Entity.Context;
using WMS.Entity.DataEntity;
using WMS.Entity.SysEntity;
using WMS.IBLL.IBllQualityServer;
namespace WMS.BLL.BllQualityServer
@@ -87,41 +89,69 @@
            {
                throw new Exception("质检号不可为空,请核查!");
            }
            //验证入库单号是否为空
            if (string.IsNullOrEmpty(model.ASNNo))
            {
                throw new Exception("入库单号不可为空,请核查!");
            }
            //验证物料号是否为空
            if (string.IsNullOrEmpty(model.SkuNo))
            {
                throw new Exception("物料号不可为空,请核查!");
            }
            //获取物料信息
            var sku = Db.Queryable<SysMaterials>().First(a => a.IsDel == "0" && a.SkuNo == model.SkuNo);
            if (sku == null)
            {
                throw new Exception("物料信息为空,请核查!");
            }
            //验证批次号是否为空
            if (string.IsNullOrEmpty(model.LotNo))
            {
                throw new Exception("批次号不可为空,请核查!");
            }
            int isTui = 0;
            //验证入库单号是否为空
            if (!string.IsNullOrEmpty(model.ASNNo))
            {
                //查询是否为退货入库单据
                var Arrival = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.ASNNo && a.Type == "3");
                if (Arrival == null)
                {
                    throw new Exception("只有入库单据为退货入库单可输入 入库单号,请核查!");
                }
                //获取入库单明细
                var ArrivalDetail = Db.Queryable<BllArrivalNoticeDetail>().First(a => a.IsDel == "0" && a.ASNNo == model.ASNNo && a.LotNo.Contains(model.LotNo) && a.SkuNo == model.SkuNo);
                if (ArrivalDetail == null)
                {
                    throw new Exception("输入的批次或物料信息与入库单据不符,请核查!");
                }
                isTui = 1;
            }
            //查找质检信息中是否存在同批次质检录入记录
            BllQualityInspect quality = Db.Queryable<BllQualityInspect>().First(m => m.IsDel == "0" && m.ASNNo == model.ASNNo && m.SkuNo == model.SkuNo && m.LotNo == model.LotNo);
            BllQualityInspect quality = Db.Queryable<BllQualityInspect>().First(m => m.IsDel == "0" && m.SkuNo == model.SkuNo && m.LotNo == model.LotNo);
            if (quality != null)
            {
                //判断是否为退货入库单
                if (isTui == 1)
                {
                    if (quality.ASNNo == model.ASNNo)
                    {
                        throw new Exception("当前退货入库单已创建质检信息,请勿重复创建!");
                    }
                }
                throw new Exception("当前批次已进行质检,请核查!");
            }
            //查找同批次 同单据 入库单信息、
            BllArrivalNoticeDetail arrivalDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.ASNNo == model.ASNNo && m.LotNo == model.LotNo);
            ////查找同批次 同单据 入库单信息、
            //BllArrivalNoticeDetail arrivalDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.ASNNo == model.ASNNo && m.LotNo == model.LotNo);
            model.Origin = "WMS"; //来源
            model.CreateTime = Db.GetDate(); //创建日期
            model.SkuNo = arrivalDetail.SkuNo; //物料号
            model.SkuName = arrivalDetail.SkuName; //物料名称
            model.SkuNo = sku.SkuNo; //物料号
            model.SkuName = sku.SkuName; //物料名称
            model.PassQty = 0; //合格数量
            model.FailQty = 0; //不合格数量
            model.Standard = arrivalDetail.Standard; //规格
            model.SupplierLot = arrivalDetail.SupplierLot; //供货批次
            model.Standard = sku.Standard; //规格
            //model.SupplierLot = arrivalDetail.SupplierLot; //供货批次
            //查找库存明细信息
            List<DataStockDetail> detail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.ASNNo == model.ASNNo && m.SkuNo == model.SkuNo && m.LotNo == model.LotNo).ToList();