From e46aa927d231af83724683c7286d9db503e24cf7 Mon Sep 17 00:00:00 2001
From: z8018 <1282578289@qq.com>
Date: 星期二, 10 六月 2025 11:46:20 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/OrderDetailsService.cs |   89 ++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 81 insertions(+), 8 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/OrderDetailsService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/OrderDetailsService.cs"
index dbc29db..585de7c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/OrderDetailsService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/OrderDetailsService.cs"
@@ -40,8 +40,6 @@
 using WIDESEAWCS_Core.Enums;
 using WIDESEAWCS_Core.Helper;
 using WIDESEAWCS_DTO.BasicInfo;
-using WIDESEAWCS_DTO.Enum;
-using WIDESEAWCS_DTO.TaskInfo;
 using WIDESEAWCS_IBasicInfoRepository;
 using WIDESEAWCS_IBasicInfoService;
 using WIDESEAWCS_Model.Models;
@@ -50,21 +48,41 @@
 {
     public class OrderDetailsService : ServiceBase<OrderDetails, IOrderDetailsRepository>, IOrderDetailsService
     {
-        public OrderDetailsService(IOrderDetailsRepository BaseDal) : base(BaseDal)
+        private readonly IOrderrowsRepository _orderrowsRepository;
+        public OrderDetailsService(IOrderDetailsRepository BaseDal, IOrderrowsRepository orderrowsRepository) : base(BaseDal)
         {
-
+            _orderrowsRepository = orderrowsRepository;
         }
 
         private static bool toggle = false;
 
         private static int lastStaion = 0;
-        public int GetOrderDetails(string barcode, List<int> useableStations)
+        public int GetOrderDetails(string barcode, List<int> useableStations, out ProductInfoDTO productInfo)
         {
             OrderDetails? orderDetails = BaseDal.QueryData(x => x.Orderdetails_outid == barcode).FirstOrDefault();
             if (orderDetails != null)
             {
+                productInfo = new ProductInfoDTO()
+                {
+                    Code = barcode,
+                    Height = Convert.ToInt32(orderDetails.Orderdetails_thickness),
+                    Length = Convert.ToInt32(orderDetails.Orderdetails_length),
+                    Width = Convert.ToInt32(orderDetails.Orderdetails_width),
+                };
+
+                int length = productInfo.Length;
+                int width = productInfo.Width;
+                if (length < width)
+                {
+                    length = productInfo.Width;
+                    width = productInfo.Length;
+                }
+
                 useableStations = useableStations.OrderByDescending(x => x).ToList();
-                if (orderDetails.Orderdetails_width <= 800 && orderDetails.Orderdetails_width >= 50)//1,2,3
+                if (width < 100)
+                    useableStations = useableStations.Where(x => x != 1).OrderByDescending(x => x).ToList();
+
+                if (width <= 800 && width >= 50)//1,2,3
                 {
                     if (lastStaion == 0)
                     {
@@ -74,7 +92,7 @@
                     else
                     {
                         int index = useableStations.IndexOf(lastStaion);
-                        if(index + 1 < useableStations.Count)
+                        if (index + 1 < useableStations.Count)
                         {
                             lastStaion = useableStations[index + 1];
                             return lastStaion;
@@ -86,7 +104,7 @@
                         }
                     }
                 }
-                else if (orderDetails.Orderdetails_width >= 800 && orderDetails.Orderdetails_width <= 1220)//1,2
+                else if (width >= 800 && width <= 1220)//1,2
                 {
                     useableStations = useableStations.Where(x => x != 3).ToList();
 
@@ -121,6 +139,7 @@
             }
             else
             {
+                productInfo = new ProductInfoDTO();
                 return -1;
             }
         }
@@ -140,6 +159,60 @@
             return toMesBarc;
         }
 
+        public ToMesBarcRes? ToMes(string barcode, int processId)
+        {
+            try
+            {
+                object obj = new
+                {
+                    id = barcode,
+                    processId
+                };
 
+                ToMesBarcRes? toMesBarc = JsonConvert.DeserializeObject<ToMesBarcRes>(HttpHelper.Post($"{ToMesScan_sync}", obj.Serialize()));
+                return toMesBarc;
+            }
+            catch (Exception ex)
+            {
+                return null;
+            }
+
+        }
+
+        public OrderInfo GetOrderInfoByBarcode(string barcode)
+        {
+            try
+            {
+                OrderDetails orderDetails = BaseDal.QueryFirst(x => x.Orderdetails_outid == barcode);
+                if (orderDetails == null)
+                {
+                    throw new Exception($"銆恵barcode}銆戞湭鎵惧埌鏉$爜瀵瑰簲璁㈠崟淇℃伅");
+                }
+
+                Orderrows orderrows = _orderrowsRepository.QueryFirst(x => x.id == orderDetails.Orderrowsid);
+                if (orderrows == null)
+                {
+                    throw new Exception($"銆恵barcode}銆戞湭鎵惧埌瀵瑰簲璁㈠崟澶翠俊鎭�");
+                }
+
+                OrderInfo orderInfo = new OrderInfo()
+                {
+                    Barcode = barcode,
+                    Length = orderDetails.Orderdetails_length,
+                    OrderBatch = orderrows.Orderrows_batchid,
+                    OrderHeadId = orderrows.id,
+                    OrderNo = orderrows.Orderrows_orderid,
+                    OrderRowNum = orderrows.Orderrows_id,
+                    Quantity = Convert.ToInt32(orderrows.Orderrows_num),
+                    Thickness = orderDetails.Orderdetails_thickness,
+                    Width = orderDetails.Orderdetails_width,
+                };
+                return orderInfo;
+            }
+            catch (Exception ex)
+            {
+                throw new Exception(ex.Message);
+            }
+        }
     }
 }

--
Gitblit v1.9.3