From b24ef0d9a6a572529cf7e34a0fc8de4fa24bb9e7 Mon Sep 17 00:00:00 2001 From: 肖洋 <cathay_xy@163.com> Date: 星期二, 24 十二月 2024 12:59:53 +0800 Subject: [PATCH] 合并 --- /dev/null | 0 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs | 376 +++++++++++++++++++++++++--------------------- Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs | 27 +++ .gitignore | 2 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json | 4 Code Management/WMS/WIDESEA_WMSClient/src/api/http.js | 4 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 5 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/AutofacModuleRegister.cs | 4 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneDBName.cs | 10 + 9 files changed, 251 insertions(+), 181 deletions(-) diff --git a/.gitignore b/.gitignore index 2823dd4..ad9ce37 100644 --- a/.gitignore +++ b/.gitignore @@ -1587,3 +1587,5 @@ /Code Management/.vs/Code Management/CopilotIndices/17.12.31.40377/CodeChunks.db-wal /Code Management/.vs/Code Management/CopilotIndices/17.12.31.40377/SemanticSymbols.db-wal /Code Management/.vs/slnx.sqlite +/Code Management/.vs/Code Management/v17/.wsuo +/Code Management/.vs/Code Management/v17/workspaceFileList.bin diff --git a/Code Management/.vs/Code Management/v17/.wsuo b/Code Management/.vs/Code Management/v17/.wsuo deleted file mode 100644 index 77c39f3..0000000 --- a/Code Management/.vs/Code Management/v17/.wsuo +++ /dev/null Binary files differ diff --git a/Code Management/.vs/Code Management/v17/workspaceFileList.bin b/Code Management/.vs/Code Management/v17/workspaceFileList.bin deleted file mode 100644 index 66fb339..0000000 --- a/Code Management/.vs/Code Management/v17/workspaceFileList.bin +++ /dev/null Binary files differ diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/AutofacModuleRegister.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/AutofacModuleRegister.cs index e4e2058..19104a5 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/AutofacModuleRegister.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/AutofacModuleRegister.cs @@ -23,8 +23,8 @@ var basePath = AppContext.BaseDirectory; var cacheType = new List<Type>(); - builder.RegisterType<LogAOP>(); - cacheType.Add(typeof(LogAOP)); + //builder.RegisterType<LogAOP>(); + //cacheType.Add(typeof(LogAOP)); builder.RegisterGeneric(typeof(RepositoryBase<>)).As(typeof(IRepository<>)).InstancePerDependency();//娉ㄥ唽浠撳偍 builder.RegisterGeneric(typeof(ServiceBase<,>)).As(typeof(IService<>)).InstancePerDependency();//娉ㄥ唽鏈嶅姟 diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs index 582e1f6..e40fb0c 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs @@ -274,7 +274,7 @@ } /// <summary> - /// + /// 妫�娴嬬珯鍙版槸鍚︽湁璐� /// </summary> /// <param name="deviceChildCode"></param> /// <returns></returns> @@ -306,6 +306,31 @@ return false; } + /// <summary> + /// 妫�娴嬬珯鍙版槸鍚︽湁璐� + /// </summary> + /// <param name="deviceChildCode"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> + public bool IsOccupiedx(string deviceChildCode) + { + if (Communicator.IsConnected) + { + var device = _deviceProDTOs.Where(x => x.DeviceChildCode == deviceChildCode && x.DeviceProParamName == "InteractiveSignal").FirstOrDefault(); + + object readStatus = Communicator.ReadAsObj(device.DeviceProAddress, device.DeviceDataType); + + //todo 鍗忚鏄庣粏淇℃伅鏈幏鍙栧埌鏃舵姏鍑哄紓甯� + if (readStatus.ToString() != "2") + { + return true; + } + return false; + } + //todo 閫氳鏈繛鎺ユ椂鎶涘嚭寮傚父 + return false; + } + public void Dispose() { _heartStatr = false; diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json index 8b3e578..44f23f1 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json @@ -12,9 +12,9 @@ "MainDB": "DB_WIDESEA", //褰撳墠椤圭洰鐨勪富搴擄紝鎵�瀵瑰簲鐨勮繛鎺ュ瓧绗︿覆鐨凟nabled蹇呴』涓簍rue //杩炴帴瀛楃涓� //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=", - "ConnectionString": "Data Source=127.0.0.1;Initial Catalog=WIDESEA_WCS2F08;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=True", + //"ConnectionString": "Data Source=127.0.0.1;Initial Catalog=WIDESEA_WCS2F08;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=True", //"ConnectionString": "Data Source=192.168.20.251;Initial Catalog=WIDESEA_WCSDB;User ID=sa;Password=123456@gy;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", - //"ConnectionString": "Data Source=192.168.5.251;Initial Catalog=WIDESEAWCS_TEST;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", + "ConnectionString": "Data Source=192.168.5.251;Initial Catalog=WIDESEAWCS_TEST;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", //璺ㄥ煙 "Cors": { "PolicyName": "CorsIpAccess", //绛栫暐鍚嶇О diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs index 7e0cec8..a2d0d4f 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs @@ -157,23 +157,38 @@ private Task ProcessDeviceAsync(CommonConveyorLine conveyorLine, string childDeviceCode) { - // 璇诲彇浠诲姟鍛戒护鍜岃澶囧懡浠� - ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(childDeviceCode); - ConveyorLineTaskCommandWrite commandWrite = conveyorLine.ReadCustomer<ConveyorLineTaskCommandWrite>(childDeviceCode, "DeviceCommand"); - if (command != null && commandWrite != null) + try { - #region 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇 - - // 鑾峰彇缂撳瓨涓殑鐢ㄦ埛淇℃伅 - if (userTokenIds == null && userIds == null) + // 璇诲彇浠诲姟鍛戒护鍜岃澶囧懡浠� + ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(childDeviceCode); + ConveyorLineTaskCommandWrite commandWrite = conveyorLine.ReadCustomer<ConveyorLineTaskCommandWrite>(childDeviceCode, "DeviceCommand"); + if (command != null && commandWrite != null) { - var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken"); - if (tokenInfos != null && tokenInfos.Any()) - { - userTokenIds = tokenInfos.Select(x => x.Token_ID).ToList(); - userIds = tokenInfos.Select(x => x.UserId).ToList(); + #region 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇 + + // 鑾峰彇缂撳瓨涓殑鐢ㄦ埛淇℃伅 + if (userTokenIds == null && userIds == null) + { + var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken"); + if (tokenInfos != null && tokenInfos.Any()) + { + userTokenIds = tokenInfos.Select(x => x.Token_ID).ToList(); + userIds = tokenInfos.Select(x => x.UserId).ToList(); + + // 鏋勯�犻�氱煡鏁版嵁 + object obj = new + { + command, + commandWrite + }; + // 鍙戦�侀�氱煡 + _noticeService.LineData(userIds.FirstOrDefault(), userTokenIds, new { conveyorLine.DeviceName, childDeviceCode, data = obj }); + } + } + else + { // 鏋勯�犻�氱煡鏁版嵁 object obj = new { @@ -183,75 +198,68 @@ // 鍙戦�侀�氱煡 _noticeService.LineData(userIds.FirstOrDefault(), userTokenIds, new { conveyorLine.DeviceName, childDeviceCode, data = obj }); } - } - else - { - // 鏋勯�犻�氱煡鏁版嵁 - object obj = new + + #endregion 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇 + + // 灏嗕氦浜掍俊鍙疯浆鎹负甯冨皵鏁扮粍 + var writeInteractiveSignal = commandWrite.WriteInteractiveSignal; + var structs = BitConverter.GetBytes(writeInteractiveSignal).Reverse().ToArray().ToBoolArray(); + // 鑾峰彇璁惧鍗忚璇︽儏 + List<DeviceProtocolDetailDTO>? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.Where(x => x.DeviceProParamName == nameof(ConveyorLineTaskCommand.InteractiveSignal)).ToList(); + + if (deviceProtocolDetails != null) { - command, - commandWrite - }; - // 鍙戦�侀�氱煡 - _noticeService.LineData(userIds.FirstOrDefault(), userTokenIds, new { conveyorLine.DeviceName, childDeviceCode, data = obj }); - } - - #endregion 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇 - - // 灏嗕氦浜掍俊鍙疯浆鎹负甯冨皵鏁扮粍 - var writeInteractiveSignal = commandWrite.WriteInteractiveSignal; - var structs = BitConverter.GetBytes(writeInteractiveSignal).Reverse().ToArray().ToBoolArray(); - // 鑾峰彇璁惧鍗忚璇︽儏 - List<DeviceProtocolDetailDTO>? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.Where(x => x.DeviceProParamName == nameof(ConveyorLineTaskCommand.InteractiveSignal)).ToList(); - - if (deviceProtocolDetails != null) - { - foreach (var item in deviceProtocolDetails) - { - int itemValue = item.ProtocalDetailValue.ObjToInt(); - if (structs[itemValue] == true) + foreach (var item in deviceProtocolDetails) { - // 鑾峰彇澶勭悊鏂规硶 - MethodInfo? method = GetType().GetMethod(item.ProtocolDetailType); - if (method != null) + int itemValue = item.ProtocalDetailValue.ObjToInt(); + if (structs[itemValue] == true) { - command.InteractiveSignal = writeInteractiveSignal; - // 璋冪敤澶勭悊鏂规硶 - method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, itemValue }); + // 鑾峰彇澶勭悊鏂规硶 + MethodInfo? method = GetType().GetMethod(item.ProtocolDetailType); + if (method != null) + { + command.InteractiveSignal = writeInteractiveSignal; + // 璋冪敤澶勭悊鏂规硶 + method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, itemValue }); + } + } + else + { + // 鍙戦�佸畬鎴愪俊鍙� + ConveyorLineSendFinish(conveyorLine, childDeviceCode, itemValue, false); } } - else - { - // 鍙戦�佸畬鎴愪俊鍙� - ConveyorLineSendFinish(conveyorLine, childDeviceCode, itemValue, false); - } } - } - // 鏌ヨ骞冲彴淇℃伅 - Platform platform = _platFormRepository.QueryFirst(x => x.PLCCode == conveyorLine.DeviceCode && x.PlatCode == childDeviceCode && x.Status == "Active"); - if (platform != null && !string.IsNullOrEmpty(platform.Location)) - { - var strings = platform.Location.Split(',').ToList(); - foreach (var ite in strings) + // 鏌ヨ骞冲彴淇℃伅 + Platform platform = _platFormRepository.QueryFirst(x => x.PLCCode == conveyorLine.DeviceCode && x.PlatCode == childDeviceCode && x.Status == "Active"); + if (platform != null && !string.IsNullOrEmpty(platform.Location)) { - // 璇诲彇浠诲姟鍛戒护 - ConveyorLineTaskCommand command1 = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(ite); - if (command1.InteractiveSignal != 2) + var strings = platform.Location.Split(',').ToList(); + foreach (var ite in strings) { - command.InteractiveSignal = writeInteractiveSignal; - int count = strings.Count; - // 鑾峰彇澶勭悊鏂规硶 - MethodInfo? method = GetType().GetMethod(platform.ExecutionMethod); - if (method != null) + // 璇诲彇浠诲姟鍛戒护 + ConveyorLineTaskCommand command1 = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(ite); + if (command1.InteractiveSignal != 2) { - command.InteractiveSignal = commandWrite.WriteInteractiveSignal; - // 璋冪敤澶勭悊鏂规硶 - method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, count, platform }); - }; + command.InteractiveSignal = writeInteractiveSignal; + int count = strings.Count; + // 鑾峰彇澶勭悊鏂规硶 + MethodInfo? method = GetType().GetMethod(platform.ExecutionMethod); + if (method != null) + { + command.InteractiveSignal = commandWrite.WriteInteractiveSignal; + // 璋冪敤澶勭悊鏂规硶 + method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, count, platform }); + }; + } } } + } + } + catch (Exception ex) + { } return Task.CompletedTask; @@ -370,37 +378,45 @@ /// <param name="ProtocalDetailValue">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param> public void ConveyorLineInFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue) { - ConsoleHelper.WriteWarningLine($"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍏ュ簱瀹屾垚"); - var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode); - if (task != null && task.TaskState != (int)TaskInStatusEnum.Line_InFinish) + try { - if (command.Barcode == task.PalletCode && childDeviceCode == task.NextAddress) + + ConsoleHelper.WriteWarningLine($"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍏ュ簱瀹屾垚"); + var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode); + if (task != null && task.TaskState != (int)TaskInStatusEnum.Line_InFinish) { - //conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, "1000", childDeviceCode); - - ConsoleHelper.WriteWarningLine($"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍏ュ簱瀹屾垚,涓嬩竴鐩爣鍦板潃銆愮瓑寰呭垎閰嶈揣浣�,骞跺啓鍏�1000銆�"); - - ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); - - if (task.TaskType == (int)TaskInboundTypeEnum.InNG) + if (command.Barcode == task.PalletCode && childDeviceCode == task.NextAddress) { - int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>(); + //conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, "1000", childDeviceCode); - var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.SourceAddress); - task.CurrentAddress = station.stationLocation; - task.NextAddress = station.stationNGLocation; - task.TargetAddress = task.NextAddress; - task.TaskState = nextStatus; - task.ModifyDate = DateTime.Now; - task.Modifier = "System"; - _taskRepository.UpdateData(task); - } - else - { - WebResponseContent content = _taskService.UpdateTaskStatusToNext(task); - Console.Out.WriteLine(content.ToJsonString()); + ConsoleHelper.WriteWarningLine($"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍏ュ簱瀹屾垚,涓嬩竴鐩爣鍦板潃銆愮瓑寰呭垎閰嶈揣浣�,骞跺啓鍏�1000銆�"); + + ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); + + if (task.TaskType == (int)TaskInboundTypeEnum.InNG) + { + int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>(); + + var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.SourceAddress); + task.CurrentAddress = station.stationLocation; + task.NextAddress = station.stationNGLocation; + task.TargetAddress = task.NextAddress; + task.TaskState = nextStatus; + task.ModifyDate = DateTime.Now; + task.Modifier = "System"; + _taskRepository.UpdateData(task); + } + else + { + WebResponseContent content = _taskService.UpdateTaskStatusToNext(task); + Console.Out.WriteLine(content.ToJsonString()); + } } } + } + catch (Exception ex) + { + } } @@ -417,41 +433,49 @@ /// <param name="ProtocalDetailValue">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param> public void RequestOutbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue) { - // 鏌ヨ杈撻�佺嚎浠诲姟锛屾牴鎹緭閫佺嚎璁惧鍜屽瓙璁惧浠g爜鑾峰彇浠诲姟淇℃伅 - var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); - - // 杈撳嚭鎴愬姛淇℃伅锛屽寘鎷緭閫佺嚎鍚嶇О銆佷换鍔″彿銆佹墭鐩樻潯鐮佸拰瀛愯澶囦唬鐮侊紝浠ュ強浠诲姟淇℃伅 - ConsoleHelper.WriteSuccessLine($"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎璇锋眰鍑哄簱,task{task.ToJsonString()}"); - - // 濡傛灉浠诲姟涓嶄负绌猴紝鍒欐墽琛屼互涓嬫搷浣� - if (task != null) + try { - // 鑾峰彇浠诲姟鐨勪笅涓�鐩爣鍦板潃 - var next = task.NextAddress; - // 灏嗕换鍔″懡浠ゆ槧灏勫埌褰撳墠浠诲姟 - var taskCommand = MapTaskCommand(task, command); + // 鏌ヨ杈撻�佺嚎浠诲姟锛屾牴鎹緭閫佺嚎璁惧鍜屽瓙璁惧浠g爜鑾峰彇浠诲姟淇℃伅 + var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); - // 鎭㈠浠诲姟鐨勪笅涓�鐩爣鍦板潃 - task.NextAddress = next; + // 杈撳嚭鎴愬姛淇℃伅锛屽寘鎷緭閫佺嚎鍚嶇О銆佷换鍔″彿銆佹墭鐩樻潯鐮佸拰瀛愯澶囦唬鐮侊紝浠ュ強浠诲姟淇℃伅 + ConsoleHelper.WriteSuccessLine($"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎璇锋眰鍑哄簱,task{task.ToJsonString()}"); - // 杈撳嚭鎴愬姛淇℃伅锛屽寘鎷緭閫佺嚎鍚嶇О銆佷换鍔″彿銆佹墭鐩樻潯鐮併�佸瓙璁惧浠g爜鍜屼笅涓�鐩爣鍦板潃 - ConsoleHelper.WriteSuccessLine($"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎璇锋眰鍑哄簱,涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�"); - - // 鍚戣緭閫佺嚎鍙戦�佸懡浠� - conveyorLine.SendCommand(taskCommand, childDeviceCode); - - // 瀹屾垚杈撻�佺嚎鍙戦�佷换鍔★紝骞舵洿鏂颁换鍔$姸鎬� - ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); - - // 鏇存柊浠诲姟鐘舵�佸埌涓嬩竴涓姸鎬� - _taskService.UpdateTaskStatusToNext(task); - - // 濡傛灉浠诲姟鐨勭洰鏍囧湴鍧�鏄�"1020-1"锛屽垯鍐嶆鏇存柊浠诲姟鐘舵�佸埌涓嬩竴涓姸鎬� - if (task.TargetAddress == "1020-1") + // 濡傛灉浠诲姟涓嶄负绌猴紝鍒欐墽琛屼互涓嬫搷浣� + if (task != null) { + // 鑾峰彇浠诲姟鐨勪笅涓�鐩爣鍦板潃 + var next = task.NextAddress; + + // 灏嗕换鍔″懡浠ゆ槧灏勫埌褰撳墠浠诲姟 + var taskCommand = MapTaskCommand(task, command); + + // 鎭㈠浠诲姟鐨勪笅涓�鐩爣鍦板潃 + task.NextAddress = next; + + // 杈撳嚭鎴愬姛淇℃伅锛屽寘鎷緭閫佺嚎鍚嶇О銆佷换鍔″彿銆佹墭鐩樻潯鐮併�佸瓙璁惧浠g爜鍜屼笅涓�鐩爣鍦板潃 + ConsoleHelper.WriteSuccessLine($"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎璇锋眰鍑哄簱,涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�"); + + // 鍚戣緭閫佺嚎鍙戦�佸懡浠� + conveyorLine.SendCommand(taskCommand, childDeviceCode); + + // 瀹屾垚杈撻�佺嚎鍙戦�佷换鍔★紝骞舵洿鏂颁换鍔$姸鎬� + ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); + + // 鏇存柊浠诲姟鐘舵�佸埌涓嬩竴涓姸鎬� _taskService.UpdateTaskStatusToNext(task); + + // 濡傛灉浠诲姟鐨勭洰鏍囧湴鍧�鏄�"1020-1"锛屽垯鍐嶆鏇存柊浠诲姟鐘舵�佸埌涓嬩竴涓姸鎬� + if (task.TargetAddress == "1020-1") + { + _taskService.UpdateTaskStatusToNext(task); + } } + } + catch (Exception ex) + { + } } @@ -511,64 +535,72 @@ /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param> public void ConveyorLineOutFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue) { - // 鎵撳嵃鎴愬姛淇℃伅锛岃〃绀烘墭鐩樺凡鍒拌揪鎸囧畾杈撻�佺嚎骞跺畬鎴愬嚭搴� - ConsoleHelper.WriteSuccessLine($"銆恵conveyorLine.DeviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍑哄簱瀹屾垚"); - - // 鏌ヨ姝e湪鎵ц鐨勮緭閫佺嚎浠诲姟 - var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode); - - // 濡傛灉浠诲姟瀛樺湪 - if (task != null) + try { - // 濡傛灉浠诲姟涓殑鎵樼洏鏉$爜涓庡懡浠や腑鐨勬墭鐩樻潯鐮佷竴鑷� - if (command.Barcode == task.PalletCode) + + // 鎵撳嵃鎴愬姛淇℃伅锛岃〃绀烘墭鐩樺凡鍒拌揪鎸囧畾杈撻�佺嚎骞跺畬鎴愬嚭搴� + ConsoleHelper.WriteSuccessLine($"銆恵conveyorLine.DeviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍑哄簱瀹屾垚"); + + // 鏌ヨ姝e湪鎵ц鐨勮緭閫佺嚎浠诲姟 + var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode); + + // 濡傛灉浠诲姟瀛樺湪 + if (task != null) { - // 鍒涘缓涓�涓┖鐨刉ebResponseContent瀵硅薄 - WebResponseContent content = new WebResponseContent(); - - // 淇濆瓨浠诲姟鐨勪笅涓�鐩爣鍦板潃 - var next = task.NextAddress; - // 灏嗕换鍔℃槧灏勪负鍛戒护 - var taskCommand = MapTaskCommand(task, command); - // 鎭㈠浠诲姟鐨勪笅涓�鐩爣鍦板潃 - task.NextAddress = next; - - // 濡傛灉浠诲姟鐨勬墭鐩樻潯鐮佷笌鍛戒护涓殑鎵樼洏鏉$爜涓嶄竴鑷存垨鑰呬换鍔″娉ㄤ负"NG" - if (task.PalletCode != command.Barcode || task.Remark == "NG") + // 濡傛灉浠诲姟涓殑鎵樼洏鏉$爜涓庡懡浠や腑鐨勬墭鐩樻潯鐮佷竴鑷� + if (command.Barcode == task.PalletCode) { - // 鏌ヨ鐩爣鍦板潃鐨勫閲� - var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == task.TargetAddress).Capacity; - // 璁剧疆鍛戒护鐨勭洰鏍囧湴鍧�涓篘G鍦板潃 - taskCommand.TargetAddress = NGAddress; + // 鍒涘缓涓�涓┖鐨刉ebResponseContent瀵硅薄 + WebResponseContent content = new WebResponseContent(); + + // 淇濆瓨浠诲姟鐨勪笅涓�鐩爣鍦板潃 + var next = task.NextAddress; + // 灏嗕换鍔℃槧灏勪负鍛戒护 + var taskCommand = MapTaskCommand(task, command); + // 鎭㈠浠诲姟鐨勪笅涓�鐩爣鍦板潃 + task.NextAddress = next; + + // 濡傛灉浠诲姟鐨勬墭鐩樻潯鐮佷笌鍛戒护涓殑鎵樼洏鏉$爜涓嶄竴鑷存垨鑰呬换鍔″娉ㄤ负"NG" + if (task.PalletCode != command.Barcode || task.Remark == "NG") + { + // 鏌ヨ鐩爣鍦板潃鐨勫閲� + var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == task.TargetAddress).Capacity; + // 璁剧疆鍛戒护鐨勭洰鏍囧湴鍧�涓篘G鍦板潃 + taskCommand.TargetAddress = NGAddress; + } + else + { + // 璁剧疆鍛戒护鐨勭洰鏍囧湴鍧�涓�1000 + taskCommand.TargetAddress = 1000; + } + + // 鎵撳嵃鎴愬姛淇℃伅锛岃〃绀烘墭鐩樺凡鍒拌揪鎸囧畾杈撻�佺嚎骞跺畬鎴愬嚭搴擄紝涓嬩竴鐩爣鍦板潃宸茬‘瀹� + ConsoleHelper.WriteSuccessLine($"銆恵conveyorLine.DeviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍑哄簱瀹屾垚,涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�"); + // 鍙戦�佸懡浠ゅ埌杈撻�佺嚎 + conveyorLine.SendCommand(taskCommand, childDeviceCode); + // 瀹屾垚杈撻�佺嚎鍙戦�� + ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); + // 鏇存柊浠诲姟鐘舵�佸埌涓嬩竴涓姸鎬� + content = _taskService.UpdateTaskStatusToNext(task); } else { - // 璁剧疆鍛戒护鐨勭洰鏍囧湴鍧�涓�1000 - taskCommand.TargetAddress = 1000; + // 鏌ヨ鐩爣鍦板潃鐨勫閲� + var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == task.TargetAddress).Capacity; + // 鎵撳嵃鎴愬姛淇℃伅锛岃〃绀烘墭鐩樺凡鍒拌揪鎸囧畾杈撻�佺嚎骞跺畬鎴愬嚭搴擄紝涓嬩竴鐩爣鍦板潃宸茬‘瀹� + ConsoleHelper.WriteSuccessLine($"銆恵conveyorLine.DeviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍑哄簱瀹屾垚,涓嬩竴鐩爣鍦板潃銆恵NGAddress}銆�"); + // 璁剧疆杈撻�佺嚎鐨勭洰鏍囧湴鍧�涓篘G鍦板潃 + conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, NGAddress, childDeviceCode); + // 瀹屾垚杈撻�佺嚎鍙戦�� + ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); + // 鏇存柊浠诲姟鐘舵�佸埌涓嬩竴涓姸鎬� + _taskService.UpdateTaskStatusToNext(task); } + } + } + catch (Exception ex) + { - // 鎵撳嵃鎴愬姛淇℃伅锛岃〃绀烘墭鐩樺凡鍒拌揪鎸囧畾杈撻�佺嚎骞跺畬鎴愬嚭搴擄紝涓嬩竴鐩爣鍦板潃宸茬‘瀹� - ConsoleHelper.WriteSuccessLine($"銆恵conveyorLine.DeviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍑哄簱瀹屾垚,涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�"); - // 鍙戦�佸懡浠ゅ埌杈撻�佺嚎 - conveyorLine.SendCommand(taskCommand, childDeviceCode); - // 瀹屾垚杈撻�佺嚎鍙戦�� - ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); - // 鏇存柊浠诲姟鐘舵�佸埌涓嬩竴涓姸鎬� - content = _taskService.UpdateTaskStatusToNext(task); - } - else - { - // 鏌ヨ鐩爣鍦板潃鐨勫閲� - var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == task.TargetAddress).Capacity; - // 鎵撳嵃鎴愬姛淇℃伅锛岃〃绀烘墭鐩樺凡鍒拌揪鎸囧畾杈撻�佺嚎骞跺畬鎴愬嚭搴擄紝涓嬩竴鐩爣鍦板潃宸茬‘瀹� - ConsoleHelper.WriteSuccessLine($"銆恵conveyorLine.DeviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍑哄簱瀹屾垚,涓嬩竴鐩爣鍦板潃銆恵NGAddress}銆�"); - // 璁剧疆杈撻�佺嚎鐨勭洰鏍囧湴鍧�涓篘G鍦板潃 - conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, NGAddress, childDeviceCode); - // 瀹屾垚杈撻�佺嚎鍙戦�� - ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); - // 鏇存柊浠诲姟鐘舵�佸埌涓嬩竴涓姸鎬� - _taskService.UpdateTaskStatusToNext(task); - } } } diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs index 03378a7..232f01e 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs @@ -81,6 +81,7 @@ bool sendFlag = commonStackerCrane.SendCommand(stackerCraneTaskCommand); if (sendFlag) { + commonStackerCrane.SetValue(StackerCraneDBName.StartCommand, 1); commonStackerCrane.LastTaskType = task.TaskType; _taskService.UpdateTaskStatusToNext(task.TaskNum); } @@ -294,7 +295,7 @@ if (device != null) { CommonConveyorLine conveyorLine = (CommonConveyorLine)device; - //if (conveyorLine.IsOccupied(router.ChildPosi))//鍑哄簱绔欏彴鏈鍗犵敤 + if (conveyorLine.IsOccupiedx(router.ChildPosi))//鍑哄簱绔欏彴鏈鍗犵敤 { return task; } @@ -357,7 +358,7 @@ stackerCraneTaskCommand.TaskNum = task.TaskNum; stackerCraneTaskCommand.WorkType = 1; stackerCraneTaskCommand.TrayType = 0; - stackerCraneTaskCommand.StartCommand = 1; + //stackerCraneTaskCommand.StartCommand = 1; if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//鍒ゆ柇鏄惁鏄叆搴撲换鍔� { if (task.SourceAddress == "1359-4" && task.Roadway.Contains("JZ")) diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneDBName.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneDBName.cs index f8811bf..399951a 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneDBName.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneDBName.cs @@ -70,5 +70,15 @@ /// 鎵樼洏鍙� /// </summary> Barcode, + + /// <summary> + /// 鍚姩鍛戒护 + /// </summary> + StartCommand, + + /// <summary> + /// 娑堥槻鍛戒护 + /// </summary> + FireCommand, } } \ No newline at end of file diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/api/http.js b/Code Management/WMS/WIDESEA_WMSClient/src/api/http.js index aa57a03..8b43a2a 100644 --- a/Code Management/WMS/WIDESEA_WMSClient/src/api/http.js +++ b/Code Management/WMS/WIDESEA_WMSClient/src/api/http.js @@ -11,8 +11,8 @@ let loadingInstance let loadingStatus = false if (process.env.NODE_ENV == 'development') { - // axios.defaults.baseURL = 'http://localhost:5000/'; - axios.defaults.baseURL = 'http://192.168.5.251:5000/'; + axios.defaults.baseURL = 'http://localhost:5000/'; + // axios.defaults.baseURL = 'http://192.168.5.251:5000/'; } else if (process.env.NODE_ENV == 'debug') { axios.defaults.baseURL = 'http://127.0.0.1:9991/'; -- Gitblit v1.9.3