1
huanghongfeng
2 天以前 a34059e688e947a2ea079a0646872f1a21089940
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs
@@ -3,6 +3,7 @@
using MoYu.Localization;
using Newtonsoft.Json;
using System.Diagnostics.CodeAnalysis;
using System.Threading.Tasks;
using WIDESEAWCS_Common;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
@@ -28,6 +29,74 @@
                var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
                var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.TransferCheck)?.ConfigValue;
                if (wmsBase == null || requestTask == null)
                {
                    throw new InvalidOperationException("WMS IP æœªé…ç½®");
                }
                var wmsIpAddrss = wmsBase + requestTask;
                var result = HttpHelper.Post(wmsIpAddrss, new { taskNum = taskNum }.ToJsonString());
                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
                if (!content.Status)
                {
                    // wms失败
                    throw new Exception();
                }
                //todo ä¼˜åŒ– å¦‚未查询到任务则处理
                //if (content.Data != null)
                //{
                var task = JsonConvert.DeserializeObject<Dt_Task>(content.Data.ToString());
                Dt_Task? Relocationtask = null;
                //如查询移库任务时存在内侧出库任务则直接执行内侧出库任务
                var currentExistOutTask = BaseDal.QueryFirst(x => x.TaskNum == task.TaskNum && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup);
                if (currentExistOutTask != null )
                {
                    return currentExistOutTask;
                }
                if (task.TaskNum != taskNum)
                {
                    BaseDal.AddData(task);
                    Relocationtask = BaseDal.QueryFirst(x => x.TaskNum == task.TaskNum);
                }
                //}
                if (Relocationtask != null)
                {
                    return task;
                }
                else
                {
                    return null;
                }
            }
            catch (Exception ex)
            {
                throw new Exception($"请求异常:{ex.Message}");
            }
        }
        /// <summary>
        /// æ ¹æ®æ‰˜ç›˜å·ã€èµ·å§‹åœ°å€å‘WMS请求任务(入库版本)
        /// </summary>
        /// <param name="palletCode">托盘号</param>
        /// <param name="sourceAddress">起始地址</param>
        /// <returns></returns>
        public Dt_Task? InBeforeCheck(int taskNum)
        {
            WebResponseContent content = new WebResponseContent();
            try
            {
                var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
                var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
                var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.InTransferCheck)?.ConfigValue;
                if (wmsBase == null || requestTask == null)
                {
                    throw new InvalidOperationException("WMS IP æœªé…ç½®");
@@ -153,6 +222,34 @@
            }
        }
        /// <summary>
        /// è½¦è½®æµå‘分配查询历史请求
        /// </summary>
        /// <param name="czCode"></param>
        /// <param name="stationManager"></param>
        /// <returns></returns>
        public string RequestWheletHty(string czCode)
        {
            WebResponseContent content = new WebResponseContent();
            Dt_Task_Hty dt_Task_Hty = _taskHtyRepository.QueryFirst(x => x.task_CZInfo == czCode && x.CreateDate >= DateTime.Now.AddMinutes(-30));
            if (dt_Task_Hty == null) return null;
            if (dt_Task_Hty.Towhereabouts == "2032" || dt_Task_Hty.Towhereabouts == "2042")
            {
                return dt_Task_Hty.Towhereabouts;
            }else if(dt_Task_Hty.TargetAddress == "2032" || dt_Task_Hty.TargetAddress == "2042")
            {
                return dt_Task_Hty.TargetAddress;
            }
            else
            {
                return null;
            }
        }
        // æ£€æŸ¥å½“前托盘是否存在任务
        private async Task<bool> HasTask(string palletCode)
        {
@@ -209,11 +306,21 @@
                task.wheels_mttype = taskDTO.wheels_mttype;
                task.WheelsNewOrOld = taskDTO.WheelsNewOrOld;
                task.WheelsLX = taskDTO.WheelsLX;
                if(taskDTO.axle_czh !=null && taskDTO.axle_czh != "")
                {
                    task.axle_czh = taskDTO.axle_czh;
                }
                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                {
                    var stationinfo = _stationManagerRepository.QueryFirst(x => x.stationLocation == taskDTO.TargetAddress && x.Roadway == taskDTO.RoadWay);
                    task.TaskState = (int)TaskOutStatusEnum.OutNew;
                    if (task.SourceAddress == "2009")
                    {
                        task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish;
                    }
                    task.CurrentAddress = taskDTO.RoadWay;
                    task.NextAddress = stationinfo.stationChildCode;
                    task.SourceAddress = taskDTO.SourceAddress;