1
huangxiaoqiang
10 天以前 0939aa5f3cc12a8856456a51cf2b661b6cd780c7
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -165,6 +165,7 @@
                            RGVName = stationManager.RGVName != null ? stationManager.RGVName : RGVName,
                            Floor = stationManager.stationFloor,
                            TargetStation= stationManagerEnd.remark,
                            SourceStation= 0,
                        };
                        BaseDal.AddData(taskOut);
                    }
@@ -250,13 +251,13 @@
                            Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationType == 3 && x.stationFloor == task.Floor);
                            Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway &&x.stationChildCode==taskDTOs.BeginPoint && x.stationFloor == task.Floor);
                            Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationChildCode==taskDTOs.BeginPoint && x.stationFloor == task.Floor);
                            task.NextAddress = stationManager.stationChildCode;
                            task.SourceStation = stationManagerStart.remark;
                            task.TargetStation = stationManagerStart.stationRemark;
                            task.TargetStation = stationManager.stationRemark;
                            BaseDal.UpdateData(task);
                        }
@@ -268,11 +269,14 @@
                }
                else if (taskDTOs.TaskType == "3")
                {
                    string[] targetCodes = taskDTOs.BeginPoint.Split("-");
                    Dt_Task taskRelocation = new Dt_Task()
                    {
                        TaskType = (int)TaskRelocationTypeEnum.Relocation,
                        TaskState = (int)TaskRelocationStatusEnum.RelocationNew,
                        Roadway = GetScCode(Convert.ToInt32(targetCodes[0])),
                        SourceAddress = taskDTOs.BeginPoint,
@@ -311,17 +315,25 @@
            {
                return "SC01";
            }
            else if (number >= 5 && number <= 8)
            else if (number >= 5 && number <= 7)
            {
                return "SC02";
            }
            else if (number >= 9 && number <= 12)
            else if (number >= 8 && number <= 10)
            {
                return "SC03";
            }
            else if (number >= 13 && number <= 16)
            else if (number >= 11 && number <= 14)
            {
                return "SC04";
            }
            else if (number >= 15 && number <= 18)
            {
                return "SC05";
            }
            else if (number >= 19 && number <= 22)
            {
                return "SC06";
            }
            else
            {
@@ -466,9 +478,20 @@
        /// <param name="deviceNo">设备编号</param>
        /// <param name="currentAddress">当前地址</param>
        /// <returns></returns>
        public Dt_Task QueryRGVExecutingTask(string deviceNo,int TaskNum)
        public Dt_Task QueryRGVExecutingTask(string deviceNo)
        {
            return BaseDal.QueryFirst(x => TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish && x.TaskNum == TaskNum && x.RGVName == deviceNo);
            return BaseDal.QueryFirst(x => (x.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish|| x.TaskState == (int)TaskInStatusEnum.RGV_InAwaitWMS|| x.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish) && x.RGVName == deviceNo);
        }
        /// <summary>
        /// æ ¹æ®è®¾å¤‡ç¼–号、当前地址查询RGV未执行的任务
        /// </summary>
        /// <param name="deviceNo">设备编号</param>
        /// <param name="currentAddress">当前地址</param>
        /// <returns></returns>
        public Dt_Task QueryRGVExecutingTask(string deviceNo,int taskNum)
        {
            return BaseDal.QueryFirst(x => (x.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish || x.TaskState == (int)TaskInStatusEnum.RGV_InAwaitWMS) && x.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish && x.RGVName == deviceNo&&x.TaskNum==taskNum);
        }
        /// <summary>
@@ -664,9 +687,11 @@
                    if (task.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting)
                    {
                        Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationChildCode == task.NextAddress);
                        Dt_StationManager stationManagerend = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.TargetAddress);
                        task.CurrentAddress = task.NextAddress;
                        task.NextAddress = task.TargetAddress;
                        task.SourceStation = stationManager.stationRemark;
                        task.TargetStation = stationManagerend.remark;
                    }
                    if (task.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
@@ -739,6 +764,11 @@
                if (task.TaskState == (int)TaskInStatusEnum.RGV_Indispatch)
                {
                    task.TaskState = (int)TaskInStatusEnum.RGV_InAwaitWMS;
                    task.PalletCode = Barcode;
                    task.ModifyDate = DateTime.Now;
                    BaseDal.UpdateData(task);
                    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.RequestTask)?.ConfigValue;
@@ -756,13 +786,8 @@
                    var wmsIpAddress = wmsBase + requestTask;
                    var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result;
                    //if (result != null)
                    //{
                    task.TaskState = (int)TaskInStatusEnum.RGV_InAwaitWMS;
                        task.PalletCode = Barcode;
                        task.ModifyDate = DateTime.Now;
                        BaseDal.UpdateData(task);
                    //}
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"RGV调度完成等待WMS任务");
                }
@@ -897,6 +922,25 @@
                    BaseDal.DeleteData(task);
                    _taskHtyRepository.AddData(task_Hty);
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机入库完成");
                    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.CompleteTask)?.ConfigValue;
                    WMSTaskDTO taskDTO = new WMSTaskDTO()
                    {
                        TaskId = task.WMSTaskNum,
                        TPbarcode = task.PalletCode,
                        WhCode = "1001",
                        BeginPoint = task.SourceAddress,
                        EndPoint = task.TargetAddress,
                        Results = "1"
                    };
                    if (wmsBase == null || requestTask == null)
                    {
                        throw new InvalidOperationException("WMS IP æœªé…ç½®");
                    }
                    var wmsIpAddress = wmsBase + requestTask;
                    var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result;
                }
                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
                {
@@ -911,6 +955,25 @@
                    BaseDal.DeleteData(task);
                    _taskHtyRepository.AddData(task_Hty);
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"堆垛机移库完成");
                    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.CompleteTask)?.ConfigValue;
                    WMSTaskDTO taskDTO = new WMSTaskDTO()
                    {
                        TaskId = task.WMSTaskNum,
                        TPbarcode = task.PalletCode,
                        WhCode = "1001",
                        BeginPoint = task.SourceAddress,
                        EndPoint = task.TargetAddress,
                        Results = "1"
                    };
                    if (wmsBase == null || requestTask == null)
                    {
                        throw new InvalidOperationException("WMS IP æœªé…ç½®");
                    }
                    var wmsIpAddress = wmsBase + requestTask;
                    var result = WIDESEA_Comm.Http.HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result;
                }
                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OtherGroup)
                {