From a4ae3bf5f1826e8e29a95da3dc2c947d713d4ebb Mon Sep 17 00:00:00 2001
From: 南骏 池 <chiffly@163.com>
Date: 星期五, 06 六月 2025 15:38:14 +0800
Subject: [PATCH] 1.仓库信息储存逻辑调整 2.生产订单接口优化。

---
 MES.Service/service/BasicData/MesRohInManager.cs |   76 ++++++++++++++++++++++++++------------
 1 files changed, 52 insertions(+), 24 deletions(-)

diff --git a/MES.Service/service/BasicData/MesRohInManager.cs b/MES.Service/service/BasicData/MesRohInManager.cs
index 6509483..fd0edbc 100644
--- a/MES.Service/service/BasicData/MesRohInManager.cs
+++ b/MES.Service/service/BasicData/MesRohInManager.cs
@@ -1,7 +1,9 @@
-锘縰sing MES.Service.DB;
+锘縰sing Masuit.Tools;
+using MES.Service.DB;
 using MES.Service.Dto.webApi;
 using MES.Service.Modes;
 using SqlSugar;
+using System.Globalization;
 
 namespace MES.Service.service.BasicData;
 
@@ -37,15 +39,15 @@
     private bool UpdateData(SqlSugarScope db, MesRohIn mesRohIn,
         List<MesRohInData> mesRohInDatas)
     {
-        var decimals = mesRohInDatas.Select(s => s.Id).ToArray();
+        var decimals = mesRohInDatas.Select(s => s.Guid).ToArray();
 
         var update = db.Deleteable<MesRohIn>()
-            .Where(a => a.Id == mesRohIn.Id)
+            .Where(a => a.Guid == mesRohIn.Guid)
             .ExecuteCommand() > 0;
 
         var insertOrUpdate = db
             .Deleteable<MesRohInData>()
-            .Where(s => decimals.Contains(s.Id))
+            .Where(s => decimals.Contains(s.Guid))
             .ExecuteCommand() > 0;
 
         if (update && insertOrUpdate) return true;
@@ -56,16 +58,22 @@
     private bool SaveOrUpdateData(SqlSugarScope db, MesRohIn mesRohIn,
         List<MesRohInData> mesRohInDatas)
     {
-        if (mesRohIn.Id != null)
-            db.Deleteable<MesRohIn>().Where(s => s.Id == mesRohIn.Id)
+        if (mesRohIn.Guid != null)
+            db.Deleteable<MesRohIn>().Where(s => s.Guid == mesRohIn.Guid)
                 .ExecuteCommand();
 
         if (mesRohInDatas.Count > 0)
             db.Deleteable<MesRohInData>()
                 .Where(s => s.ErpId == mesRohIn.EbelnK3id).ExecuteCommand();
 
-        var orUpdate = base.Insert(mesRohIn);
-        var baOrUpdate = rohInDataManager.InsertRange(mesRohInDatas);
+        var orUpdate = db.Insertable(mesRohIn)
+            .IgnoreColumns(true).ExecuteCommand() > 0;
+
+
+        var baOrUpdate = db.Insertable(mesRohInDatas).PageSize(1)
+            .IgnoreColumnsNull()
+            .ExecuteCommand() > 0;
+
         if (orUpdate && baOrUpdate) return true;
         throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
     }
@@ -83,8 +91,9 @@
         var eid = long.Parse(rohIn.id);
         var mesRohIn = new MesRohIn();
 
+
         var single = base.GetSingle(it => it.EbelnK3id == eid);
-        if (single != null) mesRohIn.Id = single.Id;
+        if (single != null) mesRohIn.Guid = single.Guid;
 
         mesRohIn.EbelnK3id = eid;
         mesRohIn.BillNo = rohIn.FBillNo;
@@ -110,9 +119,10 @@
         mesRohIn.CancellationPerson = rohIn.FCancellerId;
 
         if (rohIn.FCancelDate != null)
-            mesRohIn.CancellationDate =
-                DateTime.ParseExact(rohIn.FCancelDate,
-                    "yyyy-MM-dd HH:mm:ss", null);
+            if (!mesRohIn.CancellationPerson.IsNullOrEmpty())
+                mesRohIn.CancellationDate =
+                    DateTime.ParseExact(rohIn.FCancelDate,
+                        "yyyy-MM-dd HH:mm:ss", null);
 
         mesRohIn.CreateBy = rohIn.FCreatorId;
 
@@ -142,7 +152,7 @@
         mesRohIn.FixedTelephone = rohIn.FixedTelephone;
         mesRohIn.Address = rohIn.Address;
         mesRohIn.Acctype = rohIn.Acctype;
-
+        mesRohIn.SynchronousDate = DateTime.Now;
 
         return mesRohIn;
     }
