杨前锦
2025-05-30 e4b92180e4336d777ac323c0395a043bde1285d3
HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/process/TaskProcess.cs
@@ -42,7 +42,6 @@
        internal static void CacheBitCancelUpdate(WCSTask mst) {
            //任务取消,取货完成前的,起点的loadingCount和终点unLoadingCount都清除,取货完成的只处理终点
            if (WCSHelper.CheckActionRecordExist(mst.S_CODE, 4) ) {
                //根据客户现场要求,如果取货完成任务失败人工拉到终点,我们就当卸货完成处理;如果是人工拉走到其它区域,我们就解锁终点,删除托盘。
                //终点绑定
                if (!WCSHelper.CheckActionRecordExist(mst.S_CODE, 5)) {
                    CacheBitUpdate(mst, false);
@@ -53,9 +52,6 @@
                //起点终点解锁
                LocationHelper.UnLockLoc(mst.S_START_LOC);
                LocationHelper.UnLockLoc(mst.S_END_LOC);
                //货位容器解绑
                LocationHelper.UnBindingLoc(mst.S_START_LOC, new List<string> { mst.S_CNTR_CODE });
            }
        }
@@ -79,7 +75,7 @@
                if (taskAction.N_S_STATUS == 1)
                {
                    LogHelper.Info($"再次安全请求,设备已反馈", "AGV");
                    NDCApi.ChangeOrderParam(no, 8, "1");
                   /* NDCApi.ChangeOrderParam(no, 6, "1");*/
                }
            }
            else
@@ -88,11 +84,18 @@
                bool result = false;
                if (state == 1101)
                {
                    result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "1");  //请求取货,
                    LogHelper.Info("向WCS发送取货申请信号", "AGV");
                    /*result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "1");  //取货申请,*/
                    result = true;
                }
                if (state == 1102)
                {
                    //请求卸货,
                    LogHelper.Info("向WCS发送取货完成安全退出信号", "AGV");
                    /*result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "2");  //取货完成安全退出*/
                    result = true;
                }
                if (state == 1103)   //卸货申请,
                {
                    var container = ContainerHelper.GetCntr(cst.S_CNTR_CODE);
                    // 胎圈入库,下发母拖出库任务 \ 帘布、内衬入库,下发托盘回库任务
                    if (cst.S_TYPE.Contains("入库") && endLoc.N_LOCK_STATE == 0)
@@ -117,10 +120,9 @@
                                result = true;
                            }
                        }
                        // 胎圈入库
                        if (container.N_TYPE == 6 )
                        {
                        else
                        {
                            // 胎圈入库
                            if (endLoc.N_CURRENT_NUM == 0) 
                            {
                                LogHelper.Info("胎圈入库,接驳位缺少母拖,下发母拖出库任务", "AGV");
@@ -144,28 +146,17 @@
                    // 请求WCS是否允许放货
                    if (result) 
                    {
                        result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "2"); // 请求放货
                    }
                    if (result)
                    {
                        //根据终点判断,是cb02的入口,判断内存中状态(要状态时间),允许卸货,通知agv改参数
                        var dic = new Dictionary<string, string>();
                        //< Req >< Order No = 'TN2302020002' ParamNo = '18' Param1 = '12' /></ Req >
                        dic.Add("No", no);
                        dic.Add("ParamNo", "8");
                        dic.Add("Param1", "1");
                        NDC.ChangeOrder(dic);
                        //改完参数车子就会自己卸货
                        LogHelper.Info("向WCS发送请求放货信号", "AGV");
                        /*result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "3"); // 请求放货*/
                        result = true;
                    }
                }
                if (state == 1103)
                {
                    result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "3");  //取货完成允许离开
                }
                if (state == 1104)
                {
                    result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "4");  //放货完成允许离开
                    LogHelper.Info("向WCS发送卸货完成安全退出信号", "AGV");
                    /*result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "4");  //卸货完成安全退出*/
                    result = true;
                }
                // 安全请求发送成功,添加任务动作记录