From 2b49f7643d15b74889d190f216630559006ed93a Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期一, 01 十二月 2025 09:48:43 +0800
Subject: [PATCH] pad和后端的优化

---
 新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs |   89 +++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 78 insertions(+), 11 deletions(-)

diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
index f9114b7..2c182d4 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/CabinOrderServices.cs"
@@ -104,15 +104,72 @@
         /// <param name="pageNo"></param>
         /// <param name="orderNo"></param>
         /// <returns></returns>
+        //public WebResponseContent GetCabinOrderDetail(int pageNo, string orderNo)
+        //{
+        //    WebResponseContent content = new WebResponseContent();
+        //    Dt_CabinOrder cabinOrder = Db.Queryable<Dt_CabinOrder>().Includes(x => x.Details).First(x => x.Order_no == orderNo);
+        //    List<Dt_CabinOrderDetail> cabinOrderDetails = cabinOrder.Details.Where(x => x.Status == 2 && x.OrderDetailStatus != "宸插畬鎴�").ToList();
+        //    content.OK(data: cabinOrderDetails);
+        //    return content;
+        //}
+
         public WebResponseContent GetCabinOrderDetail(int pageNo, string orderNo)
         {
             WebResponseContent content = new WebResponseContent();
-            Dt_CabinOrder cabinOrder = Db.Queryable<Dt_CabinOrder>().Includes(x => x.Details).First(x => x.Order_no == orderNo);
-            List<Dt_CabinOrderDetail> cabinOrderDetails = cabinOrder.Details.Where(x => x.Status == 2 && x.OrderDetailStatus != "宸插畬鎴�").ToList();
-            content.OK(data: cabinOrderDetails);
+            try
+            {
+                Dt_CabinOrder cabinOrder = Db.Queryable<Dt_CabinOrder>().Includes(x => x.Details).First(x => x.Order_no == orderNo);
+                List<Dt_CabinOrderDetail> cabinOrderDetails = cabinOrder.Details.Where(x => x.Status == 2 && x.OrderDetailStatus != "宸插畬鎴�").ToList();
+
+                // 鑾峰彇鎵�鏈夌墿鏂欑紪鍙�
+                var materielCodes = cabinOrderDetails.Select(x => x.Goods_no).Distinct().ToList();
+
+                // 鑾峰彇鐗╂枡淇℃伅
+                var materiels = Db.Queryable<Dt_MaterielInfo>()
+                    .Where(x => materielCodes.Contains(x.MaterielCode))
+                    .ToList()
+                    .ToDictionary(x => x.MaterielCode, x => x);
+
+                // 缁勫悎鏁版嵁
+                var result = cabinOrderDetails.Select(detail =>
+                {
+                    var materiel = materiels.ContainsKey(detail.Goods_no) ? materiels[detail.Goods_no] : null;
+
+                    return new
+                    {
+                        // 璁㈠崟鏄庣粏瀛楁
+                        detail.Id,
+                        detail.Batch_num,
+                        detail.Goods_no,
+                        detail.Order_qty,
+                        detail.Order_Inqty,
+                        detail.Status,
+                        detail.OrderDetailStatus,
+                        detail.Exp_date,//鏁堟湡
+
+                        // 鐗╂枡淇℃伅瀛楁
+                        MaterielName = materiel?.MaterielName ?? "",
+                        item = materiel?.item ?? "", // 鍝佸悕/閫氱敤鍚�
+                        MaterielSpec = materiel?.MaterielSpec ?? "", // 鐗╂枡瑙勬牸
+                        Factory = materiel?.Factory ?? "", // 鐢熶骇鍘傚
+                        MaterielUnit = materiel?.MaterielUnit ?? "", // 鍩烘湰鍗曚綅
+                        MaterielStoragecondition = materiel?.MaterielStoragecondition, // 瀛樺偍鏉′欢/鏁堟湡
+                        MaterielModel = materiel?.MaterielModel ?? "" // 鐗╂枡鍨嬪彿
+                    };
+                }).ToList();
+                int pageSize = 5; // 姣忛〉鏄剧ず5鏉�
+                var pagedResult = result
+                    .Skip((pageNo - 1) * pageSize)
+                    .Take(pageSize)
+                    .ToList();
+                content.OK(data: pagedResult);
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
             return content;
         }
-
 
         /// <summary>
         /// Pad鍏ュ簱瀹屾垚 
@@ -871,17 +928,22 @@
                 if (order.warehouse_no == WareCodeMJ || order.warehouse_no == WareCodeLD)
                 {
 
-                    List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode));
-                    List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode));
+                    List<Dt_Inventory_Batch> inventory_Batchs = _inventory_BatchServices.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList();
+                    List<Dt_InventoryInfo> _InventoryInfos = _inventoryInfoService.Repository.QueryData(x => codes.Contains(x.MaterielCode)).ToList();
                     #region 搴撳瓨銆佸簱瀛樻壒娆″钩璐�
                     foreach (var item in order.details)
                     {
                         //鎵惧簱瀛樻壒娆′俊鎭�
-                        Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First();
+                        Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).FirstOrDefault();
+                        if (inventory_Batch==null)
+                        {
+                            _messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "ERP鎶ユ姤婧㈠叆搴撻敊璇�", $"鐩樼泩鍏ュ簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鐗╂枡鎵规淇℃伅閿欒");
+                            throw new Exception($"鐩樼泩鍏ュ簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鐗╂枡鎵规淇℃伅閿欒");
+                        }
                         if (inventory_Batch.SupplyQuantity != item.order_qty)
                         {
                             _messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "ERP鎶ユ姤婧㈠叆搴撻敊璇�", $"鐩樼泩鍏ュ簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鐩樼泩鏁伴噺鏈夎");
