From 335095c9fdb8bc93340feb72397befc9ea10c890 Mon Sep 17 00:00:00 2001
From: crz <1278080563@qq.com>
Date: 星期二, 11 三月 2025 08:51:13 +0800
Subject: [PATCH] 补充字段

---
 MES.Service/service/MesSalesOrderManager.cs |   63 ++++++++++++++++++-------------
 1 files changed, 37 insertions(+), 26 deletions(-)

diff --git a/MES.Service/service/MesSalesOrderManager.cs b/MES.Service/service/MesSalesOrderManager.cs
index c58baac..d938127 100644
--- a/MES.Service/service/MesSalesOrderManager.cs
+++ b/MES.Service/service/MesSalesOrderManager.cs
@@ -36,6 +36,7 @@
                 case "3":
                     return UpdateData(db, mesSalesOrder, mesSalesOrderDetails) ? 1 : 0;
                 case "2":
+                case "4":
                     return SaveOrUpdateData(db, mesSalesOrder, mesSalesOrderDetails)
                         ? 1
                         : 0;
@@ -61,12 +62,12 @@
         if (mesSalesOrderDetails.Count > 0)
         {
 
-            var mesSalesOrderDetail = mesSalesOrderDetails.Select(s => new { s.OrderId, s.LineNumber }).ToList();
+            var mesSalesOrderDetail = mesSalesOrderDetails.Select(s => new { s.OrderId, s.OrderType }).ToList();
 
             db.Deleteable<MesSalesOrderDetail>()
             .Where(it => mesSalesOrderDetails
             .Any(p => p.OrderId == it.OrderId
-             && p.LineNumber == it.LineNumber))
+             && p.OrderType == it.OrderType))
             .ExecuteCommand();
 
         };
@@ -88,9 +89,10 @@
                      it.OrderType == mesSalesOrder.OrderType)
         .ExecuteCommand() > 0;
 
-        var mesSalesOrderDetail = mesSalesOrderDetails.Select(s => new { s.OrderId, s.LineNumber }).ToList();
+        var mesSalesOrderDetail = mesSalesOrderDetails.Select(s => new { s.OrderId, s.OrderType }).ToList();
         
-        var insertOrUpdate = db.Deleteable<MesSalesOrderDetail>().Where(it => mesSalesOrderDetail.Any(p => p.OrderId == it.OrderId && p.LineNumber==it.LineNumber)).ExecuteCommand() > 0;
+        var insertOrUpdate = db.Deleteable<MesSalesOrderDetail>().
+            Where(it => mesSalesOrderDetail.Any(p => p.OrderId == it.OrderId && p.OrderType == it.OrderType)).ExecuteCommand() > 0;
 
 
         if (update && insertOrUpdate) return true;
@@ -103,14 +105,14 @@
         {
             OrderId = dto.FBillNo,
             OrderType = dto.FBillTypeID,
-            DocumentDate = DateTime.TryParseExact(dto.FDate, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime documentDate) ? (DateTime?)documentDate : null,
+            DocumentDate = !string.IsNullOrEmpty(dto.FDate) && DateTime.TryParseExact(dto.FDate, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime documentDate) ? (DateTime?)documentDate : null,
             CustomerId = dto.FCustId,
-            CustomerOrderId= dto.F_UNW_Text_KHDD,
-            DepartmentId= dto.FSaleDeptId,
-            TotalQuantity = long.TryParse(dto.FNote, out long quantity) ? (long?)quantity : null,
-            Remarks =dto.F_UNW_LargeText_TBKHBZ,
-            ApprovalDate = DateTime.TryParse(dto.FApproveDate, out DateTime approveDate) ? (DateTime?)approveDate : null,
-            Approver = dto.FApproverId
+            OrderDate = !string.IsNullOrEmpty(dto.FOrderDate) && (DateTime.TryParseExact(dto.FOrderDate, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime orderDate) || DateTime.TryParseExact(dto.FOrderDate, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out orderDate)) ? (DateTime?)orderDate : null,
+            DeliveryDate = !string.IsNullOrEmpty(dto.FDeliveryDate) && (DateTime.TryParseExact(dto.FDeliveryDate, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime deliveryDate) || DateTime.TryParseExact(dto.FDeliveryDate, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out deliveryDate)) ? (DateTime?)deliveryDate : null,
+            Remarks = dto.FNote,
+            Approver = dto.FApproverId,
+            DebugDate = !string.IsNullOrEmpty(dto.FDebugDate) && (DateTime.TryParseExact(dto.FDebugDate, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime debugDate) || DateTime.TryParseExact(dto.FDebugDate, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out debugDate)) ? (DateTime?)debugDate : null,
+            DeliverAddress = dto.FDeliverAddress
         };
         return entity;
     }
