林豪 左 2 lat temu
rodzic
commit
9a72940f6d

+ 1 - 28
WCS.WorkEngineering/Systems/OutboundSiteInteractionSystems.cs

@@ -1,8 +1,5 @@
-using ServiceCenter.SqlSugars;
-using WCS.Core;
-using WCS.Entity;
+using WCS.Core;
 using WCS.WorkEngineering.Extensions;
-using WCS.WorkEngineering.WebApi.Controllers;
 using DeviceFlags = WCS.WorkEngineering.Extensions.DeviceFlags;
 
 namespace WCS.WorkEngineering.Systems
@@ -34,30 +31,6 @@ namespace WCS.WorkEngineering.Systems
 
             if (IsThereATask)
             {
-                //有货检查是否有当前起始点的未取货完成的AGV任务
-                //创建一个Agv任务
-                var result = SqlSugarHelper.Do(db =>
-                {
-                    //跟据DB521的任务号找到对应的WCS任务信息
-                    var task = db.Default.Queryable<WCS_TaskInfo>().First(v => v.ID == obj.Data2.TaskNumber && v.Status == Entity.TaskStatus.ConveyorExecution);
-                    //生成对应的AGV任务
-                    var agvTask = new WCS_AgvTaskInfo()
-                    {
-                        Position = obj.Entity.Code,
-                    };
-
-                    //调用任务生成单接口
-                    var res = AgvApi.GenAgvSchedulingTask(agvTask.Position, "");
-                    agvTask.AgvID = res.data;
-                    agvTask.Status = AGVTaskStatus.Confirm;
-                    task.Status = Entity.TaskStatus.AGVExecution;
-                    db.Default.Insertable(agvTask).AddQueue();
-                    task.AddWCS_TASK_DTL(db, obj.Entity.Code, "AGV", $"任务以下发AGV,AGV任务单号{res.data}");
-                    db.Default.Updateable(task).AddQueue();
-                    db.Default.SaveQueues();
-                });
-
-
             }
             else
             {

+ 97 - 8
WCS.WorkEngineering/WebApi/Controllers/AgvApi.cs

@@ -30,22 +30,109 @@ namespace WCS.WorkEngineering.WebApi.Controllers
             }
         }
 
+        #region 任务单生成
+
+        /// <summary>
+        ///  满轮入库
+        /// </summary>
+        /// <param name="ctnrCode">RFID</param>
+        /// <param name="position">取货机台</param>
+        /// <param name="taskCode">WMS任务号</param>
+        /// <param name="priority">优先级</param>
+        /// <returns></returns>
+        public static GenAgvSchedulingTaskResponse 满轮入库(string ctnrCode, string position, string taskCode, string priority)
+        {
+            return GenAgvSchedulingTask("iwms_third", ctnrCode, "1", new List<positionCodeClass>()
+            {
+                new positionCodeClass(){ //取货机台
+                    positionCode=position,
+                    type="00"
+                },
+                new positionCodeClass(){ //巷道分配点
+                    positionCode="LK_1",
+                    type="00"
+                },
+                new positionCodeClass(){ //预分配放货点
+                    positionCode="liku1",
+                    type="00"
+                }
+            }, priority, taskCode, "ZTGT03", "1");
+        }
+
+        /// <summary>
+        ///  机台补空
+        /// </summary>
+        /// <param name="position">补空机台</param>
+        /// <param name="taskCode">WMS任务号</param>
+        /// <param name="priority">优先级</param>
+        /// <returns></returns>
+        public static GenAgvSchedulingTaskResponse 机台补空(string position, string taskCode, string priority)
+        {
+            return GenAgvSchedulingTask("iWMS", "", "1", new List<positionCodeClass>()
+            {
+                new positionCodeClass(){ //合金库空区域
+                    positionCode="4",
+                    type="04"
+                },
+                new positionCodeClass(){ //目标机台
+                    positionCode=position,
+                    type="00"
+                }
+            }, priority, taskCode, "ZTGT03", "0");
+        }
+
+        /// <summary>
+        ///  机台补空
+        /// </summary>
+        /// <param name="ctnrCode">RFID</param>
+        /// <param name="position1">取货站台</param>
+        /// <param name="position2">放货机台</param>
+        /// <param name="taskCode">WMS任务号</param>
+        /// <param name="priority">优先级</param>
+        /// <returns></returns>
+        public static GenAgvSchedulingTaskResponse 机台补空(string ctnrCode, string position1, string position2, string taskCode, string priority)
+        {
+            return GenAgvSchedulingTask("iWMS", ctnrCode, "1", new List<positionCodeClass>()
+            {
+                new positionCodeClass(){ //取货站台
+                    positionCode=position1,
+                    type="00"
+                },
+                new positionCodeClass(){ //放货机台
+                    positionCode=position2,
+                    type="00"
+                }
+            }, priority, taskCode, "ZTGT21", "-1");
+        }
+
         /// <summary>
         ///  Agv任务单生成接口
         /// </summary>
