Administrator
2024-06-28 8db84793a19b02df61c8fb9e5d539c57b827da45
Wms/WMS.BLL/DataServer/StockDetailServer.cs
@@ -9,6 +9,7 @@
using WMS.Entity.BllQualityEntity;
using WMS.Entity.Context;
using WMS.Entity.DataEntity;
using WMS.Entity.SysEntity;
using WMS.IBLL.IDataServer;
namespace WMS.BLL.DataServer
@@ -403,5 +404,102 @@
            }
        }
        #endregion
        #region 二楼业务
        /// <summary>
        /// 添加托盘库存明细
        /// </summary>
        public void InsertStockDetail(string PalletNo,string WareHouseNo,string AreaNo,string LocatNo, string PalletStatus, string SkuNo, string SkuName, string LotNo, int userId)
        {
            try
            {
                if (string.IsNullOrEmpty(PalletNo))
                {
                    throw new Exception("托盘号不能为空!");
                }
                if (string.IsNullOrEmpty(WareHouseNo))
                {
                    throw new Exception("所属仓库不能为空!");
                }
                if (string.IsNullOrEmpty(AreaNo))
                {
                    throw new Exception("所属区域不能为空!");
                }
                if (string.IsNullOrEmpty(LocatNo))
                {
                    throw new Exception("储位地址不能为空!");
                }
                if (string.IsNullOrEmpty(PalletStatus))
                {
                    throw new Exception("托盘状态不能为空!");
                }
                var palletInfo = Db.Queryable<DataStockDetail>().First(w => w.PalletNo == PalletNo);
                if (palletInfo != null)
                {
                    throw new Exception($"库存中已有编号为:{PalletNo}的明细,请勿重复添加!");
                }
                //目标储位信息
                var locatInfo = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == LocatNo && w.Status == "0" && w.IsDel == "0");
                if (locatInfo == null)
                {
                    throw new Exception("储位地址不存在!");
                }
                Db.BeginTran();
                var comTime = DateTime.Now;
                var model = new DataStockDetail()
                {
                    Qty = 0,
                    LockQty = 0,
                    FrozenQty = 0,
                    InspectQty = 0,
                    WareHouseNo = WareHouseNo,//所属仓库
                    RoadwayNo = "",//所属巷道
                    AreaNo = AreaNo,//所属区域
                    LocatNo = LocatNo,//储位地址
                    PalletNo = PalletNo,
                    PalletNo2 = "",
                    PalletNo3 = "",
                    PalletTags = "0",
                    CompleteTime = comTime,
                    ProductionTime = null,
                    ExpirationTime = null,
                    Status = "0",
                    InspectMark = "0",
                    InspectStatus = "0",//待检验
                    BitPalletMark = "0",
                    PackagNo = "",
                    IsBale = "0",
                    IsBelt = "0",
                    SkuNo = SkuNo,
                    SkuName = SkuName,
                    LotNo = LotNo,
                    PalletStatus = PalletStatus,
                    IsDel = "0",
                    CreateUser = userId,
                    CreateTime = comTime
                };
                //插入库存明细
                Db.Insertable(model).ExecuteCommand();
                locatInfo.Status = "1";//有物品
                //修改目标储位状态
                Db.Updateable(locatInfo).ExecuteCommand();
                Db.CommitTran();
            }
            catch (Exception e)
            {
                //回滚事务
                Db.RollbackTran();
                throw new Exception(e.Message);
            }
        }
        #endregion
    }
}