From 29de86cadafc88d13b51ab4d07aa2d12de6dcab0 Mon Sep 17 00:00:00 2001
From: 啊鑫 <t2856754968@163.com>
Date: 星期四, 18 七月 2024 10:15:54 +0800
Subject: [PATCH] 更新erp生产订单接口

---
 MES.Service/service/BasicData/MesRohInManager.cs |  440 ++++++++++++++++++++++++++----------------------------
 1 files changed, 214 insertions(+), 226 deletions(-)

diff --git a/MES.Service/service/BasicData/MesRohInManager.cs b/MES.Service/service/BasicData/MesRohInManager.cs
index 384fc85..35acb3c 100644
--- a/MES.Service/service/BasicData/MesRohInManager.cs
+++ b/MES.Service/service/BasicData/MesRohInManager.cs
@@ -1,66 +1,74 @@
 锘縰sing MES.Service.DB;
 using MES.Service.Dto.webApi;
 using MES.Service.Modes;
-using MES.Service.util;
 using SqlSugar;
 
-namespace MES.Service.service.BasicData
+namespace MES.Service.service.BasicData;
+
+public class MesRohInManager : Repository<MesRohIn>
 {
-    public class MesRohInManager : Repository<MesRohIn>
+    private readonly MesRohInDataManager rohInDataManager = new();
+
+    // Save 鏂规硶鐢ㄤ簬淇濆瓨鍗曚釜 RohIn 璁板綍锛屾牴鎹被鍨嬫墽琛屼笉鍚岀殑鎿嶄綔
+    public bool Save(RohIn rohIn)
     {
-        private readonly MesRohInDataManager rohInDataManager = new();
+        var rohInErpRohIn = rohIn.ErpRohIn;
+        var mesRohIn = GetMesRohIn(rohInErpRohIn);
+        var mesRohInDatas =
+            GetMesRohInDatas(rohIn.ErpRohinDatas, rohInErpRohIn.Type);
 
-        // Save 鏂规硶鐢ㄤ簬淇濆瓨鍗曚釜 RohIn 璁板綍锛屾牴鎹被鍨嬫墽琛屼笉鍚岀殑鎿嶄綔
-        public bool Save(RohIn rohIn)
+        return UseTransaction(db =>
         {
-            var rohInErpRohIn = rohIn.ErpRohIn;
-            var mesRohIn = GetMesRohIn(rohInErpRohIn);
-            var mesRohInDatas =
-                GetMesRohInDatas(rohIn.ErpRohinDatas, rohInErpRohIn.Type);
-
-            return UseTransaction(db =>
+            switch (rohInErpRohIn.Type)
             {
-                switch (rohInErpRohIn.Type)
-                {
-                    // case "2":
-                    //     return InsertData(db, mesRohIn, mesRohInDatas,
-                    //         rohInErpRohIn.FBILLTYPE)
-                    //         ? 1
-                    //         : 0;
-                    case "3":
-                        return UpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0;
-                    case "2":
-                    case "4":
-                        return SaveOrUpdateData(db, mesRohIn, mesRohInDatas)
-                            ? 1
-                            : 0;
-                    default:
-                        throw new NotImplementedException(
-                            $"type娌℃湁{rohInErpRohIn.Type}杩欎釜绫诲瀷");
-                }
-            }) > 0;
-        }
+                // case "2":
+                //     return InsertData(db, mesRohIn, mesRohInDatas,
+                //         rohInErpRohIn.FBILLTYPE)
+                //         ? 1
+                //         : 0;
+                case "3":
+                    return UpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0;
+                case "2":
+                case "4":
+                    return SaveOrUpdateData(db, mesRohIn, mesRohInDatas)
+                        ? 1
+                        : 0;
+                default:
+                    throw new NotImplementedException(
+                        $"type娌℃湁{rohInErpRohIn.Type}杩欎釜绫诲瀷");
+            }
+        }) > 0;
+    }
 
