huangxiaoqiang
3 天以前 229dcce8c3cc990b9ae5fdb278de12c4235ff876
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -113,7 +113,7 @@
                        Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskDTOs.EndPoint);
                        if (stationManagerStart == null)
                        {
                            return content.Error("未找到出库站台信息");
                            throw new Exception("未找到出库站台信息");
                        }
                        task = new Dt_Task()
                        {
@@ -138,21 +138,12 @@
                    {
                        string[] targetCodes = taskDTOs.BeginPoint.Split("-");
                        if(GetScCode(Convert.ToInt32(targetCodes[0]))=="SC01"&&(taskDTOs.EndPoint=="1030"|| taskDTOs.EndPoint == "1029"))
                        {
                            return content.Error($"一号堆垛机不能出库至该点位{taskDTOs.EndPoint}");
                        }
                        if (GetScCode(Convert.ToInt32(targetCodes[0])) == "SC06" && (taskDTOs.EndPoint == "1002" || taskDTOs.EndPoint == "1004"))
                        {
                            return content.Error($"六号堆垛机不能出库至该点位{taskDTOs.EndPoint}");
                        }
                        if (taskDTOs.EndPoint == "3004")
                        {
                            var newTask = BaseDal.QueryFirst(x => x.SourceAddress == "3001" && x.TaskType == (int)TaskInboundTypeEnum.Inbound && x.TaskState != (int)TaskInStatusEnum.HoistNew && x.TaskState != (int)TaskInStatusEnum.HoistInExecuting && x.TaskState > 225);
                            var newTask = BaseDal.QueryFirst(x => x.SourceAddress == "3002" && x.TaskType == (int)TaskInboundTypeEnum.Inbound && x.TaskState != (int)TaskInStatusEnum.HoistNew && x.TaskState != (int)TaskInStatusEnum.HoistInExecuting && x.TaskState > 225);
                            if (newTask != null)
                            {
                                return content.Error("已存在入库任务,出库任务不可下发");
                                throw new Exception("已存在入库任务,出库任务不可下发");
                            }
                        }
@@ -160,7 +151,7 @@
                        Dt_StationManager stationManagerEnd = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskDTOs.EndPoint);
                        if (stationManagerEnd == null)
                        {
                            return content.Error("未找到出库站台信息");
                            throw new Exception("未找到出库站台信息");
                        }
                        Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == GetScCode(Convert.ToInt32(targetCodes[0])) && x.stationType == 2 && x.stationFloor == stationManagerEnd.stationFloor);
@@ -170,7 +161,7 @@
                        {
                            RGVName = stationManager.RGVName;
                        }
                        task = new Dt_Task()
                        Dt_Task NewTask = new Dt_Task()
                        {
                            TaskNum = BaseDal.GetTaskNo().Result,
                            Creater = "WMS",
@@ -186,10 +177,27 @@
                            TargetAddress = taskDTOs.EndPoint,
                            RGVName = stationManager.RGVName != null ? stationManager.RGVName : RGVName,
                            Floor = stationManager.stationFloor,
                            TargetStation= stationManagerEnd.remark,
                            SourceStation= 0,
                            TargetStation = stationManagerEnd.remark,
                            SourceStation = 0,
                        };
                        BaseDal.AddData(task);
                        if (GetScCode(Convert.ToInt32(targetCodes[0])) == "SC01" && (taskDTOs.EndPoint == "1030" || taskDTOs.EndPoint == "1029"))
                        {
                            Dt_StationManager stationTransfer = _stationManagerRepository.QueryFirst(x => x.stationChildCode== "1025");
                            NewTask.TargetStation = stationTransfer.stationRemark;
                            NewTask.Remark = "1025";
                        }
                        if(taskDTOs.EndPoint == "1004")
                        {
                            throw new Exception("该点位不是出库点位");
                        }
                        if (GetScCode(Convert.ToInt32(targetCodes[0])) == "SC06" && taskDTOs.EndPoint == "1002")
                        {
                            Dt_StationManager stationTransfer = _stationManagerRepository.QueryFirst(x => x.stationChildCode == "1026");
                            NewTask.TargetStation = stationTransfer.stationRemark;
                            NewTask.Remark = "1026";
                        }
                        task = NewTask;
                        BaseDal.AddData(NewTask);
                    }
                }
                // åˆ¤æ–­ä»»åŠ¡ç±»åž‹æ˜¯å¦ä¸ºå…¥åº“ä»»åŠ¡
