xiazhengtongxue
2026-04-07 b0b5deb5825684bca5b3fa7c2ab59f60ce0e799f
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MESTaskService.cs
@@ -1,4 +1,5 @@
using MailKit.Search;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
@@ -9,6 +10,7 @@
using System.Linq;
using System.Reflection;
using System.Reflection.Metadata;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
using WIDESEA_Common.LocationEnum;
@@ -21,6 +23,8 @@
using WIDESEA_Core.Helper;
using WIDESEA_DTO.Inbound;
using WIDESEA_DTO.Task;
using WIDESEA_IStockService;
using WIDESEA_ITaskInfoService;
using WIDESEA_Model.Models;
using static WIDESEA_ITaskInfoService.ITaskService;
@@ -28,10 +32,11 @@
{
    public partial class TaskService
    {
        public static List<string> InStationareaList = new List<string>() { "1113", "1114", "1115", "1116", "1117", "1118", "1119", "1120", "1121", "1122" ,"1123"};
        //入库,空盘回库
        public ApiResponse AddInStoreDoc(MES_InTask mES_In)
        {
            WriteLog.GetLog("接收MES入库任务下发").Write($"参数:{mES_In.ToJson()}", $"任务接收参数");
            WriteLog.Write_Log("MES_接收入库任务下发", $"任务接收参数", "接收参数", $"参数:{mES_In.ToJson()}");
            ApiResponse apiResponse = new ApiResponse();
            try
            {
@@ -48,15 +53,22 @@
                Dt_Task setask = BaseDal.QueryData(x => x.PalletCode == mES_In.containerNo).FirstOrDefault();
                if (setask != null) return apiResponse.Error($"WMS已有当前任务,不可重复下发,托盘编号:{mES_In.containerNo}");
                // åˆ¤æ–­ä¸‹å‘的托盘编号是否库存托盘编号有重复
                if (_stockInfoService.IsContainerNoExist(mES_In.containerNo)) return apiResponse.Error($"当前库位已有该托盘编号,托盘编号:{mES_In.containerNo}");
                Dt_Warehouse dt_Warehouse = _warehouseService.QueryWarehouse(mES_In.warehouseNo);
                int LocationType = 1;
                string Roadway = "0";
                if(mES_In.startPosition == "1206")
                {
                    mES_In.startPosition = "1205";
                }
                string SourceAddress = mES_In.startPosition;
                string TargetAddress = "";
                string CurrentAddress = mES_In.startPosition;
                string NextAddress = "";
                int WarehouseId = 0;
                int WarehouseId = dt_Warehouse.WarehouseId;
                if (dt_Warehouse.WarehouseCode == mES_In.endPosition)
@@ -69,15 +81,54 @@
                    {
                        LocationType = 3;
                    }
                    Roadway = _locationInfoService.AccessingTunnel(dt_Warehouse.WarehouseId, LocationType);
                    if (Roadway == "0") return apiResponse.Error($"WMS未能查询道对应巷道编号,仓库编码:{mES_In.warehouseNo}");
                    // æŸ¥è¯¢æ¯ä¸ªå··é“号的任务数量
                    List<RoadwayTaskCount> roadwayTaskCounts;
                    // æ ¹æ® WarehouseId èŽ·å–å¯¹åº”çš„å··é“åˆ—è¡¨
                    var roadwayList = WarehouseId == 1
                        ? new[] { "1", "2" }
                        : new[] { "3", "4", "5" };
                    // æŸ¥è¯¢æ•°æ®åº“中的实际数据
                    var queryData = BaseDal.QueryData(x => x.WarehouseId == WarehouseId && x.PalletType == (LocationType.ToString() == "3" ? "1" : LocationType.ToString()))
                        .GroupBy(x => x.Roadway)
                        .Select(g => new RoadwayTaskCount
                        {
                            Roadway = g.Key,
                            TaskCount = g.Count()
                        })
                        .ToList();
                    // åˆå¹¶æ‰€æœ‰éœ€è¦çš„巷道,确保每个巷道都有对应的 TaskCount
                    roadwayTaskCounts = roadwayList
                        .Select(roadway => new RoadwayTaskCount
                        {
                            Roadway = roadway,
                            TaskCount = queryData.FirstOrDefault(x => x.Roadway == roadway)?.TaskCount ?? 0
                        })
                        .ToList();
                    //var taskCount = BaseDal.QueryData(x => x.WarehouseId == WarehouseId && x.PalletType == LocationType.ToString()).Count();
                    Roadway = _locationInfoService.AccessingTunnel(dt_Warehouse.WarehouseId, LocationType, roadwayTaskCounts);
                    //if (Roadway == "0") return apiResponse.Error($"WMS未能查询道对应巷道编号,仓库编码:{mES_In.warehouseNo}");
                    if (Roadway == "0") return apiResponse.Error($"当前仓库已经满:{mES_In.warehouseNo}");
                    //获取对应PLC站台信息
                    Dt_roadwayinfo _Roadwayinfo = _roadWayinfoService.QbtainPlatform(Roadway);
                    NextAddress = _Roadwayinfo.InStationCode;
                    WarehouseId = dt_Warehouse.WarehouseId;
                }
                else
                {
                    if (dt_Warehouse.WarehouseType == (int)WarehouseEnum.YMYL)
                    {
                        Roadway="1";
                    }
                    else if (dt_Warehouse.WarehouseType == (int)WarehouseEnum.YMCP)
                    {
                        Roadway = "2";
                    }
                    TargetAddress = mES_In.endPosition;
                    NextAddress = mES_In.endPosition;
                }
@@ -98,26 +149,48 @@
                task.Grade = 1;
                task.Creater = "MES";
                task.CreateDate = DateTime.Now;
                int taskid=BaseDal.AddData(task);
                /*Dt_StockInfo dt_StockInfo = new Dt_StockInfo();
                dt_StockInfo.PalletCode = task.PalletCode;
                dt_StockInfo.PalletType = task.PalletType;
                dt_StockInfo.WarehouseId = task.WarehouseId;
                dt_StockInfo.StockStatus = (int)StockStatusEmun.入库中;
                dt_StockInfo.Creater = "MWS";
                dt_StockInfo.CreateDate = DateTime.Now;*/
                _unitOfWorkManage.BeginTran();
                BaseDal.AddData(task);
                //_stockInfoService.Repository.AddData(dt_StockInfo);
                _unitOfWorkManage.CommitTran();
                WriteLog.GetLog("接收MES入库任务下发").Write($"参数:{mES_In.containerNo}", $"入库任务添加成功");
                return apiResponse.OK();
                //创建任务后,判断是否是产线回库的任务
                if (!InStationareaList.Contains(task.SourceAddress))
                {
                    WriteLog.Write_Log("MES_接收入库任务下发", $"反馈信息", "成功", $"任务添加成功,托盘条码:{task.PalletCode}");
                    return apiResponse.OK();
                }
                else
                {
                    WCSginseng result = PLC_IssueTasks(
                        taskid, // ä¸æ˜¯task.Taskid
                        task.WarehouseId,
                        task.TaskNum,
                        task.PalletCode,
                        int.Parse(task.PalletType),
                        task.CurrentAddress,
                        task.NextAddress,
                        "");
                    if (result.IsSuccess)
                    {
                        Dt_Task deltaskin = BaseDal.QueryData(x => x.TaskId == taskid).FirstOrDefault();
                        deltaskin.TaskStatus = (int)InTaskStatusEnum.PLC_InExecuting;
                        deltaskin.Dispatchertime = DateTime.Now;
                        string Result = MesInTaskStatusEnum.Start.GetDescription();
                        BaseDal.UpdateData(deltaskin);
                        //调取上游系统反馈开始任务
                        InStoreDocCallback(task.TaskNum, Result, "操作成功", task.PalletCode, "");
                        return apiResponse.OK();
                    }
                    else
                    {
                        Dt_Task deltask= BaseDal.QueryData(x => x.TaskId == taskid).FirstOrDefault();
                        BaseDal.DeleteData(deltask);
                        return apiResponse.Error($"下发任务失败,下发WCS失败,原因:{result.Message}");
                    }
                }
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                WriteLog.GetLog("接收MES入库任务下发").Write($"原因:{ex.Message}", $"入库任务添加");
                WriteLog.Write_Log("MES_接收入库任务下发", $"反馈信息", "失败", $"任务添加失败,托盘条码:{mES_In.containerNo},系统出错原因:{ex.Message}");
                return apiResponse.Error($"WMS任务添加错误,原因:{ex.Message}");
            }
@@ -127,7 +200,8 @@
        //出库任务
        public ApiResponse AddOutStoreDoc(MES_InTask mES_In)
        {
            WriteLog.GetLog("接收MES出库任务下发").Write($"参数:{mES_In.ToJson()}", $"任务接收参数");
            WriteLog.Write_Log("MES_接收MES出库任务下发", $"任务接收参数", "接收参数", $"参数:{mES_In.ToJson()}");
            ApiResponse apiResponse = new ApiResponse();
            try
            {
@@ -139,51 +213,103 @@
                if (string.IsNullOrWhiteSpace(mES_In.containerNo)) return apiResponse.Error("托盘码不能为空");
                if (string.IsNullOrWhiteSpace(mES_In.endPosition)) return apiResponse.Error("目标位置不能为空");
                Dt_StockInfo dt_Stock=_stockInfoService.Repository.QueryData(x=>x.PalletCode== mES_In.containerNo && x.StockStatus== (int)StockStatusEmun.已入库).FirstOrDefault();
                // å½“前任务mES_In.endPosition目标位置1113 - 1122
                var restrictedPositions = new List<string> { "1113", "1114", "1115", "1116", "1117", "1118", "1119", "1120", "1121", "1122", "1123" };
                bool isRestrictedPosition = restrictedPositions.Contains(mES_In.endPosition);
                if (isRestrictedPosition)
                {
                    bool hasExistingTask = BaseDal.QueryData(x => x.TargetAddress == mES_In.endPosition).Any();
                    if (hasExistingTask)
                    {
                        // ç›®æ ‡ä½ç½®åœ¨1113-1122范围内的处理逻辑
                        return apiResponse.Error($"当前有去目标位置{mES_In.endPosition}的任务,请重新操作");
                    }
                }
                Dt_StockInfo dt_Stock=_stockInfoService.Repository.QueryData(x=>x.PalletCode== mES_In.containerNo).FirstOrDefault();
                if (dt_Stock == null) return apiResponse.Error($"WMS未能查找道该托盘条码的库存货位信息,条码:{mES_In.containerNo}");
                Dt_LocationInfo dt_LocationInfo = _locationInfoService.Repository.QueryData(x => x.LocationCode == dt_Stock.LocationCode && x.LocationStatus== (int)LocationStatusEnum.InStock).FirstOrDefault();
                if (dt_LocationInfo == null) return apiResponse.Error($"WMS未能查找道该托盘条码的库存货位信息,条码:{mES_In.containerNo},未找到货位号:{dt_Stock.LocationCode}");
                if(dt_Stock.StockStatus == (int)StockStatusEmun.已入库)
                {
                    Dt_LocationInfo dt_LocationInfo = _locationInfoService.Repository.QueryData(x => x.LocationCode == dt_Stock.LocationCode && x.LocationStatus == (int)LocationStatusEnum.InStock).FirstOrDefault();
                    if (dt_LocationInfo == null) return apiResponse.Error($"WMS未能查找道该托盘条码的库存货位信息,条码:{mES_In.containerNo},未找到货位号:{dt_Stock.LocationCode}");
                Dt_roadwayinfo _Roadwayinfo = _roadWayinfoService.QbtainPlatform(dt_LocationInfo.RoadwayNo);
                    Dt_roadwayinfo _Roadwayinfo = _roadWayinfoService.QbtainPlatform(dt_LocationInfo.RoadwayNo);
                Dt_Task setask = BaseDal.QueryData(x => x.PalletCode == mES_In.containerNo).FirstOrDefault();
                if (setask != null) return apiResponse.Error($"WMS已有当前任务,不可重复下发,托盘编号:{mES_In.containerNo}");
                    Dt_Task setask = BaseDal.QueryData(x => x.PalletCode == mES_In.containerNo).FirstOrDefault();
                    if (setask != null) return apiResponse.Error($"WMS已有当前任务,不可重复下发,托盘编号:{mES_In.containerNo}");
                Dt_Task task = new Dt_Task();
                task.TaskNum = mES_In.transNo;
                task.PalletCode = dt_Stock.PalletCode;
                task.PalletType = dt_Stock.PalletType;
                task.Roadway = dt_LocationInfo.RoadwayNo;
                task.TaskType = (int)TaskTypeEnum.Outbound;
                task.TaskStatus = (int)OutTaskStatusEnum.OutNew;
                task.SourceAddress = dt_LocationInfo.LocationCode;
                task.TargetAddress = mES_In.endPosition;
                task.CurrentAddress = dt_LocationInfo.LocationCode;
                task.NextAddress = _Roadwayinfo.OutSCStationCode;
                task.WarehouseId = dt_LocationInfo.WarehouseId;
                task.OrderNo = mES_In.transDate.ToString();
                task.Grade = 1;
                task.Creater = "MES";
                task.CreateDate = DateTime.Now;
                    Dt_Task task = new Dt_Task();
                    task.TaskNum = mES_In.transNo;
                    task.PalletCode = dt_Stock.PalletCode;
                    task.PalletType = dt_Stock.PalletType;
                    task.Roadway = dt_LocationInfo.RoadwayNo;
                    task.TaskType = (int)TaskTypeEnum.Outbound;
                    task.TaskStatus = (int)OutTaskStatusEnum.OutNew;
                    task.SourceAddress = dt_LocationInfo.LocationCode;
                    task.TargetAddress = mES_In.endPosition;
                    task.CurrentAddress = dt_LocationInfo.LocationCode;
                    task.NextAddress = _Roadwayinfo.OutSCStationCode;
                    task.WarehouseId = dt_LocationInfo.WarehouseId;
                    task.OrderNo = mES_In.transDate.ToString();
                    task.Grade = 1;
                    task.Creater = "MES";
                    task.CreateDate = DateTime.Now;
                dt_Stock.StockStatus = (int)StockStatusEmun.出库中;
                dt_LocationInfo.LocationStatus = (int)LocationStatusEnum.Lock;
                    dt_Stock.StockStatus = (int)StockStatusEmun.出库中;
                    dt_LocationInfo.LocationStatus = (int)LocationStatusEnum.Lock;
                _unitOfWorkManage.BeginTran();
                BaseDal.AddData(task);
                _stockInfoService.Repository.UpdateData(dt_Stock);
                _locationInfoService.Repository.UpdateData(dt_LocationInfo);
                _unitOfWorkManage.CommitTran();
                    _unitOfWorkManage.BeginTran();
                    BaseDal.AddData(task);
                    _stockInfoService.Repository.UpdateData(dt_Stock);
                    _locationInfoService.Repository.UpdateData(dt_LocationInfo);
                    _unitOfWorkManage.CommitTran();
                WriteLog.GetLog("接收MES出库任务下发").Write($"添加成功,托盘条码:{dt_Stock.PalletCode}", $"出库任务添加");
                return apiResponse.OK();
                    WriteLog.Write_Log("MES_接收MES出库任务下发", $"出库任务添加", "成功", $"添加成功,托盘条码:{dt_Stock.PalletCode}");
                    return apiResponse.OK();
                }else if(dt_Stock.StockStatus == (int)StockStatusEmun.移库锁定)
                {
                    Dt_LocationInfo dt_LocationInfo = _locationInfoService.Repository.QueryData(x => x.LocationCode == dt_Stock.LocationCode && x.LocationStatus == (int)LocationStatusEnum.Lock).FirstOrDefault();
                    if (dt_LocationInfo == null) return apiResponse.Error($"WMS未能查找道该托盘条码的库存货位信息,条码:{mES_In.containerNo},未找到货位号:{dt_Stock.LocationCode}");
                    Dt_roadwayinfo _Roadwayinfo = _roadWayinfoService.QbtainPlatform(dt_LocationInfo.RoadwayNo);
                    Dt_Task task = new Dt_Task();
                    task.TaskNum = mES_In.transNo;
                    task.PalletCode = dt_Stock.PalletCode;
                    task.PalletType = dt_Stock.PalletType;
                    task.Roadway = dt_LocationInfo.RoadwayNo;
                    task.TaskType = (int)TaskTypeEnum.Outbound;
                    task.TaskStatus = (int)OutTaskStatusEnum.OutWait;
                    task.SourceAddress = dt_LocationInfo.LocationCode;
                    task.TargetAddress = mES_In.endPosition;
                    task.CurrentAddress = dt_LocationInfo.LocationCode;
                    task.NextAddress = _Roadwayinfo.OutSCStationCode;
                    task.WarehouseId = dt_LocationInfo.WarehouseId;
                    task.OrderNo = mES_In.transDate.ToString();
                    task.Grade = 1;
                    task.Creater = "MES";
                    task.CreateDate = DateTime.Now;
                    _unitOfWorkManage.BeginTran();
                    BaseDal.AddData(task);
                    _unitOfWorkManage.CommitTran();
                    WriteLog.Write_Log("MES_接收MES出库任务下发", $"出库任务添加", "成功", $"添加成功,托盘条码:{dt_Stock.PalletCode}");
                    return apiResponse.OK();
                }
                else
                {
                    WriteLog.Write_Log("MES_接收MES出库任务下发", $"出库任务添加", $"失败,托盘条码:{dt_Stock.PalletCode}", $"库存状态错误,请查看WMS系统库存,库存状态:{dt_Stock.StockStatus}");
                    return apiResponse.Error("库存状态错误,请查看WMS系统库存");
                }
            }
            catch (Exception ex)
            {
                _unitOfWorkManage.RollbackTran();
                WriteLog.GetLog("接收MES出库任务下发").Write($"原因:{ex.Message}", $"出库任务添加");
                WriteLog.Write_Log("MES_接收MES出库任务下发", $"出库任务添加", "失败", $"任务添加失败,托盘条码:{mES_In.containerNo},系统出错原因:{ex.Message}");
                return apiResponse.Error($"WMS任务添加错误,原因:{ex.Message}");
            }
        }
@@ -191,7 +317,8 @@
        //储位查询接口
        public ApiResponse GetLocationByContainer(MES_InTask mES_In)
        {
            WriteLog.GetLog("储位查询接口").Write($"参数:{mES_In.ToJson()}", $"任务接收参数");
            WriteLog.Write_Log("MES_储位查询接口", $"储位查询接口", "参数", $"托盘条码:{mES_In.ToJson()}");
            ApiResponse apiResponse = new ApiResponse();
            try
            {
@@ -221,7 +348,7 @@
            }
            catch (Exception ex)
            {
                WriteLog.GetLog("储位查询接口").Write($"原因:{ex.Message}", $"储位查询查询失败");
                WriteLog.Write_Log("MES_储位查询接口", $"储位查询接口", "查询失败", $"托盘条码:{mES_In.ToJson()}");
                return apiResponse.Error($"WMS储位查询错误,原因:{ex.Message}");
            }
            
@@ -230,6 +357,7 @@
        //任务查询接口
        public ApiResponse GetTaskInfo(MES_InTask mES_In)
        {
            WriteLog.Write_Log("MES_任务查询接口", $"任务查询接口", "参数", $"接收的参数:{mES_In.ToJson()}");
            ApiResponse apiResponse = new ApiResponse();
            try
            {
@@ -256,7 +384,7 @@
            }
            catch (Exception ex)
            {
                WriteLog.GetLog("任务查询接口").Write($"原因:{ex.Message}", $"任务查询失败");
                WriteLog.Write_Log("MES_任务查询接口", $"任务查询接口", "失败", $"条码:{mES_In.transNo},原因:{ex.Message}");
                return apiResponse.Error($"WMS任务查询接口错误,原因:{ex.Message}");
            }
        }
@@ -269,12 +397,13 @@
            {
                if (string.IsNullOrWhiteSpace(mES_In.transNo)) return apiResponse.Error("单据编号不能为空");
                Dt_Task dt_Task = BaseDal.QueryData(x => x.TaskNum == mES_In.transNo).FirstOrDefault();
                if (dt_Task == null) return apiResponse.Error($"WMS未能查找道对应单据任务,条码:{mES_In.transNo}");
                if (dt_Task == null) {
                    WriteLog.Write_Log("MES_任务取消接口", $"任务取消接口", "成功", $"单据编号:{mES_In.transNo},注意!!WMS未能查找道对应单据任务");
                    return apiResponse.OK();
                    //return apiResponse.Error($"WMS未能查找道对应单据任务,条码:{mES_In.transNo}");
                }
                if(dt_Task.TaskStatus== (int)InTaskStatusEnum.InNew)
                {
                    Dt_StockInfo dt_StockInfo=_stockInfoService.Repository.QueryData(x=>x.PalletCode==dt_Task.PalletCode).FirstOrDefault();
                    if (dt_StockInfo == null) return apiResponse.Error("取消失败,WMS记录的托盘库存查找失败");
                    _stockInfoService.Repository.DeleteData(dt_StockInfo);
                    BaseDal.DeleteData(dt_Task);
                    return apiResponse.OK();
                }else if(dt_Task.TaskStatus == (int)OutTaskStatusEnum.OutNew)
@@ -287,17 +416,19 @@
                    _stockInfoService.Repository.UpdateData(dt_StockInfo);
                    _locationInfoService.Repository.UpdateData(dt_LocationInfo);
                    BaseDal.DeleteData(dt_Task);
                    WriteLog.Write_Log("MES_任务取消接口", $"任务取消接口", "成功", $"单据编号:{mES_In.transNo}");
                    return apiResponse.OK();
                }
                else
                {
                    WriteLog.Write_Log("MES_任务取消接口", $"任务取消接口", "失败", $"单据编号:{mES_In.transNo},任务已经在执行中,不可取消");
                    return apiResponse.Error("任务已经在执行中,不可取消");
                }
                
            }
            catch (Exception ex)
            {
                WriteLog.GetLog("任务取消接口").Write($"原因:{ex.Message}", $"任务取消失败");
                WriteLog.Write_Log("MES_任务取消接口", $"任务取消接口", "失败", $"单据编号:{mES_In.transNo},原因:{ex.Message}");
                return apiResponse.Error($"WMS任务取消接口错误,原因:{ex.Message}");
            }
        }
@@ -315,13 +446,15 @@
                mesInResult.ContainerNo = ContainerNo;
                mesInResult.LocationCode = LocationCode;
                mES_Parame = HttpHelper.Post<MES_parameter>(MES_InReporttask, mesInResult, "入库任务汇报");
                WriteLog.GetLog("入库任务反馈接口").Write($"订单编号:{TransNo},执行结果:{Result},执行结果描述:{ResultMsg},托盘条码:{ContainerNo},库位编号:{LocationCode},接收到的回参:{mesInResult.ToJson()}", $"任务上报信息");
                WriteLog.Write_Log("MES_入库任务反馈接口", $"入库任务反馈接口", "成功", $"订单编号:{TransNo},执行结果:{Result},执行结果描述:{ResultMsg},托盘条码:{ContainerNo},库位编号:{LocationCode},上传的参数:{mesInResult.ToJson()},回传的参数:{mES_Parame.ToJson()}");
                return mES_Parame;
            }
            catch (Exception ex)
            {
                mES_Parame.Result = "N";
                mES_Parame.ResultMsg= $"入库:WMS系统上传失败,原因:{ex.Message}";
                WriteLog.Write_Log("MES_入库任务反馈接口", $"入库任务反馈接口", "失败", $"订单编号:{TransNo},执行结果:{Result},执行结果描述:{ResultMsg},托盘条码:{ContainerNo},库位编号:{LocationCode},上传失败,原因:{ex.Message}");
                return mES_Parame;
            }
