林豪 左 1 yıl önce
ebeveyn
işleme
9f78ca74be

+ 1 - 1
WCS.Entity/WCS_TaskInfo.cs

@@ -206,7 +206,7 @@ namespace WCS.Entity
         /// 结束时间
         /// </summary>
         [SugarColumn(ColumnDescription = "结束时间", IsNullable = true)]
-        public DateTime? EedTime { get; set; }
+        public DateTime? EndTime { get; set; }
 
         #endregion 操作时间与用户
 

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

@@ -88,7 +88,7 @@ namespace WCS.WorkEngineering.Systems
                                                 db.Default.Updateable(agv).SplitTable(x => x.Take(2)).ExecuteCommand();
                                                 //更新WCS任务状态
                                                 taskInfo.Status = Entity.TaskStatus.Finish;
-                                                taskInfo.EedTime = DateTime.Now;
+                                                taskInfo.EndTime = DateTime.Now;
                                                 db.Default.Updateable(taskInfo).ExecuteCommand();
                                                 taskInfo.AddWCS_TASK_DTL(db.Default, "agv", "任务完成");
                                                 taskInfos.Add(taskInfo);
@@ -151,6 +151,46 @@ namespace WCS.WorkEngineering.Systems
                                     //巷道分配
                                     case AGVTaskStatus.RequestOrPermission1 when agv.Status != AGVTaskStatus.Complete1:
                                         {
+                                            var task = db.Default.Queryable<WCS_TaskOld>().Where(x => x.Id == agv.TaskId).SplitTable(x => x.Take(2)).First();
+                                            if (task == null)
+                                            {
+                                                World.Log($"未找到对应的WCS任务{agv.TaskId}");
+                                                return;
+                                            }
+
+                                            //获取当前任务可以去的目标地址
+                                            var positionList = new List<string>();
+                                            switch (task.WarehouseCode)
+                                            {
+                                                case "1N":
+                                                    positionList.AddRange(new List<string>() { "2501", "2505", "2509"/*, "2513"*/ });
+                                                    break;
+
+                                                case "1S":
+                                                    positionList.AddRange(new List<string>() { "2701", "2705", "2709", "2713" });
+                                                    break;
+
+                                                case "2N":
+                                                    positionList.AddRange(new List<string>() { "2901", "2905", "2909", "2913" });
+                                                    break;
+
+                                                case "2S":
+                                                    positionList.AddRange(new List<string>() { "3101", "3105", "3109", "3113" });
+                                                    break;
+
+                                                case "3N":
+                                                    positionList.AddRange(new List<string>() { "3301", "3305", "3309", "3313" });
+                                                    break;
+
+                                                case "3S":
+                                                    positionList.AddRange(new List<string>() { "3501", "3505", "3509", "3513" });
+                                                    break;
+                                            }
+
+                                            //没有放货执行中的任务
+
+                                            //获取对应的WCS任务
+
                                             agv.Status = AGVTaskStatus.Complete1;
                                             agv.Position = "2501";
                                             db.Default.Updateable(agv).SplitTable(x => x.Take(2)).ExecuteCommand();
@@ -174,7 +214,6 @@ namespace WCS.WorkEngineering.Systems
                                         }
                                     case AGVTaskStatus.LeavePut when agv.Status != AGVTaskStatus.LeavePut:
 
-
                                         break;
                                     //完成任务
                                     case AGVTaskStatus.MissionCompleted when agv.Status != AGVTaskStatus.MissionCompleted:
@@ -207,8 +246,3 @@ namespace WCS.WorkEngineering.Systems
         }
     }
 }
-
-
-
-
-

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

@@ -84,7 +84,7 @@ namespace WCS.WorkEngineering.Systems
                         case TaskType.EnterDepot:
                             //完成任务
                             task.Status = Entity.TaskStatus.Finish;
-                            task.EedTime = DateTime.Now;
+                            task.EndTime = DateTime.Now;
                             db.Default.Updateable(task).ExecuteCommand();
                             task.AddWCS_TASK_DTL(db.Default, task.AddrTo, "入库任务结束");
                             break;
@@ -124,14 +124,14 @@ namespace WCS.WorkEngineering.Systems
 
                         case TaskType.TransferDepot:
                             task.Status = Entity.TaskStatus.Finish;
