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