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/SalesOrderManager.cs |   33 ++++++++++++++++++++++++++-------
 1 files changed, 26 insertions(+), 7 deletions(-)

diff --git a/MES.Service/service/BasicData/SalesOrderManager.cs b/MES.Service/service/BasicData/SalesOrderManager.cs
index 77c4ddc..ff6b3f2 100644
--- a/MES.Service/service/BasicData/SalesOrderManager.cs
+++ b/MES.Service/service/BasicData/SalesOrderManager.cs
@@ -25,7 +25,7 @@
     {
         var erpSalesOrderDto = SalesOrder.OrderDto;
         var mesSalesOrder = ConvertErpToSalesOrder(SalesOrder.OrderDto);
-        var mesSalesOrderDatas = ConvertErpToSalesOrderDetail(mesSalesOrder,SalesOrder.Items);
+        var mesSalesOrderDatas = ConvertErpToSalesOrderDetail(mesSalesOrder, SalesOrder.Items);
 
         return UseTransaction(db =>
         {
@@ -40,6 +40,7 @@
                     return UpdateData(db, mesSalesOrder, mesSalesOrderDatas) ? 1 : 0;
                 case "2":
                 case "4":
+                case "5":
                     return SaveOrUpdateData(db, mesSalesOrder, mesSalesOrderDatas, erpSalesOrderDto.Type)
                         ? 1
                         : 0;
@@ -95,7 +96,7 @@
 
         //var orUpdate = base.Insert(mesSalesOrder);
         //var baOrUpdate = _SalesOrderDetailManager.InsertRange(mesSalesOrderDatas);
-        
+
 
         var orUpdate = db.Insertable(mesSalesOrder)
             .IgnoreColumns(true).ExecuteCommand() > 0;
@@ -164,23 +165,35 @@
             ///ChargeId = erpDto.FChargeId, // 浠樻鏂�
             ///LinkPhone = erpDto.FLinkPhone, // 鑱旂郴鐢佃瘽
             CreatorId = erpDto.FCreatorId, // 鍒涘缓浜�
-            CreateDate = ParseDateTime(erpDto.FCreateDate) ?? null, // 鍒涘缓鏃ユ湡
+            //CreateDate = ParseDateTime(erpDto.FCreateDate) ?? null, // 鍒涘缓鏃ユ湡
+            CreateDate = DateTime.TryParse(erpDto.FCreateDate, out var conveyDate)
+            ? (conveyDate <= new DateTime(1900, 1, 1) ? null : conveyDate)
+                : null, // 鍒涘缓鏃ユ湡
             ModifierId = erpDto.FModifierId, // 鏈�鍚庝慨鏀逛汉
             ModifyDate = ParseDateTime(erpDto.FModifyDate) ?? null, // 鏈�鍚庝慨鏀规棩鏈�
             ApproveDate = ParseDateTime(erpDto.FApproveDate) ?? null, // 瀹℃牳鏃ユ湡
             CloserId = erpDto.FCloserId, // 鍏抽棴浜�
-            CloseDate = ParseDateTime(erpDto.FCloseDate) ?? null, // 鍏抽棴鏃ユ湡
-            ChangeDate = ParseDateTime(erpDto.FChangeDate) ?? null, // 鍙樻洿鏃ユ湡
+            //CloseDate = ParseDateTime(erpDto.FCloseDate) ?? null, // 鍏抽棴鏃ユ湡
+            //ChangeDate = ParseDateTime(erpDto.FChangeDate) ?? null, // 鍙樻洿鏃ユ湡
+            ChangeDate = DateTime.TryParse(erpDto.FChangeDate, out var ChangeDate)
+            ? (ChangeDate <= new DateTime(1900, 1, 1) ? null : ChangeDate)
+                : null,  // 鍙樻洿鏃ユ湡
             CancelStatus = erpDto.FCancelStatus, // 浣滃簾鐘舵��
             CancellerId = erpDto.FCancellerId, // 浣滃簾浜�
             VersionNo = Convert.ToDouble(erpDto.FVersionNo), // 鐗堟湰鍙�
             ChangerId = erpDto.FChangerId, // 鍙樻洿浜�
+            SynchronousDate = DateTime.Now
             //EntryNote = erpDto.FEntryNote // 澶囨敞
             //ParseDateTime() ?? null
             //long.Parse()
             //Convert.ToDecimal()
             //Convert.ToDouble()
         };
+
+        if (!string.IsNullOrEmpty(salesOrder.CloserId))
+            salesOrder.CloseDate = string.IsNullOrEmpty(erpDto.FCloseDate)
+            ? (DateTime?)null
+            : DateTime.ParseExact(erpDto.FCloseDate, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
 
         var single = base.GetSingle(it => it.ErpID == Convert.ToDecimal(erpDto.ErpID));
         if (single != null) salesOrder.Id = single.Id;
@@ -228,7 +241,7 @@
                 OutLmtUnitId = erpDto.FOutLmtUnitID,
                 MrpCloseStatus = erpDto.FMrpCloseStatus,
                 MrpTerminateStatus = erpDto.FMrpTerminateStatus,
-                TerminateDate = Convert.ToDateTime(erpDto.FTerminateDate),
+                //TerminateDate = Convert.ToDateTime(erpDto.FTerminateDate),
                 TerminaterId = erpDto.FTerminatorId,
                 SrcType = erpDto.FSrcType,
                 SrcBillNo = erpDto.FSrcBillNo,
@@ -240,6 +253,11 @@
                 BASEARQTY = Convert.ToDecimal(erpDto.FBASEARQTY),
 
             };
+
+            if (!string.IsNullOrEmpty(salesOrderSub.TerminaterId))
+                salesOrderSub.TerminateDate = string.IsNullOrEmpty(erpDto.FTerminateDate)
+                ? (DateTime?)null
+                : DateTime.ParseExact(erpDto.FTerminateDate, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture);
 
             var single = _SalesOrderDetailManager.GetSingle(it =>
                 it.ErpID == Convert.ToDecimal(salesOrderSub.ErpID));
@@ -278,7 +296,8 @@
         conModels.Add(new ConditionalModel
         {
             FieldName = typeof(SalesOrder).GetProperties()[0].Name,
-            ConditionalType = ConditionalType.Equal, FieldValue = "1"
+            ConditionalType = ConditionalType.Equal,
+            FieldValue = "1"
         }); //id=1
         var data7 = base.GetPageList(conModels, p, it => SqlFunc.GetRandom());
 

--
Gitblit v1.9.3