kyy
6 天以前 f476ec010c22cd4e3c6a119eea035cbf4594bfbb
MES.Service/service/BasicData/MesRohInManager.cs
@@ -97,9 +97,27 @@
        mesRohIn.DocumentStatus = rohIn.FDocumentStatus;
        mesRohIn.DocumentType = rohIn.FBillTypeID;
        mesRohIn.BusinessType = rohIn.FBusinessType;
        if (rohIn.FDate != null)
            mesRohIn.PurchaseDate = DateTime.ParseExact(rohIn.FDate,
                "yyyy-MM-dd HH:mm:ss", null);
        /*if (rohIn.FDate != null)
           mesRohIn.PurchaseDate = DateTime.ParseExact(rohIn.FDate,
                "yyyy-MM-d H:m:s", null);*/
        // 1. 处理 fDate(采购日期)
        if (!rohIn.FDate.IsNullOrEmpty())
        {
            if (!DateTime.TryParseExact(rohIn.FDate, "yyyy-MM-d H:m:s", CultureInfo.InvariantCulture,
                    DateTimeStyles.None, out DateTime purchaseDate))
            {
                throw new FormatException($"采购日期(FDate)解析失败!值:【{rohIn.FDate}】,支持格式:yyyy-MM-d H:m:s");
            }
            mesRohIn.PurchaseDate = purchaseDate;
        }
        else
        {
            mesRohIn.PurchaseDate = null;
        }
        mesRohIn.Supplier = rohIn.FSupplierId;
        mesRohIn.CloseStatus = rohIn.FCloseStatus;
        mesRohIn.PurchaseOrg = rohIn.FPurchaseOrgId;
