dengjunjie
2024-10-24 0fb0f17319ecf71d66b96a6acfd07f754be9443e
ÏîÄ¿´úÂë/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -26,9 +26,9 @@
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.BaseServices;
using WIDESEAWCS_Core.Enums;
using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_ITaskInfoRepository;
using WIDESEAWCS_ITaskInfoService;
@@ -120,6 +120,8 @@
            }
            return content;
        }
        /// <summary>
        /// æ ¹æ®æ‰˜ç›˜å·ã€èµ·å§‹åœ°å€å‘WMS请求任务
@@ -213,9 +215,9 @@
        public Dt_Task QueryStackerCraneTask(string deviceNo, string currentAddress = "")
        {
            if (string.IsNullOrEmpty(currentAddress))
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy);
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.Car_OutFinish), TaskOrderBy);
            else
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.CurrentAddress == currentAddress && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy);
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.CurrentAddress == currentAddress && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.Car_OutFinish), TaskOrderBy);
        }
        /// <summary>
@@ -241,9 +243,9 @@
        public Dt_Task QueryStackerCraneOutTask(string deviceNo, string currentAddress = "")
        {
            if (string.IsNullOrEmpty(currentAddress))
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy);
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.Car_OutFinish, TaskOrderBy);
            else
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew && x.CurrentAddress == currentAddress, TaskOrderBy);
                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.Car_OutFinish && x.CurrentAddress == currentAddress, TaskOrderBy);
        }
        /// <summary>
@@ -593,5 +595,67 @@
            }
            return content;
        }
        public Dt_Task GetTaskInfo(int taskNum)
        {
            return BaseDal.QueryFirst(x => x.TaskNum == taskNum);
        }
        public Dt_Task GetTaskState(int TaskState, int TaskType)
        {
            Dt_Task task = null;
            if (TaskState > 0 && TaskType > 0)
                task = BaseDal.QueryFirst(x => x.TaskState == TaskState && x.TaskType == TaskType);
            else if (TaskState > 0)
                task = BaseDal.QueryFirst(x => x.TaskState == TaskState);
            else if (TaskType > 0)
                task = BaseDal.QueryFirst(x => x.TaskType == TaskType);
            return task;
        }
        /// <summary>
        /// æŸ¥è¯¢ç©¿æ¢­è½¦å‡ºå…¥åº“任务
        /// </summary>
        /// <param name="deviceNo"></param>
        /// <param name="currentAddress"></param>
        /// <returns></returns>
        public Dt_Task QueryShuttleCarTask(string deviceNo, string currentAddress = "")
        {
            if (string.IsNullOrEmpty(currentAddress))
                return BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy);
            else
                return BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && x.CurrentAddress == currentAddress && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy);
        }
        /// <summary>
        /// æ·»åŠ ç§»è½¦ä»»åŠ¡
        /// </summary>
        /// <param name="SourceAddress">起点</param>
        /// <param name="TargetAddress">终点</param>
        /// <param name="ShuttleCarCode">穿梭车号</param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public WebResponseContent AddRelocationCarTask(string SourceAddress, string TargetAddress, string ShuttleCarCode = "", string remark = "")
        {
            #region åˆ›å»ºå †åž›æœºç§»è½¦ä»»åŠ¡
            Dt_Task dt_Task = new Dt_Task()
            {
                TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
                Grade = 2,
                Roadway = "SC01",
                TaskType = (int)TaskOtherTypeEnum.RelocationCar,
                SourceAddress = SourceAddress,
                TargetAddress = TargetAddress,
                CurrentAddress = "",
                NextAddress = TargetAddress,
                CreateDate = DateTime.Now,
                Creater = "WCS",
                TaskState = (int)TaskCarStatusEnum.CarNew,
                ShuttleCarCode = ShuttleCarCode,
                WMSId = 0,
                Remark = remark
            };
            return AddData(dt_Task);
            #endregion
        }
    }
}