@@ -337,13 +470,14 @@
                mesInResult.Result = Result;
                mesInResult.ResultMsg = ResultMsg;
                mES_Parame = HttpHelper.Post<MES_parameter>(MES_OutReporttask, mesInResult, "出库任务汇报");
                WriteLog.GetLog("出库任务反馈接口").Write($"订单编号:{TransNo},执行结果:{Result},执行结果描述:{ResultMsg},接收到的回参:{mesInResult.ToJson()}", $"任务上报信息");
                WriteLog.Write_Log("MES_出库任务反馈接口", $"出库任务反馈接口", "成功", $"订单编号:{TransNo},执行结果:{Result},执行结果描述:{ResultMsg},上传的参数:{mesInResult.ToJson()},回传的参数:{mES_Parame.ToJson()}");
                return mES_Parame;
            }
            catch (Exception ex)
            {
                mES_Parame.Result = "N";
                mES_Parame.ResultMsg = $"出库:WMS系统上传失败,原因:{ex.Message}";
                WriteLog.Write_Log("MES_出库任务反馈接口", $"出库任务反馈接口", "失败", $"订单编号:{TransNo},执行结果:{Result},执行结果描述:{ResultMsg},上传失败,原因:{ex.Message}");
                return mES_Parame;
            }
        }
