ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -172,6 +172,11 @@ Dt_Task QueryStackerCraneTask(string deviceNo, string currentAddress = ""); /// <summary> /// åæåºä»»å¡æ¥è¯¢ /// </summary> Dt_Task QueryStackerYLTask(string deviceNo,TaskTypeGroup? taskTypeGroup=null); /// <summary> /// æ ¹æ®è®¾å¤ç¼å·ãå½åå°åæç §ä¼å 级以åå建æ¶é´æåºæ¥è¯¢ä»»å¡æ± å ¥åºç±»åçæ°å¢çä»»å¡ /// </summary> /// <param name="deviceNo">设å¤ç¼å·</param> ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
@@ -77,6 +77,12 @@ return Service.TaskStatusRecovery(taskNum); } [HttpPost, HttpGet, Route("QueryStackerYLTask"),AllowAnonymous] public Dt_Task QueryStackerYLTask(string deviceNo, TaskTypeGroup? taskTypeGroup = null) { return Service.QueryStackerYLTask(deviceNo, taskTypeGroup); } [HttpPost, HttpGet, Route("RollbackTaskStatusToLast")] public WebResponseContent RollbackTaskStatusToLast(int taskNum) { ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -701,6 +701,77 @@ else return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && x.CurrentAddress == currentAddress && x.TaskState == (int)TaskStatusEnum.SC_Execute, TaskOrderBy); } private static int OldorNew = 0; /// <summary> /// åæåºä»»å¡æ¥è¯¢ /// </summary> /// <param name="deviceNo">设å¤ç¼å·</param> /// <param name="currentAddress">å½åå°å</param> /// <returns>è¿åä»»å¡å®ä½å¯¹è±¡ï¼å¯è½ä¸ºnull</returns> public Dt_Task QueryStackerYLTask(string deviceNo,TaskTypeGroup? taskTypeGroup= null) { if (taskTypeGroup == null) { Dt_Task taskSend = BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && x.TaskState == (int)TaskStatusEnum.SC_Execute && x.TaskType != TaskTypeEnum.OldYLOutbound.ObjToInt(), TaskOrderBy); if (taskSend == null) { OldorNew = 1; List<Dt_Task> specificTasks = BaseDal.QueryData(t => t.DeviceCode == deviceNo && t.TaskState == (int)TaskStatusEnum.SC_Execute && t.TaskType == TaskTypeEnum.OldYLOutbound.ObjToInt()).OrderBy(t => t.CreateDate.Date) .ThenBy(t => t.Grade) .ThenBy(t => t.TaskNum) .ToList(); if (specificTasks.Any()) { //æ ¹æ®æ¶é´çæ¥ä¸¥æ ¼æåº Dt_Task taskCheck = BaseDal.QueryData(t => t.TaskState == (int)TaskStatusEnum.SC_Execute && t.TaskType == TaskTypeEnum.OldYLOutbound.ObjToInt()).OrderBy(t => t.CreateDate.Date) .ThenBy(t => t.Grade) .ThenBy(t => t.TaskNum) .FirstOrDefault(); Dt_Task taskCheckSend = specificTasks.FirstOrDefault(); if (taskCheck.CreateDate.Date == taskCheckSend.CreateDate.Date && taskCheckSend.Grade <= taskCheck.Grade) { taskSend = taskCheckSend; } } } else { OldorNew = 0; } return taskSend; } else { Dt_Task taskSend = null; if (OldorNew == 0) { OldorNew = 1; List<Dt_Task> specificTasks = BaseDal.QueryData(t => t.DeviceCode == deviceNo && t.TaskState == (int)TaskStatusEnum.SC_Execute && t.TaskType == TaskTypeEnum.OldYLOutbound.ObjToInt()).OrderBy(t => t.CreateDate.Date) .ThenBy(t => t.Grade) .ThenBy(t => t.TaskNum) .ToList(); if (specificTasks.Any()) { //æ ¹æ®æ¶é´çæ¥ä¸¥æ ¼æåº Dt_Task taskCheck = BaseDal.QueryData(t => t.TaskState == (int)TaskStatusEnum.SC_Execute && t.TaskType == TaskTypeEnum.OldYLOutbound.ObjToInt()).OrderBy(t => t.CreateDate.Date) .ThenBy(t => t.Grade) .ThenBy(t => t.TaskNum) .FirstOrDefault(); Dt_Task taskCheckSend = specificTasks.FirstOrDefault(); if (taskCheck.CreateDate.Date == taskCheckSend.CreateDate.Date && taskCheckSend.Grade <= taskCheck.Grade) { taskSend = taskCheckSend; } } } else { OldorNew = 0; taskSend = BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskType != TaskTypeEnum.OldYLOutbound.ObjToInt() && x.TaskState == (int)TaskStatusEnum.SC_Execute, TaskOrderBy); } return taskSend; } } /// <summary> /// æ ¹æ®è®¾å¤ç¼å·ãå½åå°åæç §ä¼å 级以åå建æ¶é´æåºæ¥è¯¢ä»»å¡æ± å ¥åºç±»åçæ°å¢çä»»å¡ ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_Tasks/ÔÁÏ¿â/StackerCraneJob_YLSC2.cs
@@ -229,7 +229,7 @@ Dt_Task? task; if (commonStackerCrane.LastTaskType == null) { task = _taskService.QueryStackerCraneTask(commonStackerCrane.DeviceCode); task = _taskService.QueryStackerYLTask(commonStackerCrane.DeviceCode); } else { @@ -239,13 +239,13 @@ task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); if (task == null) { task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode); task = _taskService.QueryStackerYLTask(commonStackerCrane.DeviceCode, TaskTypeGroup.OutbondGroup); } } else { //ä¸ä¸ä¸ªä¸ºå ¥åºåæ¥æ¯å¦åå¨åºåºä»»å¡ äº¤æ¿æ§è¡ task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode); task = _taskService.QueryStackerYLTask(commonStackerCrane.DeviceCode, TaskTypeGroup.OutbondGroup); if (task == null) { task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); ÏîÄ¿´úÂë/WCS/WCSServices/WIDESEAWCS_Tasks/ÔÁÏ¿â/StackerCraneJob_YLSC3.cs
@@ -280,7 +280,7 @@ Dt_Task? task; if (commonStackerCrane.LastTaskType == null) { task = _taskService.QueryStackerCraneTask(commonStackerCrane.DeviceCode); task = _taskService.QueryStackerYLTask(commonStackerCrane.DeviceCode); } else { @@ -290,13 +290,13 @@ task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); if (task == null) { task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode); task = _taskService.QueryStackerYLTask(commonStackerCrane.DeviceCode, TaskTypeGroup.OutbondGroup); } } else { //ä¸ä¸ä¸ªä¸ºå ¥åºåæ¥æ¯å¦åå¨åºåºä»»å¡ äº¤æ¿æ§è¡ task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode); task = _taskService.QueryStackerYLTask(commonStackerCrane.DeviceCode, TaskTypeGroup.OutbondGroup); if (task == null) { task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_Model/Models/Outbound/Dt_OutSGOrderDetail.cs
@@ -121,5 +121,11 @@ /// </summary> [SugarColumn(IsNullable = false, ColumnDescription = "åºåºåæç»ç¶æ")] public int OutSGOrderDetailStatus { get; set; } /// <summary> /// 顺åºå· /// </summary> [SugarColumn(IsNullable = false, ColumnDescription = "顺åºå·")] public int Number { get; set; } } } ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_OutboundService/OutSGOrderService.cs
@@ -129,8 +129,8 @@ try { //è·åæææç¨å List<Dt_OutSGOrder> outSGOrders = BaseDal.Db.Queryable<Dt_OutSGOrder>().Includes(x => x.Details).ToList(); List<Dt_OutSGOrderDetail> outSGOrderDetails= outSGOrders.SelectMany(x=>x.Details).ToList(); //List<Dt_OutSGOrder> outSGOrders = BaseDal.Db.Queryable<Dt_OutSGOrder>().Includes(x => x.Details).ToList(); //List<Dt_OutSGOrderDetail> outSGOrderDetails= outSGOrders.SelectMany(x=>x.Details).ToList(); ////夿忮 //Dt_OutSGOrderDetail? ExistAddOutOrderDetail = outSGOrderDetails.FirstOrDefault(x => outOrderDTOs.Select(t => t.BoardMpsDetailId).Distinct().Contains(x.BoardMpsDetailId)); //if (ExistAddOutOrderDetail != null) @@ -171,11 +171,13 @@ //夿工忝å¦å·²ç»åå¨ if (ExistOutSGOrder != null) { outSGOrderDetail.Number = ExistOutSGOrder.Number; ExistOutSGOrder.Details.Add(outSGOrderDetail); } else { Dt_OutSGOrder outSGOrder = _mapper.Map<Dt_OutSGOrder>(item); outSGOrderDetail.Number = outSGOrder.Number; outSGOrder.Details = new List<Dt_OutSGOrderDetail>() { outSGOrderDetail }; AddOutSGOrders.Add(outSGOrder); } ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Outbound.cs
@@ -223,7 +223,7 @@ } if (outStockLockInfosMES != null && outStockLockInfosMES.Count() > 0) { Dt_AGVStationInfo aGVStationInfo = _basicRepository.AGVStationInfoRepository.QueryFirst(x=>x.AGVStationCode==task.TargetAddress); Dt_AGVStationInfo aGVStationInfo = _basicRepository.AGVStationInfoRepository.QueryFirst(x=>x.AGVStationCode==task.TargetAddress || x.MESPointCode == task.TargetAddress); MESDeliveryModel mESDeliveryModel = MESDeliveryUp(outStockLockInfosMES, aGVStationInfo.MESPointCode); MESResponse response = _invokeMESService.MESDelivery(mESDeliveryModel).DeserializeObject<MESResponse>() ?? throw new Exception("æªè·åå°è¿åä¿¡æ¯"); if (!response.Result) @@ -804,8 +804,12 @@ { tasks.ForEach(x => { string orderNos = string.Join(",", outStockLockInfos.Where(t => t.PalletCode == x.PalletCode).Select(x => x.OrderNo).Distinct()); List<Dt_OutStockLockInfo> outStockNos = outStockLockInfos.Where(t => t.PalletCode == x.PalletCode).ToList(); List<int> outDetailIds = outStockNos.Select(t => t.OrderDetailId).ToList(); int numberNo = outboundOrderDetails.Where(t => outDetailIds.Contains(t.Id)).OrderBy(x => x.Number).FirstOrDefault().Number; string orderNos = string.Join(",", outStockNos.Select(t => t.OrderNo).Distinct()); x.OrderNo = orderNos; x.Grade = numberNo; }); } BaseDal.AddData(tasks);