已添加1个文件
已修改5个文件
414 ■■■■ 文件已修改
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_StationInfo.cs 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs 112 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/ScheduledTaskJob.cs 199 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskJob.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_StationInfo.cs
@@ -24,6 +24,12 @@
        public string StationCode { get; set; }
        /// <summary>
        /// æ‰˜ç›˜ç¼–号
        /// </summary>
        [SugarColumn(IsNullable = true, Length = 30, ColumnDescription = "托盘编号")]
        public string PalletCode { get; set; }
        /// <summary>
        /// ç«™å°åç§°
        /// </summary>
        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "站台名称")]
@@ -39,6 +45,12 @@
        public int StationType {  get; set; }
        /// <summary>
        /// ç«™å°çŠ¶æ€
        /// </summary>
        [SugarColumn(IsNullable = false, ColumnDescription = "站台状态")]
        public int StationStatus {  get; set; }
        /// <summary>
        /// æ‰€åœ¨æ¥¼å±‚,AA是1楼,BB是2楼,CC是3楼,DD是4楼,EE是5楼,FF是6楼
        /// </summary>
        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "所在楼层")]
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskMethods.cs
@@ -21,6 +21,7 @@
using WIDESEAWCS_DTO.WMS;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
using WIDESEAWCS_QuartzJob.DTO;
namespace WIDESEAWCS_TaskInfoService
{
@@ -82,6 +83,30 @@
                            break;
                        case "outbin"://离开起点
                            {
                                ///判断任务是否跟设备有关
                                TaskFromCompleted(task, deviceTypeEnum);
                            }
                            break;
                        case "finish"://离开提升机
                            {
                                //入提升机
                                if (task.TaskType == TaskTypeEnum.RK3F.ObjToInt() && task.TaskState == (int)TaskStatusEnum.CheckPalletCodeFinish)
                                {
                                    var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice;
                                    if (device == null) task.ExceptionMessage = "未找到提升机信息";
                                    else
                                    {
                                        DeviceProDTO? deviceProDTO = device.DeviceProDTOs.FirstOrDefault((DeviceProDTO x) => x.DeviceProParamName == HoistEnum.Inboundboxon.ToString());
                                        if (device.IsConnected)
                                            device.SetValue(HoistEnum.Inboundboxon, 1);//入库完成
                                        else
                                            task.ExceptionMessage = "提升机信息设备连接失败";
                                    }
                                }
                                //出提升机
                                if (task.TaskType == TaskTypeEnum.CK3F.ObjToInt() && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute)
                                {
                                    var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice;
@@ -89,13 +114,38 @@
                                    else
                                    {
                                        if (device.IsConnected)
                                            device.SetValue(HoistEnum.Outboundboxon, 1);
                                            device.SetValue(HoistEnum.Outboundboxon, 1);//出库完成
                                        else
                                            task.ExceptionMessage = "提升机信息设备连接失败";
                                    }
                                }
                                ///判断任务是否跟设备有关
                                TaskFromCompleted(task, deviceTypeEnum);
                                //四楼 å…¥åº“
                                if (task.TaskType == TaskTypeEnum.CHUKU1.ObjToInt() && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute)
                                {
                                    var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice;
                                    if (device == null) task.ExceptionMessage = "未找到提升机信息";
                                    else
                                    {
                                        if (device.IsConnected)
                                            device.SetValue(HoistEnum.Emptyboxplacedinposition, 1);
                                        else
                                            task.ExceptionMessage = "提升机信息设备连接失败";
                                    }
                                }
                                //四楼 å‡ºåº“
                                if (task.TaskType == TaskTypeEnum.Q1TSJ4.ObjToInt() && task.TaskState == (int)TaskStatusEnum.AGV_ToExecute)
                                {
                                    var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice;
                                    if (device == null) task.ExceptionMessage = "未找到提升机信息";
                                    else
                                    {
                                        if (device.IsConnected)
                                            //写以一个出库完成信号
                                            device.SetValue(HoistEnum.Outboundboxretrievalcompleted, "1");
                                        else
                                            task.ExceptionMessage = "提升机信息设备连接失败";
                                    }
                                }
                            }
                            break;
                        case "into"://申请进入提升机
@@ -113,18 +163,7 @@
                        case "end"://任务完成通知
                            {
                                ///判断任务是否跟设备有关
                                if(task.TaskType== TaskTypeEnum.RK3F.ObjToInt()&& task.TaskState == (int)TaskStatusEnum.CheckPalletCodeFinish)
                                {
                                    var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice;
                                    if (device == null) task.ExceptionMessage = "未找到提升机信息";
                                    else
                                    {
                                        if (device.IsConnected)
                                            device.SetValue(HoistEnum.Inboundboxon,1);
                                        else
                                            task.ExceptionMessage = "提升机信息设备连接失败";
                                    }
                                }
                                TaskCompleted(task, deviceTypeEnum);
                            }
                            break;
@@ -378,6 +417,20 @@
                        dt_HKLocationInfo.LocationStatus = locationStatusEnum.ObjToInt();
                        _hKLocationInfoService.Repository.UpdateData(dt_HKLocationInfo);
                    }
                    Dt_StationInfo? stationInfo = _stationInfo.Repository.QueryFirst(x => x.StationCode == locationCode);
                    if (stationInfo != null)
                    {
                        if (locationStatusEnum == LocationStatusEnum.Free) //如果起点完成就给货位赋值托盘号
                        {
                            stationInfo.PalletCode = "";
                        }
                        else
                        {
                            stationInfo.PalletCode = palletCode;
                        }
                        stationInfo.StationStatus = locationStatusEnum.ObjToInt();
                        _stationInfo.UpdateData(stationInfo);
                    }
                }
                else if (deviceTypeEnum == DeviceTypeEnum.YuanLiJuHe)
                {
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -55,6 +55,7 @@
        private readonly IRepository<Dt_TaskExecuteDetail> _taskExecuteDetailRepository;
        private readonly IApiInfoService _apiInfoService;
        private readonly IStationMangerService _stationMangerService;
        private readonly IStationInfoService _stationInfo;
        private readonly IMapper _mapper;
        private Dictionary<string, OrderByType> _taskOrderBy = new()
@@ -74,7 +75,7 @@
        /// </summary>
        public IRepository<Dt_Task> Repository => BaseDal;
        public TaskService(IRepository<Dt_Task> BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, IRepository<Dt_TaskExecuteDetail> taskExecuteDetailRepository, IMapper mapper, IKLSLocationInfoService kLSLocationInfoService, IRGVLocationInfoService rGVLocationInfoService, IHKLocationInfoService hKLocationInfoService, IApiInfoService apiInfoService, ITrackloginfoService trackloginfoService, IStationMangerService stationMangerService) : base(BaseDal)
        public TaskService(IRepository<Dt_Task> BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, IRepository<Dt_TaskExecuteDetail> taskExecuteDetailRepository, IMapper mapper, IKLSLocationInfoService kLSLocationInfoService, IRGVLocationInfoService rGVLocationInfoService, IHKLocationInfoService hKLocationInfoService, IApiInfoService apiInfoService, ITrackloginfoService trackloginfoService, IStationMangerService stationMangerService, IStationInfoService stationInfo) : base(BaseDal)
        {
            _routerService = routerService;
            _taskExecuteDetailService = taskExecuteDetailService;
@@ -86,6 +87,7 @@
            _apiInfoService = apiInfoService;
            _trackloginfoService = trackloginfoService;
            _stationMangerService = stationMangerService;
            _stationInfo = stationInfo;
        }
        public WebResponseContent ReceiveWMSTask([NotNull] List<WMSTasksDTO> taskDTOs)
        {
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/TSJJob.cs
@@ -48,7 +48,7 @@
                //Example
                //device.GetValue  è¯»å–
                //device.SetValue  å†™å…¥
                // _taskService.Repository ä»“储层,进行数据库访问-
                // _taskService.Repository ä»“储层,进行数据库访问
                try
                {
                    List<Dt_Task> Uptasks = new List<Dt_Task>();
@@ -69,20 +69,48 @@
                            continue;
                            //throw new Exception("设备故障");
                        }
                        if (task.TaskType == TaskTypeEnum.RK3F.ObjToInt())
                        if (task.TaskType == TaskTypeEnum.RK3F.ObjToInt()|| task.TaskType == TaskTypeEnum.CHUKU1.ObjToInt())
                        {
                            //判断3楼入库箱号有无
                            if (device.GetValue<HoistEnum, string>(HoistEnum.OutboundInplace, "TSJ") == "1")
                            if (task.TaskType == TaskTypeEnum.RK3F.ObjToInt())
                            {
                                if (task.ExceptionMessage == "3楼入库箱号有货,请先处理")
                                //判断3楼入库箱号有无
                                if (device.GetValue<HoistEnum, short>(HoistEnum.OutboundInplace, task.SourceAddress) != 2)
                                {
                                    if (task.ExceptionMessage == "3楼入库箱号有货,请先处理")
                                    {
                                        continue;
                                    }
                                    task.ExceptionMessage = "3楼入库箱号有货,请先处理";
                                    Uptasks.Add(task);
                                    continue;
                                }
                                task.ExceptionMessage = "3楼入库箱号有货,请先处理";
                                Uptasks.Add(task);
                                continue;
                            }
                            else
                            {
                                //回空箱的时候要读一个吗
                                if (device.GetValue<HoistEnum, string>(HoistEnum.Emptycontainernumber, task.SourceAddress) == null)
                                {
                                    if (task.ExceptionMessage != "4楼空箱,读码器没有读到值")
                                    {
                                        task.ExceptionMessage = "4楼空箱,读码器没有读到值";
                                        Uptasks.Add(task);
                                    }
                                    continue;
                                }
                                //判断4楼空箱到位
                                if (device.GetValue<HoistEnum, short>(HoistEnum.ReturnbinAvailable, task.SourceAddress) == 2)
                                {
                                    if (task.ExceptionMessage != "TSJ4楼回料箱为空")
                                    {
                                        task.ExceptionMessage = "TSJ4楼回料箱为空";
                                        Uptasks.Add(task);
                                    }
                                    continue;
                                }
                            }
                            //然后调用输送线接口,通知输送线有料箱需要入库,任务举行执行
                            var result = _taskService.Hikvisiontaskscontinue(task.WMSTaskNum);
                            if (result.Status == false)
@@ -97,6 +125,7 @@
                            task.TaskState = (int)TaskStatusEnum.AGV_ToExecute;
                            task.ExceptionMessage = "";
                            Uptasks.Add(task);
                            //这里任务变成了CheckPalletCodeing
                        }
@@ -105,7 +134,7 @@
                            ////出库料箱缓存数量(这个是库区查询的时候要查一下,返给wms)
                            //if (device.GetValue<HoistEnum, short>(HoistEnum.Outboundmaterialbox, "TSJ") == 0) throw new Exception("没有出库料箱缓存数量为空");
                            //读取3楼出库料箱到位
                            if (device.GetValue<HoistEnum, short>(HoistEnum.SOutboundmaterialbox, "TSJ") != 1)
                            if (device.GetValue<HoistEnum, short>(HoistEnum.SOutboundmaterialbox, task.TargetAddress) != 1)
                            {
                                if (task.ExceptionMessage != "3楼出库料箱没有到位")
                                {
@@ -126,31 +155,34 @@
                                continue;
                            }
                            task.TaskState = (int)TaskStatusEnum.AGV_ToExecute;
                            task.ExceptionMessage = "";
                            Uptasks.Add(task);
                        }
                        else if (task.TaskType == TaskTypeEnum.Q1TSJ4.ObjToInt())//4楼入库
                        else if (task.TaskType == TaskTypeEnum.Q1TSJ4.ObjToInt())//和3楼出库中一样;
                        {
                            //回空箱的时候要读一个吗
                            if (device.GetValue<HoistEnum, short>(HoistEnum.Emptycontainernumber, "TSJ") == null) throw new Exception($"4楼空箱,读码器没有读到值");
                            //判断4楼空箱到位
                            if (device.GetValue<HoistEnum, short>(HoistEnum.ReturnbinAvailable, "TSJ") == 2) throw new Exception("4楼回料箱为空");
                            if (_taskService.Hikvisiontaskscontinue(task.WMSTaskNum).Status == false) throw new Exception($"3楼出库任务举行执行失败,错误信息{_taskService.Hikvisiontaskscontinue(task.WMSTaskNum).Message}");//给任务号
                            //写入空箱放到位信号
                            device.SetValue(HoistEnum.Emptyboxplacedinposition, "TSJ", "1");
                        }
                        else if (task.TaskType == TaskTypeEnum.CHUKU1.ObjToInt()) //四楼库内到提升机
                        {
                            #region 4楼出库
                            //4楼出库料箱到位
                            if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox,"TSJ") == 2) throw new Exception("4楼出库料箱没有到位");
                            //写以一个出库完成信号
                            device.SetValue(HoistEnum.Outboundboxretrievalcompleted, "TSJ", "1");
                            if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, task.TargetAddress) != 2)
                            {
                                if (task.ExceptionMessage != "4楼出库料箱没有到位")
                                {
                                    task.ExceptionMessage = "3楼入库箱号有货,请先处理";
                                    Uptasks.Add(task);
                                }
                                continue;
                            }
                            #endregion
                            task.TaskState = (int)TaskStatusEnum.AGV_ToExecute;
                            task.ExceptionMessage = "";
                            Uptasks.Add(task);
                        }
                        //else if (task.TaskType == TaskTypeEnum.CHUKU1.ObjToInt()) //四楼库内到提升机
                        //{
                        //}
                    }
                    //查找三楼入库任务状态为CheckPalletCodeing的任务托盘号确认中
                    var RK3FTasks = _taskService.Repository.QueryFirst(x => x.TaskType == TaskTypeEnum.RK3F.ObjToInt() && x.TaskState == (int)TaskStatusEnum.CheckPalletCodeing);
