From 302054e253f1550ee64430882786ec9a3920ec92 Mon Sep 17 00:00:00 2001
From: sjz <1240968267@qq.com>
Date: 星期六, 19 七月 2025 08:33:44 +0800
Subject: [PATCH] 优化多组织代码

---
 MES.Service/service/BasicData/MesItemsManager.cs |  211 ++++++++++++++++++++++++----------------------------
 1 files changed, 98 insertions(+), 113 deletions(-)

diff --git a/MES.Service/service/BasicData/MesItemsManager.cs b/MES.Service/service/BasicData/MesItemsManager.cs
index 019e483..f6efbc5 100644
--- a/MES.Service/service/BasicData/MesItemsManager.cs
+++ b/MES.Service/service/BasicData/MesItemsManager.cs
@@ -1,5 +1,4 @@
-锘縰sing Castle.Core.Resource;
-using MES.Service.DB;
+锘縰sing MES.Service.DB;
 using MES.Service.Dto.service;
 using MES.Service.Dto.webApi;
 using MES.Service.Modes;
@@ -11,12 +10,10 @@
 {
     public MesItems GetItemQcPrint(WarehouseQuery query)
     {
-        return Db.Queryable<MesItems>()
-            .Where(c => c.Factory == query.Factory
-                        && c.Company == query.Company
-                        && c.ItemNo == query.ItemNo).First();
+        return Db.Queryable<MesItems>().Where(c => c.Factory == query.Factory && c.Company == query.Company && c.ItemNo == query.ItemNo).First();
     }
-    
+
+
     public bool Save(ErpItems item)
     {
         var entity = GetMesItems(item);
@@ -38,7 +35,7 @@
                         return 1;
                     break;
                 case "3":
-                    if (DeleteItem(db, entity.Id))
+                    if (UpdateItemStatus(db, entity.Id, "B"))
                         return 1;
                     break;
                 case "4":
@@ -46,8 +43,7 @@
                         return 1;
                     break;
                 default:
-                    throw new ArgumentNullException(
-                        $"type娌℃湁{item.Type}杩欎釜绫诲瀷鐨勫弬鏁�");
+                    throw new ArgumentNullException($"type娌℃湁{item.Type}杩欎釜绫诲瀷鐨勫弬鏁�");
             }
 
             throw new NotImplementedException("鎿嶄綔澶辫触");
@@ -57,8 +53,7 @@
     public bool SaveList(List<ErpItems> items)
     {
         var list = items.Select(GetMesItems).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 =>
         {
@@ -78,7 +73,7 @@
                             throw new NotImplementedException("鎻掑叆澶辫触");
                         break;
                     case "3":
-                        if (!DeleteItemBatch(db, itemGroup.Value))
+                        if (!UpdateItemStatusBatch(db, itemGroup.Value, "B"))
                             throw new NotImplementedException("鍒犻櫎澶辫触");
                         break;
                     case "4":
@@ -86,115 +81,39 @@
                             throw new NotImplementedException("鍚屾澶辫触");
                         break;
                     default:
-                        throw new ArgumentNullException(
-                            $"type娌℃湁{itemGroup.Key}杩欎釜绫诲瀷鐨勫弬鏁�");
+                        throw new ArgumentNullException($"type娌℃湁{itemGroup.Key}杩欎釜绫诲瀷鐨勫弬鏁�");
                 }
 
             return 1;
         }) > 0;
     }
 
