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 +++++---
 StandardInterface/MES.Service/Modes/MesInvItemDbsq.cs      |  215 ++++++++++++++++++++++++++
 StandardInterface/MES.Service/Modes/MesInvItemDbsqItems.cs |  151 ++++++++++++++++++
 3 files changed, 410 insertions(+), 30 deletions(-)

diff --git a/StandardInterface/MES.Service/Modes/MesInvItemDbsq.cs b/StandardInterface/MES.Service/Modes/MesInvItemDbsq.cs
new file mode 100644
index 0000000..fdd5138
--- /dev/null
+++ b/StandardInterface/MES.Service/Modes/MesInvItemDbsq.cs
@@ -0,0 +1,215 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
+namespace MES.Service.Modes
+{
+    /// <summary>
+    /// 璋冩嫧鐢宠鍗�
+    ///</summary>
+    [SugarTable("MES_INV_ITEM_DBSQ")]
+    public class MesInvItemDbsq
+    {
+        /// <summary>
+        /// SEQ_INV_ID 
+        ///</summary> 
+        [SugarColumn(ColumnName = "ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_DBSQ")]
+        //[SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
+        public decimal Id { get; set; }
+        /// <summary>
+        /// 璋冩嫧鐢宠鍗曞彿 
+        ///</summary>
+        [SugarColumn(ColumnName = "BILL_NO")]
+        public string? BillNo { get; set; }
+        /// <summary>
+        /// 绉诲叆瀛愬簱id 
+        ///</summary>
+        [SugarColumn(ColumnName = "INV_DEPOTS_ID")]
+        public decimal? InvDepotsId { get; set; }
+        /// <summary>
+        /// 绉诲叆璐т綅id 
+        ///</summary>
+        [SugarColumn(ColumnName = "INV_DEPOT_SECTIONS_ID")]
+        public decimal? InvDepotSectionsId { get; set; }
+        /// <summary>
+        /// 鍒涘缓浜� 
+        ///</summary>
+        [SugarColumn(ColumnName = "CREATE_BY")]
+        public string? CreateBy { get; set; }
+        /// <summary>
+        /// 鍒涘缓鏃堕棿 
+        ///</summary>
+        [SugarColumn(ColumnName = "CREATE_DATE")]
+        public DateTime? CreateDate { get; set; }
+        /// <summary>
+        /// 鏈�鍚庢洿鏂颁汉 
+        ///</summary>
+        [SugarColumn(ColumnName = "LASTUPDATE_BY")]
+        public string? LastupdateBy { get; set; }
+        /// <summary>
+        /// 鏈�鍚庢洿鏂版椂闂� 
+        ///</summary>
+        [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
+        public DateTime? LastupdateDate { get; set; }
+        /// <summary>
+        /// 鐘舵�亅0-鍒跺崟1-瀹℃牳2-杩囪处 
+        ///</summary>
+        [SugarColumn(ColumnName = "STATUS")]
+        public decimal? Status { get; set; }
+        /// <summary>
+        /// 澶囨敞 
+        ///</summary>
+        [SugarColumn(ColumnName = "REMARK")]
+        public string? Remark { get; set; }
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷ID 
+        ///</summary>
+        [SugarColumn(ColumnName = "BILL_TYPE_ID")]
+        public decimal? BillTypeId { get; set; }
+        /// <summary>
+        /// 浜嬪姟绫诲瀷ID 
+        ///</summary>
+        [SugarColumn(ColumnName = "TRANSACTION_ID")]
+        public decimal? TransactionId { get; set; }
+        /// <summary>
+        /// 瀹℃牳浜� 
+        ///</summary>
+        [SugarColumn(ColumnName = "CHECKUSER")]
+        public string? Checkuser { get; set; }
+        /// <summary>
+        /// 瀹℃牳鏃ユ湡 
+        ///</summary>
+        [SugarColumn(ColumnName = "CHECKDATE")]
+        public DateTime? Checkdate { get; set; }
+        /// <summary>
+        /// 绉诲叆瀛愬簱code 
+        ///</summary>
+        [SugarColumn(ColumnName = "INV_DEPOTS_CODE")]
+        public string? InvDepotsCode { get; set; }
+        /// <summary>
+        /// 绉诲叆璐т綅code 
+        ///</summary>
+        [SugarColumn(ColumnName = "INV_DEPOT_SECTIONS_CODE")]
+        public string? InvDepotSectionsCode { get; set; }
+        /// <summary>
+        /// 浜嬪姟绫诲瀷缂栫爜 
+        ///</summary>
+        [SugarColumn(ColumnName = "TRANSACTION_NO")]
+        public decimal? TransactionNo { get; set; }
+        /// <summary>
+        /// 绉诲嚭瀛愬簱code 
+        ///</summary>
+        [SugarColumn(ColumnName = "FROM_DEPOTS_CODE")]
+        public string? FromDepotsCode { get; set; }
+        /// <summary>
+        /// 宸ュ巶缂栫爜 
+        ///</summary>
+        [SugarColumn(ColumnName = "FACTORY_CODE")]
+        public string? FactoryCode { get; set; }
+        /// <summary>
+        /// SAP杩斿洖鍗曟嵁 
+        ///</summary>
+        [SugarColumn(ColumnName = "SAPNO")]
+        public string? Sapno { get; set; }
+        /// <summary>
+        /// 宸插洖鍐橲AP 
+        ///</summary>
+        [SugarColumn(ColumnName = "SAPSTATUS")]
+        public short? Sapstatus { get; set; }
+        /// <summary>
+        /// SAP杩斿洖骞翠唤 
+        ///</summary>
+        [SugarColumn(ColumnName = "SAPYEAR")]
+        public short? Sapyear { get; set; }
+        /// <summary>
+        /// SAP杩斿洖淇℃伅 
+        ///</summary>
+        [SugarColumn(ColumnName = "SAPTEXT")]
+        public string? Saptext { get; set; }
+        /// <summary>
+        /// 鍒嗗巶缂栫爜 
+        ///</summary>
+        [SugarColumn(ColumnName = "FACTORY")]
+        public string? Factory { get; set; }
+        /// <summary>
+        /// 鍏徃浠g爜 
+        ///</summary>
+        [SugarColumn(ColumnName = "COMPANY")]
+        public string? Company { get; set; }
+        /// <summary>
+        /// 鏄惁鎺ㄩ�丒RP1-鏄紝2-鍚� 
+        ///</summary>
+        [SugarColumn(ColumnName = "TS")]
+        public decimal? Ts { get; set; }
+        /// <summary>
+        /// 0鏈皟鎷�1宸茶皟鎷� 
+        ///</summary>
+        [SugarColumn(ColumnName = "DB_STATUS")]
+        public string? DbStatus { get; set; }
+        /// <summary>
+        /// 璋冨嚭缁勭粐 
+        ///</summary>
+        [SugarColumn(ColumnName = "FSTOCKOUTORGID")]
+        public decimal? Fstockoutorgid { get; set; }
+        /// <summary>
+        /// 璋冨叆缁勭粐 
+        ///</summary>
+        [SugarColumn(ColumnName = "FSTOCKORGID")]
+        public decimal? Fstockorgid { get; set; }
+        /// <summary>
+        /// 鍗曟嵁绫诲瀷 
+        ///</summary>
+        [SugarColumn(ColumnName = "DJ_LX")]
+        public string? Djlx { get; set; }
+        /// <summary>
+        /// 璋冩嫧绫诲瀷 
+        ///</summary>
+        [SugarColumn(ColumnName = "DB_LX1")]
+        public string? DbLx1 { get; set; }
+        /// <summary>
+        /// 璋冩嫧鏂瑰悜 
+        ///</summary>
+        [SugarColumn(ColumnName = "DB_FX")]
+        public string? DbFx { get; set; }
+        /// <summary>
+        /// 璋冩嫧绫诲瀷 
+        ///</summary>
+        [SugarColumn(ColumnName = "DB_LX")]
+        public string? DbLx { get; set; }
+        /// <summary>
+        /// 涓氬姟绫诲瀷 
+        ///</summary>
+        [SugarColumn(ColumnName = "YW_LX")]
+        public string? YwLx { get; set; }
+        /// <summary>
+        /// 鍗曟嵁鐘舵�� 
+        ///</summary>
+        [SugarColumn(ColumnName = "DJ_ZT")]
+        public string? DjZt { get; set; }
+        /// <summary>
+        /// 鐢宠閮ㄩ棬 
+        ///</summary>
+        [SugarColumn(ColumnName = "SQ_BM")]
+        public string? SqBm { get; set; }
+        /// <summary>
+        /// 鐢宠缁勭粐 
+        ///</summary>
+        [SugarColumn(ColumnName = "SQ_ZZ")]
+        public string? SqZz { get; set; }
+        /// <summary>
+        /// 鐢宠鏃ユ湡 
+        ///</summary>
+        [SugarColumn(ColumnName = "SQ_TIME")]
+        public string? SqTime { get; set; }
+        /// <summary>
+        /// 璋冨嚭璐т富绫诲瀷 
+        ///</summary>
+        [SugarColumn(ColumnName = "DC_HZ")]
+        public string? DcHz { get; set; }
+        /// <summary>
+        ///  
+        ///</summary>
+        [SugarColumn(ColumnName = "ERPID")]
+        public string? Erpid { get; set; }
+    }
+}
diff --git a/StandardInterface/MES.Service/Modes/MesInvItemDbsqItems.cs b/StandardInterface/MES.Service/Modes/MesInvItemDbsqItems.cs
new file mode 100644
index 0000000..29e386b
--- /dev/null
+++ b/StandardInterface/MES.Service/Modes/MesInvItemDbsqItems.cs
@@ -0,0 +1,151 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
+namespace MES.Service.Modes
+{
+    /// <summary>
+    /// 璋冩嫧鐢宠鍗曟槑缁嗚〃
+    ///</summary>
+    [SugarTable("MES_INV_ITEM_DBSQ_ITEMS")]
+    public class MesInvItemDbsqItems
+    {
+        /// <summary>
+        /// SEQ_MOVE_DETAIL 
+        ///</summary>
+
+        [SugarColumn(ColumnName = "ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_DBSQ_DETAIL")]
+        //[SugarColumn(ColumnName = "ID", IsPrimaryKey = true)]
+        public decimal Id { get; set; }
+        /// <summary>
+        /// 涓昏〃id 
+        ///</summary>
+        [SugarColumn(ColumnName = "ITEM_MOVE_ID")]
+        public decimal? ItemMoveId { get; set; }
+        /// <summary>
+        /// 鐗╂枡鍐呯爜 
+        ///</summary>
+        [SugarColumn(ColumnName = "ITEM_ID")]
+        public decimal? ItemId { get; set; }
+        /// <summary>
+        /// 鐗╂枡缂栫爜 
+        ///</summary>
+        [SugarColumn(ColumnName = "ITEM_NO")]
+        public string? ItemNo { get; set; }
+        /// <summary>
+        /// 鐢宠鏁伴噺 
+        ///</summary>
+        [SugarColumn(ColumnName = "SQ_NUM")]
+        public decimal? SqNum { get; set; }
+        /// <summary>
+        /// 璋冨嚭鏁伴噺 
+        ///</summary>
+        [SugarColumn(ColumnName = "DC_NUM")]
+        public decimal? DcNum { get; set; }
+        /// <summary>
+        /// 璋冨叆鏁伴噺 
+        ///</summary>
+        [SugarColumn(ColumnName = "DR_NUM")]
+        public decimal? DrNum { get; set; }
+        /// <summary>
+        /// 褰撳墠搴撳瓨鏁� 
+        ///</summary>
+        [SugarColumn(ColumnName = "KC")]
+        public decimal? Kc { get; set; }
+        /// <summary>
+        /// 澶囨敞 
+        ///</summary>
+        [SugarColumn(ColumnName = "REMARK")]
+        public string? Remark { get; set; }
+        /// <summary>
+        /// 椤规 
+        ///</summary>
+        [SugarColumn(ColumnName = "LINE_NO")]
+        public decimal? LineNo { get; set; }
+        /// <summary>
+        /// 璋冩嫧鐢宠鍗曞彿 
+        ///</summary>
+        [SugarColumn(ColumnName = "BILL_NO")]
+        public string? BillNo { get; set; }
+        /// <summary>
+        /// 璋冨嚭鐘舵�� 
+        ///</summary>
+        [SugarColumn(ColumnName = "MOVE_OUT")]
+        public decimal? MoveOut { get; set; }
+        /// <summary>
+        /// 璋冨叆鐘舵�� 
+        ///</summary>
+        [SugarColumn(ColumnName = "MOVE_IN")]
+        public decimal? MoveIn { get; set; }
+        /// <summary>
+        /// 鍒涘缓浜� 
+        ///</summary>
+        [SugarColumn(ColumnName = "CREATE_BY")]
+        public string? CreateBy { get; set; }
+        /// <summary>
+        /// 鍒涘缓鏃堕棿 
+        ///</summary>
+        [SugarColumn(ColumnName = "CREATE_DATE")]
+        public DateTime? CreateDate { get; set; }
+        /// <summary>
+        /// 鏈�鍚庢洿鏂颁汉 
+        ///</summary>
+        [SugarColumn(ColumnName = "LASTUPDATE_BY")]
+        public string? LastupdateBy { get; set; }
+        /// <summary>
+        /// 鏈�鍚庢洿鏂版椂闂� 
+        ///</summary>
+        [SugarColumn(ColumnName = "LASTUPDATE_DATE")]
+        public DateTime? LastupdateDate { get; set; }
+        /// <summary>
+        /// 鍗曚綅 
+        ///</summary>
+        [SugarColumn(ColumnName = "ITEM_UNIT")]
+        public decimal? ItemUnit { get; set; }
+        /// <summary>
+        /// 鏄惁鍚屾ERP 
+        ///</summary>
+        [SugarColumn(ColumnName = "IS_TB")]
+        public decimal? IsTb { get; set; }
+        /// <summary>
+        /// 璋冨嚭缁勭粐 
+        ///</summary>
+        [SugarColumn(ColumnName = "DC_ORG")]
+        public string? DcOrg { get; set; }
+        /// <summary>
+        /// 璋冨嚭浠撳簱 
+        ///</summary>
+        [SugarColumn(ColumnName = "DC_DEPOT")]
+        public string? DcDepot { get; set; }
+        /// <summary>
+        /// 璋冨叆缁勭粐 
+        ///</summary>
+        [SugarColumn(ColumnName = "DR_ORG")]
+        public string? DrOrg { get; set; }
+        /// <summary>
+        /// 璋冨叆浠撳簱 
+        ///</summary>
+        [SugarColumn(ColumnName = "DR_DEPOT")]
+        public string? DrDepot { get; set; }
+        /// <summary>
+        /// 璋冨嚭璐т富 
+        ///</summary>
+        [SugarColumn(ColumnName = "DC_HZ")]
+        public string? DcHz { get; set; }
+        /// <summary>
+        /// 璋冨叆璐т富 
+        ///</summary>
+        [SugarColumn(ColumnName = "DR_HZ")]
+        public string? DrHz { get; set; }
+        /// <summary>
+        /// erpid 
+        ///</summary>
+        [SugarColumn(ColumnName = "ERPID")]
+        public string? Erpid { get; set; }
+        /// <summary>
+        /// erp澶磇d 
+        ///</summary>
+        [SugarColumn(ColumnName = "EID")]
+        public string? Eid { get; set; }
+    }
+}
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