@@ -160,17 +192,17 @@
                        //检查3楼入库箱号是多少,然后传给wms
                        var BinNumber = device.GetValue<HoistEnum, string>(HoistEnum.Inboxnumber, "TSJ");
                        //根据读到的箱号进行料箱检验,检验通过就触发读码器读取,如果不通过就抛出异常
                        var Verification = _taskService.MaterialBoxInspection(RK3FTasks.WMSTaskNum, BinNumber.ToString());
                        if (!Verification.Status)
                        {
                            if (!(RK3FTasks.ExceptionMessage == Verification.Message))
                            {
                                RK3FTasks.ExceptionMessage = Verification.Message;
                                Uptasks.Add(RK3FTasks);
                            }
                            //料箱验证写好后,需要更改
                            RK3FTasks.TargetAddress = Verification.Data.ToString();
                        }
                        //var Verification = _taskService.MaterialBoxInspection(RK3FTasks.WMSTaskNum, BinNumber.ToString());
                        //if (!Verification.Status)
                        //{
                        //    if (!(RK3FTasks.ExceptionMessage == Verification.Message))
                        //    {
                        //        RK3FTasks.ExceptionMessage = Verification.Message;
                        //        Uptasks.Add(RK3FTasks);
                        //    }
                        //    //料箱验证写好后,需要更改
                        //    RK3FTasks.TargetAddress = Verification.Data.ToString();
                        //}
                        //如果料箱检验成功就写入读码器的值
                        var result = _taskService.Hikvisiontaskscontinue(RK3FTasks.WMSTaskNum, RK3FTasks.TargetAddress);
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/ScheduledTaskJob.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,199 @@
using Quartz;
using SqlSugar.Extensions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata;
using System.Text;
using System.Threading.Tasks;
using WIDESEAWCS_Common;
using WIDESEAWCS_Common.LocationEnum;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core.BaseRepository;
using WIDESEAWCS_DTO.WMS;
using WIDESEAWCS_IBasicInfoService;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
namespace WIDESEAWCS_Tasks
{
    public partial class ScheduledTaskJob : JobBase, IJob
    {
        private readonly ITaskService _taskService;
        private readonly IHKLocationInfoService _HKLocationInfoService;
        private readonly IStationInfoService _StationInfoService;
        private readonly IStationMangerService _stationMangerService;
        private readonly IUnitOfWorkManage _unitOfWorkManage;
        public ScheduledTaskJob(ITaskService taskService, IApiInfoService apiInfoService, IHKLocationInfoService hKLocationInfoService, IStationInfoService stationInfoService, IStationMangerService stationMangerService, IUnitOfWorkManage unitOfWorkManage)
        {
            _taskService = taskService;
            _HKLocationInfoService = hKLocationInfoService;
            _StationInfoService = stationInfoService;
            _stationMangerService = stationMangerService;
            _unitOfWorkManage = unitOfWorkManage;
        }
        public Task Execute(IJobExecutionContext context)
        {
            try
            {
                #region ä¸‰æ¥¼è‡ªåŠ¨ä»»åŠ¡
                List<string> StationCodes = new() { "0321935CC0329515", "0321935CC0329015", "0321935CC0328485", "0321935CC0328005" };
                var stations = _StationInfoService.Repository.QueryData(x => StationCodes.Contains(x.StationCode));
                #region å…¥æå‡æœºä»»åŠ¡
                var station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.InStock);
                if (station != null)
                {
                    var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
                    Dt_Task dt_Task = new Dt_Task()
                    {
                        TaskNum = tasknum,
                        WMSTaskNum = "GP" + tasknum,
                        Grade = 60,
                        PalletCode = station.PalletCode,
                        Roadway = "",
                        TaskState = (int)TaskStatusEnum.New,
                        TaskType = TaskTypeEnum.RK3F.ObjToInt(),
                        SourceAddress = station.StationCode,
                        CurrentAddress = station.StationCode,
                        NextAddress = "TSJR3F",
                        TargetAddress = "TSJR3F",
                        Creater = "WCS",
                    };
                    var content = _taskService.SendHIKROBOTTask(dt_Task);
                    if (content.Status)
                    {
                        dt_Task.TaskState = (int)TaskStatusEnum.Execut;
                        dt_Task.Dispatchertime = DateTime.Now;
                        station.StationStatus = (int)LocationStatusEnum.OutLock;
                        _taskService.AddData(dt_Task);
                        _StationInfoService.UpdateData(station);
                    }
                }
                #endregion
                #region å‡ºæå‡æœºä»»åŠ¡
                var device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice;
                if (device != null && device.IsConnected)
                {
                    if (device.GetValue<HoistEnum, short>(HoistEnum.SOutboundmaterialbox, "TSJC3F") == 1)
                    {
                        station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.Free);
                        if (station != null)
                        {
                            var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
                            Dt_Task dt_Task = new Dt_Task()
                            {
                                TaskNum = tasknum,
                                WMSTaskNum = "GP" + tasknum,
                                Grade = 60,
                                PalletCode = station.PalletCode,
                                Roadway = "",
                                TaskState = (int)TaskStatusEnum.New,
                                TaskType = TaskTypeEnum.CK3F.ObjToInt(),
                                SourceAddress = "TSJC3F",
                                CurrentAddress = "TSJC3F",
                                NextAddress = station.StationCode,
                                TargetAddress = station.StationCode,
                                Creater = "WCS",
                            };
                            var content = _taskService.SendHIKROBOTTask(dt_Task);
                            if (content.Status)
                            {
                                dt_Task.TaskState = (int)TaskStatusEnum.Execut;
                                dt_Task.Dispatchertime = DateTime.Now;
                                station.StationStatus = (int)LocationStatusEnum.InLock;
                                _taskService.AddData(dt_Task);
                                _StationInfoService.UpdateData(station);
                            }
                        }
                    }
                }
                #endregion
                #endregion
                #region å››æ¥¼è‡ªåŠ¨ä»»åŠ¡
                List<string> LocationCodes = new() { "RGD0304A04011", "RG0105A04031", "RG0202A05021" };
                var hKLocationInfos = _HKLocationInfoService.Repository.QueryData(x => LocationCodes.Contains(x.LocationCode));
                #region å…¥æå‡æœºä»»åŠ¡
                var hKLocation = hKLocationInfos.FirstOrDefault(x => x.LocationStatus == (int)LocationStatusEnum.InStock);
                if (hKLocation != null)
                {
                    var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
                    Dt_Task dt_Task = new Dt_Task()
                    {
                        TaskNum = tasknum,
                        WMSTaskNum = "GP" + tasknum,
                        Grade = 60,
                        PalletCode = hKLocation.PalletCode,
                        Roadway = "",
                        TaskState = (int)TaskStatusEnum.New,
                        TaskType = TaskTypeEnum.CHUKU1.ObjToInt(),
                        SourceAddress = hKLocation.LocationCode,
                        CurrentAddress = hKLocation.LocationCode,
                        NextAddress = "TSJR4F",
                        TargetAddress = "TSJR4F",
                        Creater = "WCS",
                    };
                    var content = _taskService.SendHIKROBOTTask(dt_Task);
                    if (content.Status)
                    {
                        dt_Task.TaskState = (int)TaskStatusEnum.Execut;
                        dt_Task.Dispatchertime = DateTime.Now;
                        hKLocation.LocationStatus = (int)LocationStatusEnum.OutLock;
                        _taskService.AddData(dt_Task);
                        _HKLocationInfoService.UpdateData(hKLocation);
                    }
                }
                #endregion
                #region å‡ºæå‡æœºä»»åŠ¡
                if (device != null && device.IsConnected)
                {
                    if (device.GetValue<HoistEnum, short>(HoistEnum.FOutboundmaterialbox, "TSJC3F") == 1)
                    {
                        hKLocation = hKLocationInfos.FirstOrDefault(x => x.LocationStatus == (int)LocationStatusEnum.Free);
                        if (hKLocation != null)
                        {
                            var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum));
                            Dt_Task dt_Task = new Dt_Task()
                            {
                                TaskNum = tasknum,
                                WMSTaskNum = "GP" + tasknum,
                                Grade = 60,
                                PalletCode = hKLocation.PalletCode,
                                Roadway = "",
                                TaskState = (int)TaskStatusEnum.New,
                                TaskType = TaskTypeEnum.Q1TSJ4.ObjToInt(),
                                SourceAddress = "TSJC4F",
                                CurrentAddress = "TSJC4F",
                                NextAddress = hKLocation.LocationCode,
                                TargetAddress = hKLocation.LocationCode,
                                Creater = "WCS",
                            };
                            var content = _taskService.SendHIKROBOTTask(dt_Task);
                            if (content.Status)
                            {
                                dt_Task.TaskState = (int)TaskStatusEnum.Execut;
                                dt_Task.Dispatchertime = DateTime.Now;
                                hKLocation.LocationStatus = (int)LocationStatusEnum.InLock;
                                _taskService.AddData(dt_Task);
                                _HKLocationInfoService.UpdateData(hKLocation);
                            }
                        }
                    }
                }
                #endregion
                #endregion
            }
            catch (Exception ex)
            {
                Console.Out.WriteLine(nameof(TaskJob) + ":" + ex.Message);
            }
            return Task.CompletedTask;
        }
    }
}
´úÂë¹ÜÀí/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Task/TaskJob.cs
@@ -49,9 +49,9 @@
        {
            try
            {
                SendNewTask();
                //SendNewTask();
                SendWaitToTask();
                //SendWaitToTask();
            }
            catch (Exception ex)
            {