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