@@ -118,24 +120,33 @@
     private List<MesSalesOrderDetail> MapErpDETAILtoMesSalesOrderDetail(List<ErpDETAIL> dtoList)
     {
         var detailList = new List<MesSalesOrderDetail>();
-        
+
         foreach (var dto in dtoList)
         {
             var mesSalesOrderDetail = new MesSalesOrderDetail
             {
-                
-                OrderId= dto.F_UNW_Text_xsddh,
-                LineNumber = dto.LineNumber,
-                ProductCode =dto.FMaterialId,
-                ProductName =dto.FMaterialName,
-                ProductSpec=dto.FMaterialModel,
-                ScheduledDeliveryDate = DateTime.TryParse(dto.FMinPlanDeliveryDate, out DateTime scheduledDeliveryDate) ? (DateTime?)scheduledDeliveryDate : null,
-                OrderQuantity = long.TryParse(dto.FQty, out long quantity) ? (long?)quantity : null,
-                Unit = dto.FUnitID,
-                UnitPrice = long.TryParse(dto.FPrice, out long price) ? (long?)price : null,
-                Amount = long.TryParse(dto.FAmount, out long amount) ? (long?)amount : null,
-                
-
+                OrderId = dto.F_UNW_Text_xsddh,
+                OrderType = dto.FOrderType,
+                OrderNumber = dto.FOrderNumber,
+                ProductCode = dto.FMaterialId,
+                ProductName = dto.FMaterialName,
+                ProductSpec = dto.FMaterialModel,
+                Warehouse = dto.FWarehouse,
+                GiftQuantity=dto.FGiftQuantity,
+                UnsettledBorrowedQty=dto.FUnsettledBorrowedQty,
+                ConfigurationPlan=dto.FConfigurationPlan,
+                ScheduledDeliveryDate = !string.IsNullOrEmpty(dto.FMinPlanDeliveryDate) && (DateTime.TryParseExact(dto.FMinPlanDeliveryDate, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime scheduledDeliveryDate) || DateTime.TryParseExact(dto.FMinPlanDeliveryDate, "yyyy-MM-dd", CultureInfo.InvariantCulture, DateTimeStyles.None, out scheduledDeliveryDate)) ? (DateTime?)scheduledDeliveryDate : null,
+                OrderQuantity = dto.FQty,
+                DeliveredGiftQuantity = dto.FDeliveredGiftQuantity,
+                Remarks = dto.FEntryNote,
+                DeviceModel = dto.FDeviceModel,
+                CustomerProductId = dto.FCustomerProductId,
+                CustomerProductName = dto.FCustomerProductName,
+                CustomerSpec = dto.FCustomerSpec,
+                CustomerOrderId = dto.FCustomerOrderId,
+                Unit=dto.FUnitID,
+                DeliveredQuantity=dto.FDeliCommitQty,
+                IsClosed=dto.FIsClosed
             };
             detailList.Add(mesSalesOrderDetail);
         }
@@ -155,7 +166,7 @@
 
             var insertOrUpdate = db.Deleteable<MesSalesOrderDetail>()
                   .Where(it => it.OrderId == data.FBillNo 
-                         && it.LineNumber == data.FBillTypeID)
+                         && it.OrderType == data.FBillTypeID)
                   .ExecuteCommand() > 0;
 
 

--
Gitblit v1.9.3