wangxinhui
2026-02-03 261ec6b250b3aea2d26e629203c7d699747c27ea
ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs
@@ -262,7 +262,7 @@
                            {
                                throw new Exception($"{task.NextAddress}AGV站台未定义");
                            }
                            if (task.TaskType == TaskTypeEnum.PrintYLInbound.ObjToInt() || task.TaskType == TaskTypeEnum.PrintYLBackInbound.ObjToInt())
                            if (task.TaskType == TaskTypeEnum.PrintYLInbound.ObjToInt() || task.TaskType == TaskTypeEnum.PrintYLBackInbound.ObjToInt() || task.TaskType == TaskTypeEnum.EmptyStackPlate.ObjToInt())
                            {
                                List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == task.TaskType && task.NextAddress == x.StartPosi);
                                Dt_Router router = routers.FirstOrDefault();
@@ -278,7 +278,7 @@
                                _taskService.UpdateTask(task, TaskStatusEnum.AGV_Finish);
                                PutFinish(oldAddress, task.TaskNum);
                            }
                            else if (task.TaskType == TaskTypeEnum.WFBLMYLBackInbound.ObjToInt() || task.TaskType == TaskTypeEnum.WFBYLInbound.ObjToInt())
                            else if (task.TaskType == TaskTypeEnum.WFBLMYLBackInbound.ObjToInt() || task.TaskType == TaskTypeEnum.WFBYLInbound.ObjToInt() || task.TaskType == TaskTypeEnum.WFBLMYLInbound.ObjToInt())
                            {
                                _taskService.TaskCompleted(task.TaskNum);
                            }
@@ -346,7 +346,7 @@
                    MESResponse response = _taskService.MESAvgArriveNotice(requestAGVArriveDTO).DeserializeObject<MESResponse>() ?? throw new Exception("未获取到返回信息");
                    if (!response.Result)
                    {
                        throw new Exception($"调用MES小车允许放货报错,MES返回信息"+ Regex.Replace(response.Msg, @"\\u([0-9a-fA-F]{4})", match => {
                        throw new Exception($"调用MES小车允许放货报错,MES返回信息"+ Regex.Replace(response.Msg, @"\\u([0-9a-fA-F]{4})", match =>{
                            return ((char)Convert.ToInt32(match.Groups[1].Value, 16)).ToString();
                        }));
                    }
@@ -435,23 +435,24 @@
                            return content.Error("禁止放料");
                        }
                    }
                    else if (device.DeviceCode.Contains("TrussCarton"))//桁架
                    else if (device.DeviceCode.Contains("TrussDixieCup"))//桁架
                    {
                        bool RequestPut = otherDevice.GetValue<W_TrussCartonDB, bool>(GetCartonRequest(stationManger.StackerCraneStationCode), stationManger.StationDeviceCode);
                        if (!RequestPut)
                        {
                            otherDevice.SetValue(GetCartonRequest(stationManger.StackerCraneStationCode), true, stationManger.StationDeviceCode);
                            Thread.Sleep(1000);
                        }
                        bool AllowFinish = otherDevice.GetValue<R_TrussCartonDB, bool>(GetCarton(stationManger.StackerCraneStationCode), stationManger.StationDeviceCode);
                        if (AllowFinish)
                        {
                            content.OK("允许放料");
                        }
                        else
                        {
                            return content.Error("禁止放料");
                        }
                            bool RequestPut = otherDevice.GetValue<W_TrussDixieCupDB, bool>(GetTrussDixieCupOutReq(stationManger.StackerCraneStationCode), stationManger.StationDeviceCode);
                            if (!RequestPut)
                            {
                                otherDevice.SetValue(GetTrussDixieCupOutReq(stationManger.StackerCraneStationCode), true, stationManger.StationDeviceCode);
                                Thread.Sleep(1000);
                            }
                            bool AllowFinish = otherDevice.GetValue<R_TrussDixieCupDB, bool>(GetDixieCupPutOut(stationManger.StackerCraneStationCode), stationManger.StationDeviceCode);
                            if (AllowFinish)
                            {
                                content.OK("允许放料");
                            }
                            else
                            {
                                return content.Error("禁止放料");
                            }
                    }
                }
                return content;
