From 37454e625df68d40897112b2e8c2e3cf4d7163e3 Mon Sep 17 00:00:00 2001
From: heshaofeng <heshaofeng@hnkhzn.com>
Date: 星期三, 25 三月 2026 11:43:10 +0800
Subject: [PATCH] 1

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_AllocateService/AllocateService.cs |   61 +++++++++++++++++++-----------
 1 files changed, 38 insertions(+), 23 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_AllocateService/AllocateService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_AllocateService/AllocateService.cs"
index 38b7329..35bbece 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_AllocateService/AllocateService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_AllocateService/AllocateService.cs"
@@ -143,6 +143,7 @@
             try
             {
                 var allocateOrder = Db.Queryable<Dt_AllocateOrder>().Where(x => x.UpperOrderNo == model.UpperOrderNo).Includes(x => x.Details).First();
+                var outOrder = Db.Queryable<Dt_OutboundOrder>().Where(x => x.UpperOrderNo == model.UpperOrderNo).Includes(x => x.Details).First();
                 if (allocateOrder == null)
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒拌皟鎷ㄥ崟淇℃伅");
@@ -150,6 +151,10 @@
                 if (allocateOrder.Details == null || allocateOrder.Details.Count == 0)
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒拌皟鎷ㄥ崟鏄庣粏淇℃伅");
+                }
+                if (outOrder.OrderStatus != (int)OutOrderStatusEnum.鏈紑濮�)
+                {
+                    return WebResponseContent.Instance.Error($"璇ヨ鍗曠姸鎬佷笉鍏佽淇敼");
                 }
                 List<Dt_AllocateOrderDetail> allocateOrderDetails = new List<Dt_AllocateOrderDetail>();
                 List<Dt_AllocateOrderDetail> updateAllocateOrderDetails = new List<Dt_AllocateOrderDetail>();
@@ -253,6 +258,12 @@
                 if (allocateOrder.Details == null || allocateOrder.Details.Count == 0)
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒拌皟鎷ㄥ崟鏄庣粏淇℃伅");
+                }
+                var outOrder = Db.Queryable<Dt_OutboundOrder>().Where(x => x.UpperOrderNo == model.UpperOrderNo).Includes(x => x.Details).First();
+
+                if (outOrder.OrderStatus != (int)OutOrderStatusEnum.鏈紑濮�)
+                {
+                    return WebResponseContent.Instance.Error($"璇ヨ鍗曠姸鎬佷笉鍏佽鍒犻櫎");
                 }
                 //Db.DeleteNav(Allocate).Include(x => x.Details).ExecuteCommand();
                 _unitOfWorkManage.BeginTran();
@@ -666,7 +677,6 @@
         public override PageGridData<Dt_InboundOrderDetail> GetDetailPage(PageDataOptions options)
         {
             string wheres = ValidatePageOptions(options);
-            //鑾峰彇鎺掑簭瀛楁
             Dictionary<string, SqlSugar.OrderByType> orderbyDic = GetPageDataSort(options, TProperties);
             List<OrderByModel> orderByModels = new List<OrderByModel>();
             foreach (var item in orderbyDic)
@@ -679,7 +689,6 @@
                 orderByModels.Add(orderByModel);
             }
 
-
             int totalCount = 0;
             List<SearchParameters> searchParametersList = new List<SearchParameters>();
             if (!string.IsNullOrEmpty(options.Wheres))
@@ -691,35 +700,41 @@
                 }
                 catch { }
             }
-            //var data = BaseDal.Db.Queryable<Dt_AllocateOrderDetail>()
-            //    .WhereIF(!wheres.IsNullOrEmpty(), wheres)
-            //    .OrderBy(orderByModels)
-            //    .ToPageList(options.Page, options.Rows, ref totalCount);
-            //Dt_AllocateOrder allocateOrder = _allocateOrderRepository.QueryFirst(x => x.Id == (int)options.Value);
-            //Dt_InboundOrder _InboundOrder = SqlSugarHelper.DbWMS.Queryable<Dt_InboundOrder>().Where(x => x.UpperOrderNo == allocateOrder.UpperOrderNo).First();
-            //var details = _inboundOrderDetailRepository.QueryData(x => x.OrderId == _InboundOrder.Id );
-            //foreach (var item in data)
-            //{
-            //    var detail = details.Where(x => x.MaterielCode == item.MaterielCode).FirstOrDefault();
-            //    if (detail != null)
-            //    {
-            //        item.OrderQuantity = detail.OrderQuantity;
-            //        item.ReceiptQuantity = detail.ReceiptQuantity;
-            //        item.OverInQuantity = detail.OverInQuantity;
-            //        item.OrderDetailStatus = detail.OrderDetailStatus;
-            //    }
-            //}
-            //return new PageGridData<Dt_AllocateOrderDetail>(totalCount, data);
 
             Dt_AllocateOrder allocateOrder = _allocateOrderRepository.QueryFirst(x => x.Id == (int)options.Value);
             Dt_InboundOrder _InboundOrder = SqlSugarHelper.DbWMS.Queryable<Dt_InboundOrder>().Where(x => x.UpperOrderNo == allocateOrder.UpperOrderNo).First();
             var Id = _InboundOrder == null ? 0 : _InboundOrder.Id;
+
             var data = BaseDal.Db.Queryable<Dt_InboundOrderDetail>()
-                .WhereIF(!wheres.IsNullOrEmpty(), wheres)
-                .Where( x => x.OrderId == Id)
+                .WhereIF(!string.IsNullOrEmpty(wheres), wheres)
+                .Where(x => x.OrderId == Id)
                 .OrderBy(orderByModels)
                 .ToPageList(options.Page, options.Rows, ref totalCount);
 
+            foreach (var detail in data)
+            {
+                if (string.IsNullOrEmpty(detail.Barcode))
+                {
+                    detail.Pallet = string.Empty;
+                    continue;
+                }
+
+                var stockDetail = BaseDal.Db.Queryable<Dt_StockInfoDetail>()
+                    .Where(sd => sd.Barcode == detail.Barcode)
+                    .First();
+
+                if (stockDetail == null || stockDetail.StockId <= 0)
+                {
+                    detail.Pallet = string.Empty;
+                    continue;
+                }
+
+                var stock = BaseDal.Db.Queryable<Dt_StockInfo>()
+                    .Where(s => s.Id == stockDetail.StockId)
+                    .First();
+
+                detail.Pallet = stock == null ? string.Empty : stock.PalletCode;
+            }
 
             return new PageGridData<Dt_InboundOrderDetail>(totalCount, data);
         }

--
Gitblit v1.9.3