@@ -112,26 +130,92 @@
        mesRohIn.Remarks = rohIn.Remarks;
        mesRohIn.CancellationStatus = rohIn.FCancelStatus;
        mesRohIn.CancellationPerson = rohIn.FCancellerId;
        if (rohIn.FCancelDate != null)
        /*if (rohIn.FCancelDate != null)
            if (!mesRohIn.CancellationPerson.IsNullOrEmpty())
                mesRohIn.CancellationDate =
                    DateTime.ParseExact(rohIn.FCancelDate,
                        "yyyy-MM-dd HH:mm:ss", null);
                        "yyyy-MM-d H:m:s", null);
        mesRohIn.CreateBy = rohIn.FCreatorId;
        if (rohIn.FCreateDate != null)
            mesRohIn.CreateDate = DateTime.ParseExact(rohIn.FCreateDate,
                "yyyy-MM-dd HH:mm:ss", null);
                "yyyy-MM-d H:m:s", null);
        mesRohIn.LastupdateBy = rohIn.FModifierId;
        if (rohIn.FModifyDate != null)
            mesRohIn.LastupdateDate = DateTime.ParseExact(rohIn.FModifyDate,
                "yyyy-MM-dd HH:mm:ss", null);
                "yyyy-MM-d H:m:s", null);
        mesRohIn.Prearrivaldate = rohIn.Prearrivaldate != null
            ? DateTime.ParseExact(rohIn.Prearrivaldate,
                "yyyy-MM-d H:m:s", null)
            : null;*/
        if (!rohIn.FCancelDate.IsNullOrEmpty() && !mesRohIn.CancellationPerson.IsNullOrEmpty())
        {
            if (!DateTime.TryParseExact(rohIn.FCancelDate, "yyyy-MM-d H:m:s", CultureInfo.InvariantCulture,
                    DateTimeStyles.None, out DateTime cancelDate))
            {
                throw new FormatException($"取消日期(FCancelDate)解析失败!值:【{rohIn.FCancelDate}】,支持格式:yyyy-MM-d H:m:s");
            }
            mesRohIn.CancellationDate = cancelDate;
        }
        else
        {
            mesRohIn.CancellationDate = null;
        }
        // 3. 处理 fCreateDate(创建日期)
        if (!rohIn.FCreateDate.IsNullOrEmpty())
        {
            if (!DateTime.TryParseExact(rohIn.FCreateDate, "yyyy-MM-d H:m:s", CultureInfo.InvariantCulture,
                    DateTimeStyles.None, out DateTime createDate))
            {
                throw new FormatException($"创建日期(FCreateDate)解析失败!值:【{rohIn.FCreateDate}】,支持格式:yyyy-MM-d H:m:s");
            }
            mesRohIn.CreateDate = createDate;
        }
        else
        {
            mesRohIn.CreateDate = null;
        }
        // 4. 处理 fModifyDate(修改日期)
        if (!rohIn.FModifyDate.IsNullOrEmpty())
        {
            if (!DateTime.TryParseExact(rohIn.FModifyDate, "yyyy-MM-d H:m:s", CultureInfo.InvariantCulture,
                    DateTimeStyles.None, out DateTime modifyDate))
            {
                throw new FormatException($"修改日期(FModifyDate)解析失败!值:【{rohIn.FModifyDate}】,支持格式:yyyy-MM-d H:m:s");
            }
            mesRohIn.LastupdateDate = modifyDate;
        }
        else
        {
            mesRohIn.LastupdateDate = null;
        }
        // 6. 处理 prearrivaldate(预计到货日期)
        if (!rohIn.Prearrivaldate.IsNullOrEmpty())
        {
            if (!DateTime.TryParseExact(rohIn.Prearrivaldate, "yyyy-MM-d H:m:s", CultureInfo.InvariantCulture,
                    DateTimeStyles.None, out DateTime preArrivalDate))
            {
                throw new FormatException(
                    $"预计到货日期(Prearrivaldate)解析失败!值:【{rohIn.Prearrivaldate}】,支持格式:yyyy-MM-d H:m:s");
            }
            mesRohIn.Prearrivaldate = preArrivalDate;
        }
        else
        {
            mesRohIn.Prearrivaldate = null;
        }
        mesRohIn.ErpCheckBy = rohIn.FApproverId;
        mesRohIn.ErpCheckDate = rohIn.FApproveDate;
        mesRohIn.Changereason = rohIn.FChangeReason;
        mesRohIn.Prearrivaldate = rohIn.Prearrivaldate != null
            ? DateTime.ParseExact(rohIn.Prearrivaldate,
                "yyyy-MM-dd HH:mm:ss", null)
            : null;
        mesRohIn.ReceiveOrgId = rohIn.FReceiveOrgId;
        mesRohIn.ProviderId = rohIn.FProviderId;
        mesRohIn.Anred = rohIn.FTContact;
