From 74ab9465837f8a6f9eae854059e9783eff24e173 Mon Sep 17 00:00:00 2001
From: sjz <1240968267@qq.com>
Date: 星期一, 14 七月 2025 18:06:24 +0800
Subject: [PATCH] 多组织修改

---
 MES.Service/service/BasicData/SysDepartmentManager.cs |  164 ++++++++++++++++++++++--------------------------------
 1 files changed, 68 insertions(+), 96 deletions(-)

diff --git a/MES.Service/service/BasicData/SysDepartmentManager.cs b/MES.Service/service/BasicData/SysDepartmentManager.cs
index 21efa39..23ba63f 100644
--- a/MES.Service/service/BasicData/SysDepartmentManager.cs
+++ b/MES.Service/service/BasicData/SysDepartmentManager.cs
@@ -1,4 +1,5 @@
-锘縰sing MES.Service.DB;
+锘縰sing Castle.Core.Resource;
+using MES.Service.DB;
 using MES.Service.Dto.webApi;
 using MES.Service.Modes;
 using SqlSugar;
@@ -32,7 +33,7 @@
                         return 1;
                     break;
                 case "3":
-                    if (DeleteDepartment(db, entity.Id)) // 鍒犻櫎閮ㄩ棬
+                    if (UpdateDepartmentStatus(db, entity.Id, "B")) // 绂佺敤閮ㄩ棬
                         return 1;
                     break;
                 case "4":
@@ -40,8 +41,7 @@
                         return 1;
                     break;
                 default:
-                    throw new ArgumentNullException(
-                        $"type娌℃湁{department.Type}杩欎釜绫诲瀷鐨勫弬鏁�");
+                    throw new ArgumentNullException($"type娌℃湁{department.Type}杩欎釜绫诲瀷鐨勫弬鏁�");
             }
 
             throw new NotImplementedException("鎿嶄綔澶辫触");
@@ -49,59 +49,56 @@
     }
 
     // 鏇存柊閮ㄩ棬鐘舵�佺殑鏂规硶
-    private bool UpdateDepartmentStatus(SqlSugarScope db, decimal departmentId,
-        string status)
+    private bool UpdateDepartmentStatus(SqlSugarScope db, decimal departmentId,string status)
     {
-        var result = db.Updateable<SysDepartment>()
-            .SetColumns(s => s.Depextr4 == status)
-            .Where(s => s.Id == departmentId).ExecuteCommand();
-
-        if (result > 0)
-            return true;
-
-        throw new NotImplementedException(status == "A" ? "鍚敤澶辫触" : "绂佺敤澶辫触");
+        var result = db.Updateable<SysDepartment>().SetColumns(s => s.Depextr4 == status).Where(s => s.Id == departmentId).ExecuteCommand();
+        return true;
     }
 
     // 鎻掑叆鏂伴儴闂ㄧ殑鏂规硶
     private bool InsertDepartment(SqlSugarScope db, SysDepartment entity)
     {
-        var insert = db.Insertable(entity).ExecuteCommand();
-        if (insert > 0)
-            return true;
-
-        throw new NotImplementedException("鎻掑叆澶辫触");
-    }
-
-    // 鍒犻櫎閮ㄩ棬鐨勬柟娉�
-    private bool DeleteDepartment(SqlSugarScope db, decimal departmentId)
-    {
-        var deleteById = db.Deleteable<SysDepartment>().In(departmentId)
-            .ExecuteCommand();
-        if (deleteById > 0)
-            return true;
-
-        throw new NotImplementedException("鍒犻櫎澶辫触");
-    }
-
-    // 鎻掑叆鎴栨洿鏂伴儴闂ㄧ殑鏂规硶
-    private bool InsertOrUpdateDepartment(SqlSugarScope db,
-        SysDepartment entity)
-    {
         var exists = db.Queryable<SysDepartment>().Any(e => e.Id == entity.Id);
         if (exists)
         {
-            var update = db.Updateable(entity).ExecuteCommand();
-            if (update > 0)
-                return true;
+            var result = db.Updateable<SysDepartment>().ExecuteCommand();
+            return true;
         }
         else
         {
             var insert = db.Insertable(entity).ExecuteCommand();
             if (insert > 0)
+            {
                 return true;
+            }
+            else
+            {
+                throw new NotImplementedException("鎻掑叆澶辫触");
+            }
         }
+    }
 
