|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | catch (Exception ex) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Console.Out.WriteLine(nameof(CommonConveyorLine_AfterJob) + ":" + ex.ToString()); | 
|---|
|  |  |  | Console.Out.WriteLine(nameof(CommonConveyorLine_GWJob) + ":" + ex.ToString()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | finally | 
|---|
|  |  |  | { | 
|---|
|  |  |  | 
|---|
|  |  |  | Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode); | 
|---|
|  |  |  | if (task != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (command.ConveyorLineBarcode == task.PalletCode) | 
|---|
|  |  |  | if (command.ConveyorLineBarcode != task.PalletCode) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress); | 
|---|
|  |  |  | if (newTask != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | //conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTaskNum, newTask.TaskNum, childDeviceCode); | 
|---|
|  |  |  | //conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTargetAddress, newTask.NextAddress, childDeviceCode); | 
|---|
|  |  |  | //conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineBarcode, command.ConveyorLineBarcode, childDeviceCode); | 
|---|
|  |  |  | ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(newTask); | 
|---|
|  |  |  | //taskCommand.InteractiveSignal = command.InteractiveSignal; | 
|---|
|  |  |  | conveyorLine.SendCommand(taskCommand, childDeviceCode); | 
|---|
|  |  |  | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 2, childDeviceCode); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress); | 
|---|
|  |  |  | if (newTask != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTaskNum, newTask.TaskNum, childDeviceCode); | 
|---|
|  |  |  | //conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTargetAddress, newTask.NextAddress, childDeviceCode); | 
|---|
|  |  |  | //conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineBarcode, command.ConveyorLineBarcode, childDeviceCode); | 
|---|
|  |  |  | ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(newTask); | 
|---|
|  |  |  | //taskCommand.InteractiveSignal = command.InteractiveSignal; | 
|---|
|  |  |  | conveyorLine.SendCommand(taskCommand, childDeviceCode); | 
|---|
|  |  |  | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | /// <param name="ProtocalDetailValue">线体当前bool读取偏移地址</param> | 
|---|
|  |  |  | public void ConveyorLineInFinish(CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode); | 
|---|
|  |  |  | var task = _taskService.QueryExecutingTaskByBarcode(command.ConveyorLineBarcode, childDeviceCode); | 
|---|
|  |  |  | if (task != null && task.TaskState != (int)TaskInStatusEnum.Line_InFinish) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | //ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); | 
|---|
|  |  |  | 
|---|
|  |  |  | Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode); | 
|---|
|  |  |  | if (task != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | if (command.ConveyorLineBarcode == task.PalletCode) | 
|---|
|  |  |  | var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); | 
|---|
|  |  |  | var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.MOMIP_BASE)?.ConfigValue; | 
|---|
|  |  |  | var ipAddress = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.TrayCellsStatus)?.ConfigValue; | 
|---|
|  |  |  | if (wmsBase == null || ipAddress == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); | 
|---|
|  |  |  | var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.MOMIP_BASE)?.ConfigValue; | 
|---|
|  |  |  | var ipAddress = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.TrayCellsStatus)?.ConfigValue; | 
|---|
|  |  |  | if (wmsBase == null || ipAddress == null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | throw new InvalidOperationException("MOM IP 未配置"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationPLC == conveyorLine.DeviceCode && x.stationChildCode == childDeviceCode); | 
|---|
|  |  |  | TrayCellsStatusDto trayCells = new TrayCellsStatusDto() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Software = "WMS", | 
|---|
|  |  |  | TrayBarcode = task.PalletCode, | 
|---|
|  |  |  | EquipmentCode = stationManager.stationEquipMOM, | 
|---|
|  |  |  | SessionId = Guid.NewGuid().ToString(), | 
|---|
|  |  |  | EmployeeNo = "MITest", | 
|---|
|  |  |  | SceneType = "1", | 
|---|
|  |  |  | RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ") | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | throw new InvalidOperationException("MOM IP 未配置"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationPLC == conveyorLine.DeviceCode && x.stationChildCode == childDeviceCode); | 
|---|
|  |  |  | TrayCellsStatusDto trayCells = new TrayCellsStatusDto() | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Software = "WMS", | 
|---|
|  |  |  | TrayBarcode = command.ConveyorLineBarcode, | 
|---|
|  |  |  | EquipmentCode = stationManager.stationEquipMOM, | 
|---|
|  |  |  | SessionId = Guid.NewGuid().ToString(), | 
|---|
|  |  |  | EmployeeNo = "MITest", | 
|---|
|  |  |  | SceneType = "1", | 
|---|
|  |  |  | RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ") | 
|---|
|  |  |  | }; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var MOMIpAddress = wmsBase + ipAddress; | 
|---|
|  |  |  | var MOMIpAddress = wmsBase + ipAddress; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | var result = HttpHelper.PostAsync(MOMIpAddress, trayCells.ToJsonString()).Result; | 
|---|
|  |  |  | WriteInfo("入站校验", $"【{childDeviceCode}】入站校验请求参数【{trayCells.ToJsonString()}】"); | 
|---|
|  |  |  | WriteInfo("入站校验", ""); | 
|---|
|  |  |  | WriteInfo("入站校验", $"【{childDeviceCode}】入站校验返回参数【{result}】"); | 
|---|
|  |  |  | ResultTrayCellsStatus result1 = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(result); | 
|---|
|  |  |  | if (result1.Success || task.Remark != "NG") | 
|---|
|  |  |  | var result = HttpHelper.PostAsync(MOMIpAddress, trayCells.ToJsonString()).Result; | 
|---|
|  |  |  | WriteInfo("入站校验", $"【{childDeviceCode}】入站校验请求参数【{trayCells.ToJsonString()}】"); | 
|---|
|  |  |  | WriteInfo("入站校验", ""); | 
|---|
|  |  |  | WriteInfo("入站校验", $"【{childDeviceCode}】入站校验返回参数【{result}】"); | 
|---|
|  |  |  | ResultTrayCellsStatus result1 = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(result); | 
|---|
|  |  |  | if (result1.Success || task.Remark != "NG") | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress); | 
|---|
|  |  |  | if (newTask != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress); | 
|---|
|  |  |  | if (newTask != null) | 
|---|
|  |  |  | { | 
|---|
|  |  |  | ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(newTask); | 
|---|
|  |  |  | conveyorLine.SendCommand(taskCommand, childDeviceCode); | 
|---|
|  |  |  | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(task); | 
|---|
|  |  |  | taskCommand.ConveyorLineTargetAddress = Convert.ToInt16(stationManager.stationNGChildCode); | 
|---|
|  |  |  | ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(newTask); | 
|---|
|  |  |  | conveyorLine.SendCommand(taskCommand, childDeviceCode); | 
|---|
|  |  |  | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); | 
|---|
|  |  |  | _taskService.UpdateTaskStatusToNext(task); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | else | 
|---|
|  |  |  | { | 
|---|
|  |  |  | ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(task); | 
|---|
|  |  |  | taskCommand.ConveyorLineTargetAddress = Convert.ToInt16(stationManager.stationNGChildCode); | 
|---|
|  |  |  | conveyorLine.SendCommand(taskCommand, childDeviceCode); | 
|---|
|  |  |  | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); | 
|---|
|  |  |  | _taskService.UpdateTaskStatusToNext(task); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|