啊鑫
2024-10-29 4f0cb973a7db26a9e65247033a95d9a8b3380d4b
MES.Service/service/BasicData/MesRohInManager.cs
@@ -14,77 +14,38 @@
    {
        var rohInErpRohIn = rohIn.ErpRohIn;
        var mesRohIn = GetMesRohIn(rohInErpRohIn);
        var mesRohInDatas = GetMesRohInDatas(rohIn.ErpRohinDatas, rohInErpRohIn.Type);
        var mesRohInDatas =
            GetMesRohInDatas(rohIn.ErpRohinDatas);
        return UseTransaction(db =>
        {
            switch (rohInErpRohIn.Type)
            return rohInErpRohIn.Type switch
            {
                case "2":
                case "4":
                case "5":
                    return SaveOrUpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0;
                case "3":
                    return UpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0;
                default:
                    throw new NotImplementedException(
                        $"type没有{rohInErpRohIn.Type}这个类型");
            }
                "2" or "4" or "5" => SaveOrUpdateData(db, mesRohIn,
                    mesRohInDatas)
                    ? 1
                    : 0,
                "3" => UpdateData(db, mesRohIn, mesRohInDatas) ? 1 : 0,
                _ => throw new NotImplementedException(
                    $"type没有{rohInErpRohIn.Type}这个类型")
            };
        }) > 0;
    }
    // 插入数据的方法
    private bool InsertData(SqlSugarScope db, MesRohIn mesRohIn,
        List<MesRohInData> mesRohInDatas, string FBILLTYPE)
    {
        switch (FBILLTYPE)
        {
            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 insert = base.Insert(mesRohIn);
                    var insertRange =
                        rohInDataManager.InsertRange(mesRohInDatas);
                    if (insert && insertRange) return true;
                    throw new NotImplementedException("插入失败");
                }
                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 update = db.Deleteable<MesRohIn>()
            .Where(a => a.Id == mesRohIn.Id)
            .ExecuteCommand() > 0;
        var insertOrUpdate = db
            .Deleteable<MesRohInData>().In(decimals)
            .Deleteable<MesRohInData>()
            .Where(s => decimals.Contains(s.Id))
            .ExecuteCommand() > 0;
        if (update && insertOrUpdate) return true;
@@ -95,7 +56,9 @@
    private bool SaveOrUpdateData(SqlSugarScope db, MesRohIn mesRohIn,
        List<MesRohInData> mesRohInDatas)
    {
        if (mesRohIn.Id != null) base.DeleteById(mesRohIn.Id);
        if (mesRohIn.Id != null)
            db.Deleteable<MesRohIn>().Where(s => s.Id == mesRohIn.Id)
                .ExecuteCommand();
        if (mesRohInDatas.Count > 0)
            db.Deleteable<MesRohInData>()
@@ -115,9 +78,9 @@
    }
    // 将 ErpRohIn 对象转换为 MesRohIn 对象的方法
    public MesRohIn GetMesRohIn(ErpRohIn rohIn)
    private MesRohIn GetMesRohIn(ErpRohIn rohIn)
    {
        var eid = Convert.ToDecimal(rohIn.id);
        var eid = long.Parse(rohIn.id);
        var mesRohIn = new MesRohIn();
        var single = base.GetSingle(it => it.EbelnK3id == eid);
@@ -138,15 +101,11 @@
        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_XIFG_Text_qtr1;
        //  mesRohIn.FixtureMoldProcurement = rohIn.F_UNW_Combo_zjmj;
        mesRohIn.Email = rohIn.FProviderEMail;
        mesRohIn.Remarks = rohIn.Remarks;
        mesRohIn.CancellationStatus = rohIn.FCancelStatus;
        mesRohIn.CancellationPerson = rohIn.FCancellerId;
@@ -169,36 +128,42 @@
        mesRohIn.ErpCheckBy = rohIn.FApproverId;
        mesRohIn.ErpCheckDate = rohIn.FApproveDate;
        mesRohIn.Changereason = rohIn.FCHANGEREASON;
        mesRohIn.FPREARRIVALDATE = rohIn.FPREARRIVALDATE != null
            ? DateTime.ParseExact(rohIn.FPREARRIVALDATE,
        mesRohIn.Changereason = rohIn.FChangeReason;
        mesRohIn.Prearrivaldate = rohIn.Prearrivaldate != null
            ? DateTime.ParseExact(rohIn.Prearrivaldate,
                "yyyy-MM-dd HH:mm:ss", null)
            : null;
        mesRohIn.FRECEIVEORGID = rohIn.FRECEIVEORGID;
        mesRohIn.ReceiveOrgId = rohIn.FReceiveOrgId;
        mesRohIn.ProviderId = rohIn.FProviderId;
        mesRohIn.remark1 = rohIn.F_XIFG_PrintTimes_qtr;
        mesRohIn.Anred = rohIn.FTContact;
        mesRohIn.Telf1 = rohIn.Fmobilephone;
        mesRohIn.FixedTelephone = rohIn.FixedTelephone;
        mesRohIn.Address = rohIn.Address;
        mesRohIn.Acctype = rohIn.Acctype;
        return mesRohIn;
    }
    // 将 ErpRohinData 对象转换为 MesRohInData 对象的方法
    public List<MesRohInData> GetMesRohInDatas(
        List<ErpRohinData> erpRohinDatas, string type)
    private List<MesRohInData> GetMesRohInDatas(
        List<ErpRohinData> erpRohinDatas)
    {
        return erpRohinDatas.Select(s =>
        {
            var entity = new MesRohInData
            {
                EbelnK3id = Convert.ToDecimal(s.id),
                 EbelnK3id = Convert.ToDecimal(s.id),
                ErpId = Convert.ToDecimal(s.Eid),
                BillNo = s.FBillNo,
                SalesOrderId = s.F_XIFG_Text_k79,
                OrderLineId = s.FSEQ,
                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)
@@ -212,7 +177,7 @@
                        "yyyy-MM-dd HH:mm:ss", null)
                    : null,
                IsGift = s.FGiveAway,
                Remarks = s.Fnote,
                Remarks = s.FEntryNote,
                SupplierItemCode = s.FSupMatId,
                SupplierItemName = s.FSupMatName,
                OutsourcingOrderId = s.FSUBREQBILLNO,
@@ -254,18 +219,7 @@
                Receiving = s.FReceiveOrgId,
                Settlement = s.FSETTLEORGID,
                DemandDepartment = s.FRequireDeptId,
                ReceivingDepartment = s.FReceiveDeptId,
                FPREARRIVALDATE = s.FPREARRIVALDATE != null
                    ? DateTime.ParseExact(s.FPREARRIVALDATE,
                        "yyyy-MM-dd HH:mm:ss", null)
                    : null,
                Remark1 = s.F_XIFG_Text_ne1,
                Remark2 = s.F_XIFG_Text_6oq,
                Remark3 = s.F_XIFG_Base_c1c,
                Remark4 = s.F_XIFG_Text_qtr4,
                FdemandbillnoLine = s.FdemandbillnoLine,
                ElectricalProductModel = s.ElectricalProductModel,
                ElectricalProductName = s.ElectricalProductName
                ReceivingDepartment = s.FReceiveDeptId
            };
            var single = rohInDataManager.GetSingle(it =>