From c020f31a67fc5aa5644511bddff075f7ecc85234 Mon Sep 17 00:00:00 2001 From: qinchulong <qinchulong@hnkhzn.com> Date: 星期二, 27 五月 2025 15:35:27 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/HuaYiZhongHeng/ZhongHeLiTiKu --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_AGV.cs | 195 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 195 insertions(+), 0 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" new file mode 100644 index 0000000..9846deb --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_AGV.cs" @@ -0,0 +1,195 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Common; +using WIDESEA_Core; +using WIDESEA_Core.Enums; +using WIDESEA_Core.Helper; +using WIDESEA_Model.Models; + +namespace WIDESEA_TaskInfoService +{ + public partial class TaskService + { + /// <summary> + /// 绔嬪簱鍑哄簱AGV鎼繍 + /// </summary> + /// <param name="outTask"></param> + /// <returns></returns> + public WebResponseContent ShelfOutboundCarry(Dt_Task outTask) + { + Dt_CachePoint cachePoint = GetCachePointByStartPoint(outTask.TargetAddress); + + Dt_Task task = new() + { + CurrentAddress = outTask.TargetAddress, + Grade = 0, + NextAddress = cachePoint.PointCode, + OrderNo = outTask.OrderNo, + PalletCode = outTask.PalletCode + "-AGV", + Roadway = "", + SourceAddress = outTask.TargetAddress, + TargetAddress = cachePoint.PointCode, + SourceKey = outTask.TaskId, + TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), + TaskStatus = AGVTaskStatusEnum.AGV_New.ObjToInt(), + TaskType = TaskTypeEnum.AGVCarry.ObjToInt(), + CreateDate = DateTime.Now, + Creater = App.User.UserId > 0 ? App.User.UserName : "System", + }; + cachePoint.PointStatus = LocationStatusEnum.Lock.ObjToInt(); + + _basicService.CachePointService.Repository.UpdateData(cachePoint); + Repository.AddData(task); + return WebResponseContent.Instance.OK(); + } + + /// <summary> + /// 鍙枡 + /// </summary> + /// <param name="endPoint"></param> + /// <returns></returns> + public WebResponseContent CallMateriel(string endPoint) + { + try + { + Dt_CachePoint cachePoint = GetCachePointByEndPoint(endPoint); + + Dt_Task task = new Dt_Task() + { + CurrentAddress = cachePoint.PointCode, + Grade = 0, + NextAddress = endPoint, + OrderNo = "", + PalletCode = cachePoint.Remark, + Roadway = "", + SourceAddress = cachePoint.PointCode, + TargetAddress = endPoint, + SourceKey = 0, + TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), + TaskStatus = AGVTaskStatusEnum.AGV_New.ObjToInt(), + TaskType = TaskTypeEnum.AGVCarry.ObjToInt(), + }; + cachePoint.PointStatus = LocationStatusEnum.Lock.ObjToInt(); + + _basicService.CachePointService.Repository.UpdateData(cachePoint); + Repository.AddData(task); + return WebResponseContent.Instance.OK(); + } + catch (Exception ex) + { + return WebResponseContent.Instance.Error(ex.Message); + } + + } + + /// <summary> + /// 鐗╂枡鎼繍 + /// </summary> + /// <param name="startPoint"></param> + /// <returns></returns> + public WebResponseContent MaterielCarry(string startPoint) + { + try + { + Dt_CachePoint cachePoint = GetCachePointByStartPoint(startPoint); + + Dt_Task task = new() + { + CurrentAddress = startPoint, + Grade = 0, + NextAddress = cachePoint.PointCode, + OrderNo = "", + PalletCode = startPoint + "-AGV", + Roadway = "", + SourceAddress = startPoint, + TargetAddress = cachePoint.PointCode, + SourceKey = 0, + TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)), + TaskStatus = AGVTaskStatusEnum.AGV_New.ObjToInt(), + TaskType = TaskTypeEnum.AGVCarry.ObjToInt(), + }; + cachePoint.PointStatus = LocationStatusEnum.Lock.ObjToInt(); + + _basicService.CachePointService.Repository.UpdateData(cachePoint); + Repository.AddData(task); + return WebResponseContent.Instance.OK(); + } + catch (Exception ex) + { + return WebResponseContent.Instance.Error(ex.Message); + } +} + + private Dt_CachePoint GetCachePointByStartPoint(string startPoint) + { + Dt_AreaRouter areaRouter = _basicService.AreaRouterService.Repository.QueryFirst(x => x.StartArea == startPoint); + if (areaRouter == null) + { + throw new Exception("鏈壘鍒拌矾鐢变俊鎭�!"); + } + Dt_AreaInfo areaInfo = _basicService.AreaInfoService.Repository.QueryFirst(x => x.AreaCode == areaRouter.NextArea); + if (areaInfo == null) + { + throw new Exception("鏈壘鍒颁笅涓�鍖哄煙淇℃伅!"); + } + + Dt_CachePoint? cachePoint = _basicService.CachePointService.AssignCachePoint(areaInfo.Id); + if (cachePoint == null) + { + throw new Exception("鏈壘鍒扮┖闂茬紦瀛樼偣!"); + } + + return cachePoint; + } + + private Dt_CachePoint GetCachePointByEndPoint(string endPoint) + { + Dt_AreaRouter areaRouter = _basicService.AreaRouterService.Repository.QueryFirst(x => x.NextArea == endPoint); + if (areaRouter == null) + { + throw new Exception("鏈壘鍒拌矾鐢变俊鎭�!"); + } + Dt_AreaInfo areaInfo = _basicService.AreaInfoService.Repository.QueryFirst(x => x.AreaCode == areaRouter.StartArea); + if (areaInfo == null) + { + throw new Exception("鏈壘鍒拌捣鐐圭紦瀛樺尯鍩熶俊鎭�!"); + } + + Dt_CachePoint? cachePoint = _basicService.CachePointService.GetIbStockCachePoint(areaInfo.Id); + if (cachePoint == null) + { + throw new Exception("鏈壘鍒版湁璐х紦瀛樼偣!"); + } + return cachePoint; + } + + public object AGVTaskFeedBack(AGVTaskFeedBackModel model) + { + Dt_Task task = BaseDal.QueryFirst(x => x.TaskId == 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) + { + startCachePoint.PointStatus = LocationStatusEnum.Free.ObjToInt(); + _basicService.CachePointService.Repository.UpdateData(startCachePoint); + } + + 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.浜哄伐瀹屾垚); + + return new { code = 200, message = "鎴愬姛" }; + } + } +} -- Gitblit v1.9.3