杨前锦
2025-07-01 a93b0e99036c24b9bd58c79bf5e7364b1ba28bae
HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/core/WCSCore.cs
@@ -70,6 +70,16 @@
                            //安全请求等
                            TaskProcess.OperateReq(model.No, model.State, model.ForkliftNo, model.ExtData);
                        }
                        if (model.State == 2)
                        {
                            var mst = WMSHelper.GetWmsTask(TN_Task.S_OP_CODE);
                            if (mst.S_END_LOC == TN_Task.S_END_LOC)
                            {
                                mst.N_B_STATE = 2;
                                WMSHelper.UpdateTaskState(mst);
                            }
                        }
                    }
                }
            }
@@ -128,5 +138,48 @@
                }
            }
        }
        /// <summary>
        /// 创建最后一个任务
        /// </summary>
        /// <param name="startLocCode"></param>
        /// <param name="mst"></param>
        /// <returns></returns>
        public static WCSTask createLastTask(string startLocCode, WMSTask mst)
        {
            LogHelper.Info($"作业号:{mst.S_CODE},创建AGV出库任务", "WMS");
            var existTask = WCSHelper.GetTaskByStart(startLocCode);
            if (existTask == null)
            {
                var startLoc = LocationHelper.GetLoc(startLocCode);
                // 创建一段入库任务
                WCSTask wcsTask = new WCSTask()
                {
                    S_OP_NAME = mst.S_OP_DEF_NAME,
                    S_OP_CODE = mst.S_CODE,
                    S_CODE = WCSHelper.GenerateTaskNo(),
                    S_CNTR_CODE = mst.S_CNTR_CODE,
                    S_TYPE = mst.S_TYPE,
                    S_START_LOC = startLoc.S_CODE,
                    S_START_AREA = startLoc.S_AREA_CODE,
                    S_END_LOC = mst.S_END_LOC,
                    S_END_AREA = mst.S_END_AREA,
                    S_SCHEDULE_TYPE = "AGV",
                    N_PRIORITY = mst.N_PRIORITY,
                    T_START_TIME = DateTime.Now,
                };
                if (WCSHelper.CreateTask(wcsTask))
                {
                    // 起点、接驳点、终点加锁
                    LocationHelper.LockLoc(wcsTask.S_START_LOC, 2);
                    LocationHelper.LockLoc(wcsTask.S_END_LOC, 1);
                    WMSHelper.UpdateTaskEnd(mst);
                    return wcsTask;
                }
            }
            return null;
        }
    }
}