From 7e7f17c08a0f18d83eb379ddff1689597fecefde Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期五, 06 六月 2025 12:16:55 +0800 Subject: [PATCH] 修改AGV站点、PDA功能优化 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_AGV.cs | 135 +++++++++++++++++++++++++++++++++++--------- 1 files changed, 107 insertions(+), 28 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_AGV.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_AGV.cs" index 9846deb..83bee59 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_AGV.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_AGV.cs" @@ -1,6 +1,7 @@ 锘縰sing System; using System.Collections.Generic; using System.Linq; +using System.Reflection.Metadata; using System.Text; using System.Threading.Tasks; using WIDESEA_Common; @@ -20,6 +21,7 @@ /// <returns></returns> public WebResponseContent ShelfOutboundCarry(Dt_Task outTask) { + //鍒ゆ柇鏄惁涓虹數鑺簱锛岃緟鏂欏簱浜哄伐澶勭悊(绔嬪簱鐩爣鍦板潃杞崲鎴怉GV绔欑偣鍦板潃) Dt_CachePoint cachePoint = GetCachePointByStartPoint(outTask.TargetAddress); Dt_Task task = new() @@ -34,7 +36,7 @@ TargetAddress = cachePoint.PointCode, SourceKey = outTask.TaskId, TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), - TaskStatus = AGVTaskStatusEnum.AGV_New.ObjToInt(), + TaskStatus = AGVTaskStatusEnum.Create.ObjToInt(), TaskType = TaskTypeEnum.AGVCarry.ObjToInt(), CreateDate = DateTime.Now, Creater = App.User.UserId > 0 ? App.User.UserName : "System", @@ -59,30 +61,49 @@ Dt_Task task = new Dt_Task() { - CurrentAddress = cachePoint.PointCode, + CurrentAddress = "D02",// cachePoint.PointCode, Grade = 0, - NextAddress = endPoint, + NextAddress = "C01",//endPoint, OrderNo = "", - PalletCode = cachePoint.Remark, + PalletCode = "",//cachePoint.Remark, Roadway = "", - SourceAddress = cachePoint.PointCode, - TargetAddress = endPoint, + SourceAddress = "D02",//cachePoint.PointCode, + TargetAddress = "C01",//endPoint, SourceKey = 0, TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), - TaskStatus = AGVTaskStatusEnum.AGV_New.ObjToInt(), + TaskStatus = AGVTaskStatusEnum.Create.ObjToInt(), TaskType = TaskTypeEnum.AGVCarry.ObjToInt(), }; cachePoint.PointStatus = LocationStatusEnum.Lock.ObjToInt(); + Db.Ado.BeginTran(); + #region MyRegion + AGVSendTaskModel aGVSendTask = new AGVSendTaskModel + { + task_id = task.TaskNum.ToString(),// BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)).ToString(), + src_pos = task.CurrentAddress,// "C01", + site_value_type = 1, + dst_pos = task.NextAddress,// "E14" + src_level=3, + }; + #endregion + var response = HttpHelper.Post<WebResponseContent>(AGVurl + "sendTask/", aGVSendTask, "鍙枡浠诲姟涓嬪彂"); + if (response.Code != 200) + { + _unitOfWorkManage.RollbackTran(); + return WebResponseContent.Instance.Error($"{response.Message}"); + } _basicService.CachePointService.Repository.UpdateData(cachePoint); Repository.AddData(task); + Db.Ado.CommitTran(); return WebResponseContent.Instance.OK(); } catch (Exception ex) { + Db.Ado.RollbackTran(); return WebResponseContent.Instance.Error(ex.Message); } - + } /// <summary> @@ -108,7 +129,7 @@ TargetAddress = cachePoint.PointCode, SourceKey = 0, TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), - TaskStatus = AGVTaskStatusEnum.AGV_New.ObjToInt(), + TaskStatus = AGVTaskStatusEnum.Create.ObjToInt(), TaskType = TaskTypeEnum.AGVCarry.ObjToInt(), }; cachePoint.PointStatus = LocationStatusEnum.Lock.ObjToInt(); @@ -121,8 +142,13 @@ { return WebResponseContent.Instance.Error(ex.Message); } -} - + } + /// <summary> + /// 鎼繍 + /// </summary> + /// <param name="startPoint"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> private Dt_CachePoint GetCachePointByStartPoint(string startPoint) { Dt_AreaRouter areaRouter = _basicService.AreaRouterService.Repository.QueryFirst(x => x.StartArea == startPoint); @@ -144,7 +170,12 @@ return cachePoint; } - + /// <summary> + /// 鍙枡 + /// </summary> + /// <param name="endPoint"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> private Dt_CachePoint GetCachePointByEndPoint(string endPoint) { Dt_AreaRouter areaRouter = _basicService.AreaRouterService.Repository.QueryFirst(x => x.NextArea == endPoint); @@ -165,30 +196,78 @@ } return cachePoint; } - + /// <summary> + /// 浠诲姟鐘舵�佷笂鎶� + /// </summary> + /// <param name="model"></param> + /// <returns></returns> public object AGVTaskFeedBack(AGVTaskFeedBackModel model) { - Dt_Task task = BaseDal.QueryFirst(x => x.TaskId == Convert.ToInt32(model.Task_id)); + Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == Convert.ToInt32(model.Task_id)); if (task == null) { return new { code = 404, message = "鏈壘鍒拌浠诲姟!" }; } - - Dt_CachePoint startCachePoint = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == task.SourceAddress); - if (startCachePoint != null) + switch ((AGVTaskStatusEnum)Enum.Parse(typeof(AGVTaskStatusEnum), model.Task_status)) { - startCachePoint.PointStatus = LocationStatusEnum.Free.ObjToInt(); - _basicService.CachePointService.Repository.UpdateData(startCachePoint); + case AGVTaskStatusEnum.Create: + break; + case AGVTaskStatusEnum.Queuing: + task.TaskStatus = AGVTaskStatusEnum.Queuing.ObjToInt(); + break; + case AGVTaskStatusEnum.Running: + task.TaskStatus = AGVTaskStatusEnum.Running.ObjToInt(); + break; + case AGVTaskStatusEnum.DoneFetch: + { + task.TaskStatus = AGVTaskStatusEnum.DoneFetch.ObjToInt(); + Dt_CachePoint startCachePoint = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == task.SourceAddress); + if (startCachePoint != null) + { + startCachePoint.PointStatus = LocationStatusEnum.Free.ObjToInt(); + if (startCachePoint.AreaId == 3)//鍒ゆ柇鏄惁涓烘ā缁勭┖鏍堟澘鍖哄煙 + { + var qty = (startCachePoint.Remark.ObjToInt() - 1); + if (qty > 0) startCachePoint.PointStatus = LocationStatusEnum.InStock.ObjToInt(); + startCachePoint.Remark = qty.ToString(); + } + _basicService.CachePointService.Repository.UpdateData(startCachePoint); + } + } + break; + case AGVTaskStatusEnum.DonePut: + { + task.TaskStatus = AGVTaskStatusEnum.DonePut.ObjToInt(); + Dt_CachePoint endCachePoint = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == task.TargetAddress); + if (endCachePoint != null) + { + endCachePoint.PointStatus = LocationStatusEnum.InStock.ObjToInt(); + _basicService.CachePointService.Repository.UpdateData(endCachePoint); + } + } + break; + case AGVTaskStatusEnum.Finish: + { + task.TaskStatus = AGVTaskStatusEnum.Finish.ObjToInt(); + BaseDal.DeleteAndMoveIntoHty(task, /*App.User.UserId == 0 ?*/ OperateType.鑷姩瀹屾垚 /*: OperateType.浜哄伐瀹屾垚*/); + return new { code = 200, message = "鎴愬姛" }; + } + case AGVTaskStatusEnum.Cancel: + { + task.TaskStatus = AGVTaskStatusEnum.Cancel.ObjToInt(); + BaseDal.DeleteAndMoveIntoHty(task, OperateType.鑷姩鍒犻櫎); + return new { code = 200, message = "鎴愬姛" }; + } + case AGVTaskStatusEnum.Terminate: + task.TaskStatus = AGVTaskStatusEnum.Terminate.ObjToInt(); + break; + case AGVTaskStatusEnum.Error: + task.TaskStatus = AGVTaskStatusEnum.Error.ObjToInt(); + break; + default: + return new { code = 404, message = "鏈畾涔変换鍔$被鍨�!" }; } - - Dt_CachePoint endCachePoint = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == task.TargetAddress); - if (endCachePoint != null) - { - endCachePoint.PointStatus = LocationStatusEnum.InStock.ObjToInt(); - _basicService.CachePointService.Repository.UpdateData(endCachePoint); - } - BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚); - + BaseDal.UpdateData(task); return new { code = 200, message = "鎴愬姛" }; } } -- Gitblit v1.9.3