From 6e7f192546903b04d2d37e852dd9b248e938c790 Mon Sep 17 00:00:00 2001 From: z8018 <1282578289@qq.com> Date: 星期五, 01 八月 2025 09:23:17 +0800 Subject: [PATCH] 1 --- 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ContainerService.cs | 66 +++++++++++++++++++-------------- 1 files changed, 38 insertions(+), 28 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ContainerService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ContainerService.cs" index 80e52d4..3b0c446 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ContainerService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/ContainerService.cs" @@ -169,6 +169,15 @@ { return (true, taskPosition, ""); } + int maxValue = Math.Max(length, width); + int minValue = Math.Min(length, width); + + int count = Db.Queryable<Dt_Container>().Where(x => x.ContainerType == ContainerTypeEnum.PutContainer.ObjToInt() && x.ContainerStatus == ContainerStatusEnum.Empty.ObjToInt() && x.ContainerEnable && x.ContainerMaxWidth >= minValue).Count(); + if (count == 0) + { + return (false, null, "10000"); + } + taskPosition = GetPosition(length, width, height); if (taskPosition != null) { @@ -190,9 +199,12 @@ /// </remarks> public TaskPosition? GetPosition(int length, int width, int height) { - List<Dt_Container> containers = Db.Queryable<Dt_Container>().Where(x => x.ContainerType == ContainerTypeEnum.PutContainer.ObjToInt()).Includes(x => x.Items).ToList(); + int maxValue = Math.Max(length, width); + int minValue = Math.Min(length, width); - Dt_Container? container = containers.OrderBy(x => x.ContainerSort).FirstOrDefault(x => x.ContainerStatus == ContainerStatusEnum.Empty.ObjToInt() && x.ContainerEnable); + List<Dt_Container> containers = Db.Queryable<Dt_Container>().Where(x => x.ContainerType == ContainerTypeEnum.PutContainer.ObjToInt()).ToList(); + + Dt_Container? container = containers.OrderBy(x => x.ContainerSort).FirstOrDefault(x => x.ContainerStatus == ContainerStatusEnum.Empty.ObjToInt() && x.ContainerEnable && x.ContainerMaxWidth >= minValue); List<PlacedBlock> placedBlocks = new List<PlacedBlock>(); if (container != null) { @@ -201,13 +213,16 @@ { edge = 1; } + else if (container.ContainerNo == containers.Where(x => x.DeviceCode == container.DeviceCode && x.ContainerType == ContainerTypeEnum.PutContainer.ObjToInt()).Max(x => x.ContainerNo)) + { + edge = 2; + } int containerLength = container.ContainerLength; int containerWidth = container.ContainerWidth; - int maxValue = Math.Max(length, width); - int minValue = Math.Min(length, width); + if (minValue > container.ContainerWidth) { - containerLength = maxValue; + //containerLength = maxValue; containerWidth = minValue; } ContainerSize containerSize = new ContainerSize(containerLength, containerWidth, container.ContainerHeight); @@ -326,6 +341,10 @@ { edge = 1; } + else if (container.ContainerNo == dt_Containers.Where(x => x.DeviceCode == container.DeviceCode && x.ContainerType == ContainerTypeEnum.PutContainer.ObjToInt()).Max(x => x.ContainerNo)) + { + edge = 2; + } ContainerSize containerSize = new ContainerSize(orderContainer.MaxLength, orderContainer.MaxWidth, container.ContainerHeight); TaskPosition? taskPosition = GetTaskPosition(length, width, height, containerSize, placedBlocks, edge); @@ -422,19 +441,22 @@ return WebResponseContent.Instance.Error("瀹瑰櫒涓嶅瓨鍦�"); } - if (container.ContainerStatus == ContainerStatusEnum.Empty.ObjToInt()) - { - return WebResponseContent.Instance.Error("瀹瑰櫒宸插浜庣┖闂茬姸鎬�"); - } - if (container.ContainerType == ContainerTypeEnum.ExceptionContainer.ObjToInt()) { + container.Items = _containerItemRepository.QueryData(x => x.ContainerId == container.Id); + if (container.Items != null && container.Items.Count > 0) { _containerItemRepository.DeleteAndMoveIntoHty(container.Items, App.User?.UserId > 0 ? WIDESEAWCS_Core.Enums.OperateTypeEnum.浜哄伐鍒犻櫎 : WIDESEAWCS_Core.Enums.OperateTypeEnum.鑷姩鍒犻櫎); } return WebResponseContent.Instance.OK("寮傚父宸ヤ綅宸查噴鏀�"); } + + if (container.ContainerStatus == ContainerStatusEnum.Empty.ObjToInt()) + { + return WebResponseContent.Instance.Error("瀹瑰櫒宸插浜庣┖闂茬姸鎬�"); + } + List<Dt_Task> tasks = _taskRepository.QueryData(x => x.NextAddress.Contains(container.ContainerCode)); Dt_OrderContainer orderContainer = _orderContainerRepository.QueryFirst(x => x.ContainerCode == container.ContainerCode && x.ContainerId == container.Id); @@ -445,26 +467,14 @@ container.Items = _containerItemRepository.QueryData(x => x.ContainerId == container.Id && !codes.Contains(x.ItemCode)); - if (container.ContainerType == ContainerTypeEnum.ExceptionContainer.ObjToInt()) + tasks.ForEach(x => { - tasks.ForEach(x => + if (x.TaskState == TaskStatusEnum.Gantry_Wait.ObjToInt()) { - if (x.TaskState == TaskStatusEnum.Gantry_BeRelease.ObjToInt()) - { - x.TaskState = TaskStatusEnum.Gantry_New.ObjToInt(); - } - }); - } - else - { - tasks.ForEach(x => - { - if (x.TaskState == TaskStatusEnum.Gantry_Wait.ObjToInt()) - { - x.TaskState = TaskStatusEnum.Gantry_BeReassign.ObjToInt(); - } - }); - } + x.TaskState = TaskStatusEnum.Gantry_BeReassign.ObjToInt(); + } + }); + } else { -- Gitblit v1.9.3