@@ -500,9 +501,9 @@
                    {
                        otherDevice.SetValue(RetractDB.Ret_PutFinish, true, stationManger.StationDeviceCode);
                    }
                    else if (device.DeviceCode.Contains("TrussCarton"))//纸箱桁架
                    else if (device.DeviceCode.Contains("TrussDixieCup"))//纸杯桁架
                    {
                        otherDevice.SetValue(GetCartonPut(stationManger.StackerCraneStationCode), true, stationManger.StationDeviceCode);
                        otherDevice.SetValue(GetTrussDixieCupPuted(stationManger.StackerCraneStationCode), true, stationManger.StationDeviceCode);
                    }
                }
                return WebResponseContent.Instance.OK();
@@ -515,45 +516,75 @@
        /// <summary>
        /// èŽ·å–æ¡æž¶æ”¾æ–™ä¿¡å·
        /// </summary>
        private W_TrussCartonDB GetCartonPut(string StationCode)
        private W_TrussDixieCupDB GetTrussDixieCupPuted(string StationCode)
        {
            switch (StationCode)
            {
                case "1":
                    return W_TrussCartonDB.W_CartonPut1;
                    return W_TrussDixieCupDB.W_DixieCupPuted1;
                case "2":
                    return W_TrussCartonDB.W_CartonPut2;
                    return W_TrussDixieCupDB.W_DixieCupPuted2;
                case "3":
                    return W_TrussCartonDB.W_CartonPut3;
                    return W_TrussDixieCupDB.W_DixieCupPuted3;
                case "4":
                    return W_TrussCartonDB.W_CartonPut4;
                case "5":
                    return W_TrussCartonDB.W_CartonPut5;
                case "6":
                    return W_TrussCartonDB.W_CartonPut6;
                    return W_TrussDixieCupDB.W_DixieCupPuted4;
                default:
                    throw new Exception("未定义工位");
            }
        }
        /// <summary>
        /// èŽ·å–æ¡æž¶è¯·æ±‚ä¿¡å·
        /// èŽ·å–æ¡æž¶å–æ–™æ–™ä¿¡å·
        /// </summary>
        private W_TrussCartonDB GetCartonRequest(string StationCode)
        private W_TrussDixieCupDB GetTrussDixieCupTaked(string StationCode)
        {
            switch (StationCode)
            {
                case "1":
                    return W_TrussCartonDB.W_CartonRequest1;
                    return W_TrussDixieCupDB.W_DixieCupTaked1;
                case "2":
                    return W_TrussCartonDB.W_CartonRequest2;
                    return W_TrussDixieCupDB.W_DixieCupTaked2;
                case "3":
                    return W_TrussCartonDB.W_CartonRequest3;
                    return W_TrussDixieCupDB.W_DixieCupTaked3;
                case "4":
                    return W_TrussCartonDB.W_CartonRequest4;
                case "5":
                    return W_TrussCartonDB.W_CartonRequest5;
                case "6":
                    return W_TrussCartonDB.W_CartonRequest6;
                    return W_TrussDixieCupDB.W_DixieCupTaked4;
                default:
                    throw new Exception("未定义工位");
            }
        }
        /// <summary>
        /// èŽ·å–æ¡æž¶è¯·æ±‚è¿›ä¿¡å·
        /// </summary>
        private W_TrussDixieCupDB GetTrussDixieCupOutReq(string StationCode)
        {
            switch (StationCode)
            {
                case "1":
                    return W_TrussDixieCupDB.W_DixieCupReqPut1;
                case "2":
                    return W_TrussDixieCupDB.W_DixieCupReqPut2;
                case "3":
                    return W_TrussDixieCupDB.W_DixieCupReqPut3;
                case "4":
                    return W_TrussDixieCupDB.W_DixieCupReqPut4;
                default:
                    throw new Exception("未定义工位");
            }
        }
        /// <summary>
        /// èŽ·å–æ¡æž¶è¯·æ±‚è¿›ä¿¡å·
        /// </summary>
        private W_TrussDixieCupDB GetTrussDixieCupInReq(string StationCode)
        {
            switch (StationCode)
            {
                case "1":
                    return W_TrussDixieCupDB.W_DixieCupReqTake1;
                case "2":
                    return W_TrussDixieCupDB.W_DixieCupReqTake2;
                case "3":
                    return W_TrussDixieCupDB.W_DixieCupReqTake3;
                case "4":
                    return W_TrussDixieCupDB.W_DixieCupReqTake4;
                default:
                    throw new Exception("未定义工位");
            }
@@ -562,22 +593,37 @@
        /// <summary>
        /// èŽ·å–æ¡æž¶è¿›å…¥ä¿¡å·
        /// </summary>
        private R_TrussCartonDB GetCarton(string StationCode)
        private R_TrussDixieCupDB GetDixieCupPutOut(string StationCode)
        {
            switch (StationCode)
            {
                case "1":
                    return R_TrussCartonDB.R_CartonAllow1;
                    return R_TrussDixieCupDB.R_DixieCupPutOut1;
                case "2":
                    return R_TrussCartonDB.R_CartonAllow2;
                    return R_TrussDixieCupDB.R_DixieCupPutOut2;
                case "3":
                    return R_TrussCartonDB.R_CartonAllow3;
                    return R_TrussDixieCupDB.R_DixieCupPutOut3;
                case "4":
                    return R_TrussCartonDB.R_CartonAllow4;
                case "5":
                    return R_TrussCartonDB.R_CartonAllow5;
                case "6":
                    return R_TrussCartonDB.R_CartonAllow6;
                    return R_TrussDixieCupDB.R_DixieCupPutOut4;
                default:
                    throw new Exception("未定义工位");
            }
        }
        /// <summary>
        /// èŽ·å–æ¡æž¶è¿›å…¥ä¿¡å·
        /// </summary>
        private R_TrussDixieCupDB GetDixieCupTakeIn(string StationCode)
        {
            switch (StationCode)
            {
                case "1":
                    return R_TrussDixieCupDB.R_DixieCupTakeIn1;
                case "2":
                    return R_TrussDixieCupDB.R_DixieCupTakeIn2;
                case "3":
                    return R_TrussDixieCupDB.R_DixieCupTakeIn3;
                case "4":
                    return R_TrussDixieCupDB.R_DixieCupTakeIn4;
                default:
                    throw new Exception("未定义工位");
            }
@@ -659,6 +705,24 @@
                            return content.Error("禁止取料");
                        }
                    }
                    else if (device.DeviceCode.Contains("TrussDixieCup"))
                    {
                        bool RequestPut = otherDevice.GetValue<W_TrussDixieCupDB, bool>(GetTrussDixieCupInReq(stationManger.StackerCraneStationCode), stationManger.StationDeviceCode);
                        if (!RequestPut)
                        {
                            otherDevice.SetValue(GetTrussDixieCupInReq(stationManger.StackerCraneStationCode), true, stationManger.StationDeviceCode);
                            Thread.Sleep(1000);
                        }
                        bool AllowFinish = otherDevice.GetValue<R_TrussDixieCupDB, bool>(GetDixieCupTakeIn(stationManger.StackerCraneStationCode), stationManger.StationDeviceCode);
                        if (AllowFinish)
                        {
                            content.OK("允许取料");
                        }
                        else
                        {
                            return content.Error("禁止取料");
                        }
                    }
                }
                return content;
            }
@@ -709,6 +773,10 @@
                    {
                        otherDevice.SetValue(RetractDB.Ret_TakeFinish, true, stationManger.StationDeviceCode);
                    }
                    else if (device.DeviceCode.Contains("TrussDixieCup"))//纸杯桁架
                    {
                        otherDevice.SetValue(GetTrussDixieCupTaked(stationManger.StackerCraneStationCode), true, stationManger.StationDeviceCode);
                    }
                }
                return WebResponseContent.Instance.OK();