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 { [DisallowConcurrentExecution] 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 StationCodes = new() { "0348840CC0315690", "0349350CC0315686" }; // var stations = _StationInfoService.Repository.QueryData(x => StationCodes.Contains(x.StationCode)); // #region 入提升机任务 // var station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.InStock && x.IsOccupied == 0); // 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.SOutboundmaterialbox, "TSJC3F") == 1) // { // Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC3F" /*&& x.TaskState < TaskStatusEnum.TakeFinish.ObjToInt()*/); // if (dt_Task == null) // { // station = stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.Free && x.IsOccupied == 0); // if (station != null) // { // var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); // dt_Task = new Dt_Task() // { // TaskNum = tasknum, // WMSTaskNum = "GP" + tasknum, // Grade = 60, // PalletCode = "LXM" + tasknum, // 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 4F // List stationCodes = new() { "0319882DD0313240", "0319882DD0313750"}; // var Stations = _StationInfoService.Repository.QueryData(x => stationCodes.Contains(x.StationCode)); // #region 入提升机任务 // var Station = Stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.InStock && x.IsOccupied == 0); // 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.F04.ObjToInt(), // SourceAddress = Station.StationCode, // CurrentAddress = Station.StationCode, // 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; // Station.StationStatus = (int)LocationStatusEnum.OutLock; // _taskService.AddData(dt_Task); // _StationInfoService.UpdateData(Station); // } // } // #endregion // #region 出提升机任务 // device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "TSJ") as OtherDevice; // if (device != null && device.IsConnected) // { // var reslur = device.GetValue(HoistEnum.FOutboundmaterialbox, "TSJC4F"); // if (device.GetValue(HoistEnum.FOutboundmaterialbox, "TSJC4F") == 1) // { // Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC4F" /*&& x.TaskState < TaskStatusEnum.TakeFinish.ObjToInt()*/); // if (dt_Task == null) // { // Station = Stations.FirstOrDefault(x => x.StationStatus == (int)LocationStatusEnum.Free && x.IsOccupied == 0); // if (Station != null) // { // var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); // dt_Task = new Dt_Task() // { // TaskNum = tasknum, // WMSTaskNum = "GP" + tasknum, // Grade = 60, // PalletCode = "LXM" + tasknum, // Roadway = "", // TaskState = (int)TaskStatusEnum.New, // TaskType = TaskTypeEnum.F03.ObjToInt(), // SourceAddress = "TSJC4F", // CurrentAddress = "TSJC4F", // 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 LocationCodes = new() { "RGD0303A04041", "RG0302A05041", "RG0304A05041", "RG0205A05031" }; // List LocationCodes = new() { "RGD0302A05041", "RGD0304A05041", "R3CG0106A04031", "RGD0307A05012" }; // 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.FOutboundmaterialbox, "TSJC4F") == 1) // // { // // Dt_Task dt_Task = _taskService.Repository.QueryFirst(x => x.SourceAddress == "TSJC4F"); // // if (dt_Task == null) // // { // // hKLocation = hKLocationInfos.FirstOrDefault(x => x.LocationStatus == (int)LocationStatusEnum.Free); // // if (hKLocation != null) // // { // // var tasknum = _taskService.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)); // // dt_Task = new Dt_Task() // // { // // TaskNum = tasknum, // // WMSTaskNum = "GP" + tasknum, // // Grade = 60, // // PalletCode = "LXM" + tasknum, // // 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; } } }