-                            task.EedTime = DateTime.Now;
+                            task.EndTime = DateTime.Now;
                             db.Default.Updateable(task).ExecuteCommand();
                             task.AddWCS_TASK_DTL(db.Default, task.AddrTo, "移库任务结束");
                             break;
 
                         case TaskType.EmptyInit:
                             task.Status = Entity.TaskStatus.Finish;
-                            task.EedTime = DateTime.Now;
+                            task.EndTime = DateTime.Now;
                             db.Default.Updateable(task).ExecuteCommand();
                             task.AddWCS_TASK_DTL(db.Default, task.AddrTo, "空轮初始化任务结束");
                             break;

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

@@ -47,6 +47,8 @@ namespace WCS.WorkEngineering.Systems
                 }
             });
 
+            var taskIdList = new List<int>();
+            var nowTime = DateTime.Now;
             //环形库组盘任务/立库入库任务 更新完成
             SqlSugarHelper.Do(_db =>
             {
@@ -59,17 +61,18 @@ namespace WCS.WorkEngineering.Systems
                 foreach (var task in taskList)
                 {
                     var res = WmsApi.CompleteTask(task.Id);
-                    if (res.ResCode == ResponseStatusCodeEnum.Sucess) //更新成功
-                    {
-                        task.Uploaded = TaskStatus.Finish;
-                        task.EditTime = DateTime.Now;
-                        db.Updateable(task).SplitTable(x => x.Take(2)).ExecuteCommand();
-                        task.AddWCS_TASK_DTL(db, "", $"同步入库完成状态同步至WMS");
-                    }
-                    else
-                    {
-                        World.Log($"入库完成状态同步失败:{task.Id}[{res.ResMsg}]");
-                    }
+                    if (res.ResCode == ResponseStatusCodeEnum.Sucess) taskIdList.Add(task.Id);
+                    else World.Log($"入库完成状态同步失败:{task.Id}[{res.ResMsg}]");
+                }
+
+                //拆分防止锁表
+                foreach (var taskId in taskIdList)
+                {
+                    var task = db.Queryable<WCS_TaskOld>().SplitTable(x => x.Take(2)).First(x => x.Id == taskId);
+                    task.Uploaded = TaskStatus.Finish;
+                    task.EditTime = nowTime;
+                    db.Updateable(task).SplitTable(x => x.Take(2)).ExecuteCommand();
+                    task.AddWCS_TASK_DTL(db, "", $"同步入库完成状态同步至WMS");
                 }
             });
         }

+ 10 - 2
业务工程/分拣库/WCS.WorkEngineering/Systems/一楼叠盘机入库.cs

