Admin
2026-01-20 aff4845905dd17fb2eca2780f46ab6294b3f9dc1
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -140,6 +140,8 @@
                        if (string.IsNullOrEmpty(task.TargetAddress))
                        {
                            if(task.TaskStatus == (int)InTaskStatusEnum.PLC_InExecuting)
                            {
                            int loctype = 0;
                            if (task.Roadway == "1" || task.Roadway == "2")
                            {
@@ -190,9 +192,17 @@
                        }
                        else
                        {
                            //判断是否有该站台
                                return content.Error("上报失败,当前任务不是输送线执行中,WCS上报完成失败");
                            }
                            string Resultplc = MesInTaskStatusEnum.入库完成.GetDescription();
                        }
                        else
                        {
                            //判断是否有该站台
                            if (task.TaskStatus == (int)InTaskStatusEnum.PLC_InExecuting)
                            {
                                string Resultplc = MesInTaskStatusEnum.Finish.GetDescription();
                            MES_parameter mES_PCLParameter = InStoreDocCallback(task.TaskNum, Resultplc, "操作成功", task.PalletCode, task.TargetAddress);
                            if (mES_PCLParameter.Result == "Y")
                            {
@@ -207,11 +217,19 @@
                                return content.Error("上传MES失败,原因:" + mES_PCLParameter.ResultMsg);
                            }
                        }
                            else
                            {
                                return content.Error($"上报失败,当前任务不是输送线执行中,WCS上报完成失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                            }
                        }
                    case 2:
                        string Resultsc = MesInTaskStatusEnum.入库完成.GetDescription();
                        if (task.TaskStatus == (int)InTaskStatusEnum.SC_IntExecuting)
                        {
                            string Resultsc = MesInTaskStatusEnum.Finish.GetDescription();
                        //上报MES任务完成
                        MES_parameter mES_Parameter = InStoreDocCallback(task.TaskNum, Resultsc, "操作成功", task.PalletCode, task.TargetAddress);
                        if (mES_Parameter.Result != "Y")
                            if (mES_Parameter.Result == "Y")
                        {
                            Dt_StockInfo dt_Stockowc = _stockInfoService.Repository.QueryData(x => x.PalletCode == task.PalletCode).FirstOrDefault();
                            Dt_LocationInfo dt_LocationInfo=_locationInfoService.Repository.QueryData(x => x.LocationCode == dt_Stockowc.LocationCode).FirstOrDefault();
@@ -231,6 +249,12 @@
                        {
                            return content.Error("上传MES失败,原因:" + mES_Parameter.ResultMsg);
                        }
                        }
                        else
                        {
                            return content.Error($"上报失败,当前任务不是堆垛机执行中,WCS上报完成失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                        }
                    default:
                        return content.Error($"WCS上报类型错误:{wcsTaskType}");
                }
@@ -250,10 +274,12 @@
                switch (wcsTaskType)
                {
                    case 1:
                        string Resultplc = MesOutTaskStatusEnum.到达目的地.GetDescription();
                        if(task.TaskStatus == (int)OutTaskStatusEnum.PLC_OutExecuting)
                        {
                            string Resultplc = MesOutTaskStatusEnum.Finish.GetDescription();
                        //上报MES任务完成
                        MES_parameter mES_Parameter = OutStoreDocCallback(task.TaskNum, Resultplc, "操作成功");
                        if (mES_Parameter.Result != "Y")
                            if (mES_Parameter.Result == "Y")
                        {
                            task.TaskStatus = (int)OutTaskStatusEnum.PLC_OutFinish;
                            BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateTypeEnum.自动完成 : OperateTypeEnum.人工完成);
@@ -263,7 +289,17 @@
                        {
                            return content.Error("上传MES失败,原因:" + mES_Parameter.ResultMsg);
                        }
                        }
                        else
                        {
                            return content.Error($"上报失败,WMS当前任务不是输送线执行中,WCS上报完成失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                        }
                    case 2:
                        if (task.TaskStatus == (int)OutTaskStatusEnum.SC_OutExecuting)
                        {
                        //获取对应PLC站台信息
                        Dt_roadwayinfo _Roadwayinfo = _roadWayinfoService.QbtainPlatform(task.Roadway);
                        task.CurrentAddress = _Roadwayinfo.OutStationCode;
@@ -274,10 +310,10 @@
                        Dt_LocationInfo dt_LocationInfo = _locationInfoService.Repository.QueryData(x => x.LocationCode == dt_Stockowc.LocationCode).FirstOrDefault();
                        dt_LocationInfo.LocationStatus = (int)LocationStatusEnum.Free;
                        string Result = MesOutTaskStatusEnum.出库完成.GetDescription();
                            string Result = MesOutTaskStatusEnum.Outstore.GetDescription();
                        //调取上游系统反馈开始任务
                        MES_parameter mES_SCParameter = OutStoreDocCallback(task.TaskNum, Result, "操作成功");
                        if (mES_SCParameter.Result != "Y")
                            if (mES_SCParameter.Result == "Y")
                        {
                            _unitOfWorkManage.BeginTran();
                            _stockInfoService.DeleteData(dt_Stockowc);
@@ -290,6 +326,12 @@
                        {
                            return content.Error("上传MES失败,原因:" + mES_SCParameter.ResultMsg);
                        }
                        }
                        else
                        {
                            return content.Error($"上报失败,WMS当前任务不是堆垛机执行中,WCS上报完成失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                        }
                    default:
                        return content.Error($"WCS上报类型错误:{wcsTaskType}");
                }
@@ -308,13 +350,15 @@
            {
                if (wcsTaskType == 2)
                {
                    if(task.TaskStatus == (int)RelocationTaskStatusEnum.RelocationExecuting)
                    {
                    //上报MES任务完成
                    MES_parameter mES_Parameter = AbnormalStorageLocation(task.PalletCode, task.SourceAddress, task.TargetAddress);
                    if (mES_Parameter.Result == "Y")
                    {
                        Dt_LocationInfo OriginalLocation = _locationInfoService.Repository.QueryData(x => x.LocationCode == task.SourceAddress).FirstOrDefault();
                        Dt_LocationInfo NewLocation = _locationInfoService.Repository.QueryData(x => x.LocationCode == task.TargetAddress).FirstOrDefault();
                        Dt_StockInfo dt_StockInfo = _stockInfoService.Repository.QueryData(x => x.LocationCode == task.TargetAddress).FirstOrDefault();
                            Dt_StockInfo dt_StockInfo = _stockInfoService.Repository.QueryData(x => x.LocationCode == task.SourceAddress).FirstOrDefault();
                        List<Dt_LocationInfo> dt_Locations = new List<Dt_LocationInfo>();
@@ -333,7 +377,7 @@
                        BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateTypeEnum.自动完成 : OperateTypeEnum.人工完成);
                        _unitOfWorkManage.CommitTran();
                        return WebResponseContent.Instance.OK($"已接收移库堆垛机完成信息,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                            return responseContent.OK($"已接收移库堆垛机完成信息,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                    }
                    else
                    {
@@ -342,13 +386,19 @@
                }
                else
                {
                    return WebResponseContent.Instance.Error($"WCS上报类型错误:{wcsTaskType}");
                        return responseContent.Error($"上报失败,WMS当前任务不是堆垛机执行中,WCS上报完成失败,任务号:{task.TaskId},托盘编号:{task.PalletCode}");
                    }
                }
                else
                {
                    return responseContent.Error($"WCS上报类型错误:{wcsTaskType}");
                }
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                return WebResponseContent.Instance.Error($"WMS系统错误,原因:{ex.Message}");
                return responseContent.Error($"WMS系统错误,原因:{ex.Message}");
            }
            
        }