Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs
@@ -11,17 +11,17 @@ /// <summary> /// WMSä»»å¡ä¸»é® /// </summary> public int Id { get; set; } public int Id { get; set; } /// <summary> /// ä»»å¡å· /// </summary> public int TaskNum { get; set; } public int TaskNum { get; set; } /// <summary> /// æçå· /// </summary> public string PalletCode { get; set; } public string PalletCode { get; set; } /// <summary> /// å··éå· @@ -31,7 +31,7 @@ /// <summary> /// ä»»å¡ç±»å /// </summary> public int TaskType { get; set; } public int TaskType { get; set; } /// <summary> /// ä»»å¡ç¶æ @@ -41,16 +41,21 @@ /// <summary> /// èµ·ç¹ /// </summary> public string SourceAddress { get; set; } public string SourceAddress { get; set; } /// <summary> /// ç»ç¹ /// </summary> public string TargetAddress { get; set; } public string TargetAddress { get; set; } /// <summary> /// ä¼å 级 /// </summary> public int Grade { get; set; } public int Grade { get; set; } /// <summary> /// å¤ æ³¨: æç产线 ///</summary> public string? ProductionLine { get; set; } } } } Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs
@@ -148,5 +148,13 @@ [ExporterHeader(DisplayName = "夿³¨")] [SugarColumn(IsNullable = true, Length = 255, ColumnDescription = "夿³¨")] public string Remark { get; set; } /// <summary> /// æç产线 /// </summary> [ImporterHeader(Name = "æç产线")] [ExporterHeader(DisplayName = "æç产线")] [SugarColumn(IsNullable = true, Length = 20, ColumnDescription = "æç产线")] public string ProductionLine { get; set; } } } Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_After/CommonConveyorLine_AfterJob.cs
@@ -282,7 +282,7 @@ } var wmsIpAddrss = wmsBase + requestTask; var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = "", EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode }.ToJsonString()); var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = "", EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode, ProductionLine = stationManager.productLine }.ToJsonString()); WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result); if (!content.Status) { Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/WMS/WMSTaskDTO.cs
@@ -1,4 +1,5 @@ using System; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -52,5 +53,10 @@ /// ä¼å 级 /// </summary> public int Grade { get; set; } /// <summary> /// å¤ æ³¨: æç产线 ///</summary> public string? ProductionLine { get; set; } } } Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_Task.cs
@@ -122,6 +122,13 @@ public string? ErrorMessage { get; set; } /// <summary> /// å¤ æ³¨: æç产线 /// é»è®¤å¼: ///</summary> [SugarColumn(ColumnName = "ProductionLine", Length = 20, IsNullable = true)] public string? ProductionLine { get; set; } /// <summary> /// 任塿§è¡æç» /// </summary> [SugarColumn(ColumnName = "任塿§è¡æç»")] Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo.cs
@@ -79,6 +79,7 @@ /// </summary> [ImporterHeader(Name = "ç产产线")] [ExporterHeader(DisplayName = "ç产产线")] [SugarColumn(IsNullable = true, ColumnDescription = "ç产产线")] public string ProductionLine { get; set; } /// <summary> Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -478,6 +478,7 @@ IsFull = false, AreaCode = area.AreaCode ?? "", LocationId = loation.Id, ProductionLine = task.ProductionLine, StockInfoDetails = new List<DtStockInfoDetail>() { new DtStockInfoDetail() @@ -760,7 +761,7 @@ { NGStation = efg.Select(x => x.stationNGChildCode).ToList(); } content = await CreateNewTask(input, NGStation, 2); content = await CreateNewTask(input, result.ProductionLine, NGStation, 2); return content.Error("åå¨å¼å¸¸çµè¯"); } @@ -797,7 +798,7 @@ { // TODO éè³å è£ List<string> strings = stationManagers.Where(x => x.stationType == 0).Select(x => x.Roadway).ToList(); content = await CreateNewTask(input, strings, 3); content = await CreateNewTask(input, result.ProductionLine, strings, 3); return content; } else @@ -805,7 +806,7 @@ var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker"); var strings = config.ConfigValue.Split(',').ToList(); // TODO å ¥åº content = await CreateNewTask(input, strings); content = await CreateNewTask(input, result.ProductionLine, strings); if (content.Status) await _boxingInfoRepository.AddDataNavAsync(boxing); } @@ -894,7 +895,7 @@ List<string> strings = stationManagers.Roadway.Split(',').ToList(); Console.WriteLine(strings.ToJsonString() + "b-----------------------"); //// è°ç¨CreateNewTaskæ¹æ³ï¼å建æ°ä»»å¡ content = await CreateNewTask(input, strings); content = await CreateNewTask(input, result.ProductionLine, strings); if (content.Status) { var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing); @@ -950,6 +951,7 @@ Creater = "System", // ä¿®æ£æ¼åé误 CreateDate = DateTime.Now, TaskId = 0, ProductionLine = stock.ProductionLine, }; var taskDTO = CreateTaskDTO(taskNew); @@ -1073,20 +1075,46 @@ if (task != null && task.TaskState == (int)TaskInStatusEnum.InNew) { // å建WMSä»»å¡ WMSTaskDTO taskDTO = new WMSTaskDTO() { TaskNum = task.TaskNum.Value, Grade = 1, PalletCode = task.PalletCode, RoadWay = task.Roadway, SourceAddress = task.SourceAddress, TargetAddress = task.Roadway, TaskState = task.TaskState.Value, Id = 0, TaskType = task.TaskType, }; WMSTaskDTO taskDTO = CreateTaskDTO(task); //WMSTaskDTO taskDTO = new WMSTaskDTO() //{ // TaskNum = task.TaskNum.Value, // Grade = 1, // PalletCode = task.PalletCode, // RoadWay = task.Roadway, // SourceAddress = task.SourceAddress, // TargetAddress = task.Roadway, // TaskState = task.TaskState.Value, // Id = 0, // TaskType = task.TaskType, //}; return content.OK(data: task); } // æ ¹æ®ä½ç½®æ¥è¯¢åºåä¿¡æ¯ var areaCode = Regex.Replace(input.Position, @"-(\d+)", ""); var area = await QueryAreaInfoByPosition(areaCode); if (area == null) { return content.Error("该ç¹ä½ä¸å¨åºåå表ä¸åå¨"); } // è·åæ´ççµè¯å±æ§ç¶æ TrayCellsStatusDto trayCells = CreateTrayCellsStatusDto(area, input.PalletCode); content = await GetTrayCellStatusAsync(trayCells); if (!content.Status) { ConsoleHelper.WriteErrorLine($"è·åçµè¯ç¶æå¤±è´¥:{content.Message}"); return content; } var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString()); if (result.ProductionLine.IsNullOrEmpty()) { ConsoleHelper.WriteErrorLine($"å½åæçæ 产线,èç³»MOMæ·»å 产线"); return content.Error("å½åæçæ 产线,èç³»MOMæ·»å 产线"); } var stationManagers = _stationManagerRepository.QueryData(x => x.stationType == 6 && x.stationChildCode == input.Position).FirstOrDefault(); if (stationManagers == null) @@ -1096,9 +1124,8 @@ throw new Exception("æªæ¾å°ç©ºæçå ¥åºç«å°åå ¥åºç«å°é ç½®"); } List<string> strings = stationManagers.Roadway.Split(',').ToList(); //Console.WriteLine(strings.ToJsonString() + "b-----------------------"); return await CreateNewTask(input, strings, 1); return await CreateNewTask(input, result.ProductionLine, strings, 1); } catch (Exception) { @@ -1173,6 +1200,9 @@ { return content.Error("åºåä¿¡æ¯ä¸åå¨"); } //ConsoleHelper.WriteColorLine(JsonConvert.SerializeObject(stockInfo), ConsoleColor.DarkMagenta); // æ°å¢éå¤ä»»å¡æ ¡éª var hasTask = BaseDal.QueryFirst(x => x.PalletCode == stockInfo.PalletCode); @@ -1293,6 +1323,7 @@ var result = await _stockInfoRepository.Db.Queryable<DtStockInfo>() .Includes(x => x.LocationInfo) // é¢å è½½LocationInfo .Includes(x => x.StockInfoDetails) // é¢å è½½StockInfoDetails .Where(x => x.ProductionLine == station.productLine) .Where(x => x.AreaCode == areaCode && x.IsFull == false) .Where(x => x.StockInfoDetails.Any(y => y.MaterielCode == "空æç")) .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // è¿æ»¤æ¡ä»¶ @@ -1328,6 +1359,7 @@ Creater = "System", // ä¿®æ£æ¼åé误 CreateDate = DateTime.Now, TaskId = 0, ProductionLine = stockInfo.ProductionLine, }; } @@ -1347,6 +1379,7 @@ TaskState = task.TaskState.Value, Id = 0, TaskType = task.TaskType, ProductionLine = task.ProductionLine, }; } @@ -1695,7 +1728,8 @@ TaskState = (int)TaskInStatusEnum.Line_InFinish, TaskType = (int)TaskInboundTypeEnum.Inbound, TaskNum = await BaseDal.GetTaskNo(), Creater = "Systeam" Creater = "Systeam", ProductionLine = result.ProductionLine }; // å建WMSä»»å¡ @@ -1731,7 +1765,8 @@ TaskState = (int)TaskInStatusEnum.Line_InFinish, TaskType = (int)TaskInboundTypeEnum.InTray, TaskNum = await BaseDal.GetTaskNo(), Creater = "Systeam" Creater = "Systeam", ProductionLine = result.ProductionLine }; // å建WMSä»»å¡ WMSTaskDTO taskDTO = CreateWMSTaskDTO(task); @@ -1779,6 +1814,7 @@ TaskState = taskOld.TaskState.Value, Id = 0, TaskType = taskOld.TaskType, ProductionLine = taskOld.ProductionLine }; } else if (source is Dt_Task task) @@ -1794,6 +1830,7 @@ TaskState = task.TaskState.Value, Id = 0, TaskType = task.TaskType, ProductionLine = task.ProductionLine }; } else @@ -2060,16 +2097,19 @@ } } var stocks = _stockInfoRepository.QueryData(x => x.AreaCode == stock.AreaCode && x.ProductionLine == stock.ProductionLine && x.SpecialParameterDuration != stock.SpecialParameterDuration); if (stocks != null && stocks.Count > 0) if (stock.IsFull) { foreach (var item in stocks) var stocks = _stockInfoRepository.QueryData(x => x.AreaCode == stock.AreaCode && x.ProductionLine == stock.ProductionLine && x.SpecialParameterDuration != stock.SpecialParameterDuration); if (stocks != null && stocks.Count > 0) { item.SpecialParameterDuration = stock.SpecialParameterDuration; item.ParameterInfos = stock.ParameterInfos; item.OutboundTime = Convert.ToDateTime(item.LinedProcessFeedbackTime == null ? item.CreateDate : item.LinedProcessFeedbackTime).AddHours(Convert.ToDouble(stock.SpecialParameterDuration)); foreach (var item in stocks) { item.SpecialParameterDuration = stock.SpecialParameterDuration; item.ParameterInfos = stock.ParameterInfos; item.OutboundTime = Convert.ToDateTime(item.LinedProcessFeedbackTime == null ? item.CreateDate : item.LinedProcessFeedbackTime).AddHours(Convert.ToDouble(stock.SpecialParameterDuration)); } var isUpdates = await _stockInfoRepository.UpdateDataAsync(stocks); } var isUpdates = await _stockInfoRepository.UpdateDataAsync(stocks); } // æ·»å åå²ä»»å¡ @@ -2105,85 +2145,97 @@ #region ä»»å¡è¯·æ±æ¹æ³ private static readonly SemaphoreSlim _semaphoreUpdate = new SemaphoreSlim(1, 1); // æ´æ°ä»»å¡è´§ä½ private async Task<WebResponseContent> UpdateExistingTask(RequestTaskDto input, Dt_Task task) { if (task == null) { return new WebResponseContent().Error("ä»»å¡å¯¹è±¡ä¸ºç©º"); } await _semaphoreUpdate.WaitAsync(); try { // å建WebResponseContent对象 var content = new WebResponseContent(); // è·åç®æ å°ååæ´æ°ä»»å¡ç¶æ input.Position = Regex.Replace(input.Position, @"-(\d+)", ""); if (Convert.ToInt32(input.Position) > 1999) if (task == null) { input.Position = (Convert.ToInt32(input.Position) - 1000).ToString(); return new WebResponseContent().Error("ä»»å¡å¯¹è±¡ä¸ºç©º"); } if (task.TaskType == (int)TaskInboundTypeEnum.InNG) try { // TODO æ ¹æ®å··éæ¥æ¾å¯¹åºNGå£ï¼ç°å¨é»è®¤å»éç½®å åæºçå¼å¸¸å£è´§ä½å· task.CurrentAddress = input.Position; task.TargetAddress = "002-021-000"; task.NextAddress = "002-021-000"; task.TaskState = (int)TaskInStatusEnum.Line_InFinish; bool isResult = await BaseDal.UpdateDataAsync(task); return content.OK(data: task); } else if (task.TaskType == (int)TaskInboundTypeEnum.InQuality) { var stockInfo = await _stockInfoRepository.QueryFirstNavAsync(x => x.PalletCode == input.PalletCode); task.CurrentAddress = input.Position; task.TargetAddress = stockInfo.LocationInfo.LocationCode; task.NextAddress = stockInfo.LocationInfo.LocationCode; task.TaskState = (int)TaskInStatusEnum.Line_InFinish; bool isResult = await BaseDal.UpdateDataAsync(task); return content.OK(data: task); } else { var location = await GetLocationDistributeAsync(task.Roadway); if (location == null) // å建WebResponseContent对象 var content = new WebResponseContent(); // è·åç®æ å°ååæ´æ°ä»»å¡ç¶æ input.Position = Regex.Replace(input.Position, @"-(\d+)", ""); if (Convert.ToInt32(input.Position) > 1999) { return content.Error("æ æ³è·åè´§ä½ä¿¡æ¯"); input.Position = (Convert.ToInt32(input.Position) - 1000).ToString(); } string toAddress = location.LocationCode; int taskState = (int)TaskInStatusEnum.Line_InFinish; int beforeStatus = location.LocationStatus; // æ´æ°è´§ä½ä¿¡æ¯ location.LocationStatus = (int)LocationEnum.Lock; // æ´æ°ä»»å¡ä¿¡æ¯ MapTaskProperties(task, input, toAddress, taskState); // å¼å§äºå¡ var isResult = await UpdateTaskAsync(task, location, beforeStatus); if (!isResult) if (task.TaskType == (int)TaskInboundTypeEnum.InNG) { _unitOfWorkManage.RollbackTran(); return content.Error("æ´æ°ä»»å¡å¤±è´¥"); // TODO æ ¹æ®å··éæ¥æ¾å¯¹åºNGå£ï¼ç°å¨é»è®¤å»éç½®å åæºçå¼å¸¸å£è´§ä½å· task.CurrentAddress = input.Position; task.TargetAddress = "002-021-000"; task.NextAddress = "002-021-000"; task.TaskState = (int)TaskInStatusEnum.Line_InFinish; bool isResult = await BaseDal.UpdateDataAsync(task); return content.OK(data: task); } else if (task.TaskType == (int)TaskInboundTypeEnum.InQuality) { var stockInfo = await _stockInfoRepository.QueryFirstNavAsync(x => x.PalletCode == input.PalletCode); task.CurrentAddress = input.Position; task.TargetAddress = stockInfo.LocationInfo.LocationCode; task.NextAddress = stockInfo.LocationInfo.LocationCode; task.TaskState = (int)TaskInStatusEnum.Line_InFinish; bool isResult = await BaseDal.UpdateDataAsync(task); return content.OK(data: task); } else { var location = await GetLocationDistributeAsync(task.Roadway); if (location == null) { return content.Error("æ æ³è·åè´§ä½ä¿¡æ¯"); } // æäº¤äºå¡ _unitOfWorkManage.CommitTran(); return content.OK(data: task); string toAddress = location.LocationCode; int taskState = (int)TaskInStatusEnum.Line_InFinish; int beforeStatus = location.LocationStatus; // æ´æ°è´§ä½ä¿¡æ¯ location.LocationStatus = (int)LocationEnum.Lock; // æ´æ°ä»»å¡ä¿¡æ¯ MapTaskProperties(task, input, toAddress, taskState); // å¼å§äºå¡ var isResult = await UpdateTaskAsync(task, location, beforeStatus); if (!isResult) { _unitOfWorkManage.RollbackTran(); return content.Error("æ´æ°ä»»å¡å¤±è´¥"); } // æäº¤äºå¡ _unitOfWorkManage.CommitTran(); return content.OK(data: task); } } catch (Exception ex) { // åæ»äºå¡ _unitOfWorkManage.RollbackTran(); // è¿éå¯ä»¥æ·»å æ¥å¿è®°å½ return new WebResponseContent().Error($"æ´æ°ä»»å¡æ¶åçé误: {ex.Message}"); } } catch (Exception ex) catch (Exception) { // åæ»äºå¡ _unitOfWorkManage.RollbackTran(); // è¿éå¯ä»¥æ·»å æ¥å¿è®°å½ return new WebResponseContent().Error($"æ´æ°ä»»å¡æ¶åçé误: {ex.Message}"); throw; } finally { _semaphoreUpdate.Release(); } } private void MapTaskProperties(Dt_Task task, RequestTaskDto input, string toAddress, int taskState) @@ -2223,7 +2275,7 @@ /// <param name="process">å··é</param> /// <param name="flag">æ è¯ï¼0-å ¥åºï¼1-空æçå ¥åºï¼2-NGå ¥åºï¼3-åºåºï¼</param> /// <returns></returns> private async Task<WebResponseContent> CreateNewTask(RequestTaskDto input, List<string> process = null, int flag = 0) private async Task<WebResponseContent> CreateNewTask(RequestTaskDto input, string productionLine, List<string> process = null, int flag = 0) { WebResponseContent content = new WebResponseContent(); @@ -2251,7 +2303,8 @@ TaskState = flag == 3 ? (int)TaskOutStatusEnum.OutNew : (int)TaskInStatusEnum.InNew, TaskType = flag == 0 ? (int)TaskInboundTypeEnum.Inbound : flag == 1 ? (int)TaskInboundTypeEnum.InTray : flag == 2 ? (int)TaskInboundTypeEnum.InNG : (int)TaskOutboundTypeEnum.Outbound, TaskNum = await BaseDal.GetTaskNo(), Creater = "Systeam" Creater = "Systeam", ProductionLine = productionLine }; // å°è¯æ·»å æ°ä»»å¡ @@ -2280,6 +2333,7 @@ TaskState = task.TaskState.Value, Id = 0, TaskType = task.TaskType, ProductionLine = task.ProductionLine }; content.OK(data: taskDTO); } Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
@@ -14,6 +14,7 @@ using WIDESEA_StorageTaskRepository; using WIDESEAWCS_BasicInfoRepository; using WIDESEAWCS_Model.Models; using WIDESEAWCS_QuartzJob.Models; namespace WIDESEA_StorageTaskServices; @@ -39,18 +40,20 @@ //if (task.TaskState == (int)TaskInStatusEnum.InNew) { // å建WMSä»»å¡ WMSTaskDTO taskDTO = new WMSTaskDTO() { TaskNum = task.TaskNum.Value, Grade = 1, PalletCode = task.PalletCode, RoadWay = task.Roadway, SourceAddress = task.SourceAddress, TargetAddress = task.TargetAddress, TaskState = task.TaskState.Value, Id = 0, TaskType = task.TaskType, }; //WMSTaskDTO taskDTO = new WMSTaskDTO() //{ // TaskNum = task.TaskNum.Value, // Grade = 1, // PalletCode = task.PalletCode, // RoadWay = task.Roadway, // SourceAddress = task.SourceAddress, // TargetAddress = task.TargetAddress, // TaskState = task.TaskState.Value, // Id = 0, // TaskType = task.TaskType, // ProductionLine = task.ProductionLine, //}; WMSTaskDTO taskDTO = CreateTaskDTO(task); return content.OK(data: taskDTO); } } @@ -108,6 +111,7 @@ TaskState = task.TaskState.Value, Id = 0, TaskType = task.TaskType, ProductionLine = task.ProductionLine }; content.OK(data: taskDTO); } @@ -204,7 +208,8 @@ TaskState = (int)TaskInStatusEnum.Line_InFinish, TaskType = (int)TaskOutboundTypeEnum.InToOut, TaskNum = await BaseDal.GetTaskNo(), Creater = "Systeam" Creater = "Systeam", ProductionLine = result.ProductionLine }; return taskNG; } @@ -261,7 +266,8 @@ TaskState = (int)TaskInStatusEnum.Line_InFinish, TaskType = (int)TaskOutboundTypeEnum.InToOut, TaskNum = await BaseDal.GetTaskNo(), Creater = "Systeam" Creater = "Systeam", ProductionLine = result.ProductionLine }; return taskNG; } @@ -293,7 +299,8 @@ TaskState = (int)TaskInStatusEnum.Line_InFinish, TaskType = (int)TaskOutboundTypeEnum.InToOut, TaskNum = await BaseDal.GetTaskNo(), Creater = "Systeam" Creater = "Systeam", ProductionLine = result.ProductionLine }; return task; } @@ -324,26 +331,33 @@ if (locationInfo == null) throw new Exception("åºä½å·²æ»¡"); // å建ä¸ä¸ªTrayCellsStatusDto对象ï¼å¹¶èµå¼ TrayCellsStatusDto trayCells = new TrayCellsStatusDto() { Software = "WMS", TrayBarcode = input.PalletCode, //EquipmentCode = "EQ_CWJZ01" EquipmentCode = input.EquiCodeMOM }; // è°ç¨GetTrayCellStatusAsyncæ¹æ³ï¼è·åæ´ççµè¯ WebResponseContent content = await GetTrayCellStatusAsync(trayCells); // å¦æç¶æä¸ºfalseï¼åè¿åcontent if (!content.Status) throw new Exception(content.Message); // å°content.Data转æ¢ä¸ºResultTrayCellsStatus对象 var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString()); if (stationManager.stationType == 6 && result.ProductionLine.IsNullOrEmpty()) { ConsoleHelper.WriteErrorLine($"å½åæçæ 产线,èç³»MOMæ·»å 产线"); throw new Exception("å½åæçæ 产线,èç³»MOMæ·»å 产线"); } if (stationManager.stationType == 1) { #region // å建ä¸ä¸ªTrayCellsStatusDto对象ï¼å¹¶èµå¼ TrayCellsStatusDto trayCells = new TrayCellsStatusDto() { Software = "WMS", TrayBarcode = input.PalletCode, //EquipmentCode = "EQ_CWJZ01" EquipmentCode = input.EquiCodeMOM }; // è°ç¨GetTrayCellStatusAsyncæ¹æ³ï¼è·åæ´ççµè¯ WebResponseContent content = await GetTrayCellStatusAsync(trayCells); // å¦æç¶æä¸ºfalseï¼åè¿åcontent if (!content.Status) throw new Exception(content.Message); // æ·»å ç»çä¿¡æ¯ // å°content.Data转æ¢ä¸ºResultTrayCellsStatus对象 var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString()); if (result.SerialNos.Count <= 0) { ConsoleHelper.WriteErrorLine(result.MOMMessage); @@ -362,7 +376,8 @@ TaskState = (int)TaskInStatusEnum.Line_InFinish, TaskType = (int)TaskOutboundTypeEnum.InToOut, TaskNum = await BaseDal.GetTaskNo(), Creater = "Systeam" Creater = "Systeam", ProductionLine = result.ProductionLine }; return taskNG; } @@ -410,7 +425,8 @@ TaskState = (int)TaskInStatusEnum.Line_InFinish, TaskType = stationManager.stationType == 1 ? (int)TaskInboundTypeEnum.Inbound : (int)TaskInboundTypeEnum.InTray, TaskNum = await BaseDal.GetTaskNo(), Creater = "Systeam" Creater = "Systeam", ProductionLine = result.ProductionLine, }; int lastStatus = locationInfo.LocationStatus; ConsoleHelper.WriteSuccessLine($"ä¿®æ¹åï¼" + lastStatus.ToString()); @@ -544,7 +560,8 @@ TaskState = (int)TaskOutStatusEnum.OutNew, TaskType = (int)TaskOutboundTypeEnum.OutTray, TaskNum = await BaseDal.GetTaskNo(), Creater = "Systeam" Creater = "Systeam", ProductionLine = stockinfo.ProductionLine, }; return task; @@ -635,7 +652,8 @@ TaskState = (int)TaskInStatusEnum.Line_InFinish, TaskType = (int)TaskInboundTypeEnum.InTray, TaskNum = await BaseDal.GetTaskNo(), Creater = "Systeam" Creater = "Systeam", ProductionLine = result.ProductionLine, }; return Epmtytask; } @@ -695,7 +713,8 @@ TaskState = (int)TaskInStatusEnum.Line_InFinish, TaskType = (int)TaskInboundTypeEnum.Inbound, TaskNum = await BaseDal.GetTaskNo(), Creater = "Systeam" Creater = "Systeam", ProductionLine = result.ProductionLine, }; var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing); @@ -859,7 +878,7 @@ var location = locations.OrderBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).FirstOrDefault(); var stockInfo = await QueryStockInfoForEmptyTrayAsync("CWSC1","10086"); var stockInfo = await QueryStockInfoForEmptyTrayFRAsync("CWSC1", "10086", taskDTO.ProductionLine); if (stockInfo != null) { @@ -895,6 +914,43 @@ return content; } /// <summary> /// æ¥è¯¢ç©ºçåºåä¿¡æ¯ /// </summary> private async Task<DtStockInfo> QueryStockInfoForEmptyTrayFRAsync(string areaCode, string position, string productLine) { var area = await _areaInfoRepository.QueryFirstAsync(x => x.AreaCode == areaCode); ConsoleHelper.WriteColorLine(position + "..." + areaCode, ConsoleColor.Magenta); var station = await _stationManagerRepository.QueryFirstAsync(x => x.stationChildCode == position && x.stationType == 17); ConsoleHelper.WriteColorLine(station.Roadway, ConsoleColor.Magenta); var stackers = station.Roadway.Split(',').ToList(); var devices = SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>() .Where(x => x.DeviceStatus == "1") .Where(x => stackers.Contains(x.DeviceCode)) .ToList(); var deviceCode = devices.Select(x => x.DeviceCode).ToList(); var result = await _stockInfoRepository.Db.Queryable<DtStockInfo>() .Includes(x => x.LocationInfo) // é¢å è½½LocationInfo .Includes(x => x.StockInfoDetails) // é¢å è½½StockInfoDetails .Where(x => x.ProductionLine == productLine) .Where(x => x.AreaCode == areaCode && x.IsFull == false) .Where(x => x.StockInfoDetails.Any(y => y.MaterielCode == "空æç")) .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // è¿æ»¤æ¡ä»¶ .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo)) .OrderBy(x => x.CreateDate) // æåº .FirstAsync(); // 转æ¢ä¸ºå表 //var firstOrDefault = result[0]; // æ¥æ¾ç¬¬ä¸ä¸ªå¹é çå ç´ //return firstOrDefault; return result; } #endregion public async Task<WebResponseContent> RequestOutTaskToBZAsync(RequestTaskDto json) @@ -905,6 +961,7 @@ Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == json.Position && x.stationType == 12 && x.stationArea == "Call"); var stockInfo = _stockInfoRepository.Db.Queryable<DtStockInfo>() .Where(x => x.ProductionLine == station.productLine) .Includes(x => x.LocationInfo) // é¢å è½½LocationInfo .Where(x => x.AreaCode == "CWSC3" && x.IsFull == true) // è¿æ»¤æ¡ä»¶ .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock) // è¿æ»¤æ¡ä»¶ @@ -934,7 +991,8 @@ TaskState = (int)TaskOutStatusEnum.OutNew, TaskType = (int)TaskOutboundTypeEnum.Outbound, TaskNum = await BaseDal.GetTaskNo(), Creater = "Systeam" Creater = "Systeam", ProductionLine = stockInfo.ProductionLine, }; WMSTaskDTO taskDTO = CreateTaskDTO(task); Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/RequestInTaskAsync.cs
@@ -61,7 +61,7 @@ var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker"); var strings = config.ConfigValue.Split(',').ToList(); // å ¥åºéè³å¸¸æ¸©3 var resultContent = await CreateNewTask(input, strings); var resultContent = await CreateNewTask(input, input.ProductionLine, strings); if (resultContent.Status) { await _boxingInfoRepository.AddDataNavAsync(boxing); @@ -75,14 +75,14 @@ { // éè³å è£ List<string> strings = stationManagers.Where(x => x.stationType == 0).Select(x => x.Roadway).ToList(); return await CreateNewTask(input, strings, 3); return await CreateNewTask(input, input.ProductionLine, strings, 3); } else { var config = _configService.GetByConfigKey("SYS_InStacker", "CW3InStacker"); var strings = config.ConfigValue.Split(',').ToList(); // å ¥åºéè³å¸¸æ¸©3 var resultContent = await CreateNewTask(input, strings); var resultContent = await CreateNewTask(input, input.ProductionLine, strings); if (resultContent.Status) { await _boxingInfoRepository.AddDataNavAsync(boxing); @@ -138,7 +138,7 @@ } List<string> strings = stationManagers.Roadway.Split(',').ToList(); var resultContent = await CreateNewTask(input, strings); var resultContent = await CreateNewTask(input, result.ProductionLine, strings); if (resultContent.Status) { var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing); @@ -200,7 +200,7 @@ // NGStation = stationManagers.stationNGChildCode.Split(',').ToList(); //} List<string> NGStation = stationManagers.stationNGChildCode.Split(',').ToList(); content = await CreateNewTask(input, NGStation, 2); content = await CreateNewTask(input, input.ProductionLine, NGStation, 2); return content.Error("åå¨å¼å¸¸çµè¯"); } @@ -230,7 +230,8 @@ TargetAddress = task.Roadway, TaskState = task.TaskState.Value, Id = 0, TaskType = task.TaskType TaskType = task.TaskType, ProductionLine = task.ProductionLine, }; return new WebResponseContent().OK(data: taskDTO); } ÏîÄ¿×ÊÁÏ/½Ó¿ÚÐÒé/¹ÚÓîMOMÏîÄ¿·½°¸Éè¼Æ¹æ¸ñÊé_µçо¶Î_[´´ÖǾ²Ö󻯹¤Ðò]_É豸¼¯³ÉÄ£¿é_v1.2@20250208(1).pdfBinary files differ