@@ -155,7 +165,7 @@
         {
             var entity = new MesRohInData
             {
-                 EbelnK3id = Convert.ToDecimal(s.id),
+                EbelnK3id = Convert.ToDecimal(s.id),
                 ErpId = Convert.ToDecimal(s.Eid),
                 BillNo = s.FBillNo,
                 ItemId = s.FMaterialId,
@@ -185,23 +195,29 @@
                 BusinessClose = s.FMRPCloseStatus,
                 BusinessFreeze = s.FMRPFreezeStatus,
                 Freezer = s.FFreezerId,
-                FreezeTime = s.FFreezeDate != null
-                    ? DateTime.ParseExact(s.FFreezeDate,
-                        "yyyy-MM-dd HH:mm:ss", null)
-                    : null,
+                //FreezeTime = !string.IsNullOrEmpty(s.FFreezeDate)
+                //            && DateTime.TryParseExact(s.FFreezeDate,
+                //                new[] { "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd" },  // 鏀寔澶氱鏍煎紡
+                //                CultureInfo.InvariantCulture,
+                //                DateTimeStyles.None,
+                //                out var parsedDate)
+                //            && parsedDate > new DateTime(1900, 1, 1)
+                //                ? parsedDate
+                //                : (DateTime?)null,
                 BusinessTerminate = s.FMRPTerminateStatus,
                 Terminator = s.FTerminaterId,
-                TerminateTime = s.FTerminateDate != null
-                    ? DateTime.ParseExact(s.FTerminateDate,
-                        "yyyy-MM-dd HH:mm:ss", null)
-                    : null,
+                //TerminateTime = s.FTerminateDate != null
+                //    ? DateTime.ParseExact(s.FTerminateDate,
+                //        "yyyy-MM-dd HH:mm:ss", null)
+                //    : null,
                 TotalReceivedQty = Convert.ToDecimal(s.FReceiveQty), //绱鏀舵枡鏁�
                 RemainingReceivedQty =
                     Convert.ToDecimal(s.FRemainReceiveQty),
                 TotalStoredQty = Convert.ToDecimal(s.FStockInQty), //绱鍏ュ簱鏁�
                 RemainingStoredQty = Convert.ToDecimal(s.FRemainStockINQty),
                 TotalReturnedQty = Convert.ToDecimal(s.FMrbQty),
-                ReturnableReceivedQty = Convert.ToDecimal(s.FCHECKRETQTY), //鏀舵枡鍙��鏁�
+                ReturnableReceivedQty =
+                    Convert.ToDecimal(s.FCHECKRETQTY), //鏀舵枡鍙��鏁�
                 ReturnableStoredQty = Convert.ToDecimal(s.FSTOCKRETQTY), //搴撳瓨鍙��鏁�
                 SourceDocumentType = s.FSrcBillTypeId,
                 SourceDocumentId = s.FSrcBillNo,
@@ -222,9 +238,21 @@
                 ReceivingDepartment = s.FReceiveDeptId
             };
 
+            if (s.FFreezeDate != null)
+                if (!s.FFreezerId.IsNullOrEmpty())
+                    entity.FreezeTime =
+                        DateTime.ParseExact(s.FFreezeDate,
+                            "yyyy-MM-dd HH:mm:ss", null);
+
+            if (s.FTerminateDate != null)
+                if (!s.FTerminaterId.IsNullOrEmpty())
+                    entity.TerminateTime =
+                        DateTime.ParseExact(s.FTerminateDate,
+                            "yyyy-MM-dd HH:mm:ss", null);
+
             var single = rohInDataManager.GetSingle(it =>
                 it.EbelnK3id == entity.EbelnK3id);
-            if (single != null) entity.Id = single.Id;
+            if (single != null) entity.Guid = single.Guid;
 
             return entity;
         }).ToList();

--
Gitblit v1.9.3