@@ -227,7 +235,7 @@
                        Dt_StationManager stationManagerStart = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskDTOs.BeginPoint);
                        if (stationManagerStart == null)
                        {
                            return content.Error("未找到出库站台信息");
                            throw new Exception("未找到出库站台信息");
                        }
                        task = new Dt_Task()
                        {
@@ -252,17 +260,7 @@
                    {
                        task = BaseDal.QueryFirst(x => x.PalletCode == taskDTOs.TPbarcode);
                        string[] targetCodes = taskDTOs.EndPoint.Split("-");
                        if (GetScCode(Convert.ToInt32(targetCodes[0])) == "SC01" && (taskDTOs.BeginPoint == "1030" || taskDTOs.EndPoint == "1029"))
                        {
                            return content.Error($"该点位{taskDTOs.EndPoint}不能入库一号堆垛机");
                        }
                        if (GetScCode(Convert.ToInt32(targetCodes[0])) == "SC06" && (taskDTOs.BeginPoint == "1002" || taskDTOs.BeginPoint == "1004"))
                        {
                            return content.Error($"该点位{taskDTOs.EndPoint}不能入库六号堆垛机");
                        }
                        if (task != null)
                        {
                            task.Creater = "WMS";
@@ -291,11 +289,25 @@
                            task.TargetStation = stationManager.stationRemark;
                            if ((GetScCode(Convert.ToInt32(targetCodes[0])) == "SC01" && (taskDTOs.BeginPoint == "1030" || taskDTOs.EndPoint == "1029")) || (GetScCode(Convert.ToInt32(targetCodes[0])) == "SC01" && task.RGVName == "RGV02"))
                            {
                                Dt_StationManager stationTransfer = _stationManagerRepository.QueryFirst(x => x.stationChildCode == "1026");
                                task.TargetStation = stationTransfer.stationRemark;
                                task.Remark = "1026";
                            }
                            if ((GetScCode(Convert.ToInt32(targetCodes[0])) == "SC06" && (taskDTOs.BeginPoint == "1002" || taskDTOs.BeginPoint == "1004")) || (GetScCode(Convert.ToInt32(targetCodes[0])) == "SC06" && task.RGVName == "RGV01"))
                            {
                                Dt_StationManager stationTransfer = _stationManagerRepository.QueryFirst(x => x.stationChildCode == "1026");
                                task.TargetStation = stationTransfer.stationRemark;
                                task.Remark = "1025";
                            }
                            BaseDal.UpdateData(task);
                        }
                        else
                        {
                            return content.Error($"未找到该托盘【{taskDTOs.TPbarcode}】任务");
                            throw new Exception($"未找到该托盘【{taskDTOs.TPbarcode}】任务");
                        }
                    }
                }
@@ -329,7 +341,7 @@
                    Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.SourceAddress);
                    if (stationManager == null)
                    {
                        return content.Error("未找到起点站台");
                        throw new Exception("未找到起点站台");
                    }
                    
                    if (task != null)
@@ -430,11 +442,11 @@
            {
                return "SC04";
            }
            else if (number >= 15 && number <= 18)
            else if (number >= 15 && number <= 17)
            {
                return "SC05";
            }
            else if (number >= 19 && number <= 22)
            else if (number >= 18 && number <= 21)
            {
                return "SC06";
            }
@@ -583,7 +595,7 @@
        /// <returns></returns>
        public Dt_Task QueryRGVExecutingTask(string 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);
            return BaseDal.QueryFirst(x => (x.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish|| x.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish) && x.RGVName == deviceNo);
        }
        /// <summary>
@@ -594,7 +606,7 @@
        /// <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);
            return BaseDal.QueryFirst(x => (x.TaskState == (int)TaskInStatusEnum.RGV_IndispatchFinish) && x.TaskState == (int)TaskOutStatusEnum.RGV_OutdispatchFinish && x.RGVName == deviceNo&&x.TaskNum==taskNum);
        }
        /// <summary>
@@ -650,7 +662,7 @@
        public List<Dt_Task> QueryRGVTask()
        {
            return BaseDal.QueryData(x => ((TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew) || (TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.Line_OutFinish) && x.Floor == "1F"), TaskOrderBy);
            return BaseDal.QueryData(x => ((TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew) || (TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.Line_OutFinish)) && x.Floor == "1F", TaskOrderBy);
        }
        /// <summary>
@@ -917,19 +929,6 @@
                    task.TaskState = nextStatus;
                    if (task.TaskState == (int)TaskOutStatusEnum.RGV_OutFinish)
                    {
                        //task.ModifyDate = DateTime.Now;
                        //task.Modifier = "System";
                        //Dt_Task_Hty task_Hty = _mapper.Map<Dt_Task_Hty>(task);
                        //task_Hty.TaskId = 0;
                        //BaseDal.DeleteData(task);
                        //_taskHtyRepository.AddData(task_Hty);
                        RGVTaskCompleted(task.TaskNum);
                    }
                    if (task.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting)
                    {
                        Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == task.Roadway && x.stationChildCode == task.NextAddress);
@@ -1106,6 +1105,18 @@
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"RGV出库完成");
                }
                else if (task.TaskState == (int)TaskInStatusEnum.RGV_TransFer)
                {
                    task.TaskState = (int)TaskInStatusEnum.RGV_TransFerFInish;
                    BaseDal.UpdateData(task);
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"RGV入库中转");
                }
                else if (task.TaskState == (int)TaskOutStatusEnum.RGV_TransFer)
                {
                    task.TaskState = (int)TaskOutStatusEnum.RGV_TransFerFInish;
                    BaseDal.UpdateData(task);
                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"RGV出库中转");
                }
                else
                {
                    throw new Exception($"任务类型错误,未找到该任务类型,任务号:【{taskNum}】,任务类型:【{task.TaskType}】");