@@ -33,7 +33,7 @@ namespace WCS.WorkEngineering.Systems
             {
                 string barcode = "TPB";
                 var palletType = PalletType.PalletNo09;
-                if (obj.Entity.Code is "2527" or "2727")
+                if (obj.Entity.Code is "2527" or "2727" or "2927" or "3127" or "3327" or "3527")
                 {
                     palletType = PalletType.Pallet09;
                     barcode = "TPA";
@@ -70,9 +70,17 @@ namespace WCS.WorkEngineering.Systems
                         taskInfo.Device = obj.Entity.Code switch
                         {
                             "2527" => "SRM1",
-                            "2727" => "SRM2",
                             "2528" => "SRM1",
+                            "2727" => "SRM2",
                             "2728" => "SRM2",
+                            "2927" => "SRM3",
+                            "2928" => "SRM3",
+                            "3127" => "SRM4",
+                            "3128" => "SRM4",
+                            "3327" => "SRM5",
+                            "3328" => "SRM5",
+                            "3527" => "SRM6",
+                            "3528" => "SRM6",
                             _ => taskInfo.Device
                         };
                         ;

+ 4 - 0
业务工程/分拣库/WCS.WorkEngineering/Systems/一楼扫码入库.cs

@@ -69,6 +69,10 @@ namespace WCS.WorkEngineering.Systems
                         {
                             "2532" => "SRM1",
                             "2732" => "SRM2",
+                            "2932" => "SRM3",
+                            "3132" => "SRM4",
+                            "3332" => "SRM5",
+                            "3532" => "SRM6",
                             _ => taskInfo.Device
                         };
                         ;

+ 3 - 6
业务工程/分拣库/WCS.WorkEngineering/Systems/机台叫料生成AGV任务.cs

@@ -22,13 +22,10 @@ namespace WCS.WorkEngineering.Systems
 
         public override void Do(Device<IStation520, IStation521, IStation523> obj)
         {
-            //var res = AgvApi.测试路径("2533", "12346");
-            //var res = AgvApi.机台叫料("2534", "LX32", Guid.NewGuid().ToString().Replace("-", ""));
-            //var res = AgvApi.托盘回库("LX32", Guid.NewGuid().ToString().Replace("-",""));
 
             if (!obj.Data3.Status.HasFlag(StationStatus.PH_Status)) return;
             if (!obj.Data3.Status.HasFlag(StationStatus.Low_Station_2)) return;
-            //if (!obj.Data3.Status.HasFlag(StationStatus.Auto)) return;
+            if (!obj.Data3.Status.HasFlag(StationStatus.Auto)) return;
 
             SqlSugarHelper.Do(_db =>
             {
@@ -40,13 +37,13 @@ namespace WCS.WorkEngineering.Systems
                 var agvTask = db.Queryable<WCS_AgvTaskInfo>().SplitTable(x => x.Take(2)).Single(x => x.TaskId == task.ID && x.TaskType == AGVTaskType.CallMaterial);
                 if (agvTask == null) return;
                 if (agvTask.Status != AGVTaskStatus.NewBuild) return;
-                var agvId = DateTime.Now.GetFormat(GetFormatterEnum.only) /*SnowFlakeSingle.instance.getID()*/;
+                var agvId = DateTime.Now.GetFormat(GetFormatterEnum.only);
 
                 var res = AgvApi.机台叫料(obj.Entity.Code, task.WorkBench, agvId);
                 agvTask.AgvID = agvId;
                 agvTask.Status = AGVTaskStatus.Confirm;
                 agvTask.AgvStatus = AGVTaskStatus.Confirm;
-                db.Updateable(agvTask).SplitTable(x=>x.Take(2)).ExecuteCommand();
+                db.Updateable(agvTask).SplitTable(x => x.Take(2)).ExecuteCommand();
                 task.Status = TaskStatus.AGVExecution;
                 task.AgvTaskID = agvTask.ID;
                 task.Updateable(db);

+ 1 - 1
业务工程/分拣库/WCS.WorkEngineering/Systems/桁架码垛/桁架码垛工位任务结束处理.cs

@@ -68,7 +68,7 @@ namespace WCS.WorkEngineering.Systems
                 foreach (var item in taskList)
                 {
                     item.Status = TaskStatus.Finish;
-                    item.EedTime = DateTime.Now;
+                    item.EndTime = DateTime.Now;
                     db.Updateable(item).ExecuteCommand();
                     item.AddWCS_TASK_DTL(db, obj.Entity.Code, "任务结束");
                 }

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

@@ -75,14 +75,14 @@ namespace WCS.WorkEngineering.Systems
                             case TaskType.SetPlate: //工字轮入库
                                 //完成任务
                                 task.Status = Entity.TaskStatus.Finish;
-                                task.EedTime = DateTime.Now;
+                                task.EndTime = DateTime.Now;
                                 db.Default.Updateable(task).ExecuteCommand();
                                 task.AddWCS_TASK_DTL(db.Default, task.AddrTo, "入库任务结束");
                                 break;
 
                             case TaskType.OutDepot:
                                 task.Status = Entity.TaskStatus.ConveyorExecution;
-                                task.EedTime = DateTime.Now;
+                                task.EditTime = DateTime.Now;
                                 db.Default.Updateable(task).ExecuteCommand();
                                 task.AddWCS_TASK_DTL(db.Default, task.AddrTo, "出库任务结束");
 
@@ -90,7 +90,7 @@ namespace WCS.WorkEngineering.Systems
 
                             case TaskType.TransferDepot:
                                 task.Status = Entity.TaskStatus.Finish;
-                                task.EedTime = DateTime.Now;
+                                task.EndTime = DateTime.Now;
                                 db.Default.Updateable(task).ExecuteCommand();
                                 task.AddWCS_TASK_DTL(db.Default, task.AddrTo, "移库任务结束");
                                 break;

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

@@ -60,13 +60,13 @@ namespace WCS.WorkEngineering.Systems.环形库
                 foreach (var item in tasks)
                 {
                     item.Status = TaskStatus.Finish;
-                    item.EedTime = DateTime.Now;
+                    item.EndTime = DateTime.Now;
                     db.Updateable(item).ExecuteCommand();
                     item.AddWCS_TASK_DTL(db, obj.Entity.Code, "任务结束");
                 }
 
                 deliveryTask.Status = TaskStatus.Finish;
-                deliveryTask.EedTime = DateTime.Now;
+                deliveryTask.EndTime = DateTime.Now;
                 db.Updateable(deliveryTask).ExecuteCommand();
                 deliveryTask.AddWCS_TASK_DTL(db, obj.Entity.Code, $"任务结束");
                 var dev = DevicePath.GetPath(obj.Entity.Code, "SRM").Points.Last();

+ 3 - 3
业务工程/分拣库/WCS.WorkEngineering/WebApi/Controllers/WcsController.cs

@@ -195,7 +195,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                 }
                                 //更新任务状态
                                 task.Status = Entity.TaskStatus.Cancel;
-                                task.EedTime = DateTime.Now;
+                                task.EndTime = DateTime.Now;
                                 task.EditWho = req.User;
                                 task.ManualRemarks = req.ManualRemarks;
                                 db.Default.Updateable(task).ExecuteCommand();
@@ -280,7 +280,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                         }
                                         //更新任务状态
                                         task.Status = Entity.TaskStatus.Finish;
-                                        task.EedTime = DateTime.Now;
+                                        task.EndTime = DateTime.Now;
                                         task.EditWho = req.User;
                                         task.ManualRemarks = req.ManualRemarks;
                                         db.Default.Updateable(task).ExecuteCommand();
@@ -354,7 +354,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                         }
                                         //更新任务状态
                                         task.Status = Entity.TaskStatus.Finish;
-                                        task.EedTime = DateTime.Now;
+                                        task.EndTime = DateTime.Now;
                                         task.EditWho = req.User;
                                         task.ManualRemarks = req.ManualRemarks;
 

+ 2 - 2
业务工程/分拣库/WCS.WorkEngineering/WorkStart.cs

@@ -1062,8 +1062,8 @@ namespace WCS.WorkEngineering
                 { DeviceFlags.扫码, new List<string>() { "2532", "2732" } },
                 { DeviceFlags.一列堆垛机, new List<string>() { "SRM1"/*, "SRM3", "SRM5"*/} },
                 { DeviceFlags.二列堆垛机, new List<string>() { "SRM2"/*, "SRM4", "SRM6"*/ } },
-                { DeviceFlags.一楼扫码,new List<string>(){ "2532","2732"} },
-                { DeviceFlags.一楼叠盘机,new List<string>() { "2527","2528","2727","2728"} },
+                { DeviceFlags.一楼扫码,new List<string>(){ "2532","2732", "2932", "3132" , "3332", "3532"  } },
+                { DeviceFlags.一楼叠盘机,new List<string>() { "2527","2528","2727","2728", "2927", "2928", "3127", "3128" , "3327", "3328", "3527", "3528" } },
                 { DeviceFlags.主线分流点,new List<string>() { "22","41","61"} },
                 { DeviceFlags.满轮主线第一次扫码,new List<string>() { "1"} },
                 { DeviceFlags.环形库分流点,new List<string>(){ "418", "618","818","1018","1218","1418" } },

+ 1 - 1
业务工程/时效库/WCS.WorkEngineering/Systems/AgvSystems.cs

@@ -95,7 +95,7 @@ namespace WCS.WorkEngineering.Systems
                                                 db.Default.Updateable(agv).SplitTable(x=>x.Take(2)).ExecuteCommand();
                                                 //更新WCS任务状态
                                                 taskInfo.Status = Entity.TaskStatus.Finish;
-                                                taskInfo.EedTime = DateTime.Now;
+                                                taskInfo.EndTime = DateTime.Now;
                                                 db.Default.Updateable(taskInfo).ExecuteCommand();
                                                 taskInfo.AddWCS_TASK_DTL(db.Default, "agv", "任务完成");
                                                 taskInfos.Add(taskInfo);

+ 3 - 3
业务工程/时效库/WCS.WorkEngineering/Systems/SrmSystems.cs

@@ -84,7 +84,7 @@ namespace WCS.WorkEngineering.Systems
                         case TaskType.EnterDepot:
                             //完成任务
                             task.Status = Entity.TaskStatus.Finish;
-                            task.EedTime = DateTime.Now;
+                            task.EndTime = DateTime.Now;
                             db.Default.Updateable(task).ExecuteCommand();
                             task.AddWCS_TASK_DTL(db.Default, task.AddrTo, "入库任务结束");
                             break;
@@ -124,14 +124,14 @@ namespace WCS.WorkEngineering.Systems
 
                         case TaskType.TransferDepot:
                             task.Status = Entity.TaskStatus.Finish;
-                            task.EedTime = DateTime.Now;
+                            task.EndTime = DateTime.Now;
                             db.Default.Updateable(task).ExecuteCommand();
                             task.AddWCS_TASK_DTL(db.Default, task.AddrTo, "移库任务结束");
                             break;
 
                         case TaskType.EmptyInit:
                             task.Status = Entity.TaskStatus.Finish;
-                            task.EedTime = DateTime.Now;
+                            task.EndTime = DateTime.Now;
                             db.Default.Updateable(task).ExecuteCommand();
                             task.AddWCS_TASK_DTL(db.Default, task.AddrTo, "空轮初始化任务结束");
                             break;

+ 3 - 3
业务工程/时效库/WCS.WorkEngineering/Systems/环形库/机械臂cs.cs

@@ -77,14 +77,14 @@ namespace WCS.WorkEngineering.Systems
                             case TaskType.SetPlate: //工字轮入库
                                 //完成任务
                                 task.Status = Entity.TaskStatus.Finish;
-                                task.EedTime = DateTime.Now;
+                                task.EndTime = DateTime.Now;
                                 db.Default.Updateable(task).ExecuteCommand();
                                 task.AddWCS_TASK_DTL(db.Default, task.AddrTo, "入库任务结束");
                                 break;
 
                             case TaskType.OutDepot:
                                 task.Status = Entity.TaskStatus.ConveyorExecution;
-                                task.EedTime = DateTime.Now;
+                                task.EndTime = DateTime.Now;
                                 db.Default.Updateable(task).ExecuteCommand();
                                 task.AddWCS_TASK_DTL(db.Default, task.AddrTo, "出库任务结束");
 
@@ -92,7 +92,7 @@ namespace WCS.WorkEngineering.Systems
 
                             case TaskType.TransferDepot:
                                 task.Status = Entity.TaskStatus.Finish;
-                                task.EedTime = DateTime.Now;
+                                task.EndTime = DateTime.Now;
                                 db.Default.Updateable(task).ExecuteCommand();
                                 task.AddWCS_TASK_DTL(db.Default, task.AddrTo, "移库任务结束");
                                 break;

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

@@ -62,7 +62,7 @@ namespace WCS.WorkEngineering.Systems.环形库
                 }
 
                 deliveryTask.Status = TaskStatus.Finish;
-                deliveryTask.EedTime = DateTime.Now;
+                deliveryTask.EndTime = DateTime.Now;
                 db.Updateable(deliveryTask).ExecuteCommand();
                 deliveryTask.AddWCS_TASK_DTL(db, obj.Entity.Code, $"任务结束");
                 var dev = DevicePath.GetPath(obj.Entity.Code, "SRM").Points.Last();

+ 3 - 3
业务工程/时效库/WCS.WorkEngineering/WebApi/Controllers/WcsController.cs

@@ -195,7 +195,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                 }
                                 //更新任务状态
                                 task.Status = Entity.TaskStatus.Cancel;
-                                task.EedTime = DateTime.Now;
+                                task.EndTime = DateTime.Now;
                                 task.EditWho = req.User;
                                 task.ManualRemarks = req.ManualRemarks;
                                 db.Default.Updateable(task).ExecuteCommand();
@@ -280,7 +280,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                         }
                                         //更新任务状态
                                         task.Status = Entity.TaskStatus.Finish;
-                                        task.EedTime = DateTime.Now;
+                                        task.EndTime = DateTime.Now;
                                         task.EditWho = req.User;
                                         task.ManualRemarks = req.ManualRemarks;
                                         db.Default.Updateable(task).ExecuteCommand();
@@ -354,7 +354,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                         }
                                         //更新任务状态
                                         task.Status = Entity.TaskStatus.Finish;
-                                        task.EedTime = DateTime.Now;
+                                        task.EndTime = DateTime.Now;
                                         task.EditWho = req.User;
                                         task.ManualRemarks = req.ManualRemarks;