xiazhengtongxue
2026-04-07 b0b5deb5825684bca5b3fa7c2ab59f60ce0e799f
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCSTaskService.cs
@@ -2,6 +2,7 @@
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
using Org.BouncyCastle.Math.EC;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -88,7 +89,7 @@
        public WebResponseContent PalletInboundTask(WCSTaskDTO wCSTask)
        {
            
            WriteLog.Write_Log("输送线请求入库", $"任务信息", "接收参数", $"参数:{wCSTask.ToJson()}");
            WriteLog.Write_Log("WCS_输送线请求入库", $"任务信息", "接收参数", $"参数:{wCSTask.ToJson()}");
            WebResponseContent webResponse = new WebResponseContent();
            try
            {
@@ -96,11 +97,40 @@
                if (task == null)
                    return webResponse.Error($"未找到任务信息,托盘条码:{wCSTask.PalletCode}");
                if (task.PalletType != wCSTask.ContainerType.ToString())
                //Dt_Task Outtask = BaseDal.QueryData(x => x.TargetAddress == task.SourceAddress).FirstOrDefault();
                // å¤„理地址转换
                string targetAddress = wCSTask.FromPoint;
                if (targetAddress == "1104")
                {
                    return webResponse.Error($"托盘类型不匹配,当前任务中托盘类型为:{task.PalletType},WCS上报类型为:{wCSTask.ContainerType},托盘条码:{wCSTask.PalletCode}");
                    targetAddress = "1103";
                }
                else if (targetAddress == "1102")
                {
                    targetAddress = "1101";
                }
                Dt_Task Outtask = BaseDal.QueryData(x => x.TargetAddress == targetAddress).FirstOrDefault();
                if (Outtask != null) return webResponse.Error($"当前已有来该目标位置{wCSTask.FromPoint}的任务,不可进行入库,托盘条码:{wCSTask.PalletCode}", 501);
                if (task.PalletType != wCSTask.ContainerType.ToString())
                {
                    return webResponse.Error($"托盘类型不匹配,当前任务中托盘类型为:{task.PalletType},WCS上报类型为:{wCSTask.ContainerType},托盘条码:{wCSTask.PalletCode}", 502);
                }
                // ä»»åŠ¡é‡å‘
                if (task.TaskStatus == (int)InTaskStatusEnum.PLC_InExecuting)
                {
                    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 = "";
                    WriteLog.Write_Log("WCS_输送线请求入库", $"任务信息", $"返回输送线任务信息", $"返回给输送线的任务信息:{wcstaskinfo.ToJson()}");
                    return webResponse.OK(data: wcstaskinfo);
                }
                if (task.TargetAddress!="" && task.TargetAddress!=null)
                {
                    int taskcount = BaseDal.QueryData(x => x.TargetAddress == task.TargetAddress && x.PalletCode != task.PalletCode).Count();
@@ -108,10 +138,11 @@
                        return webResponse.Error($"当前已有去该目标位置的任务了,不可下发!!!");
                }
                
                if (task.TaskStatus == (int)InTaskStatusEnum.InNew)
                // ä¸Šä¼ EMS
                if (task.TaskStatus == (int)InTaskStatusEnum.InNew)
                {
                    task.TaskStatus = (int)InTaskStatusEnum.PLC_InExecuting;
                    task.Dispatchertime = DateTime.Now;
                    MES_parameter mES_Parameter = InStoreDocCallback(task.TaskNum, "Start", "操作成功", task.PalletCode, "");
                    if (mES_Parameter.Result == "Y")    //记得改回来
                    {
@@ -124,10 +155,11 @@
                        wcstaskinfo.FromPoint = wCSTask.FromPoint;
                        wcstaskinfo.ToPoint = task.NextAddress;
                        wcstaskinfo.ToStation = "";
                        //进行修改数据库
                        BaseDal.UpdateData(task);
                        WriteLog.Write_Log("输送线请求入库", $"任务信息", "返回输送线任务信息", $"返回给输送线的任务信息:{wcstaskinfo.ToJson()}");
                        WriteLog.Write_Log("WCS_输送线请求入库", $"任务信息", "返回输送线任务信息", $"返回给输送线的任务信息:{wcstaskinfo.ToJson()}");
                        return webResponse.OK(data: wcstaskinfo);
                    }
                    else
@@ -143,7 +175,7 @@
            }
            catch (Exception ex)
            {
                WriteLog.Write_Log("输送线请求入库", $"任务信息", "失败", $"任务获取失败,wms系统故障,原因:{ex.Message}");
                WriteLog.Write_Log("WCS_输送线请求入库", $"任务信息", "失败", $"任务获取失败,wms系统故障,原因:{ex.Message}");
                return webResponse.Error("任务获取失败,wms系统故障,原因:" + ex.Message);
            }
        }