| | |
| | | using Microsoft.VisualBasic; |
| | | using MoYu.Logging; |
| | | using Newtonsoft.Json; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; |
| | | using SqlSugar; |
| | | using System.Text.RegularExpressions; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Common; |
| | |
| | | using WIDESEAWCS_DTO.WMS; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | | using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database; |
| | | |
| | |
| | | { |
| | | // 使用正则表达式匹配类似 -数字 的模式,并替换为空字符串 |
| | | task.NextAddress = Regex.Replace(task.NextAddress, @"-(\d+)", ""); |
| | | if (Convert.ToInt32(task.NextAddress) > 1999) |
| | | { |
| | | task.NextAddress = (Convert.ToInt32(task.NextAddress) - 1000).ToString(); |
| | | } |
| | | //if (Convert.ToInt32(task.NextAddress) > 2999) |
| | | //{ |
| | | // task.NextAddress = (Convert.ToInt32(task.NextAddress) - 1000).ToString(); |
| | | //} |
| | | var comm = _mapper.Map<ConveyorLineTaskCommand>(task); |
| | | comm.InteractiveSignal = command.InteractiveSignal; |
| | | return comm; |
| | |
| | | LogAndSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, logMessage, conveyorLineTaskCommand.TargetAddress.ToString()); |
| | | return; |
| | | } |
| | | |
| | | var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsbase = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue; |
| | | var address = configz.Where(x => x.ConfigKey == SysConfigKeyConst.QueryLocationFreeJZ).FirstOrDefault()?.ConfigValue; |
| | | if (wmsbase == null || address == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP 未配置"); |
| | | } |
| | | var wmsIpAddrss = wmsbase + address; |
| | | var x = await HttpHelper.PostAsync(wmsIpAddrss, new { RoadwayNo = "JZSC" }.ToJsonString()); |
| | | var LocationFree = JsonConvert.DeserializeObject<WebResponseContent>(x); |
| | | if (!LocationFree.Status) |
| | | { |
| | | ConsoleHelper.WriteErrorLine(LocationFree.Message); |
| | | return; |
| | | } |
| | | if (resultTrayCellsStatus.SerialNos.Count == 0) |
| | | { |
| | | var Traycontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode); |
| | |
| | | } |
| | | else |
| | | { |
| | | var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsbase = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue; |
| | | var address = configz.Where(x => x.ConfigKey == SysConfigKeyConst.QueryStockInfoForRealTrayJZAsync).FirstOrDefault()?.ConfigValue; |
| | | if (wmsbase == null || address == null) |
| | | var QueryStockInfoForRealTrayJZ = configz.Where(x => x.ConfigKey == SysConfigKeyConst.QueryStockInfoForRealTrayJZAsync).FirstOrDefault()?.ConfigValue; |
| | | if (wmsbase == null || QueryStockInfoForRealTrayJZ == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP 未配置"); |
| | | } |
| | | var wmsIpAddrss = wmsbase + address; |
| | | wmsIpAddrss = wmsbase + QueryStockInfoForRealTrayJZ; |
| | | var result = await HttpHelper.PostAsync(wmsIpAddrss, new { ProductLine = resultTrayCellsStatus.ProductionLine, PalletCode = command.Barcode }.ToJsonString()); |
| | | var StockInfocontent = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | if (StockInfocontent.Status) |
| | |
| | | else if (task.Roadway.Contains("JZ")) |
| | | { |
| | | // 查询是否存在静置出库任务 |
| | | var outJZTask = _taskRepository.QueryData(x => x.Roadway == task.Roadway && task.TaskType == (int)TaskOutboundTypeEnum.Outbound && |
| | | (x.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting || |
| | | x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish || x.TaskState == (int)TaskOutStatusEnum.OutNew)); |
| | | var outJZTask = _taskRepository.QueryData(x => x.Roadway == task.Roadway && x.TaskType == (int)TaskOutboundTypeEnum.Outbound && (x.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting || x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish || x.TaskState == (int)TaskOutStatusEnum.OutNew)); |
| | | |
| | | if (!outJZTask.Any()) |
| | | if (!outJZTask.Any() || outJZTask.Count() == 0) |
| | | { |
| | | // 映射任务命令 |
| | | var taskCommand = MapTaskCommand(task, command); |
| | |
| | | |
| | | // 更新任务状态 |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | |
| | | WriteInfo(conveyorLine.DeviceName, $"静置存在出库任务{outJZTask.Count()}"); |
| | | } |
| | | else |
| | | { |