-                            throw new Exception($"鐩樼泩鍏ュ簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鐩樼泩鏁伴噺鏈夎");
+                            throw new Exception($"鐩樼泩鍏ュ簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鐨勭洏鐩堟暟閲忔湁璇�");
                         }
                         //鎵炬墍鏈夊簱瀛�
                         List<Dt_InventoryInfo> inventoryInfos = _InventoryInfos.Where(x => x.MaterielCode == inventory_Batch.MaterielCode && x.BatchNo == inventory_Batch.BatchNo).ToList();
@@ -970,7 +1032,12 @@
                     foreach (var item in order.details)
                     {
                         //鎵惧簱瀛樻壒娆′俊鎭�
-                        Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).First();
+                        Dt_Inventory_Batch inventory_Batch = inventory_Batchs.Where(x => x.MaterielCode == item.goods_no && x.BatchNo == item.batch_num).FirstOrDefault();
+                        if (inventory_Batch == null)
+                        {
+                            _messageInfoService.AddMessageInfo(MessageGroupByEnum.InOrderAlarm, "ERP鎶ユ姤婧㈠叆搴撻敊璇�", $"鐩樼泩鍏ュ簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鎵规淇℃伅娌℃湁鎵惧埌");
+                            throw new Exception($"鐩樼泩鍏ュ簱鍗曘�恵order.order_no}銆戠墿鏂欑紪鍙枫�恵item.goods_no}銆戠墿鏂欐壒娆°�恵item.batch_num}銆戠殑鎵规淇℃伅閿欒");
+                        }
                         var Qty = Math.Abs(inventory_Batch.SupplyQuantity);
                         if (Qty != item.order_qty)
                         {
@@ -1216,8 +1283,8 @@
                 }
                 else
                 {
-                    var url = "http://121.37.118.63:80/GYZ2/95fck/outOrderOk";
-                    if (cabinOrder.Order_type == "2") url = "http://121.37.118.63:80/GYZ2/95fck/outOrderOk";
+                    var url = "http://192.168.1.100:80/GYZ2/95fck/outOrderOk";
+                    if (cabinOrder.Order_type == "2") url = "http://192.168.1.100:80/GYZ2/95fck/outOrderOk";
                     var requestDate = new
                     {
                         order_no = cabinOrder.Order_no

--
Gitblit v1.9.3