@@ -161,17 +245,45 @@
                InventoryUnit = s.FStockUnitID,
                PricingUnit = s.FPriceUnitId,
                PricingQty = Convert.ToDecimal(s.FPriceUnitQty),
                /*
                DeliveryDate = s.FDeliveryDate != null
                    ? DateTime.ParseExact(s.FDeliveryDate,
                        "yyyy-MM-dd HH:mm:ss", null)
                        "yyyy-MM-d H:m:s", null)
                    : null,
                EarliestDeliveryDate = s.FDeliveryEarlyDate != null
                    ? DateTime.ParseExact(s.FDeliveryEarlyDate,
                        "yyyy-MM-dd HH:mm:ss", null)
                        "yyyy-MM-d H:m:s", null)
                    : null,
                LatestDeliveryDate = s.FDeliveryLastDate != null
                    ? DateTime.ParseExact(s.FDeliveryLastDate,
                        "yyyy-MM-dd HH:mm:ss", null)
                        "yyyy-MM-d H:m:s", null)
                    : null,
                    */
                // 1. 处理 fDeliveryDate(交货日期)
                DeliveryDate = !s.FDeliveryDate.IsNullOrEmpty()
                    ? (DateTime.TryParseExact(s.FDeliveryDate, "yyyy-MM-d H:m:s", CultureInfo.InvariantCulture,
                        DateTimeStyles.None, out DateTime deliveryDate)
                        ? deliveryDate
                        : throw new FormatException(
                            $"交货日期(FDeliveryDate)解析失败!值:【{s.FDeliveryDate}】,支持格式:yyyy-MM-d H:m:s"))
                    : null,
                // 2. 处理 fDeliveryEarlyDate(最早交货日期)
                EarliestDeliveryDate = !s.FDeliveryEarlyDate.IsNullOrEmpty()
                    ? (DateTime.TryParseExact(s.FDeliveryEarlyDate, "yyyy-MM-d H:m:s", CultureInfo.InvariantCulture,
                        DateTimeStyles.None, out DateTime earlyDate)
                        ? earlyDate
                        : throw new FormatException(
                            $"最早交货日期(FDeliveryEarlyDate)解析失败!值:【{s.FDeliveryEarlyDate}】,支持格式:yyyy-MM-d H:m:s"))
                    : null,
                // 3. 处理 fDeliveryLastDate(最晚交货日期)
                LatestDeliveryDate = !s.FDeliveryLastDate.IsNullOrEmpty()
                    ? (DateTime.TryParseExact(s.FDeliveryLastDate, "yyyy-MM-d H:m:s", CultureInfo.InvariantCulture,
                        DateTimeStyles.None, out DateTime lastDate)
                        ? lastDate
                        : throw new FormatException(
                            $"最晚交货日期(FDeliveryLastDate)解析失败!值:【{s.FDeliveryLastDate}】,支持格式:yyyy-MM-d H:m:s"))
                    : null,
                IsGift = s.FGiveAway,
                Remarks = s.FEntryNote,
@@ -213,25 +325,55 @@
                SalesOrderId = s.SalesOrderId,
                OrderLineId = s.OrderLineId,
                FSUBREQENTRYID = s.FSUBREQENTRYID
            };
            if (s.FFreezeDate != null)
            /*if (s.FFreezeDate != null)
                if (!s.FFreezerId.IsNullOrEmpty())
                    entity.FreezeTime =
                        DateTime.ParseExact(s.FFreezeDate,
                            "yyyy-MM-dd HH:mm:ss", null);
                            "yyyy-MM-d H:m:s", null);
            if (s.FTerminateDate != null)
                if (!s.FTerminaterId.IsNullOrEmpty())
                    entity.TerminateTime =
                        DateTime.ParseExact(s.FTerminateDate,
                            "yyyy-MM-dd HH:mm:ss", null);
                            "yyyy-MM-d H:m:s", null);*/
// 4. 处理 fFreezeDate(冻结日期)
            if (!s.FFreezeDate.IsNullOrEmpty() && !s.FFreezerId.IsNullOrEmpty())
            {
                if (!DateTime.TryParseExact(s.FFreezeDate, "yyyy-MM-d H:m:s", CultureInfo.InvariantCulture,
                        DateTimeStyles.None, out DateTime freezeTime))
                {
                    throw new FormatException($"冻结日期(FFreezeDate)解析失败!值:【{s.FFreezeDate}】,支持格式:yyyy-MM-d H:m:s");
                }
                entity.FreezeTime = freezeTime;
            }
            else
            {
                entity.FreezeTime = null;
            }
            // 5. 处理 fTerminateDate(终止日期)
            if (!s.FTerminateDate.IsNullOrEmpty() && !s.FTerminaterId.IsNullOrEmpty())
            {
                if (!DateTime.TryParseExact(s.FTerminateDate, "yyyy-MM-d H:m:s", CultureInfo.InvariantCulture,
                        DateTimeStyles.None, out DateTime terminateTime))
                {
                    throw new FormatException($"终止日期(FTerminateDate)解析失败!值:【{s.FTerminateDate}】,支持格式:yyyy-MM-d H:m:s");
                }
                entity.TerminateTime = terminateTime;
            }
            else
            {
                entity.TerminateTime = null;
            }
            var single = rohInDataManager.GetSingle(it =>
                it.EbelnK3id == entity.EbelnK3id);
            if (single != null) entity.Guid = single.Guid;
            return entity;
        }).ToList();
    }