-        // 鎻掑叆鏁版嵁鐨勬柟娉�
-        private bool InsertData(SqlSugarScope db, MesRohIn mesRohIn,
-            List<MesRohInData> mesRohInDatas, string FBILLTYPE)
+    // 鎻掑叆鏁版嵁鐨勬柟娉�
+    private bool InsertData(SqlSugarScope db, MesRohIn mesRohIn,
+        List<MesRohInData> mesRohInDatas, string FBILLTYPE)
+    {
+        switch (FBILLTYPE)
         {
-            switch (FBILLTYPE)
+            case "A":
             {
-                case "A":
+                var decimals = mesRohInDatas.Select(s => s.Id).ToArray();
+
+                if (mesRohIn.Id != null) base.DeleteById(mesRohIn.Id);
+
+                if (decimals.Length > 0)
+                    db.Deleteable<MesRohInData>().In(decimals).ExecuteCommand();
+
+                var insert = base.Insert(mesRohIn);
+                var insertRange =
+                    rohInDataManager.InsertRange(mesRohInDatas);
+
+                if (insert && insertRange) return true;
+                throw new NotImplementedException("鎻掑叆澶辫触");
+            }
+            case "B":
+            {
+                var decimals = mesRohInDatas.Select(s => s.Id).ToArray();
+                if (base.DeleteById(mesRohIn.Id) && db
+                        .Deleteable<MesRohInData>().In(decimals)
+                        .ExecuteCommand() > 0)
                 {
-                    var decimals = mesRohInDatas.Select(s => s.Id).ToArray();
-
-                    if (mesRohIn.Id != null)
-                    {
-                        base.DeleteById(mesRohIn.Id);
-                    }
-
-                    if (decimals.Length > 0)
-                    {
-                        db.Deleteable<MesRohInData>().In(decimals).ExecuteCommand();
-                    }
-                    
                     var insert = base.Insert(mesRohIn);
                     var insertRange =
                         rohInDataManager.InsertRange(mesRohInDatas);
@@ -68,207 +76,187 @@
                     if (insert && insertRange) return true;
                     throw new NotImplementedException("鎻掑叆澶辫触");
                 }
-                case "B":
-                {
-                    var decimals = mesRohInDatas.Select(s => s.Id).ToArray();
-                    if (base.DeleteById(mesRohIn.Id) && db
-                            .Deleteable<MesRohInData>().In(decimals)
-                            .ExecuteCommand() > 0)
-                    {
-                        var insert = base.Insert(mesRohIn);
-                        var insertRange =
-                            rohInDataManager.InsertRange(mesRohInDatas);
 
-                        if (insert && insertRange) return true;
-                        throw new NotImplementedException("鎻掑叆澶辫触");
-                    }
-
-                    break;
-                }
+                break;
             }
-
-            throw new NotImplementedException("閲囪喘璁㈠崟绫诲瀷閿欒");
         }
 
-        // 鏇存柊鏁版嵁鐨勬柟娉�
-        private bool UpdateData(SqlSugarScope db, MesRohIn mesRohIn,
-            List<MesRohInData> mesRohInDatas)
-        {
-            var decimals = mesRohInDatas.Select(s => s.Id).ToArray();
-            var update = base.DeleteById(mesRohIn.Id);
-            var insertOrUpdate = db
-                .Deleteable<MesRohInData>().In(decimals)
-                .ExecuteCommand() > 0;
+        throw new NotImplementedException("閲囪喘璁㈠崟绫诲瀷閿欒");
+    }
 
-            if (update && insertOrUpdate) return true;
-            throw new NotImplementedException("鏇存柊澶辫触");
-        }
+    // 鏇存柊鏁版嵁鐨勬柟娉�
+    private bool UpdateData(SqlSugarScope db, MesRohIn mesRohIn,
+        List<MesRohInData> mesRohInDatas)
+    {
+        var decimals = mesRohInDatas.Select(s => s.Id).ToArray();
+        var update = base.DeleteById(mesRohIn.Id);
+        var insertOrUpdate = db
+            .Deleteable<MesRohInData>().In(decimals)
+            .ExecuteCommand() > 0;
 
-        // 鎻掑叆鎴栨洿鏂版暟鎹殑鏂规硶
-        private bool SaveOrUpdateData(SqlSugarScope db, MesRohIn mesRohIn,
-            List<MesRohInData> mesRohInDatas)
-        {
-            
-            if (mesRohIn.Id != null)
-            {
-                base.DeleteById(mesRohIn.Id);
-            }
+        if (update && insertOrUpdate) return true;
+        throw new NotImplementedException("鏇存柊澶辫触");
+    }
 
-            if (mesRohInDatas.Count > 0)
-            {
-                db.Deleteable<MesRohInData>().Where(s=>s.ErpId == mesRohIn.EbelnK3id).ExecuteCommand();
-            }
+    // 鎻掑叆鎴栨洿鏂版暟鎹殑鏂规硶
+    private bool SaveOrUpdateData(SqlSugarScope db, MesRohIn mesRohIn,
+        List<MesRohInData> mesRohInDatas)
+    {
+        if (mesRohIn.Id != null) base.DeleteById(mesRohIn.Id);
 
-            var orUpdate = base.Insert(mesRohIn);
-            var baOrUpdate = rohInDataManager.InsertRange(mesRohInDatas);
-            if (orUpdate && baOrUpdate) return true;
-            throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
-        }
+        if (mesRohInDatas.Count > 0)
+            db.Deleteable<MesRohInData>()
+                .Where(s => s.ErpId == mesRohIn.EbelnK3id).ExecuteCommand();
 
-        // 鎵归噺淇濆瓨璁板綍鐨勬柟娉�
-        public bool SaveList(List<RohIn> rohIns)
-        {
-            var result = rohIns.Select(Save).ToList();
-            return result.All(b => b);
-        }
+        var orUpdate = base.Insert(mesRohIn);
+        var baOrUpdate = rohInDataManager.InsertRange(mesRohInDatas);
+        if (orUpdate && baOrUpdate) return true;
+        throw new NotImplementedException("鎻掑叆鎴栨洿鏂板け璐�");
+    }
 
