From 3311f02194604247c1fb0384ecc43cc3ef3f04be Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期日, 08 六月 2025 20:59:31 +0800
Subject: [PATCH] 1

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_AGV.cs |   76 +++++++++++++++++++++++++++++++++++++
 1 files changed, 75 insertions(+), 1 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 15b03e3..8c780fe 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"
@@ -49,6 +49,61 @@
         }
 
         /// <summary>
+        /// 璐т綅缁戝畾
+        /// </summary>
+        /// <param name="qty"></param>
+        /// <param name="Point"></param>
+        /// <returns></returns>
+        public WebResponseContent Bind(string qty, string point)
+        {
+            try
+            {
+                if (Repository.QueryFirst(x => x.SourceAddress == point &&
+                x.TaskStatus < AGVTaskStatusEnum.DoneFetch.ObjToInt() ||
+                x.TargetAddress == point) != null)
+                    throw new Exception($"绔欑偣銆恵point}銆戝瓨鍦ㄤ换鍔★紒");
+                Dt_CachePoint? cachePoint = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == point);
+                if (cachePoint == null) throw new Exception("鏈壘鍒扮紦瀛樼偣!");
+                if (cachePoint.AreaId != 4) throw new Exception("褰撳墠缂撳瓨鐐瑰尯鍩熸棤缁戝畾鏉冮檺!");
+                cachePoint.PointStatus = LocationStatusEnum.InStock.ObjToInt();
+                cachePoint.Remark = qty;
+                cachePoint.Modifier = App.User.UserName;
+                _basicService.CachePointService.Repository.UpdateData(cachePoint);
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+        /// <summary>
+        /// 閲婃斁缂撳瓨鐐�
+        /// </summary>
+        /// <param name="point"></param>
+        /// <returns></returns>
+        public WebResponseContent AcrossFloorCallMat(string point)
+        {
+            try
+            {
+                if (Repository.QueryFirst(x => x.SourceAddress == point &&
+                x.TaskStatus < AGVTaskStatusEnum.DoneFetch.ObjToInt() ||
+                x.TargetAddress == point) != null)
+                    throw new Exception($"绔欑偣銆恵point}銆戝瓨鍦ㄤ换鍔★紒");
+                Dt_CachePoint? cachePoint = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == point);
+                if (cachePoint == null) throw new Exception("鏈壘鍒扮紦瀛樼偣!");
+                if (cachePoint.AreaId != 2 && cachePoint.AreaId != 5 && cachePoint.AreaId != 8)
+                    throw new Exception("褰撳墠缂撳瓨鐐瑰尯鍩熸棤閲婃斁鏉冮檺!");
+                cachePoint.PointStatus = LocationStatusEnum.Free.ObjToInt();
+                _basicService.CachePointService.Repository.UpdateData(cachePoint);
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        /// <summary>
         /// 鍙枡
         /// </summary>
         /// <param name="endPoint"></param>
@@ -57,6 +112,11 @@
         {
             try
             {
+                if (Repository.QueryFirst(x => x.SourceAddress == endPoint &&
+                x.TaskStatus < AGVTaskStatusEnum.DoneFetch.ObjToInt() ||
+                x.TargetAddress == endPoint) != null)
+                    throw new Exception($"绔欑偣銆恵endPoint}銆戝瓨鍦ㄤ换鍔★紒");
+
                 Dt_CachePoint cachePoint = GetCachePointByEndPoint(endPoint);
 
                 Dt_Task task = new Dt_Task()
@@ -78,7 +138,7 @@
 
                 Db.Ado.BeginTran();
                 var response = SendAGVTask(task, cachePoint);
-                if (response.Status)
+                if (!response.Status)
                 {
                     _unitOfWorkManage.RollbackTran();
                     return WebResponseContent.Instance.Error($"{response.Message}");
@@ -105,6 +165,11 @@
         {
             try
             {
+                if (Repository.QueryFirst(x => x.SourceAddress == startPoint &&
+                x.TaskStatus < AGVTaskStatusEnum.DoneFetch.ObjToInt() ||
+                x.TargetAddress == startPoint) != null)
+                    throw new Exception($"绔欑偣銆恵startPoint}銆戝瓨鍦ㄤ换鍔★紒");
+
                 Dt_CachePoint cachePoint = GetCachePointByStartPoint(startPoint);
 
                 Dt_Task task = new()
@@ -124,12 +189,21 @@
                 };
                 cachePoint.PointStatus = LocationStatusEnum.Lock.ObjToInt();
 
+                Db.Ado.BeginTran();
+                var response = SendAGVTask(task, cachePoint);
+                if (!response.Status)
+                {
+                    _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);
             }
         }

--
Gitblit v1.9.3