From c62655030c6b61311e29c2915d895c81c7c16762 Mon Sep 17 00:00:00 2001
From: hao <1836460075@qq.com>
Date: 星期五, 28 十一月 2025 13:33:37 +0800
Subject: [PATCH] 分布式调拨防呆

---
 StandardInterface/MES.Service/service/DbckaManager.cs |   35 ++++++++++++++++++++++-------------
 1 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/StandardInterface/MES.Service/service/DbckaManager.cs b/StandardInterface/MES.Service/service/DbckaManager.cs
index 7bfdc3a..bee653a 100644
--- a/StandardInterface/MES.Service/service/DbckaManager.cs
+++ b/StandardInterface/MES.Service/service/DbckaManager.cs
@@ -10,7 +10,7 @@
 
 namespace MES.Service.service
 {
-    public class DbckaManager : Repository<MesInvItemDbsq>
+    public class DbckaManager : Repository<MesInvItemDbsq2>
     {
         public bool SaveList(List<ERPDBCK> list)
         {
@@ -39,9 +39,9 @@
             }) > 0;
         }
 
-        private MesInvItemDbsq MapErpToMesHead(ErpDBCKA dto)
+        private MesInvItemDbsq2 MapErpToMesHead(ErpDBCKA dto)
         {
-            var entity = new MesInvItemDbsq
+            var entity = new MesInvItemDbsq2
             {
                 BillNo = dto.billno,
                 Djlx = dto.dj_lx,
@@ -66,7 +66,7 @@
             //    var single = base.GetSingle(it => it.Erpid == entity.Erpid);
             /* if (single != null && single.Id.HasValue)
                  entity.Id = single.Id.Value;*/
-            var single = Db.Queryable<MesInvItemDbsq>()
+            var single = Db.Queryable<MesInvItemDbsq2>()
                .Where(it => it.Erpid == entity.Erpid)
                .First();
             if (single != null)
@@ -76,13 +76,13 @@
         }
 
 
-        private List<MesInvItemDbsqItems> MapErpDbckbToDbckb(List<ErpDBCKB> list)
+        private List<MesInvItemDbsqItems2> MapErpDbckbToDbckb(List<ErpDBCKB> list)
         {
-            var result = new List<MesInvItemDbsqItems>();
+            var result = new List<MesInvItemDbsqItems2>();
 
             foreach (var dto in list)
             {
-                var item = new MesInvItemDbsqItems
+                var item = new MesInvItemDbsqItems2
                 {
                     ItemId = Convert.ToDecimal(dto.itemid),
                     ItemUnit = Convert.ToDecimal(dto.unit),
@@ -99,7 +99,7 @@
                    
                 };
 
-                var existing = Db.Queryable<MesInvItemDbsqItems>().Where(s => s.Erpid == item.Erpid).Single();
+                var existing = Db.Queryable<MesInvItemDbsqItems2>().Where(s => s.Erpid == item.Erpid).Single();
                 if (existing != null) item.Id = existing.Id;
 
                 result.Add(item);
@@ -108,12 +108,21 @@
             return result;
         }
 
-        private bool SaveOrUpdateData(SqlSugarScope db, MesInvItemDbsq head, List<MesInvItemDbsqItems> details)
-        {
+        private bool SaveOrUpdateData(SqlSugarScope db, MesInvItemDbsq2 head, List<MesInvItemDbsqItems2> details)
+        { 
+            // 1. 鏍¢獙鏄惁瀛樺湪璋冩嫧璁板綍锛圡esInvItemMoves锛�
+            var hasMaterialOut = db.Queryable<MesInvItemMoves>()
+                                   .Any(x => x.WomdaahbNo == head.BillNo);
+
+            if (hasMaterialOut)
+            {
+                throw new Exception($"MES宸叉湁璋冩嫧璁板綍锛屽崟鍙凤細{head.BillNo}锛屼笉鑳芥洿鏂帮紒");
+            }
+
             if (head.Id != null)
                 base.DeleteById(head.Id);
 
-            db.Deleteable<MesInvItemDbsqItems>()
+            db.Deleteable<MesInvItemDbsqItems2>()
               .Where(d => d.Eid == head.Erpid)
               .ExecuteCommand();
 
@@ -135,11 +144,11 @@
             throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
         }
 
-        private bool UpdateData(SqlSugarScope db, MesInvItemDbsq head, List<MesInvItemDbsqItems> details)
+        private bool UpdateData(SqlSugarScope db, MesInvItemDbsq2 head, List<MesInvItemDbsqItems2> details)
         {
             var ids = details.Select(d => d.Id).ToArray();
             var deletedHead = base.DeleteById(head.Id);
-            var deletedDetails = db.Deleteable<MesInvItemDbsqItems>().In(ids).ExecuteCommand() > 0;
+            var deletedDetails = db.Deleteable<MesInvItemDbsqItems2>().In(ids).ExecuteCommand() > 0;
 
          
             if (deletedHead && deletedDetails) return true;

--
Gitblit v1.9.3