gkj 2 years ago
parent
commit
6f2c79550a

+ 14 - 10
WCS.WorkEngineering/Systems/NoInteractionSystems.cs

@@ -72,17 +72,21 @@ namespace WCS.WorkEngineering.Systems
 
                                 case TaskType.OutDepot:
                                     if (task.Floor == 2)
-                                    {  //创建AGV任务
-                                        agvTask = new WCS_AgvTaskInfo()
+                                    {
+                                        if (task.OutType != OutTypeEnum.半自动手动出库任务)
                                         {
-                                            ID = db.GetAGVTaskId(),
-                                            TaskType = AGVTaskType.CallMaterial,
-                                            Status = AGVTaskStatus.NewBuild,
-                                            Station = task.WorkBench,
-                                            AddWho = "WCS"
-                                        };
-                                        db.Default.Insertable(agvTask).SplitTable().ExecuteCommand();
-                                        task.AgvTaskID = agvTask.ID;
+                                            //创建AGV任务
+                                            agvTask = new WCS_AgvTaskInfo()
+                                            {
+                                                ID = db.GetAGVTaskId(),
+                                                TaskType = AGVTaskType.CallMaterial,
+                                                Status = AGVTaskStatus.NewBuild,
+                                                Station = task.WorkBench,
+                                                AddWho = "WCS"
+                                            };
+                                            db.Default.Insertable(agvTask).SplitTable().ExecuteCommand();
+                                            task.AgvTaskID = agvTask.ID;
+                                        }
                                     }
                                     if (task.SrmStation.IsNullOrEmpty())
                                     {

+ 9 - 1
WCS.WorkEngineering/Systems/SrmSystems.cs

@@ -71,6 +71,7 @@ namespace WCS.WorkEngineering.Systems
                 WCS_TaskInfo taskInfo = null;
                 SqlSugarHelper.Do(db =>
                   {
+                      World.Log($"堆垛机任务处理:开始--完成任务{obj.Data2.TaskFinishiId}", LogLevelEnum.Mid);
                       //根据DB521任务号获取对应任务
                       var task = db.Default.Queryable<WCS_TaskInfo>().First(v => v.ID == obj.Data2.TaskFinishiId) ?? throw new KnownException($"未找到任务{obj.Data2.TaskFinishiId}", LogLevelEnum.High);
                       if (task.Status != Entity.TaskStatus.StackerExecution)
@@ -79,6 +80,7 @@ namespace WCS.WorkEngineering.Systems
                           {
                               var taskDtl = db.Default.Queryable<WCS_TaskDtl>().Where(v => v.ParentTaskCode == task.ID && v.Desc == "任务下发堆垛机执行").SplitTable(v => v.Take(2)).ToList();
                               if (!taskDtl.Any()) throw new KnownException($"任务{task.ID}状态是{task.Status.Description()}.堆垛机完成任务需要对应任务状态处于堆垛机执行中", LogLevelEnum.High);
+                              World.Log($"堆垛机任务处理:结束--异常完成任务{obj.Data2.TaskFinishiId}异常", LogLevelEnum.Mid);
                           }
                           else
                           {
@@ -145,6 +147,7 @@ namespace WCS.WorkEngineering.Systems
                 if (taskInfo.Type == TaskType.OutDepot && taskInfo.Status == TaskStatus.ConveyorExecution) WmsApi.SrmPickOutCompleted(taskInfo.ID);
                 // 写入信号
                 obj.Data.OkAck = 1;
+                World.Log($"堆垛机任务处理:结束--完成任务{obj.Data2.TaskFinishiId}", LogLevelEnum.Mid);
             }
 
             //堆垛机是否可以下发任务
@@ -208,6 +211,7 @@ namespace WCS.WorkEngineering.Systems
                 if (taskInfo == null) throw new KnownException("数据更新错误", LogLevelEnum.High);
                 var addrFrom = taskInfo.AddrFrom.Split("-");
                 var addrTo = taskInfo.AddrTo.Split("-");
+                World.Log($"堆垛机任务处理:开始--下发移库任务[{obj.Data.TaskNumber}][{obj.Data.SLine}][{obj.Data.SCol}][{obj.Data.SLayer}][{obj.Data.ELine}][{obj.Data.ECol}][{obj.Data.ELayer}][{obj.Data.TaskType}][{obj.Data.VoucherNo}]", LogLevelEnum.Mid);
                 //下发任务
                 obj.Data.TaskNumber = taskInfo.ID;
                 obj.Data.SLine = addrFrom[0].ToShort();
@@ -218,6 +222,7 @@ namespace WCS.WorkEngineering.Systems
                 obj.Data.ELayer = addrTo[2].ToShort();
                 obj.Data.TaskType = SrmTaskTypeEnum.MoveGoods;
                 obj.Data.VoucherNo++;
+                World.Log($"堆垛机任务处理:结束---下发移库任务[{obj.Data.TaskNumber}][{obj.Data.SLine}][{obj.Data.SCol}][{obj.Data.SLayer}][{obj.Data.ELine}][{obj.Data.ECol}][{obj.Data.ELayer}][{obj.Data.TaskType}][{obj.Data.VoucherNo}]", LogLevelEnum.Mid);
             }
 
             #endregion 移库
@@ -269,6 +274,7 @@ namespace WCS.WorkEngineering.Systems
 
                 if (taskInfo == null) throw new KnownException("数据更新错误", LogLevelEnum.High);
                 var addrTo = taskInfo.AddrTo.Split("-");
+                World.Log($"堆垛机任务处理:开始--下发入库任务[{obj.Data.TaskNumber}][{obj.Data.SLine}][{obj.Data.SCol}][{obj.Data.SLayer}][{obj.Data.ELine}][{obj.Data.ECol}][{obj.Data.ELayer}][{obj.Data.TaskType}][{obj.Data.VoucherNo}]", LogLevelEnum.Mid);
                 //下发任务
                 obj.Data.TaskNumber = taskInfo.ID;
                 obj.Data.TaskType = SrmTaskTypeEnum.Default;
@@ -279,6 +285,7 @@ namespace WCS.WorkEngineering.Systems
                 obj.Data.ECol = addrTo[1].ToShort();
                 obj.Data.ELayer = addrTo[2].ToShort();
                 obj.Data.VoucherNo++;
+                World.Log($"堆垛机任务处理:结束---下发入库任务[{obj.Data.TaskNumber}][{obj.Data.SLine}][{obj.Data.SCol}][{obj.Data.SLayer}][{obj.Data.ELine}][{obj.Data.ECol}][{obj.Data.ELayer}][{obj.Data.TaskType}][{obj.Data.VoucherNo}]", LogLevelEnum.Mid);
             }
             else if (enterOrOut == 3 || !lastIsOut) //出库任务
             {
@@ -353,7 +360,7 @@ namespace WCS.WorkEngineering.Systems
                 if (taskInfo == null) throw new KnownException("数据更新错误", LogLevelEnum.High);
 
                 var addrFrom = taskInfo.AddrFrom.Split("-");
-
+                World.Log($"堆垛机任务处理:开始--下发出库任务[{obj.Data.TaskNumber}][{obj.Data.SLine}][{obj.Data.SCol}][{obj.Data.SLayer}][{obj.Data.ELine}][{obj.Data.ECol}][{obj.Data.ELayer}][{obj.Data.TaskType}][{obj.Data.VoucherNo}]", LogLevelEnum.Mid);
                 obj.Data.TaskNumber = taskInfo.ID;
                 obj.Data.SLine = addrFrom[0].ToShort();
                 obj.Data.SCol = addrFrom[1].ToShort();
@@ -363,6 +370,7 @@ namespace WCS.WorkEngineering.Systems
                 obj.Data.ELayer = 0;
                 obj.Data.TaskType = SrmTaskTypeEnum.Default;
                 obj.Data.VoucherNo++;
+                World.Log($"堆垛机任务处理:结束---下发出库任务[{obj.Data.TaskNumber}][{obj.Data.SLine}][{obj.Data.SCol}][{obj.Data.SLayer}][{obj.Data.ELine}][{obj.Data.ECol}][{obj.Data.ELayer}][{obj.Data.TaskType}][{obj.Data.VoucherNo}]", LogLevelEnum.Mid);
             }
 
             #endregion 出入库

+ 3 - 3
WCS.WorkEngineering/WebApi/Controllers/WcsController.cs

@@ -44,7 +44,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                         if (task != null)
                         {
                             //验证wms是否能取消
-                            var res = WmsApi.HandleTaskVerify(new List<int>() { task.ID }, "106");
+                            var res = WmsApi.HandleTaskVerify(new List<int>() { task.ID }, 106);
                             if (res.ResCode == Models.WMS.Response.ResponseStatusCodeEnum.Sucess)
                             {
                                 switch (task.Type)
@@ -60,7 +60,6 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                             return;
                                         }
                                         break;
-
                                     case TaskType.OutDepot:
                                         if (task.Status != Entity.TaskStatus.WaitingToExecute)
                                         {
@@ -89,7 +88,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                         break;
                                 }
                                 //取消任务
-                                var cancelRes = WmsApi.CarryTaskInfo(new List<int>() { task.ID }, "106");
+                                var cancelRes = WmsApi.CarryTaskInfo(new List<int>() { task.ID }, 106);
                                 if (cancelRes.ResCode == Models.WMS.Response.ResponseStatusCodeEnum.Sucess)
                                 {
                                     //更新任务状态
@@ -97,6 +96,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                     task.EditTime = DateTime.Now;
                                     task.AddWCS_TASK_DTL(db, "未知", "任务取消");
                                     db.Default.Updateable(task).ExecuteCommand();
+                                    task.CompleteOrCancelTasks(db);
                                     response.IsSuccess = true;
                                     response.Message = "成功";
                                 }

+ 2 - 2
WCS.WorkEngineering/WebApi/Controllers/WmsApi.cs

@@ -270,7 +270,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
         /// <param name="state">目标状态</param>
         /// <returns></returns>
         /// <exception cref="KnownException"></exception>
-        public static SRes HandleTaskVerify(List<int> taskNo, string state)
+        public static SRes HandleTaskVerify(List<int> taskNo, int state)
         {
             var res = APICaller.CallApi2<SRes>(WMSUrl + "/api/Hj/CancelTaskVerify", new CancelTaskVerifyRequest
             {
@@ -291,7 +291,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
         /// <param name="state">目标状态</param>
         /// <returns></returns>
         /// <exception cref="KnownException"></exception>
-        public static SRes CarryTaskInfo(List<int> taskNo, string state)
+        public static SRes CarryTaskInfo(List<int> taskNo, int state)
         {
             var res = APICaller.CallApi2<SRes>(WMSUrl + "/api/Hj/CarryTaskInfo", new CancelTaskVerifyRequest
             {

+ 1 - 1
WCS.WorkEngineering/WebApi/Models/WMS/Request/CancelTaskVerifyRequest.cs

@@ -15,6 +15,6 @@ namespace WCS.WorkEngineering.WebApi.Models.WMS.Request
         /// <summary>
         ///  目标状态
         /// </summary>
-        public string State { get; set; }
+        public int State { get; set; }
     }
 }