-        // 灏� ErpRohIn 瀵硅薄杞崲涓� MesRohIn 瀵硅薄鐨勬柟娉�
-        public MesRohIn GetMesRohIn(ErpRohIn rohIn)
-        {
-            var eid = Convert.ToDecimal(rohIn.id);
-            var mesRohIn = new MesRohIn();
+    // 鎵归噺淇濆瓨璁板綍鐨勬柟娉�
+    public bool SaveList(List<RohIn> rohIns)
+    {
+        var result = rohIns.Select(Save).ToList();
+        return result.All(b => b);
+    }
 
-            var single = base.GetSingle(it => it.EbelnK3id == eid);
-            if (single != null) mesRohIn.Id = single.Id;
+    // 灏� ErpRohIn 瀵硅薄杞崲涓� MesRohIn 瀵硅薄鐨勬柟娉�
+    public MesRohIn GetMesRohIn(ErpRohIn rohIn)
+    {
+        var eid = Convert.ToDecimal(rohIn.id);
+        var mesRohIn = new MesRohIn();
 
-            mesRohIn.EbelnK3id = eid;
-            mesRohIn.BillNo = rohIn.FBillNo;
-            mesRohIn.DocumentStatus = rohIn.FDocumentStatus;
-            mesRohIn.DocumentType = rohIn.FBillTypeID;
-            mesRohIn.BusinessType = rohIn.FBusinessType;
+        var single = base.GetSingle(it => it.EbelnK3id == eid);
+        if (single != null) mesRohIn.Id = single.Id;
 
-            if (rohIn.FDate != null)
-                mesRohIn.PurchaseDate = DateTime.ParseExact(rohIn.FDate,
+        mesRohIn.EbelnK3id = eid;
+        mesRohIn.BillNo = rohIn.FBillNo;
+        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);
+
+        mesRohIn.Supplier = rohIn.FSupplierId;
+        mesRohIn.CloseStatus = rohIn.FCloseStatus;
+        mesRohIn.PurchaseOrg = rohIn.FPurchaseOrgId;
+        mesRohIn.PurchaseDept = rohIn.FPurchaseDeptId;
+        mesRohIn.PurchaseGroup = rohIn.FPurchaserGroupId;
+        mesRohIn.QtyAcceptance = rohIn.Facctype;
+        mesRohIn.Purchaser = rohIn.FPurchaserId;
+        mesRohIn.QualityReq = rohIn.F_UNW_Remarks_zlyq;
+        mesRohIn.SettlementParty = rohIn.FSettleId;
+        mesRohIn.PaymentParty = rohIn.FChargeId;
+        mesRohIn.Email = rohIn.FProviderEMail;
+        mesRohIn.TransportMethod = rohIn.F_UNW_Text_ysfs;
+        mesRohIn.Remarks = rohIn.F_UNW_BZ;
+        mesRohIn.FixtureMoldProcurement = rohIn.F_UNW_Combo_zjmj;
+        mesRohIn.CancellationStatus = rohIn.FCancelStatus;
+        mesRohIn.CancellationPerson = rohIn.FCancellerId;
+
+        if (rohIn.FCancelDate != null)
+            mesRohIn.CancellationDate =
+                DateTime.ParseExact(rohIn.FCancelDate,
                     "yyyy-MM-dd HH:mm:ss", null);
 
-            mesRohIn.Supplier = rohIn.FSupplierId;
-            mesRohIn.CloseStatus = rohIn.FCloseStatus;
-            mesRohIn.PurchaseOrg = rohIn.FPurchaseOrgId;
-            mesRohIn.PurchaseDept = rohIn.FPurchaseDeptId;
-            mesRohIn.PurchaseGroup = rohIn.FPurchaserGroupId;
-            mesRohIn.QtyAcceptance = rohIn.Facctype;
-            mesRohIn.Purchaser = rohIn.FPurchaserId;
-            mesRohIn.QualityReq = rohIn.F_UNW_Remarks_zlyq;
-            mesRohIn.SettlementParty = rohIn.FSettleId;
-            mesRohIn.PaymentParty = rohIn.FChargeId;
-            mesRohIn.Email = rohIn.FProviderEMail;
-            mesRohIn.TransportMethod = rohIn.F_UNW_Text_ysfs;
-            mesRohIn.Remarks = rohIn.F_UNW_BZ;
-            mesRohIn.FixtureMoldProcurement = rohIn.F_UNW_Combo_zjmj;
-            mesRohIn.CancellationStatus = rohIn.FCancelStatus;
-            mesRohIn.CancellationPerson = rohIn.FCancellerId;
+        mesRohIn.CreateBy = rohIn.FCreatorId;
 
-            if (rohIn.FCancelDate != null)
-                mesRohIn.CancellationDate =
-                    DateTime.ParseExact(rohIn.FCancelDate,
-                        "yyyy-MM-dd HH:mm:ss", null);
+        if (rohIn.FCreateDate != null)
+            mesRohIn.CreateDate = DateTime.ParseExact(rohIn.FCreateDate,
+                "yyyy-MM-dd HH:mm:ss", null);
 
-            mesRohIn.CreateBy = rohIn.FCreatorId;
+        mesRohIn.LastupdateBy = rohIn.FModifierId;
 
-            if (rohIn.FCreateDate != null)
-                mesRohIn.CreateDate = DateTime.ParseExact(rohIn.FCreateDate,
-                    "yyyy-MM-dd HH:mm:ss", null);
+        if (rohIn.FModifyDate != null)
+            mesRohIn.LastupdateDate = DateTime.ParseExact(rohIn.FModifyDate,
+                "yyyy-MM-dd HH:mm:ss", null);
 
-            mesRohIn.LastupdateBy = rohIn.FModifierId;
+        mesRohIn.ErpCheckBy = rohIn.FApproverId;
+        mesRohIn.ErpCheckDate = rohIn.FApproveDate;
+        mesRohIn.Changereason = rohIn.FCHANGEREASON;
 
-            if (rohIn.FModifyDate != null)
-                mesRohIn.LastupdateDate = DateTime.ParseExact(rohIn.FModifyDate,
-                    "yyyy-MM-dd HH:mm:ss", null);
+        return mesRohIn;
+    }
 
-            mesRohIn.ErpCheckBy = rohIn.FApproverId;
-            mesRohIn.ErpCheckDate = rohIn.FApproveDate;
-            mesRohIn.Changereason = rohIn.FCHANGEREASON;
-
-            return mesRohIn;
-        }
-
-        // 灏� ErpRohinData 瀵硅薄杞崲涓� MesRohInData 瀵硅薄鐨勬柟娉�
-        public List<MesRohInData> GetMesRohInDatas(
-            List<ErpRohinData> erpRohinDatas, string type)
+    // 灏� ErpRohinData 瀵硅薄杞崲涓� MesRohInData 瀵硅薄鐨勬柟娉�
+    public List<MesRohInData> GetMesRohInDatas(
+        List<ErpRohinData> erpRohinDatas, string type)
+    {
+        return erpRohinDatas.Select(s =>
         {
-            return erpRohinDatas.Select(s =>
+            var entity = new MesRohInData
             {
-                var entity = new MesRohInData
-                {
-                    EbelnK3id = Convert.ToDecimal(s.id),
-                    ErpId = Convert.ToDecimal(s.Eid),
-                    BillNo = s.FBillNo,
-                    SalesOrderId = s.F_UNW_Text_xsddh,
-                    ItemId = s.FMaterialId,
-                    PurchaseUnit = s.FUnitId,
-                    PurchaseQty = Convert.ToDecimal(s.FQty),
-                    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)
-                        : null,
-                    EarliestDeliveryDate = s.FDeliveryEarlyDate != null
-                        ? DateTime.ParseExact(s.FDeliveryEarlyDate,
-                            "yyyy-MM-dd HH:mm:ss", null)
-                        : null,
-                    LatestDeliveryDate = s.FDeliveryLastDate != null
-                        ? DateTime.ParseExact(s.FDeliveryLastDate,
-                            "yyyy-MM-dd HH:mm:ss", null)
-                        : null,
-                    IsGift = s.FGiveAway,
-                    Remarks = s.FEntryNote,
-                    SupplierItemCode = s.FSupMatId,
-                    SupplierItemName = s.FSupMatName,
-                    OutsourcingOrderId = s.FSUBREQBILLNO,
-                    BatchNumber = s.FLot,
-                    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,
-                    BusinessTerminate = s.FMRPTerminateStatus,
-                    Terminator = s.FTerminaterId,
-                    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),
-                    ReturnableStoredQty = Convert.ToDecimal(s.FSTOCKRETQTY),
-                    SourceDocumentType = s.FSrcBillTypeId,
-                    SourceDocumentId = s.FSrcBillNo,
-                    DemandTrackingId = s.FReqTraceNo,
-                    PlanTrackingId = s.FMtoNo,
-                    ChangeFlag = s.FChangeFlag,
-                    DemandSource = s.FDEMANDTYPE,
-                    DemandDocumentId = s.FDEMANDBILLNO,
-                    DemandDocumentLineId = s.FDEMANDBILLENTRYSEQ,
-                    PurchaseOrderLineNumber = s.PurchaseOrderLineNumber,
-                    Demand = s.Demand,
-                    Receiving = s.Receiving,
-                    Settlement = s.Settlement
-                };
+                EbelnK3id = Convert.ToDecimal(s.id),
+                ErpId = Convert.ToDecimal(s.Eid),
+                BillNo = s.FBillNo,
+                SalesOrderId = s.F_UNW_Text_xsddh,
+                ItemId = s.FMaterialId,
+                PurchaseUnit = s.FUnitId,
+                PurchaseQty = Convert.ToDecimal(s.FQty),
+                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)
+                    : null,
+                EarliestDeliveryDate = s.FDeliveryEarlyDate != null
+                    ? DateTime.ParseExact(s.FDeliveryEarlyDate,
+                        "yyyy-MM-dd HH:mm:ss", null)
+                    : null,
+                LatestDeliveryDate = s.FDeliveryLastDate != null
+                    ? DateTime.ParseExact(s.FDeliveryLastDate,
+                        "yyyy-MM-dd HH:mm:ss", null)
+                    : null,
+                IsGift = s.FGiveAway,
+                Remarks = s.FEntryNote,
+                SupplierItemCode = s.FSupMatId,
+                SupplierItemName = s.FSupMatName,
+                OutsourcingOrderId = s.FSUBREQBILLNO,
+                BatchNumber = s.FLot,
+                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,
+                BusinessTerminate = s.FMRPTerminateStatus,
+                Terminator = s.FTerminaterId,
+                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),
+                ReturnableStoredQty = Convert.ToDecimal(s.FSTOCKRETQTY),
+                SourceDocumentType = s.FSrcBillTypeId,
+                SourceDocumentId = s.FSrcBillNo,
+                DemandTrackingId = s.FReqTraceNo,
+                PlanTrackingId = s.FMtoNo,
+                ChangeFlag = s.FChangeFlag,
+                DemandSource = s.FDEMANDTYPE,
+                DemandDocumentId = s.FDEMANDBILLNO,
+                DemandDocumentLineId = s.FDEMANDBILLENTRYSEQ,
+                PurchaseOrderLineNumber = s.PurchaseOrderLineNumber,
+                Demand = s.Demand,
+                Receiving = s.Receiving,
+                Settlement = s.Settlement
+            };
 
-                var single = rohInDataManager.GetSingle(it =>
-                    it.EbelnK3id == entity.EbelnK3id);
-                if (single != null) entity.Id = single.Id;
+            var single = rohInDataManager.GetSingle(it =>
+                it.EbelnK3id == entity.EbelnK3id);
+            if (single != null) entity.Id = single.Id;
 
-                return entity;
-            }).ToList();
-        }
+            return entity;
+        }).ToList();
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3