wxw
2025-07-18 1bb1d55920fcf8f41b13e233031c1eb75e8587df
Wms/WMS.BLL/BllTransServer/RcsServer.cs
@@ -27,7 +27,8 @@
{
    public class RcsServer:IRcsServer
    {
        private readonly object RcsLock = new object();
        private readonly object GetPalleLock = new object();
        private readonly object ApplyLocatLock = new object();
        private static readonly SqlSugarScope Db = DataContext.Db;
        /// <summary>
@@ -39,7 +40,7 @@
        /// <exception cref="Exception"></exception>
        public void GetPalletNo(Pallnetmsg model, string url, out string taskNo)
        {
            lock (RcsLock)
            lock (GetPalleLock)
            {
                try
                {
@@ -448,7 +449,7 @@
        /// <exception cref="Exception"></exception>
        public void ApplyLocatNo(Pallnetmsg model, string url, out string taskNo)
        {
            lock (RcsLock)
            lock (ApplyLocatLock)
            {
                try
                {
@@ -520,6 +521,11 @@
                                {
                                    throw new Exception($"未查询到该设备所在储位信息,Location:{model.Location}");
                                }
                                //判断是否有批次号
                                if (string.IsNullOrWhiteSpace(model.LotNo))
                                {
                                    throw new Exception("批次号为空!");
                                }
                                //查找桶库存信息
                                palletInfo = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.WareHouseNo == deviceLocatInfo.WareHouseNo && w.AreaNo == deviceLocatInfo.AreaNo && w.LocatNo == deviceLocatInfo.LocatNo).OrderBy(o => o.UpdateTime).First();
                                if (palletInfo == null)
@@ -527,7 +533,7 @@
                                    throw new Exception($"未查询到该设备上桶的库存信息");
                                }
                                palletInfo.LotNo = model.LotNo;//批次号
                                                               //更新桶库存信息
                                //更新桶库存信息
                                Db.Updateable(palletInfo).ExecuteCommand();
                                //查找该桶有没有正在执行的任务
@@ -536,12 +542,7 @@
                                {
                                    throw new Exception($"该桶有正在执行的任务,PalletNo:{palletInfo.PalletNo}");
                                }
                                //判断是否有批次号
                                if (string.IsNullOrWhiteSpace(model.LotNo))
                                {
                                    throw new Exception("批次号为空!");
                                }
                                //查找到该车间预混区
                                loction = GetLocatModel(houseNo, "1");
                                if (loction == null)
@@ -1345,7 +1346,7 @@
                var taskIng= Db.Queryable<LogTask>().First(w => w.IsDel == "0" && (w.Status == "0" || w.Status == "1") && w.PalletNo == palletNo);
                if (taskIng != null)
                {
                    throw new Exception("分配的桶有正在执行的任务,请稍后再试");
                    throw new Exception($"分配的桶{palletNo}有正在执行的任务,请稍后再试");
                }
                //分配桶的储位信息
                var locatInfo = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletInfo.LocatNo);