From d82de9beedf9a92782237f10e5561c4be46797a4 Mon Sep 17 00:00:00 2001
From: cnf <3200815559@qq.com>
Date: 星期六, 30 八月 2025 14:36:47 +0800
Subject: [PATCH] 加调用

---
 WebApi/Gs.Warehouse/Services/MesDepotsManager.cs |   96 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 93 insertions(+), 3 deletions(-)

diff --git a/WebApi/Gs.Warehouse/Services/MesDepotsManager.cs b/WebApi/Gs.Warehouse/Services/MesDepotsManager.cs
index 863f42c..de7b05d 100644
--- a/WebApi/Gs.Warehouse/Services/MesDepotsManager.cs
+++ b/WebApi/Gs.Warehouse/Services/MesDepotsManager.cs
@@ -8,6 +8,7 @@
 using Gs.Toolbox.ApiCore.Group;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Logging;
 using Newtonsoft.Json.Linq;
 using NPOI.SS.Formula.Functions;
 using SqlSugar;
@@ -40,8 +41,7 @@
         try
         {
             var _sbWhere = new StringBuilder(" 1=1" + query.keyWhere);
-            var _sbBy =
-                new StringBuilder(query.sortName + " " + query.sortOrder);
+            var _sbBy = new StringBuilder(query.sortName + " " + query.sortOrder);
             var totalCount = 0;
             var itemsList = Db.Queryable<MesDepots, SysOrganization, MesStaff, MesCustomer, MesSupplier, SysDepartment>(
                     (a, Org, c, d, f, g) => new object[]
@@ -83,6 +83,96 @@
         {
             return ReturnDto<PageList<MesDepots>>.QuickReturn(pageList,
                 ReturnCode.Default, ex.Message);
+        }
+    }
+
+    /// <summary>
+    ///     鏌ヨ鍒楄〃锛屾敮鎸佸垎椤�
+    /// </summary>
+    /// <param name="query"></param>
+    /// <returns></returns>
+    [RequestMethod(RequestMethods.POST)]
+    public ReturnDto<PageList<MesDepots>> GetListPage3(PageQuery query)
+    {
+        var pageList = new PageList<MesDepots>();
+        try
+        {
+            // 鏋勫缓鏌ヨ鏉′欢
+            var whereClause = "1=1" + (string.IsNullOrEmpty(query.keyWhere) ? "" : query.keyWhere);
+            var orderBy = $"{query.sortName ?? "DepotCode"} {query.sortOrder ?? "ASC"}";
+            var totalCount = 0;
+
+            // 浣跨敤鏇存竻鏅扮殑鏌ヨ璇硶
+            var queryable = Db.Queryable<MesDepots>()
+                .LeftJoin<SysOrganization>((a, Org) => a.FSubsidiary == Org.Fid)
+                .LeftJoin<MesStaff>((a, c) => a.CreateBy == c.Id.ToString())
+                .LeftJoin<MesCustomer>((a, d) => d.Id.ToString() == a.ClientId.ToString())
+                .LeftJoin<MesSupplier>((a, f) => f.Id.ToString() == a.SuppLierId.ToString())
+                .LeftJoin<SysDepartment>((a, g) => g.Id.ToString() == a.department.ToString())
+                .LeftJoin<MesItems>((a, h) => h.DepotCode.ToString() == a.DepotId.ToString())
+                .Where(whereClause)
+                .GroupBy(a => new {
+                    a.Guid,
+                    a.DepotCode,
+                    a.DepotName,
+                    a.DepotId,
+                    a.FSubsidiary,
+                    a.CreateBy,
+                    a.ClientId,
+                    a.SuppLierId,
+                    a.department,
+                    a.IsNg,
+                    a.DocumentStatus
+                })
+                .OrderBy(orderBy);
+
+            // 浣跨敤鏇村畨鍏ㄧ殑鏄犲皠鏂瑰紡
+            var itemsList = queryable.Select<MesDepots>(a => new MesDepots
+            {
+                Guid = a.Guid,
+                DepotCode = a.DepotCode,
+                DepotName = a.DepotName,
+                DepotId = a.DepotId,
+                FSubsidiary = SqlFunc.Subqueryable<SysOrganization>()
+                    .Where(org => org.Fid == a.FSubsidiary)
+                    .Select(org => "(" + org.FNumber + ")" + org.Name),
+                OrgName = SqlFunc.Subqueryable<SysOrganization>()
+                    .Where(org => org.Fid == a.FSubsidiary)
+                    .Select(org => org.Name),
+                OrgId = SqlFunc.Subqueryable<SysOrganization>()
+                    .Where(org => org.Fid == a.FSubsidiary)
+                    .Select(org => org.FNumber),
+                CreateBy = SqlFunc.Subqueryable<MesStaff>()
+                    .Where(staff => staff.Id.ToString() == a.CreateBy)
+                    .Select(staff => staff.StaffName),
+                ClientId = SqlFunc.Subqueryable<MesCustomer>()
+                    .Where(cust => cust.Id.ToString() == a.ClientId)
+                    .Select(cust => cust.CustName),
+                SuppLierId = SqlFunc.Subqueryable<MesSupplier>()
+                    .Where(supp => supp.Id.ToString() == a.SuppLierId)
+                    .Select(supp => supp.SuppName),
+                department = SqlFunc.Subqueryable<SysDepartment>()
+                    .Where(dept => dept.Id.ToString() == a.department)
+                    .Select(dept => dept.Departmentname),
+                IsNg = a.IsNg + ":" + (a.IsNg == "A" ? "姝e父" : "绂佺敤"),
+                DocumentStatus = a.DocumentStatus + ":" +
+                    SqlFunc.IF(a.DocumentStatus == "Z").Return("鏆傚瓨")
+                    .ElseIF(a.DocumentStatus == "A").Return("鍒涘缓")
+                    .ElseIF(a.DocumentStatus == "B").Return("瀹℃牳涓�")
+                    .ElseIF(a.DocumentStatus == "C").Return("宸插鏍�")
+                    .ElseIF(a.DocumentStatus == "D").Return("閲嶆柊瀹℃牳")
+                    .End(a.DocumentStatus)
+            })
+            .ToPageList(query.currentPage, query.everyPageSize, ref totalCount);
+
+            pageList = new PageList<MesDepots>(itemsList, totalCount, query.everyPageSize);
+            return ReturnDto<PageList<MesDepots>>.QuickReturn(pageList, ReturnCode.Success, "璇诲彇鎴愬姛");
+        }
+        catch (Exception ex)
+        {
+           
+            return ReturnDto<PageList<MesDepots>>.QuickReturn(pageList,
+                ReturnCode.Default, $"绯荤粺閿欒: {ex.Message}");
         }
     }
 
@@ -185,7 +275,7 @@
         }
         m.IsNg = m.IsNg + ":" + (m.IsNg == "A" ? "姝e父" : "绂佺敤");
         var lst = new MesDepotSectionsManager();
-        m.list = lst.GetList(it => it.DepotGuid == m.Guid).OrderBy(it => it.DepotSectionCode).ToList();
+        m.list = lst.GetList(it => it.DepotGuid == m.Guid).OrderBy(it => it.Xh).ToList();
         if (m != null)
             return ReturnDto<MesDepots>.QuickReturn(m, ReturnCode.Success, "璇诲彇鎴愬姛锛�");
         return ReturnDto<MesDepots>.QuickReturn(m, ReturnCode.Default, "璇诲彇澶辫触锛�");

--
Gitblit v1.9.3