@@ -365,12 +499,14 @@
                Storagelocation.OriginalLocationCode = OriginalLocationCode;
                Storagelocation.NewLocationCode = NewLocationCode;
                mES_Parame = HttpHelper.Post<MES_parameter>(MES_InventoryUpdateApply, Storagelocation, "储位异动申请");
                WriteLog.Write_Log("MES_储位异动申请", $"储位异动申请", "成功", $"托盘条码:{ContainerNo},原库位:{OriginalLocationCode},新库位:{NewLocationCode},上传的参数:{Storagelocation.ToJson()},回传的参数:{mES_Parame.ToJson()}");
                return mES_Parame;
            }
            catch (Exception ex)
            {
                mES_Parame.Result = "N";
                mES_Parame.ResultMsg = $"储位异动申请:WMS系统调取失败,原因:{ex.Message}";
                WriteLog.Write_Log("MES_储位异动申请", $"储位异动申请", "失败", $"托盘条码:{ContainerNo},原库位:{OriginalLocationCode},新库位:{NewLocationCode},上传失败,原因:{ex.Message}");
                return mES_Parame;
            }
        }
@@ -392,12 +528,14 @@
                Storagelocation.OriginalLocationCode = OriginalLocationCode;
                Storagelocation.NewLocationCode = NewLocationCode;
                mES_Parame = HttpHelper.Post<MES_parameter>(MES_InventoryUpdateCallback, Storagelocation, "储位异动");
                WriteLog.Write_Log("MES_储位异动上传", $"储位异动上传", "成功", $"托盘条码:{ContainerNo},原库位:{OriginalLocationCode},新库位:{NewLocationCode},上传的参数:{Storagelocation.ToJson()},回传的参数:{mES_Parame.ToJson()}");
                return mES_Parame;
            }
            catch (Exception ex)
            {
                mES_Parame.Result = "N";
                mES_Parame.ResultMsg = $"储位异动:WMS系统调取失败,原因:{ex.Message}";
                WriteLog.Write_Log("MES_储位异动上传", $"储位异动上传", "失败", $"托盘条码:{ContainerNo},原库位:{OriginalLocationCode},新库位:{NewLocationCode},上传失败,原因:{ex.Message}");
                return mES_Parame;
            }
        }
@@ -420,12 +558,14 @@
                Storagelocation.EquipmentNumber = EquipmentNumber;
                Storagelocation.ErrorInfo = ErrorInfo;
                mES_Parame = HttpHelper.Post<MES_parameter>(MES_TaskErrorInfoCallback, Storagelocation, "任务异常");
                WriteLog.Write_Log("MES_任务异常", $"任务异常", "成功", $"单据编号:{TransNo},设备类型:{EquipmentType},设备编码:{EquipmentNumber},异常报文{ErrorInfo},,上传的参数:{Storagelocation.ToJson()},回传的参数:{mES_Parame.ToJson()}");
                return mES_Parame;
            }
            catch (Exception ex)
            {
                mES_Parame.Result = "N";
                mES_Parame.ResultMsg = $"任务异常:WMS系统调取失败,原因:{ex.Message}";
                WriteLog.Write_Log("MES_任务异常", $"任务异常", "失败", $"单据编号:{TransNo},设备类型:{EquipmentType},设备编码:{EquipmentNumber},异常报文{ErrorInfo},上传失败,原因:{ex.Message}");
                return mES_Parame;
            }
        }