海波 张
2 天以前 89943f29476e3de04c638cc7aefbdf2dd24d00c7
process/TaskProcess.cs
@@ -210,10 +210,20 @@
            }
            if (state == 6)//卸货完成
            {
                //接驳位不绑定
                var safety = Settings.safetyLocations.Where(a => a.Area.Contains(mst.S_END_AREA)).FirstOrDefault();
                if (safety != null) {
                    if (safety.type==1)
                    {
                        return;
                    }
                }
                //退库任务不绑定
                if (!LocationHelper.GetErroArea(mst.S_END_AREA)) {
                    CacheBitUpdate(mst, false);
                }
                if (LocationHelper.GetErroArea(mst.S_END_AREA)) {
                    return;
                }
                CacheBitUpdate(mst, false);
            }
            if (state == 7)
            {
@@ -553,16 +563,19 @@
                        var agvTask = LocationHelper.GetConnectionTask(wmsWork.CONNECTION,"agv");
                        LogHelper.Info($"推送任务{mst.S_CODE},当前接驳位{wmsWork.CONNECTION},第一个agv任务信息"+JsonConvert.SerializeObject(agvTask), "NDC");
                        if (agvTask==null)
                        {
                            LogHelper.Info($"推送任务{mst.S_CODE},当前接驳位{wmsWork.CONNECTION},agv任务没找到,暂不推送", "NDC");
                            return false;
                        }
                        //if (agvTask==null)
                        //{
                        //    LogHelper.Info($"推送任务{mst.S_CODE},当前接驳位{wmsWork.CONNECTION},agv任务没找到,暂不推送", "NDC");
                        //    return false;
                        //}
                        if (agvTask.S_B_STATE!="取货完成")
                        if (agvTask != null)
                        {
                            LogHelper.Info($"推送任务{mst.S_CODE},当前接驳位{wmsWork.CONNECTION},agv任务{agvTask.S_CODE},状态{agvTask.S_B_STATE},暂不推送", "NDC");
                            return false;
                            if (agvTask.S_B_STATE != "取货完成")
                            {
                                LogHelper.Info($"推送任务{mst.S_CODE},当前接驳位{wmsWork.CONNECTION},agv任务{agvTask.S_CODE},状态{agvTask.S_B_STATE},暂不推送", "NDC");
                                return false;
                            }
                        }
                    }
@@ -992,6 +1005,13 @@
                        TaskHelper.opMesTask(task, 3);
                        TaskHelper.Fail(task);
                        TaskProcess.CacheBitCancelUpdate(task);
                        if (task.S_TYPE.Contains("入库") || task.S_TYPE.Contains("回库"))
                        {
                            ContainerHelper.delCntr(task.S_CNTR_CODE);
                            ContainerHelper.delCntrItem(task.S_CNTR_CODE);
                        }
                        result.errCode = 0;
                        result.errMsg = "取消成功";
                        result.success = true;
@@ -1010,6 +1030,13 @@
                            result.success = false;
                            return result;
                        }
                        if (task.S_TYPE.Contains("入库") || task.S_TYPE.Contains("回库"))
                        {
                            ContainerHelper.delCntr(task.S_CNTR_CODE);
                            ContainerHelper.delCntrItem(task.S_CNTR_CODE);
                            ContainerHelper.delCntrLoc(task.S_CNTR_CODE);
                        }
                        TaskHelper.opMesTask(task, 3);
                        //已推送但是没有完成或者取消,通知hosttoagv
                        TaskHelper.Fail(task);
@@ -1041,10 +1068,10 @@
                    if (wcsTask.S_B_STATE.Trim() == "未执行")
                    {
                        //未执行直接修改状态为取消
                        if (task.S_TYPE.Contains("入库") || task.S_TYPE.Contains("回库"))
                        if (wcsTask.S_TYPE.Contains("入库") || wcsTask.S_TYPE.Contains("回库"))
                        {
                            ContainerHelper.delCntr(task.S_CNTR_CODE);
                            ContainerHelper.delCntrItem(task.S_CNTR_CODE);
                            ContainerHelper.delCntr(wcsTask.S_CNTR_CODE);
                            ContainerHelper.delCntrItem(wcsTask.S_CNTR_CODE);
                        }
                        TaskHelper.Fail(wcsTask);
                        TaskProcess.OperateStatus(wcsTask, 7);
@@ -1056,17 +1083,24 @@
                    else if (wcsTask.S_B_STATE.Trim() != "取消" && wcsTask.S_B_STATE.Trim() != "失败" && wcsTask.S_B_STATE.Trim() != "完成")
                    {
                        var db = new SqlHelper<object>().GetInstance();
                        var qhflag = db.Queryable<WmsTaskAction>().Where(a => a.S_TASK_CODE == task.S_CODE && a.S_ACTION == "5").First();
                        var qhflag = db.Queryable<WmsTaskAction>().Where(a => a.S_TASK_CODE == wcsTask.S_CODE && a.S_ACTION == "5").First();
                        LogHelper.Info($"该任务{wcsTask.S_CODE}动作信息"+JsonConvert.SerializeObject(qhflag), "取消");
                        if (qhflag != null)
                        {
                            LogHelper.Info($"该任务{task.S_CODE}已经取货完成", "取消");
                            LogHelper.Info($"该任务{wcsTask.S_CODE}已经取货完成", "取消");
                            result.errCode = 1;
                            result.errMsg = "任务已经取货完成,不允许取消";
                            result.success = false;
                            return result;
                        }
                        if (wcsTask.S_TYPE.Contains("入库") || wcsTask.S_TYPE.Contains("回库"))
                        {
                            ContainerHelper.delCntr(wcsTask.S_CNTR_CODE);
                            ContainerHelper.delCntrItem(wcsTask.S_CNTR_CODE);
                            ContainerHelper.delCntrLoc(wcsTask.S_CNTR_CODE);
                        }
                        WcsTask.WcsCancellTask(wcsTask);
                        TaskHelper.Fail(wcsTask);
                        TaskProcess.OperateStatus(wcsTask, 7);