-        /// <param name="position">起始位置</param>
-        /// <param name="nextPosition">目标位置</param>
+        /// <param name="clienCode">客户端编号</param>
+        /// <param name="ctnrCode">容器编号</param>
+        /// <param name="ctnrTyp">容器类型</param>
+        /// <param name="positionCodePath">路径</param>
+        /// <param name="priority">优先级</param>
+        /// <param name="taskCode">任务单号</param>
+        /// <param name="taskType">任务类型</param>
+        /// <param name="hjTaskTy">合金任务模板</param>
         /// <returns></returns>
         /// <exception cref="KnownException"></exception>
-        public static GenAgvSchedulingTaskResponse GenAgvSchedulingTask(string position, string nextPosition)
+        public static GenAgvSchedulingTaskResponse GenAgvSchedulingTask(string clienCode, string ctnrCode, string ctnrTyp, List<positionCodeClass> positionCodePath, string priority, string taskCode, string taskType, string hjTaskTy)
         {
-            var res = APICaller.CallApi2<GenAgvSchedulingTaskResponse>(AgvUrl + "/hikRpcService/continueTask", new ContinueTaskRequest
+            var res = APICaller.CallApi2<GenAgvSchedulingTaskResponse>(AgvUrl + "/hikRpcService/continueTask", new GenAgvSchedulingTaskRequest
             {
+                clientCode = clienCode,
+                ctnrCode = ctnrCode,
+                ctnrTyp = ctnrTyp,
+                interfaceName = "genAgvSchedulingTask",
+                positionCodePath = positionCodePath,
+                priority = priority,
                 reqCode = Guid.NewGuid().ToString(),
-                //taskCode = taskCode,
-                type = "00",
-                positionCode = position,
-                nextPositionCode = nextPosition
+                taskCode = taskCode,
+                taskTyp = taskType,
+                hjTaskTy = hjTaskTy,
+                tokenCode = "08cf13d176b54d96aa"
             });
             if (res.code != AgvResponseCode.Success)
             {
@@ -54,6 +141,8 @@ namespace WCS.WorkEngineering.WebApi.Controllers
             return res;
         }
 
+        #endregion 任务单生成
+
         /// <summary>
         ///  继续执行任务
         /// </summary>

+ 20 - 0
WCS.WorkEngineering/WebApi/Models/AGV/Request/GenAgvSchedulingTaskRequest.cs

@@ -35,11 +35,26 @@
         /// </summary>
         public string ctnrTyp { get; set; }
 
+        /// <summary>
+        ///  RFID
+        /// </summary>
+        public string ctnrCode { get; set; }
+
+        /// <summary>
+        /// 接口名称
+        /// </summary>
+        public string interfaceName { get; set; }
+
         /// <summary>
         /// 任务模式
         /// </summary>
         public string taskMode { get; set; }
 
+        /// <summary>
+        ///  合金任务模板
+        /// </summary>
+        public string hjTaskTy { get; set; }
+
         /// <summary>
         /// 工作位
         /// </summary>
@@ -50,6 +65,11 @@
         /// </summary>
         public List<positionCodeClass> positionCodePath { get; set; }
 
+        /// <summary>
+        ///  位置类型
+        /// </summary>
+        public string type { get; set; }
+
         /// <summary>
         /// 货架编号
         /// </summary>