From 1ff9f4e6ba64ebad9ccf0367d6d23c75cc27dd27 Mon Sep 17 00:00:00 2001 From: 肖洋 <cathay_xy@163.com> Date: 星期日, 22 十二月 2024 18:47:16 +0800 Subject: [PATCH] 重构任务处理方法,改用异步方式处理新任务,优化事件通知逻辑 --- Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_BZ/CommonConveyorLine_BZJob.cs | 58 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 48 insertions(+), 10 deletions(-) diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_BZ/CommonConveyorLine_BZJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_BZ/CommonConveyorLine_BZJob.cs index 5a08e4b..b498b61 100644 --- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_BZ/CommonConveyorLine_BZJob.cs +++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_BZ/CommonConveyorLine_BZJob.cs @@ -193,9 +193,9 @@ public void RequestOutbound(CommonConveyorLine_BZ conveyorLine, ConveyorLineTaskCommand_After command, Dt_StationManager station) { //鏌ヨ瀵瑰簲浜х嚎鐨勫湪閫旀暟鎹� - dt_needBarcode needBarcode = _needBarcodeRepository.QueryFirst(x => x.productLine == station.stationRemark); + dt_needBarcode needBarcode = _needBarcodeRepository.QueryFirst(x => x.productLine == station.productLine); - //needBarcode.haveOutNum + needBarcode.inLineNum = _taskRepository.QueryData(x => x.TargetAddress == station.stationChildCode).Count(); //鑻ュ湪閫旀暟閲忓皬浜庣洰鏍囦綅缃殑缂撳瓨鏁伴噺 鍒欏鎵惧搴斿父娓╁簱瀛樹腑甯告俯3宸ュ簭鐨勫彲鍑哄簱鏁版嵁 骞跺缓绔嬪嚭搴撲换鍔� if (needBarcode.inLineNum <= needBarcode.cacheNum) @@ -221,18 +221,56 @@ dt_needBarcode needBarcode = _needBarcodeRepository.QueryFirst(x => x.toArea == station.stationChildCode); if (needBarcode == null) throw new Exception($"鏈厤缃浉鍏硔station.stationChildCode}鐨勪骇绾垮湪閫旀暟鎹�"); - if (task != null) + if (task != null) //濡備换鍔′笉涓虹┖ 鍒欎负閫佸寘瑁呮枡 鍐欏叆涓嬩竴鍦板潃 娓呴櫎瀵瑰簲浠诲姟 骞舵洿鏂板湪閫旀暟鎹� { conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTargetAddress, task.NextAddress, station.stationChildCode); _taskRepository.DeleteData(task); - } - else - { - conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTargetAddress, station.stationNGChildCode, station.stationChildCode); - } - needBarcode.inLineNum--; - _needBarcodeRepository.UpdateData(needBarcode); + if (needBarcode.inLineNum-- <= 0) needBarcode.inLineNum = 0; + _needBarcodeRepository.UpdateData(needBarcode); + } + else //濡傛棤浠诲姟 鍒欏垽瀹氫负浠嶯G鍙d笂鏂� 璋冨彇MOM鎺ュ彛 鍒ゆ柇杩斿洖鍙傛暟 鏃犲紓甯稿垯閫佸叆鍖呰锛屾湁寮傚父鍒欓��鍥濶G鍙� + { + 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 鏈厤缃�"); + } + TrayCellsStatusDto trayCells = new TrayCellsStatusDto() + { + Software = "WMS", + TrayBarcode = command.ConveyorLineBarcode, + EquipmentCode = station.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 result = HttpHelper.PostAsync(MOMIpAddress, trayCells.ToJsonString()).Result; + ResultTrayCellsStatus result1 = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(result); + + if (!result1.Success) + { + conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTargetAddress, station.stationNGChildCode, station.stationChildCode); + } + else + { + //鍐欏叆瀵瑰簲浜х嚎鐩爣鍦板潃 + if (station.productLine == "ZJ-7") + { + conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTargetAddress, "", station.stationChildCode); + } + else + { + conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTargetAddress, "", station.stationChildCode); + } + } + } } } } -- Gitblit v1.9.3