From a9a3f943efb083de8ed88b293897886b3ef612a2 Mon Sep 17 00:00:00 2001
From: helongyang <647556386@qq.com>
Date: 星期一, 11 八月 2025 17:37:09 +0800
Subject: [PATCH] 功能增添优化

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs |   56 +++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 49 insertions(+), 7 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs"
index 1e593eb..03267dc 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/PurchaseOrderService.cs"
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing SqlSugar;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
@@ -35,6 +36,42 @@
             _basicRepository = basicRepository;
             _supplierInfoRepository = supplierInfoRepository;
             _materielInfoRepository = materielInfoRepository;
+        }
+
+        public override PageGridData<Dt_PurchaseOrder> GetPageData(PageDataOptions options)
+        {
+            PageGridData<Dt_PurchaseOrder> pageGridData = base.GetPageData(options);
+
+            ISugarQueryable<Dt_PurchaseOrder> sugarQueryable1 = BaseDal.Db.Queryable<Dt_PurchaseOrder>().Includes(x => x.Details);
+            if (!string.IsNullOrEmpty(options.Wheres))
+            {
+
+                List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>();
+                int totalCount = 0;
+                if (searchParametersList.Count > 0)
+                {
+                    {
+                        SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_PurchaseOrderDetail.MaterielCode).FirstLetterToLower());
+                        if (searchParameters != null)
+                        {
+                            sugarQueryable1 = sugarQueryable1.Where(x => x.Details.Any(v => v.MaterielCode.Contains(searchParameters.Value)));
+                            List<Dt_PurchaseOrder> dataList = sugarQueryable1.ToPageList(options.Page, options.Rows, ref totalCount);
+                            return new PageGridData<Dt_PurchaseOrder>(totalCount, dataList);
+                        }
+                    }
+
+                    {
+                        SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_PurchaseOrderDetail.WarehouseId).FirstLetterToLower());
+                        if (searchParameters != null && int.TryParse(searchParameters.Value, out int warehouseId))
+                        {
+                            sugarQueryable1 = sugarQueryable1.Where(x =>x.Details.Any(v => v.WarehouseId == warehouseId));
+                            List<Dt_PurchaseOrder> dataList = sugarQueryable1.ToPageList(options.Page, options.Rows, ref totalCount);
+                            return new PageGridData<Dt_PurchaseOrder>(totalCount, dataList);
+                        }
+                    }
+                }
+            }
+            return pageGridData;
         }
         public WebResponseContent GetPurchaseOrderInfo(string purchaseOrderNo)
         {
@@ -98,6 +135,8 @@
                     Dt_PurchaseOrderDetail purchaseOrderDetail = new Dt_PurchaseOrderDetail()
                     {
                         MaterielCode = item.MCode,
+                        MaterielName = materielInfo.MaterielName,
+                        MaterielSpec = materielInfo.MaterielSpec,
                         PurchaseDetailQuantity = item.Qty,
                         PurchaseDetailReceiveQty = 0,
                         PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt(),
@@ -133,7 +172,7 @@
         {
             try
             {
-                Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().First(x => x.PurchaseOrderNo == model.OrderNo);
+                Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == model.OrderNo).Includes(x => x.Details).First();
                 if (purchaseOrder == null)
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒伴噰璐崟淇℃伅");
@@ -225,7 +264,7 @@
         {
             try
             {
-                Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().First(x => x.PurchaseOrderNo == model.OrderNo);
+                Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == model.OrderNo).Includes(x => x.Details).First();
                 if (purchaseOrder == null)
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒伴噰璐崟淇℃伅");
@@ -247,7 +286,7 @@
         {
             try
             {
-                Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().First(x => x.PurchaseOrderNo == model.OrderNo);
+                Dt_PurchaseOrder purchaseOrder = Db.Queryable<Dt_PurchaseOrder>().Where(x=>x.PurchaseOrderNo== model.OrderNo).Includes(x=>x.Details).First();
                 if (purchaseOrder == null)
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒伴噰璐崟淇℃伅");
@@ -256,12 +295,15 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒伴噰璐崟鏄庣粏淇℃伅");
                 }
-
+                purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Closed.ObjToInt();
                 _unitOfWorkManage.BeginTran();
-                BaseDal.DeleteAndMoveIntoHty(purchaseOrder, OperateTypeEnum.鍏抽棴);
+                BaseDal.UpdateData(purchaseOrder);
+                //BaseDal.DeleteAndMoveIntoHty(purchaseOrder, OperateTypeEnum.鍏抽棴);
                 foreach (var item in purchaseOrder.Details)
                 {
-                    _purchaseOrderDetailRepository.DeleteAndMoveIntoHty(item, OperateTypeEnum.鍏抽棴);
+                    item.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Closed.ObjToInt();
+                    //_purchaseOrderDetailRepository.DeleteAndMoveIntoHty(item, OperateTypeEnum.鍏抽棴);
+                    _purchaseOrderDetailRepository.UpdateData(item);
                 }
                 _unitOfWorkManage.CommitTran();
                 return WebResponseContent.Instance.OK();

--
Gitblit v1.9.3