海波 张
2025-07-10 46dc31d4e66e45cde693b9c909691a710fabfcee
dispatch/WcsTask.cs
@@ -598,7 +598,6 @@
            try
            {
                var taskNo = "";
            
                if (string.IsNullOrEmpty(model.requestPk))
@@ -618,6 +617,13 @@
                    throw new Exception("未查询到对应的任务");
                }
                if (transportTask.S_B_STATE == "完成" || transportTask.S_B_STATE == "取消")
                {
                    throw new Exception($"{transportTask}任务已{transportTask.S_B_STATE},不允许操作");
                }
                TaskHelper.WcsAddActionRecord(model.requestPk, model.noticeType, "WCS");
                switch (model.noticeType)
@@ -677,20 +683,20 @@
                                    if (agvTask == null)
                                    {
                                        LogHelper.Info($"RFID校验失败,没找到对应{transportTask.S_OP_CODE}的agv任务", "Wcs任务执行通知");
                                        throw new Exception($"RFID校验失败,没找到对应{transportTask.S_OP_CODE }的agv任务");
                                        throw new Exception($"RFID校验失败,没找到对应{transportTask.S_OP_CODE}的agv任务");
                                    }
                                    var workFlow = TaskHelper.selectWorkFlowByType(agvTask.N_TYPE.ToString(), agvTask.TOOLSTYPE);
                                        if (workFlow == null)
                                        {
                                            LogHelper.Info($"RFID校验失败,没找到对应作业流程", "Wcs任务执行通知");
                                            throw new Exception($"RFID校验失败,没找到对应作业流程");
                                        }
                                    if (workFlow == null)
                                    {
                                        LogHelper.Info($"RFID校验失败,没找到对应作业流程", "Wcs任务执行通知");
                                        throw new Exception($"RFID校验失败,没找到对应作业流程");
                                    }
                                    //查找终点
                                    var endList = LocationHelper.GetAllLocList1(workFlow.ERRORAREA);
                                    //var end = LocationHelper.FindBalanceEndcolByLocList(endList, workFlow.ERRORAREA,workFlow.ROADWAY);
                                    var  end = LocationHelper.FindEndcolByLoc(endList, workFlow.ERRORAREA);
                                    var end = LocationHelper.FindEndcolByLoc(endList, workFlow.ERRORAREA);
                                    LogHelper.Info($"RFID校验失败下发异常终点信息" + JsonConvert.SerializeObject(end), "Wcs任务执行通知");
@@ -709,12 +715,16 @@
                                    agvTask.S_TYPE = workFlow.FLOWNAME;
                                    newDb.BeginTran();
                                    var I = newDb.Updateable(agvTask).UpdateColumns(it => new { it.S_START_LOC, it.S_START_AREA,it.S_END_LOC,it.S_END_AREA,it.S_TYPE,it.S_B_STATE, it.S_START_AREA_NAME, it.S_END_AREA_NAME }).ExecuteCommand();
                                    var I = newDb.Updateable(agvTask).UpdateColumns(it => new { it.S_START_LOC, it.S_START_AREA, it.S_END_LOC, it.S_END_AREA, it.S_TYPE, it.S_B_STATE, it.S_START_AREA_NAME, it.S_END_AREA_NAME }).ExecuteCommand();
                                    if (I == 0)
                                    {
                                        throw new Exception("修改任务表失败");
                                    }
                                    newDb.CommitTran();
                                }
                                else {
                                    LogHelper.Info($"RFID校验失败,通知Wcs取消任务失败", "Wcs任务执行通知");
                                    throw new Exception($"RFID校验失败,通知Wcs取消任务失败");
                                }
                            }
                            newDb.BeginTran();
@@ -734,11 +744,6 @@
                    //7取消
                    case "7":
                        if (transportTask.S_B_STATE=="完成")
                        {
                            throw new Exception($"{transportTask}任务已完成,不允许取消");
                        }
                        LogHelper.Info($"任务号{transportTask.S_CODE},取消任务成功", "Wcs任务执行通知");
                        TaskHelper.Fail(transportTask);
                        TaskProcess.OperateStatus(transportTask, 7);
@@ -770,11 +775,13 @@
            }
            catch (Exception ex)
            {
                newDb.RollbackTran();
                LogHelper.Info("Wcs任务执行通知异常" + ex.Message, "Wcs任务执行通知");
                result.msg = "Wcs任务执行通知异常";
                result.code = "1";
                result.requestPk = model.requestPk;
                LogHelper.Info("Wcs任务执行通知异常" + ex.Message, "Wcs任务执行通知");
                newDb.RollbackTran();
                return result;
            }
            return result;
@@ -1019,7 +1026,14 @@
                    else {
                        bit = mst.S_END_LOC;
                    }
                    //退库取消发agv起点
                    if (LocationHelper.GetErroArea(mst.S_END_AREA))
                    {
                        bit = mst.S_START_LOC;
                    }
                    Meshod = "AgvRequestCancel";
                    break;
            }
@@ -1208,8 +1222,11 @@
                            var agvTask = TaskHelper.GetTaskByWorkNo(task.S_OP_CODE, "agv");
                            if (agvTask != null)
                            {
                                if (agvTask.S_B_STATE!="未执行")
                                {
                                    NDCApi.CancelOrder(agvTask.S_CODE.Trim());
                                }
                                TaskHelper.Fail(agvTask);
                                NDCApi.CancelOrder(agvTask.S_CODE.Trim());
                                TaskProcess.CacheBitCancelUpdate(agvTask);
                            }
                        }
@@ -1248,8 +1265,10 @@
                        }
                    }
                        result.msg = "Wcs放货有货/取货无货处理成功";
                        result.code = "0";
                        result.requestPk = model.requestPk;
                        return result;
                    }
                    catch (Exception ex)
                    {
@@ -1272,7 +1291,6 @@
            public static WcsWarningReurn agvResponse(agvResponseParme model) {
            var result = new WcsWarningReurn();
            var newDb = new SqlHelper<object>().GetInstance();
            try
            {
                newDb.BeginTran();
@@ -1308,8 +1326,6 @@
                return result;
            }
        }
    }