Admin
2026-01-18 b593c2d4ada3244f4a256ca18a23c3fef609f234
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCSTaskService.cs
@@ -10,6 +10,7 @@
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Common.Log;
using WIDESEA_Common.TaskEnum;
using WIDESEA_Core;
using WIDESEA_Core.Enums;
using WIDESEA_Core.Helper;
@@ -64,6 +65,7 @@
                wcstaskinfo.FromPoint = FromPoint;
                wcstaskinfo.ToPoint = ToPoint;
                wcstaskinfo.ToStation = ToStation;
                Console.WriteLine(wcstaskinfo.ToJson());
                WCS_Parame = HttpHelper.Post<WCSginseng>(WCS_SendStackerTask, wcstaskinfo, "堆垛机任务下发");
                return WCS_Parame;
            }
@@ -75,5 +77,64 @@
                return WCS_Parame;
            }
        }
        //WCS获取任务进行反馈
        public WebResponseContent PalletInboundTask(WCSTaskDTO wCSTask)
        {
            WebResponseContent webResponse = new WebResponseContent();
            try
            {
                Dt_Task task = BaseDal.QueryData(x => x.PalletCode == wCSTask.PalletCode).FirstOrDefault();
                if (task == null)
                    return WebResponseContent.Instance.Error($"未找到任务信息,托盘条码:{wCSTask.PalletCode}");
                if (task.PalletType != wCSTask.ContainerType.ToString())
                {
                    return WebResponseContent.Instance.Error($"托盘类型不匹配,当前任务中托盘类型为:{task.PalletType},WCS上报类型为:{wCSTask.ContainerType},托盘条码:{wCSTask.PalletCode}");
                }
                if (task.TargetAddress!="" && task.TargetAddress!=null)
                {
                    int taskcount = BaseDal.QueryData(x => x.TargetAddress == task.TargetAddress && x.PalletType != task.PalletCode).Count();
                    if (taskcount > 0)
                        return WebResponseContent.Instance.Error($"当前已有去该目标位置的任务了,不可下发!!!");
                }
                if (task.TaskStatus == (int)InTaskStatusEnum.InNew)
                {
                    task.TaskStatus = (int)InTaskStatusEnum.PLC_InExecuting;
                    MES_parameter mES_Parameter = InStoreDocCallback(task.TaskNum, "Start", "操作成功", task.PalletCode, "");
                    if (mES_Parameter.Result != "Y")    //记得改回来
                    {
                        WCStask wcstaskinfo = new WCStask();
                        wcstaskinfo.TaskId = task.TaskId;
                        wcstaskinfo.AreaNo = int.Parse(task.Roadway);
                        wcstaskinfo.TransNo = task.TaskNum;
                        wcstaskinfo.ContainerNo = task.PalletCode;
                        wcstaskinfo.ContainerType = int.Parse(task.PalletType);
                        wcstaskinfo.FromPoint = wCSTask.FromPoint;
                        wcstaskinfo.ToPoint = task.NextAddress;
                        wcstaskinfo.ToStation = "";
                        //进行修改数据库
                        BaseDal.UpdateData(task);
                        return webResponse.OK(data: wcstaskinfo);
                    }
                    else
                    {
                        return webResponse.Error("上传MES失败,原因:" + mES_Parameter.ResultMsg);
                    }
                }
                else
                {
                    return webResponse.Error($"下发输送线任务失败,当前托盘条码:{task.PalletCode},不在新建中,不可重复下发");
                }
            }
            catch (Exception ex)
            {
                return webResponse.Error("任务获取失败,wms系统故障,原因:" + ex.Message);
            }
        }
    }
}