-        return false;
+    // 鎻掑叆鎴栨洿鏂伴儴闂ㄧ殑鏂规硶
+    private bool InsertOrUpdateDepartment(SqlSugarScope db,SysDepartment entity)
+    {
+        var exists = db.Queryable<SysDepartment>().Any(e => e.Id == entity.Id);
+        if (exists)
+        {
+            var update = db.Updateable(entity).ExecuteCommand();
+            return true;
+        }
+        else
+        {
+            var insert = db.Insertable(entity).ExecuteCommand();
+            if (insert > 0)
+            {
+                return true;
+            }
+            else
+            {
+                return false;
+            }
+        }
     }
 
     // 灏� ErpDepartment 瀵硅薄杞崲涓� SysDepartment 瀵硅薄鐨勬柟娉�
@@ -109,14 +106,18 @@
     {
         return new SysDepartment
         {
+            Id = Convert.ToDecimal(department.Id),
             Departmentcode = department.FNumber,
             Departmentname = department.FName,
             Departmentid = Convert.ToDecimal(department.Id),
-            Id = Convert.ToDecimal(department.Id),
             Depextr1 = department.FDeptProperty,
             Depextr2 = department.FGroup,
             Depextr3 = department.FWIPStockID,
             Depextr4 = department.FForbidStatus,
+            CreateDate = DateTime.Now,
+            CreateOrg = Convert.ToDecimal(department.FCreateOrgId),
+            UseOrg = Convert.ToDecimal(department.FUseOrgId),
+            ParentId = Convert.ToDecimal(department.FParentID),
             Company = "1000",
             Factory = "1000"
         };
@@ -125,50 +126,37 @@
     // SaveList 鏂规硶鐢ㄤ簬淇濆瓨澶氫釜閮ㄩ棬璁板綍锛屾牴鎹被鍨嬫壒閲忔墽琛屼笉鍚岀殑鎿嶄綔
     public bool SaveList(List<ErpDepartment> departments)
     {
-        var list = new List<SysDepartment>();
-        departments.ForEach(s =>
-        {
-            var entity =
-                GetSysDepartment(s); // 灏� ErpDepartment 杞崲涓� SysDepartment
-            entity.Type = s.Type;
-            list.Add(entity);
-        });
+        var list = departments.Select(GetSysDepartment).ToList();
 
-        var groupBy = list.GroupBy(s => s.Type)
-            .ToDictionary(g => g.Key, g => g.ToList());
+        var groupBy = list.GroupBy(s => s.Type).ToDictionary(g => g.Key, g => g.ToList());
+
         return UseTransaction(db =>
         {
             foreach (var departmentGroup in groupBy)
                 switch (departmentGroup.Key)
                 {
                     case "0":
-                        if (!UpdateDepartmentStatusBatch(db,
-                                departmentGroup.Value, "A")) // 鎵归噺鍚敤閮ㄩ棬
+                        if (!UpdateDepartmentStatusBatch(db,departmentGroup.Value, "A")) // 鎵归噺鍚敤閮ㄩ棬
                             throw new NotImplementedException("鍚敤澶辫触");
                         break;
                     case "1":
-                        if (!UpdateDepartmentStatusBatch(db,
-                                departmentGroup.Value, "B")) // 鎵归噺绂佺敤閮ㄩ棬
+                        if (!UpdateDepartmentStatusBatch(db,departmentGroup.Value, "B")) // 鎵归噺绂佺敤閮ㄩ棬
                             throw new NotImplementedException("绂佺敤澶辫触");
                         break;
                     case "2":
-                        if (!InsertDepartmentBatch(db,
-                                departmentGroup.Value)) // 鎵归噺鎻掑叆閮ㄩ棬
+                        if (!InsertDepartmentBatch(db,departmentGroup.Value)) // 鎵归噺鎻掑叆閮ㄩ棬
                             throw new NotImplementedException("鎻掑叆澶辫触");
                         break;
                     case "3":
-                        if (!DeleteDepartmentBatch(db,
-                                departmentGroup.Value)) // 鎵归噺鍒犻櫎閮ㄩ棬
+                        if (!UpdateDepartmentStatusBatch(db, departmentGroup.Value, "B")) // 鎵归噺绂佺敤閮ㄩ棬
                             throw new NotImplementedException("鍒犻櫎澶辫触");
                         break;
                     case "4":
-                        if (!InsertOrUpdateDepartmentBatch(db,
-                                departmentGroup.Value)) // 鎵归噺鎻掑叆鎴栨洿鏂伴儴闂�
+                        if (!InsertOrUpdateDepartmentBatch(db,departmentGroup.Value)) // 鎵归噺鎻掑叆鎴栨洿鏂伴儴闂�
                             throw new NotImplementedException("鍚屾澶辫触");
                         break;
                     default:
-                        throw new ArgumentNullException(
-                            $"type娌℃湁{departmentGroup.Key}杩欎釜绫诲瀷鐨勫弬鏁�");
+                        throw new ArgumentNullException($"type娌℃湁{departmentGroup.Key}杩欎釜绫诲瀷鐨勫弬鏁�");
                 }
 
             return 1;
@@ -176,52 +164,36 @@
     }
 
     // 鎵归噺鏇存柊閮ㄩ棬鐘舵�佺殑鏂规硶
-    private bool UpdateDepartmentStatusBatch(SqlSugarScope db,
-        List<SysDepartment> departmentList, string status)
+    private bool UpdateDepartmentStatusBatch(SqlSugarScope db,List<SysDepartment> departmentList, string status)
     {
         var ids = departmentList.Select(it => it.Id).ToArray();
-        var result = db.Updateable<SysDepartment>()
-            .SetColumns(s => s.Depextr4 == status)
-            .Where(s => ids.Contains(s.Id)).ExecuteCommand();
-
-        if (result > 0)
-            return true;
-
-        throw new NotImplementedException(status == "A" ? "鍚敤澶辫触" : "绂佺敤澶辫触");
+        var result = db.Updateable<SysDepartment>().SetColumns(s => s.Depextr4 == status).Where(s => ids.Contains(s.Id)).ExecuteCommand();
+        return true;
     }
 
     // 鎵归噺鎻掑叆閮ㄩ棬鐨勬柟娉�
-    private bool InsertDepartmentBatch(SqlSugarScope db,
-        List<SysDepartment> departmentList)
+    private bool InsertDepartmentBatch(SqlSugarScope db,List<SysDepartment> departmentList)
     {
-        var insertRange = db.Insertable(departmentList).ExecuteCommand();
-        if (insertRange > 0)
-            return true;
-
-        throw new NotImplementedException("鎻掑叆澶辫触");
-    }
-
-    // 鎵归噺鍒犻櫎閮ㄩ棬鐨勬柟娉�
-    private bool DeleteDepartmentBatch(SqlSugarScope db,
-        List<SysDepartment> departmentList)
-    {
-        var ids = departmentList.Select(it => it.Id).ToArray();
-        var deleteByIds =
-            db.Deleteable<SysDepartment>().In(ids).ExecuteCommand();
-        if (deleteByIds > 0)
-            return true;
-
-        throw new NotImplementedException("鍒犻櫎澶辫触");
+        foreach (var entity in departmentList)
+        {
+            if (!InsertDepartment(db, entity))
+            {
+                return false;
+            }
+        }
+        return true;
     }
 
     // 鎵归噺鎻掑叆鎴栨洿鏂伴儴闂ㄧ殑鏂规硶
-    private bool InsertOrUpdateDepartmentBatch(SqlSugarScope db,
-        List<SysDepartment> departmentList)
+    private bool InsertOrUpdateDepartmentBatch(SqlSugarScope db,List<SysDepartment> departmentList)
     {
         foreach (var entity in departmentList)
+        {
             if (!InsertOrUpdateDepartment(db, entity))
+            {
                 return false;
-
+            }
+        }
         return true;
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3