From fa9f16425917cbf3ea5524120dbe004f091745e3 Mon Sep 17 00:00:00 2001 From: zjh <2207896513@qq.com> Date: 星期三, 23 七月 2025 08:37:07 +0800 Subject: [PATCH] 采购订单接口添加孙表,存储关于采购订单计划行的数据 --- StandardPda/MES.Service/Modes/ErpLineDetailsDB.cs | 71 +++++++++++++++++ StandardPda/MES.Service/Dto/webApi/RohIn.cs | 5 + StandardPda/MES.Service/Dto/webApi/ErpLineDetails.cs | 56 ++++++++++++++ StandardPda/MES.Service/service/BasicData/MesRohInManager.cs | 52 ++++++++++++- 4 files changed, 180 insertions(+), 4 deletions(-) diff --git a/StandardPda/MES.Service/Dto/webApi/ErpLineDetails.cs b/StandardPda/MES.Service/Dto/webApi/ErpLineDetails.cs new file mode 100644 index 0000000..1474ad0 --- /dev/null +++ b/StandardPda/MES.Service/Dto/webApi/ErpLineDetails.cs @@ -0,0 +1,56 @@ +锘縰sing System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace MES.Service.Dto.webApi; + +public class ErpLineDetails +{ + /// <summary> + /// 浠庤〃id + /// </summary> + public string Mid { get; set; } + /// <summary> + /// 涓昏〃erpid + /// </summary> + public string Eid { get; set; } + + /// <summary> + /// 瀛愯鍙凤紙璁㈠崟椤逛笅鐨勭粏鍒嗗簭鍙凤紝閫氬父涓庣埗椤瑰叧鑱旓級 + /// </summary> + + public string FlineNo { get; set; } + + /// <summary> + /// 鏂欏搧ID锛堝叧鑱旂墿鏂欎富鏁版嵁琛ㄧ殑澶栭敭锛� + /// </summary> + + public string FMaterialId { get; set; } + + /// <summary> + /// 闇�姹傛暟閲忥紙涓氬姟閮ㄩ棬鎻愬嚭鐨勫師濮嬮渶姹傞噺锛� + /// </summary> + public decimal? ReqQty { get; set; } + + /// <summary> + /// 璁″垝鍒拌揣鏁伴噺锛堢粡MRP杩愮畻鍚庣殑璁″垝閲忥級 + /// </summary> + public decimal? PlannedQty { get; set; } + + /// <summary> + /// 渚涘簲鍟嗙‘璁ゅ埌璐ф暟閲忥紙渚涘簲鍟嗘壙璇虹殑浜よ揣閲忥級 + /// </summary> + public decimal? SupplierConfirmsQty { get; set; } + + /// <summary> + /// 瑕佹眰浜よ揣鏃ユ湡锛堥噰璐敵璇锋垨璁㈠崟瑕佹眰鐨勫埌璐ф棩鏈燂級 + /// 娉ㄦ剰锛氭暟鎹簱瀛樺偍涓哄瓧绗︿覆鏍煎紡锛岄渶鏍规嵁涓氬姟鏍煎紡杞崲 + /// </summary> + + public string RequestDeliveryDate { get; set; } + + /// <summary> + /// 瀹為檯鍒拌揣鏁伴噺锛堜粨搴撳疄闄呮敹璐ф暟閲忥級 + /// </summary> + public decimal? ActualArrivalQty { get; set; } + + } diff --git a/StandardPda/MES.Service/Dto/webApi/RohIn.cs b/StandardPda/MES.Service/Dto/webApi/RohIn.cs index 55f4b55..ff1bea2 100644 --- a/StandardPda/MES.Service/Dto/webApi/RohIn.cs +++ b/StandardPda/MES.Service/Dto/webApi/RohIn.cs @@ -4,4 +4,9 @@ { public ErpRohIn ErpRohIn { get; set; } public List<ErpRohinData> ErpRohinDatas { get; set; } + + /// <summary> + /// 瀛欒〃琛屾槑缁嗘暟鎹� + /// </summary> + public List<ErpLineDetails>? ErpLineDetails { get; set; } } \ No newline at end of file diff --git a/StandardPda/MES.Service/Modes/ErpLineDetailsDB.cs b/StandardPda/MES.Service/Modes/ErpLineDetailsDB.cs new file mode 100644 index 0000000..fe9cf4d --- /dev/null +++ b/StandardPda/MES.Service/Modes/ErpLineDetailsDB.cs @@ -0,0 +1,71 @@ +锘縰sing SqlSugar; + +namespace MES.Service.Modes; + + + /// <summary> + /// ERP琛屾槑缁嗚〃 - 瀛樺偍閲囪喘/鐢熶骇璁㈠崟琛岄」鐩鎯� + /// </summary> + [SugarTable("ERPLINEDETAILS")] // Oracle琛ㄥ悕榛樿澶у啓 + public class ErpLineDetailsDB + { + /// <summary> + /// 涓婚敭ID + /// </summary> + [SugarColumn(ColumnName = "ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_ERPLINEDETAILS_ID")] + public long Id { get; set; } + + /// <summary> + /// 浠庤〃ID + /// </summary> + [SugarColumn(ColumnName = "MID")] + public string Mid { get; set; } + + /// <summary> + /// 涓昏〃ERPID + /// </summary> + [SugarColumn(ColumnName = "EID")] + public string Eid { get; set; } + + /// <summary> + /// 瀛愯鍙凤紙璁㈠崟椤逛笅鐨勭粏鍒嗗簭鍙凤級 + /// </summary> + [SugarColumn(ColumnName = "FLINENO", IsNullable = false)] + public string FlineNo { get; set; } + + /// <summary> + /// 鏂欏搧ID锛堝叧鑱旂墿鏂欎富鏁版嵁琛ㄧ殑澶栭敭锛� + /// </summary> + [SugarColumn(ColumnName = "FMATERIALID", IsNullable = false)] + public string FMaterialId { get; set; } + + /// <summary> + /// 闇�姹傛暟閲忥紙涓氬姟閮ㄩ棬鎻愬嚭鐨勫師濮嬮渶姹傞噺锛� + /// </summary> + [SugarColumn(ColumnName = "REQQTY")] + public decimal? ReqQty { get; set; } + + /// <summary> + /// 璁″垝鍒拌揣鏁伴噺锛堢粡MRP杩愮畻鍚庣殑璁″垝閲忥級 + /// </summary> + [SugarColumn(ColumnName = "PLANNEDQTY")] + public decimal? PlannedQty { get; set; } + + /// <summary> + /// 渚涘簲鍟嗙‘璁ゅ埌璐ф暟閲忥紙渚涘簲鍟嗘壙璇虹殑浜よ揣閲忥級 + /// </summary> + [SugarColumn(ColumnName = "SUPPLIERCONFIRMSQTY")] + public decimal? SupplierConfirmsQty { get; set; } + + /// <summary> + /// 瑕佹眰浜よ揣鏃ユ湡锛堥噰璐敵璇锋垨璁㈠崟瑕佹眰鐨勫埌璐ф棩鏈燂級 + /// </summary> + [SugarColumn(ColumnName = "REQUESTDELIVERYDATE")] + public string RequestDeliveryDate { get; set; } + + /// <summary> + /// 瀹為檯鍒拌揣鏁伴噺锛堜粨搴撳疄闄呮敹璐ф暟閲忥級 + /// </summary> + [SugarColumn(ColumnName = "ACTUALARRIVALQTY")] + public decimal? ActualArrivalQty { get; set; } + } diff --git a/StandardPda/MES.Service/service/BasicData/MesRohInManager.cs b/StandardPda/MES.Service/service/BasicData/MesRohInManager.cs index f185e91..620f582 100644 --- a/StandardPda/MES.Service/service/BasicData/MesRohInManager.cs +++ b/StandardPda/MES.Service/service/BasicData/MesRohInManager.cs @@ -3,6 +3,7 @@ using MES.Service.Modes; using MES.Service.util; using SqlSugar; +using System.Collections.Generic; namespace MES.Service.service.BasicData; @@ -17,13 +18,14 @@ var mesRohIn = GetMesRohIn(rohInErpRohIn); var mesRohInDatas = GetMesRohInDatas(rohIn.ErpRohinDatas, rohInErpRohIn.Type); + var erpLineDetailsDB = GetErpLineDetailsDB(rohIn.ErpLineDetails, rohInErpRohIn.Type); return UseTransaction(db => { return rohInErpRohIn.Type switch { "2" or "4" or "5" => SaveOrUpdateData(db, mesRohIn, - mesRohInDatas) + mesRohInDatas, erpLineDetailsDB) ? 1 : 0, "3" => DeleteData(db, mesRohIn, mesRohInDatas) ? 1 : 0, @@ -58,14 +60,16 @@ // 鎻掑叆鎴栨洿鏂版暟鎹殑鏂规硶 private bool SaveOrUpdateData(SqlSugarScope db, MesRohIn mesRohIn, - List<MesRohInData> mesRohInDatas) + List<MesRohInData> mesRohInDatas, List<ErpLineDetailsDB> erpLineDetails) { if (mesRohIn.Id != null) base.DeleteById(mesRohIn.Id); if (mesRohInDatas.Count > 0) db.Deleteable<MesRohInData>() .Where(s => s.ErpId == mesRohIn.EbelnK3id).ExecuteCommand(); - + if (mesRohInDatas.Count > 0) + db.Deleteable<ErpLineDetailsDB>() + .Where(s => s.Eid == mesRohIn.EbelnK3id).ExecuteCommand(); //var orUpdate = base.Insert(mesRohIn); //var baOrUpdate = rohInDataManager.InsertRange(mesRohInDatas); var orUpdate = db.Insertable(mesRohIn) @@ -76,8 +80,15 @@ .IgnoreColumnsNull() .ExecuteCommand() > 0; + var ba1OrUpdate = db.Insertable(erpLineDetails).PageSize(1) + .IgnoreColumnsNull() + .ExecuteCommand() > 0; + if (erpLineDetails.Count==0) + { + ba1OrUpdate = true; + } - if (orUpdate && baOrUpdate) return true; + if (orUpdate && baOrUpdate&& ba1OrUpdate) return true; throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�"); } @@ -229,4 +240,37 @@ return entity; }).ToList(); } + + private List<ErpLineDetailsDB> GetErpLineDetailsDB( + List<ErpLineDetails> erpLineDetails, string type) + { + return erpLineDetails.Select(s => + { + var entity = new ErpLineDetailsDB + { + Mid= s.Mid, + Eid = s.Eid, + FlineNo = s.FlineNo, + FMaterialId = s.FMaterialId, + ReqQty = s.ReqQty, + PlannedQty = s.PlannedQty, + SupplierConfirmsQty = s.SupplierConfirmsQty, + RequestDeliveryDate = s.RequestDeliveryDate, + ActualArrivalQty = s.ActualArrivalQty + + + }; + + //ItemId = s.FMaterialId, + var mesLinkU9 = Db.Queryable<MesLinkU9>() + .Where(x => x.U9Id == s.FMaterialId + && x.OrgId == s.FMaterialId + && x.TableType == "MES_ITEMS").First(); + + if (mesLinkU9 != null) entity.FMaterialId = mesLinkU9.MesId; + + + return entity; + }).ToList(); + } } \ No newline at end of file -- Gitblit v1.9.3