-    private bool UpdateItemStatus(SqlSugarScope db, decimal itemId,
-        string status)
+    private bool UpdateItemStatus(SqlSugarScope db, decimal itemId,string status)
     {
-        var result = db.Updateable<MesItems>()
-            .SetColumns(s => s.Fforbidstatus == status)
-            .Where(s => s.Id == itemId).ExecuteCommand();
-
-        if (result > 0)
-            return true;
-
-        throw new NotImplementedException(status == "A" ? "鍚敤澶辫触" : "绂佺敤澶辫触");
+        var result = db.Updateable<MesItems>().SetColumns(s => s.Fforbidstatus == status).Where(s => s.Id == itemId).ExecuteCommand();
+        return true;
     }
 
     private bool InsertItem(SqlSugarScope db, MesItems entity)
     {
-        var insert = db.Insertable(entity).ExecuteCommand();
-        if (insert > 0)
-            return true;
-
-        throw new NotImplementedException("鎻掑叆澶辫触");
-    }
-
-    private bool DeleteItem(SqlSugarScope db, decimal itemId)
-    {
-        var deleteById = db.Deleteable<MesItems>().In(itemId).ExecuteCommand();
-        if (deleteById > 0)
-            return true;
-
-        throw new NotImplementedException("鍒犻櫎澶辫触");
-    }
-
-    private MesItems GetMesItems(ErpItems item)
-    {
-        return new MesItems
+        var exists = db.Queryable<MesItems>().Any(e => e.Id == entity.Id);
+        if (exists)
         {
-            Id = Convert.ToDecimal(item.Id),
-            ItemNo = item.FNumber,
-            ItemName = item.FName,
-            ItemModel = item.FSpecification,
-            ItemUnit = item.FBaseUnitId,
-            Lowlimit = item.FSafeStock,
-            Highlimit = item.FMaxStock,
-            PrdPack = item.FMinPackCount,
-            DepotCode = item.FStockId,
-            Fmaterialgroup = item.FMaterialGroup,
-            Remarks = item.FDescription,
-            Ffinishreceiptoverrate = item.FFinishReceiptOverRate,
-            Fissuetype = item.FIssueType,
-            Fisbatchmanage = item.FIsBatchManage,
-            Fpurchaserid = item.FPurchaserId,
-            Fpurchaseunitid = Convert.ToDecimal(item.FPurchaseUnitId),
-            Storeunit = item.FStoreUnitID,
-            Saleunit = item.FSaleUnitId,
-            Fforbidstatus = item.FForbidStatus,
-            MaterialProperti = item.FErpClsID,
-            ProductionWorkshop = item.FWorkShopId,
-            ProduceUnit = item.FPRODUCEUNITID,
-            SubconUnit = item.FSUBCONUNITID,
-            FSubsidiary = item.FSubsidiary,
-            Fumbrella = item.Fumbrella,
-            FLOSSPERCENT  = item.FLOSSPERCENT ,
-            FMnemonicCode = item.FMnemonicCode,
-            FExpPeriod = item.FExpPeriod,
-            LastupdateDate=DateTime.Now,
-            CreateDate=DateTime.Now,
-            Company = "1000",
-            Factory = "1000"
-        };
-    }
-
-    private bool UpdateItemStatusBatch(SqlSugarScope db,
-        List<MesItems> itemList, string status)
-    {
-        var ids = itemList.Select(it => it.Id).ToArray();
-        var result = db.Updateable<MesItems>()
-            .SetColumns(s => s.Fforbidstatus == status)
-            .Where(s => ids.Contains(s.Id)).ExecuteCommand();
-
-        if (result > 0)
+            var result = db.Updateable(entity).ExecuteCommand();
             return true;
-
-        throw new NotImplementedException(status == "A" ? "鍚敤澶辫触" : "绂佺敤澶辫触");
-    }
-
-    private bool InsertItemBatch(SqlSugarScope db, List<MesItems> itemList)
-    {
-        var insertRange = db.Insertable(itemList).ExecuteCommand();
-        if (insertRange > 0)
-            return true;
-
-        throw new NotImplementedException("鎻掑叆澶辫触");
-    }
-
-    private bool DeleteItemBatch(SqlSugarScope db, List<MesItems> itemList)
-    {
-        var ids = itemList.Select(it => it.Id).ToArray();
-        var deleteByIds = db.Deleteable<MesItems>().In(ids).ExecuteCommand();
-        if (deleteByIds > 0)
-            return true;
-
-        throw new NotImplementedException("鍒犻櫎澶辫触");
+        }
+        else
+        {
+            var insert = db.Insertable(entity).ExecuteCommand();
+            if (insert > 0)
+            {
+                return true;
+            }
+            else
+            {
+                throw new NotImplementedException("鎻掑叆澶辫触");
+            }
+        }
     }
 
     private bool InsertOrUpdate(SqlSugarScope db, MesItems entity)
@@ -203,25 +122,91 @@
         if (exists)
         {
             var update = db.Updateable(entity).ExecuteCommand();
-            if (update > 0)
-                return true;
+            return true;
         }
         else
         {
             var insert = db.Insertable(entity).ExecuteCommand();
             if (insert > 0)
+            {
                 return true;
+            }
+            else
+            {
+                return false;
+            }
         }
+    }
 
-        return false;
+    private MesItems GetMesItems(ErpItems item)
+    {
+        return new MesItems
+        {
+            Id = Convert.ToDecimal(item.Id),
+            ItemId = Convert.ToDecimal(item.Id),
+            ItemNo = item.FNumber,
+            ItemName = item.FName,
+            ItemModel = item.FSpecification,
+            ItemUnit = item.FBaseUnitId,
+            Lowlimit = item.FSafeStock,
+            Highlimit = item.FMaxStock,
+            PrdPack = item.FMinPackCount,
+            DepotCode = item.FStockId,
+            Ppbom00019124 = item.PPBOM00019124,
+            Fmaterialgroup = item.FMaterialGroup,
+            Remarks = item.FDescription,
+            Ffinishreceiptoverrate = item.FFinishReceiptOverRate,
+            Fissuetype = item.FIssueType,
+            Fisbatchmanage = item.FIsBatchManage,
+            Fpurchaserid = item.FPurchaserId,
+            Fpurchaseunitid = item.FPurchaseUnitId,
+            Storeunit = item.FStoreUnitID,
+            Saleunit = item.FSaleUnitId,
+            Fforbidstatus = item.FForbidStatus,
+            MaterialProperti = item.FErpClsID,
+            ProductionWorkshop = item.FWorkShopId,
+            ProduceUnit = item.FPRODUCEUNITID,
+            SubconUnit = item.FSUBCONUNITID,
+            CreateOrg = Convert.ToDecimal(item.FCreateOrgId),
+            UseOrg = Convert.ToDecimal(item.FUseOrgId),
+            LossPercent = item.FLOSSPERCENT,
+            MnemonicCode = item.FMnemonicCode,
+            ExpPeriod = item.FExpPeriod,
+            ColorName = item.FColor,
+            CreateDate = DateTime.Now,
+            Company = "1000",
+            Factory = "1000"
+        };
+    }
+
+    private bool UpdateItemStatusBatch(SqlSugarScope db,List<MesItems> itemList, string status)
+    {
+        var ids = itemList.Select(it => it.Id).ToArray();
+        var result = db.Updateable<MesItems>().SetColumns(s => s.Fforbidstatus == status).Where(s => ids.Contains(s.Id)).ExecuteCommand();
+        return true;
+    }
+
+    private bool InsertItemBatch(SqlSugarScope db, List<MesItems> itemList)
+    {
+        foreach (var entity in itemList)
+        {
+            if (!InsertItem(db, entity))
+            {
+                return false;
+            }
+        }
+        return true;
     }
 
     private bool InsertOrUpdateBatch(SqlSugarScope db, List<MesItems> itemList)
     {
         foreach (var entity in itemList)
+        {
             if (!InsertOrUpdate(db, entity))
+            {
                 return false;
-
+            }
+        }
         return true;
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3