林豪 左 1 жил өмнө
parent
commit
3cebed9cf2

+ 2 - 2
ServiceCenter/SqlSugars/SqlSugarHelper.cs

@@ -129,7 +129,7 @@ namespace ServiceCenter.SqlSugars
                 db.Connect.BeginTran(IsolationLevel.ReadCommitted);//开始事务
                 if (_Default != "")
                 {
-                    db.Default.Ado.CommandTimeOut = 10;
+                    db.Default.Ado.CommandTimeOut = 60;
                 }
                 act(db);//执行委托
                 db.Connect.CommitTran();//提交事务
@@ -155,7 +155,7 @@ namespace ServiceCenter.SqlSugars
             try
             {
                 db.Connect.BeginTran();//开始事务
-                //db.Connect.Ado.CommandTimeOut = 6;
+                db.Connect.Ado.CommandTimeOut = 60;
                 var res = act(db);//执行委托
                 db.Connect.CommitTran();//提交事务
                 return res;

+ 1 - 1
WCS.Core/World.cs

@@ -356,7 +356,7 @@ namespace WCS.Core
             var msg = wt.GetInfo();
             if (wt.Total > 4000)
             {
-                OnLog(Ltc.GetChannel(), msg);
+                OnLog(Ltc.GetChannel(), $"周期超时记录:{msg}");
             }
             Console.WriteLine(msg);
             Console.ResetColor();

+ 1 - 1
业务工程/分拣库/WCS.WorkEngineering/Systems/AgvSystems.cs

@@ -148,7 +148,7 @@ namespace WCS.WorkEngineering.Systems
                                     //巷道分配
                                     case AGVTaskStatus.RequestOrPermission1 when agv.Status != AGVTaskStatus.Complete1:
                                         {
-                                            var task = db.Default.Queryable<WCS_TaskOld>().UpdLock().Where(x => x.Id == agv.TaskId).SplitTable(x => x.Take(2)).First();
+                                            var task = db.Default.Queryable<WCS_TaskOld>().NoLock().Where(x => x.Id == agv.TaskId).SplitTable(x => x.Take(2)).First();
                                             if (task == null) throw new Exception($"未找到对应的WCS任务{agv.TaskId}");
 
                                             //获取当前任务可以去的目标地址

+ 4 - 5
业务工程/分拣库/WCS.WorkEngineering/Systems/SrmSystems.cs

@@ -289,9 +289,9 @@ namespace WCS.WorkEngineering.Systems
                 SqlSugarHelper.Do(db =>
                 {
                     //根据有货设备的任务号获取所有类型为入库状态为输送机执行中的任务
-                    var tasks = db.Default.Queryable<WCS_TaskInfo>().Where(v => (v.Type == TaskType.EnterDepot || v.Type == TaskType.EmptyInit)
-                                                                              && (v.Status == TaskStatus.ConveyorExecution || v.Status == TaskStatus.RgvExecution || v.Status == TaskStatus.RgvCompleted)
-                                                                              && (arrIn.Select(p => p.Data.TaskNumber).Contains(v.ID) || arrIn.Select(p => p.Data2.TaskNumber).Contains(v.ID))).ToList();
+                    var tasks = db.Default.Queryable<WCS_TaskInfo>().Where(v => (v.Status == TaskStatus.ConveyorExecution || v.Status == TaskStatus.RgvExecution || v.Status == TaskStatus.RgvCompleted)
+                                                                                  && (arrIn.Select(p => p.Data.TaskNumber).Contains(v.ID) || arrIn.Select(p => p.Data2.TaskNumber).Contains(v.ID))
+                                                                                  && (v.Type == TaskType.EnterDepot || v.Type == TaskType.EmptyInit)).ToList();
                     if (!tasks.Any()) throw new KnownException("无可用任务", LogLevelEnum.Mid);
 
                     //按条件先后排序获取一条排序后第一条结果1.优先级2.所在楼层与本次优先执行楼层 TODO:待验证排序结果
@@ -377,8 +377,7 @@ namespace WCS.WorkEngineering.Systems
                    var allOutCode = arrOut.Select(v => v.Entity.Code).ToList();
 
                    //按条件先后排序获取一条排序后第一条结果1.优先级2.所在楼层与本次优先执行楼层
-                   var task = db.Default.Queryable<WCS_TaskInfo>().UpdLock().Where(v => v.Type == TaskType.OutDepot && v.Status == TaskStatus.WaitingToExecute)
-                                                                  .Where(v => allOutCode.Contains(v.SrmStation))
+                   var task = db.Default.Queryable<WCS_TaskInfo>().UpdLock().Where(v => v.Status == TaskStatus.WaitingToExecute && allOutCode.Contains(v.SrmStation) && v.Type == TaskType.OutDepot)
                                                                   .OrderByDescending(v => v.Priority)
                                                                   .OrderByDescending(v => v.Floor == floor ? 1 : 0)
                                                                   .OrderBy(v => v.AddTime)

+ 5 - 5
业务工程/分拣库/WCS.WorkEngineering/Systems/UpLoadSystems.cs

@@ -68,11 +68,11 @@ namespace WCS.WorkEngineering.Systems
                 var nowTime = DateTime.Now;
                 var db = _db.Default;
                 var taskList = db.Queryable<WCS_TaskOld>().UpdLock()
-                    .Where(x =>
-                                ((x.Type == TaskType.SetPlate && x.WarehouseCode.Contains("R"))
-                                 || ((x.Type == TaskType.EnterDepot || x.Type == TaskType.OutDepot) && !x.WarehouseCode.Contains("R")))
-                                && x.Status == TaskStatus.Finish
-                                && x.Uploaded != TaskStatus.Finish).SplitTable(x => x.Take(2)).ToList();
+                    .Where(x =>((x.Type == TaskType.SetPlate && x.WarehouseCode.Contains("R")) || ((x.Type == TaskType.EnterDepot || x.Type == TaskType.OutDepot) && !x.WarehouseCode.Contains("R"))) && x.Status == TaskStatus.Finish&& x.Uploaded != TaskStatus.Finish).SplitTable(x => x.Take(2)).ToList();
+                                
+                                
+                               
+                                
                 var isEnd = false;
                 foreach (var task in taskList)
                 {

+ 1 - 1
业务工程/分拣库/WCS.WorkEngineering/Systems/桁架码垛/桁架缓存放行点.cs

@@ -111,7 +111,7 @@ namespace WCS.WorkEngineering.Systems
             {
                 var db = _db.Default;
                 //先找到下一个地址对应的缓存信息
-                var lineCache = db.Queryable<WCS_CacheLine>().Includes(x => x.Locations).Single(x => x.LocationNo == nextCode && x.Locations.Any(s => s.TaskId == obj.Data2.TaskNumber));
+                var lineCache = db.Queryable<WCS_CacheLine>().Includes(x => x.Locations).Single(x => x.InStock == true && x.LocationNo == nextCode && x.Locations.Any(s => s.TaskId == obj.Data2.TaskNumber));
                 if (lineCache == null)
                 {
                     World.Log($"缓存组{obj.Entity.Code}未分配完");

+ 2 - 2
业务工程/分拣库/WCS.WorkEngineering/Systems/环形库/机械臂cs.cs

@@ -336,10 +336,10 @@ namespace WCS.WorkEngineering.Systems
                                 v.Data4.Type
                             }).ToList();
                             //两个工位同时码垛,并不会一个执行一次,只有一个托盘任务全部执行完毕,才会继续执行下一个,先生成任务的码垛工位会优先执行
-                            var taskInfos = db.Default.Queryable<WCS_TaskInfo>().Where(v => v.Type == TaskType.OutDepot && (v.Status == Entity.TaskStatus.WaitingToExecute || v.Status == TaskStatus.ConveyorExecution))
+                            var taskInfos = db.Default.Queryable<WCS_TaskInfo>().Where(v => (v.Status == Entity.TaskStatus.WaitingToExecute || v.Status == TaskStatus.ConveyorExecution) && v.Type == TaskType.OutDepot)
                                 .ToList().Where(v => allOutCode.Any(x => v.SrmStation == x.Code && v.PalletType == x.Type)).ToList();
 
-                            var deliveryTask = db.Default.Queryable<WCS_TaskInfo>().Where(x => x.Type == TaskType.Delivery && x.Status > 0).ToList().Select(x => x.AddrTo);
+                            var deliveryTask = db.Default.Queryable<WCS_TaskInfo>().Where(x => x.Status > 0 && x.Type == TaskType.Delivery).ToList().Select(x => x.AddrTo);
                             taskInfos = taskInfos.Where(x => deliveryTask.Contains(x.SrmStation)).ToList();
                             if (!taskInfos.Any())
                             {

+ 1 - 1
业务工程/分拣库/WCS.WorkEngineering/Systems/环形库/环形库码垛结束.cs

@@ -41,7 +41,7 @@ namespace WCS.WorkEngineering.Systems.环形库
                 var taskNoList = obj.Data5.GetTaskNoList().ToList();
                 var tasks = db.Queryable<WCS_TaskInfo>().UpdLock().Where(x => taskNoList.Contains(x.ID) && x.Status == TaskStatus.ConveyorExecution).ToList();
                 var deliveryTask = db.Queryable<WCS_TaskInfo>().UpdLock().Single(x => x.Type == TaskType.Delivery && x.AddrTo == obj.Entity.Code) ?? throw new KnownException($"未找到当前站台对应的托盘搬运任务", LogLevelEnum.High);
-                var taskInfo = db.Queryable<WCS_TaskInfo>().UpdLock().Single(x => x.AddrFrom == obj.Entity.Code && x.Type == TaskType.EnterDepot);
+                var taskInfo = db.Queryable<WCS_TaskInfo>().UpdLock().Single(x => x.Status <= TaskStatus.RgvCompleted && x.AddrFrom == obj.Entity.Code && x.Type == TaskType.EnterDepot);
                 if (deliveryTask.Status != Entity.TaskStatus.RgvCompleted) throw new KnownException($"搬运任务状态异常:{deliveryTask.ID}", LogLevelEnum.High);
                 if (taskInfo == null)
                 {