From 2d9272bdcdbdbca81396a61493e4ef6a822dcf4a Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com> Date: 星期四, 24 七月 2025 14:21:33 +0800 Subject: [PATCH] 代码提交 --- 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs | 192 +++++++---------------------------------------- 1 files changed, 29 insertions(+), 163 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs" index 8aacd38..149b7f2 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs" @@ -37,6 +37,7 @@ using WIDESEAWCS_QuartzJob; using WIDESEAWCS_QuartzJob.DeviceBase; using WIDESEAWCS_QuartzJob.DTO; +using WIDESEAWCS_QuartzJob.Repository; using WIDESEAWCS_QuartzJob.Service; using WIDESEAWCS_SignalR; using WIDESEAWCS_Tasks.ConveyorLineJob; @@ -48,8 +49,6 @@ public partial class CommonConveyorLineJob : JobBase, IJob { private readonly ITaskService _taskService; - private readonly IRGVTaskService _rgvtaskService; - private readonly IRGVTask_HtyService _rgvtask_HtyService; private readonly ITaskRepository _taskRepository; private readonly ITaskExecuteDetailService _taskExecuteDetailService; private readonly IRouterService _routerService; @@ -58,12 +57,12 @@ private readonly IDt_StationManagerRepository _stationManagerRepository; private readonly IMapper _mapper; private readonly ICacheService _cacheService; + private readonly IDeviceInfoRepository _deviceInfoRepository; private readonly INoticeService _noticeService; private static List<string>? userTokenIds; private static List<int>? userIds; - public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IDt_StationManagerService stationManagerService, IMapper mapper, ICacheService cacheService, INoticeService noticeService, ITaskRepository taskRepository, IRGVTaskService rgvtaskService, IRGVTask_HtyService rgvtask_HtyService, - IDt_StationManagerRepository stationManagerRepository) + public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IDt_StationManagerService stationManagerService, IMapper mapper, ICacheService cacheService, INoticeService noticeService, ITaskRepository taskRepository, IDt_StationManagerRepository stationManagerRepository, IDeviceInfoRepository deviceInfoRepository) { _taskService = taskService; _taskExecuteDetailService = taskExecuteDetailService; @@ -73,9 +72,8 @@ _cacheService = cacheService; _noticeService = noticeService; _taskRepository = taskRepository; - _rgvtaskService = rgvtaskService; - _rgvtask_HtyService = rgvtask_HtyService; _stationManagerRepository = stationManagerRepository; + _deviceInfoRepository = deviceInfoRepository; } public async Task Execute(IJobExecutionContext context) @@ -163,15 +161,9 @@ var log = $"銆恵conveyorLine._deviceName}銆戠珯鍙般�恵station.stationChildCode}銆戣姹傚彇璐�"; await LogAndWarn(conveyorLine.DeviceName, log); - var task = _taskService.QueryConveyorLineTask(station.stationChildCode); - //if (task != null) - //{ - // RequestInOrOutbound(command, conveyorLine, station, task); - //} - //else - //{ - await HandleNewTaskAsync(conveyorLine, command, station.stationChildCode, task); - //} + var task = _taskService.QueryConveyorLineTask(station.stationChildCode, command.TaskNum); + + await HandleNewTaskAsync(conveyorLine, command, station.stationChildCode, task); } catch (Exception ex) { @@ -186,18 +178,25 @@ /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> - public async Task ConveyorLineFinish(ConveyorLineTaskCommand command, CommonConveyorLine conveyorLine, Dt_StationManager station) + public async Task ConveyorLineFinish(ConveyorLineTaskCommand command, CommonConveyorLine conveyorLine, Dt_StationManager stationManager) { try { // 杈撳嚭淇℃伅锛岃〃绀虹珯鍙拌姹傚彇璐� - var log = $"銆恵conveyorLine._deviceName}銆戠珯鍙般�恵station.stationChildCode}銆�,浠诲姟鍙�:銆恵command.TaskNum}銆戝畬鎴�"; + var log = $"銆恵conveyorLine._deviceName}銆戠珯鍙般�恵stationManager.stationChildCode}銆�,浠诲姟鍙�:銆恵command.TaskNum}銆戝畬鎴�"; await LogAndWarn(conveyorLine.DeviceName, log); - var task = _taskService.QueryConveyorLineFinishTask(station.stationChildCode); + var task = _taskService.QueryConveyorLineFinishTask(stationManager.stationChildCode, command.TaskNum); //鏀规煡璇㈡柟娉� - - HandleFinishTaskAsync(conveyorLine, command, station.stationChildCode, task); + if(stationManager.stationType==5||stationManager.stationType==4) + { + // 濡傛灉浠诲姟瀛樺湪 + if (task != null) + { + Thread.Sleep(1000); + _taskService.UpdateTaskStatusToNext(task); + } + } } catch (Exception ex) @@ -212,88 +211,8 @@ /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> /// <param name="ProtocalDetailValue">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param> - public void RequestInOrOutbound(ConveyorLineTaskCommand command, CommonConveyorLine conveyorLine, Dt_StationManager station,Dt_Task task) + public void RequestNextAddress(ConveyorLineTaskCommand command, CommonConveyorLine conveyorLine, Dt_StationManager station, Dt_Task task) { - try - { - // 杈撳嚭鎴愬姛淇℃伅锛屽寘鎷緭閫佺嚎鍚嶇О銆佷换鍔″彿銆佹墭鐩樻潯鐮佸拰瀛愯澶囦唬鐮侊紝浠ュ強浠诲姟淇℃伅 - var logs = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵task.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵task.PalletCode}銆戝凡鍒拌揪銆恵station.stationChildCode}銆戣緭閫佺嚎,task{task.ToJsonString()}"; - ConsoleHelper.WriteSuccessLine(logs); - - _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" }); - WriteInfo(conveyorLine.DeviceName, logs); - - // 濡傛灉浠诲姟涓嶄负绌猴紝鍒欐墽琛屼互涓嬫搷浣� - if (task != null) - { - ConveyorLineTaskCommandWrite taskCommand = new ConveyorLineTaskCommandWrite() - { - TaskNum = Convert.ToInt16(task.TaskNum), - TargetAddress = Convert.ToInt16(task.NextAddress), - WriteInteractiveSignal = task.TaskType == (int)TaskOutboundTypeEnum.Outbound ? (byte)Convert.ToSByte(2) : (byte)Convert.ToSByte(1) - }; - - // 杈撳嚭鎴愬姛淇℃伅锛屽寘鎷緭閫佺嚎鍚嶇О銆佷换鍔″彿銆佹墭鐩樻潯鐮併�佸瓙璁惧浠g爜鍜屼笅涓�鐩爣鍦板潃 - var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵station.stationChildCode}銆戣緭閫佺嚎璇锋眰鍑哄簱,涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�"; - ConsoleHelper.WriteSuccessLine(log); - - _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); - WriteInfo(conveyorLine.DeviceName, log); - - var result = SendCommand(taskCommand, conveyorLine, station.stationChildCode); - if (result) - { - _taskService.UpdateTaskStatusToNext(task); - } - - } - } - catch (Exception ex) - { - } - } - - /// <summary> - /// 杈撻�佺嚎璇锋眰鍑哄簱涓嬩竴鍦板潃 - /// </summary> - /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> - /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> - /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> - public void ConveyorLineInOrOutFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager station, Dt_Task task) - { - // 鎵撳嵃鎴愬姛鏃ュ織锛屾樉绀哄綋鍓嶈澶囧悕绉般�佷换鍔″彿銆佹墭鐩樻潯鐮佷互鍙婅姹傚嚭搴撲笅涓�鍦板潃鐨勫瓙璁惧浠g爜 - var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵station.stationChildCode}銆戣緭閫佺嚎璇锋眰鍑哄簱瀹屾垚"; - ConsoleHelper.WriteSuccessLine(log); - - _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); - WriteInfo(conveyorLine.DeviceName, log); - - // 濡傛灉浠诲姟瀛樺湪 - if (task != null) - { - _taskService.UpdateTaskStatusToNext(task); - - } - } - - - - /// <summary> - /// 杈撻�佺嚎璇锋眰鍑哄簱涓嬩竴鍦板潃 - /// </summary> - /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> - /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> - /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> - public void RequestNextAddress(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager station, Dt_Task task) - { - // 鎵撳嵃鎴愬姛鏃ュ織锛屾樉绀哄綋鍓嶈澶囧悕绉般�佷换鍔″彿銆佹墭鐩樻潯鐮佷互鍙婅姹傚嚭搴撲笅涓�鍦板潃鐨勫瓙璁惧浠g爜 - var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵station.stationChildCode}銆戣緭閫佺嚎璇锋眰鍑哄簱涓嬩竴鍦板潃"; - ConsoleHelper.WriteSuccessLine(log); - - _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); - WriteInfo(conveyorLine.DeviceName, log); - - // 濡傛灉浠诲姟瀛樺湪 if (task != null) { ConveyorLineTaskCommandWrite taskCommand = new ConveyorLineTaskCommandWrite() @@ -303,53 +222,22 @@ WriteInteractiveSignal = task.TaskType == (int)TaskOutboundTypeEnum.Outbound ? (byte)Convert.ToSByte(2) : (byte)Convert.ToSByte(1) }; - // 鎵撳嵃鎴愬姛鏃ュ織锛屾樉绀哄綋鍓嶈澶囧悕绉般�佷换鍔″彿銆佹墭鐩樻潯鐮併�佸瓙璁惧浠g爜浠ュ強涓嬩竴鐩爣鍦板潃 - var logs = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵station.stationChildCode}銆戣緭閫佺嚎璇锋眰鍑哄簱涓嬩竴鍦板潃,涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�"; - ConsoleHelper.WriteSuccessLine(logs); + var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵task.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵task.PalletCode}銆戝凡鍒拌揪銆恵station.stationChildCode}銆戜笅涓�鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆戣緭閫佺嚎,task{task.ToJsonString()}"; - _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" }); - WriteInfo(conveyorLine.DeviceName, logs); + ConsoleHelper.WriteSuccessLine(log); + _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); + WriteInfo(conveyorLine.DeviceName, log); var result = SendCommand(taskCommand, conveyorLine, station.stationChildCode); if (result) { + Thread.Sleep(1000); _taskService.UpdateTaskStatusToNext(task); } } - } - - /// <summary> - /// 杈撻�佺嚎鍑哄簱瀹屾垚 - /// </summary> - /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param> - /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param> - /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> - public void ConveyorLineOutFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, Dt_StationManager station,Dt_Task task) - { - try - { - // 鎵撳嵃鎴愬姛淇℃伅锛岃〃绀烘墭鐩樺凡鍒拌揪鎸囧畾杈撻�佺嚎骞跺畬鎴愬嚭搴� - var logs = $"銆恵conveyorLine.DeviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵station.stationChildCode}銆戣緭閫佺嚎鍑哄簱瀹屾垚"; - ConsoleHelper.WriteSuccessLine(logs); - - _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" }); - WriteInfo(conveyorLine.DeviceName, logs); - ConveyorLineTaskCommandWrite taskCommand = new ConveyorLineTaskCommandWrite() - { - TaskNum = 100, - TargetAddress = Convert.ToInt16(station.stationNextChildCode), - WriteInteractiveSignal = (byte)Convert.ToSByte(3) - }; - var result = SendCommand(taskCommand, conveyorLine, station.stationChildCode); - - } - catch (Exception ex) - { - } - } /// <summary> /// 杈撻�佺嚎鎶ヨ /// </summary> @@ -362,7 +250,7 @@ var task = _taskRepository.QueryFirst(x => x.TaskNum == command.TaskNum); - conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal,Convert.ToSByte(3), station.stationChildCode); + //conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal,Convert.ToSByte(3), station.stationChildCode); } public async Task LogAndWarn(string deviceName, string log, string color = "red") @@ -374,35 +262,13 @@ public bool SendCommand(ConveyorLineTaskCommandWrite taskCommand, CommonConveyorLine conveyorLine, string childDeviceCode) { - conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, Convert.ToInt16(taskCommand.TargetAddress), childDeviceCode); + conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, Convert.ToInt16(taskCommand.TargetAddress), childDeviceCode); Thread.Sleep(100); - conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTaskNum, Convert.ToInt16(taskCommand.TaskNum), childDeviceCode); + conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTaskNum, Convert.ToInt16(taskCommand.TaskNum), childDeviceCode); Thread.Sleep(100); conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, Convert.ToSByte(taskCommand.WriteInteractiveSignal), childDeviceCode); - for (int i = 0; i < 6; i++) - { - ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(childDeviceCode); - if (command != null) - { - if (command.TaskNum == taskCommand.TaskNum && command.TargetAddress == taskCommand.TargetAddress) - { - WriteInfo(conveyorLine.DeviceName, $"鍐欏叆浠诲姟鎴愬姛鍐欏叆娆℃暟{i}鍐欏叆浠诲姟銆恵JsonConvert.SerializeObject(taskCommand)}銆�"); - return true; - } - if (command.TargetAddress != taskCommand.TargetAddress) - { - conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, Convert.ToInt16(taskCommand.TargetAddress), childDeviceCode); - Thread.Sleep(100); - } - if (command.TaskNum != taskCommand.TaskNum) - { - conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTaskNum, taskCommand.TaskNum, childDeviceCode); Thread.Sleep(100); - } - } - } - WriteInfo(conveyorLine.DeviceName, $"鍐欏叆浠诲姟澶辫触浠诲姟鍙枫�恵taskCommand.TaskNum}銆戞墭鐩樺彿銆恵taskCommand.Barcode}銆戠洰鏍囧湴鍧�銆恵taskCommand.TargetAddress}銆戝綋鍓嶈妭鐐广�恵childDeviceCode}銆�"); - return false; + return true; } } } -- Gitblit v1.9.3