From d7bf5fce0a442c858d02675a2c71a8af49937ae2 Mon Sep 17 00:00:00 2001
From: hao <1836460075@qq.com>
Date: 星期三, 04 六月 2025 17:20:54 +0800
Subject: [PATCH] 分布式调拨

---
 StandardInterface/MES.Service/service/DbckaManager.cs |   74 ++++++++++++++++++++++---------------
 1 files changed, 44 insertions(+), 30 deletions(-)

diff --git a/StandardInterface/MES.Service/service/DbckaManager.cs b/StandardInterface/MES.Service/service/DbckaManager.cs
index 6cfdb48..55dde67 100644
--- a/StandardInterface/MES.Service/service/DbckaManager.cs
+++ b/StandardInterface/MES.Service/service/DbckaManager.cs
@@ -5,10 +5,11 @@
 using MES.Service.DB;
 using MES.Service.Dto.webApi;
 using MES.Service.Modes;
+using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
 
 namespace MES.Service.service
 {
-    public class DbckaManager : Repository<Dbcka>
+    public class DbckaManager : Repository<MesInvItemDbsq>
     {
         public bool SaveList(List<ERPDBCK> list)
         {
@@ -18,7 +19,7 @@
 
         public bool Save(ERPDBCK data)
         {
-            var head = MapErpDbckaToDbcka(data.erpDbcka);
+            var head = MapErpToMesHead(data.erpDbcka);
             var details = MapErpDbckbToDbckb(data.erpDbckB);
 
             return UseTransaction(db =>
@@ -37,12 +38,12 @@
             }) > 0;
         }
 
-        private Dbcka MapErpDbckaToDbcka(ErpDBCKA dto)
+        private MesInvItemDbsq MapErpToMesHead(ErpDBCKA dto)
         {
-            var entity = new Dbcka
+            var entity = new MesInvItemDbsq
             {
-                Billno = dto.billno,
-                DjLx = dto.dj_lx,
+                BillNo = dto.billno,
+                Djlx = dto.dj_lx,
                 DbLx1 = dto.db_lx1,
                 DbFx = dto.db_fx,
                 DbLx = dto.db_lx,
@@ -50,43 +51,51 @@
                 DjZt = dto.dj_zt,
                 SqBm = dto.sq_bm,
                 SqZz = dto.sq_zz,
-                SqTime = DateTime.TryParse(dto.sq_time, out var d) ? d : null,
+                SqTime = dto.sq_time,
                 DcHz = dto.dc_hz,
-                Bz = dto.bz,
-                Type = dto.type,
+                Remark = dto.bz,
                 Erpid = dto.erpid,
-                CreateDate = DateTime.Now
+                CreateDate = DateTime.Now,
+                CreateBy = "System"
             };
 
-            var single = base.GetSingle(it => it.Erpid == entity.Erpid);
-            if (single != null) entity.Id = single.Id;
+            //    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>()
+               .Where(it => it.Erpid == entity.Erpid)
+               .First();
+            if (single != null)
+                entity.Id = single.Id;
 
             return entity;
         }
 
-        private List<Dbckb> MapErpDbckbToDbckb(List<ErpDBCKB> list)
+
+        private List<MesInvItemDbsqItems> MapErpDbckbToDbckb(List<ErpDBCKB> list)
         {
-            var result = new List<Dbckb>();
+            var result = new List<MesInvItemDbsqItems>();
 
             foreach (var dto in list)
             {
-                var item = new Dbckb
+                var item = new MesInvItemDbsqItems
                 {
-                    Itemid = dto.itemid,
-                    Unit = dto.unit,
-                    Quantity = decimal.TryParse(dto.quantity, out var qty) ? qty : null,
+                    ItemId = Convert.ToDecimal(dto.itemid),
+                    ItemUnit = Convert.ToDecimal(dto.unit),
+                    SqNum = decimal.TryParse(dto.quantity, out var qty) ? qty : 0,
                     DcOrg = dto.dc_org,
                     DcDepot = dto.dc_depot,
                     DrOrg = dto.dr_org,
                     DrDepot = dto.dr_depot,
                     DcHz = dto.dc_hz,
                     DrHz = dto.dr_hz,
-                    Bz = dto.bz,
+                    Remark = dto.bz,
                     Erpid = dto.erpid,
-                    Eid = dto.eid
+                    Eid = dto.eid,
+                   
                 };
 
-                var existing = Db.Queryable<Dbckb>().Where(s => s.Erpid == item.Erpid).Single();
+                var existing = Db.Queryable<MesInvItemDbsqItems>().Where(s => s.Erpid == item.Erpid).Single();
                 if (existing != null) item.Id = existing.Id;
 
                 result.Add(item);
@@ -95,37 +104,42 @@
             return result;
         }
 
-        private bool SaveOrUpdateData(SqlSugarScope db, Dbcka head, List<Dbckb> details)
+        private bool SaveOrUpdateData(SqlSugarScope db, MesInvItemDbsq head, List<MesInvItemDbsqItems> details)
         {
             if (head.Id != null)
                 base.DeleteById(head.Id);
 
-            db.Deleteable<Dbckb>()
+            db.Deleteable<MesInvItemDbsqItems>()
               .Where(d => d.Eid == head.Erpid)
               .ExecuteCommand();
 
             var insertedHead = db.Insertable(head)
                 .IgnoreColumns(true)
-                .ExecuteReturnEntity();
+                .ExecuteReturnIdentity();
+            if (insertedHead <= 0)
+                throw new Exception("涓昏〃鎻掑叆澶辫触锛屾湭杩斿洖ID");
 
-            foreach (var item in details)
-                item.Pid = Convert.ToDecimal(insertedHead.Id);
+
 
             var success = db.Insertable(details)
                 .PageSize(10)
                 .IgnoreColumnsNull()
                 .ExecuteCommand() > 0;
 
-            return insertedHead.Id != null && success;
+            
+            if (insertedHead >= 0 && success) return true;
+            throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
         }
 
-        private bool UpdateData(SqlSugarScope db, Dbcka head, List<Dbckb> details)
+        private bool UpdateData(SqlSugarScope db, MesInvItemDbsq head, List<MesInvItemDbsqItems> details)
         {
             var ids = details.Select(d => d.Id).ToArray();
             var deletedHead = base.DeleteById(head.Id);
-            var deletedDetails = db.Deleteable<Dbckb>().In(ids).ExecuteCommand() > 0;
+            var deletedDetails = db.Deleteable<MesInvItemDbsqItems>().In(ids).ExecuteCommand() > 0;
 
-            return deletedHead && deletedDetails;
+         
+            if (deletedHead && deletedDetails) return true;
+            throw new NotImplementedException("鏇存柊澶辫触");
         }
     }
 }

--
Gitblit v1.9.3