南骏 池
2025-06-06 a4ae3bf5f1826e8e29a95da3dc2c947d713d4ebb
MES.Service/service/BasicData/MesRohInManager.cs
@@ -1,7 +1,9 @@
using MES.Service.DB;
using Masuit.Tools;
using MES.Service.DB;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
using SqlSugar;
using System.Globalization;
namespace MES.Service.service.BasicData;
@@ -37,15 +39,15 @@
    private bool UpdateData(SqlSugarScope db, MesRohIn mesRohIn,
        List<MesRohInData> mesRohInDatas)
    {
        var decimals = mesRohInDatas.Select(s => s.Id).ToArray();
        var decimals = mesRohInDatas.Select(s => s.Guid).ToArray();
        var update = db.Deleteable<MesRohIn>()
            .Where(a => a.Id == mesRohIn.Id)
            .Where(a => a.Guid == mesRohIn.Guid)
            .ExecuteCommand() > 0;
        var insertOrUpdate = db
            .Deleteable<MesRohInData>()
            .Where(s => decimals.Contains(s.Id))
            .Where(s => decimals.Contains(s.Guid))
            .ExecuteCommand() > 0;
        if (update && insertOrUpdate) return true;
@@ -56,16 +58,22 @@
    private bool SaveOrUpdateData(SqlSugarScope db, MesRohIn mesRohIn,
        List<MesRohInData> mesRohInDatas)
    {
        if (mesRohIn.Id != null)
            db.Deleteable<MesRohIn>().Where(s => s.Id == mesRohIn.Id)
        if (mesRohIn.Guid != null)
            db.Deleteable<MesRohIn>().Where(s => s.Guid == mesRohIn.Guid)
                .ExecuteCommand();
        if (mesRohInDatas.Count > 0)
            db.Deleteable<MesRohInData>()
                .Where(s => s.ErpId == mesRohIn.EbelnK3id).ExecuteCommand();
        var orUpdate = base.Insert(mesRohIn);
        var baOrUpdate = rohInDataManager.InsertRange(mesRohInDatas);
        var orUpdate = db.Insertable(mesRohIn)
            .IgnoreColumns(true).ExecuteCommand() > 0;
        var baOrUpdate = db.Insertable(mesRohInDatas).PageSize(1)
            .IgnoreColumnsNull()
            .ExecuteCommand() > 0;
        if (orUpdate && baOrUpdate) return true;
        throw new NotImplementedException("插入或更新失败");
    }
@@ -83,8 +91,9 @@
        var eid = long.Parse(rohIn.id);
        var mesRohIn = new MesRohIn();
        var single = base.GetSingle(it => it.EbelnK3id == eid);
        if (single != null) mesRohIn.Id = single.Id;
        if (single != null) mesRohIn.Guid = single.Guid;
        mesRohIn.EbelnK3id = eid;
        mesRohIn.BillNo = rohIn.FBillNo;
@@ -110,9 +119,10 @@
        mesRohIn.CancellationPerson = rohIn.FCancellerId;
        if (rohIn.FCancelDate != null)
            mesRohIn.CancellationDate =
                DateTime.ParseExact(rohIn.FCancelDate,
                    "yyyy-MM-dd HH:mm:ss", null);
            if (!mesRohIn.CancellationPerson.IsNullOrEmpty())
                mesRohIn.CancellationDate =
                    DateTime.ParseExact(rohIn.FCancelDate,
                        "yyyy-MM-dd HH:mm:ss", null);
        mesRohIn.CreateBy = rohIn.FCreatorId;
@@ -142,7 +152,7 @@
        mesRohIn.FixedTelephone = rohIn.FixedTelephone;
        mesRohIn.Address = rohIn.Address;
        mesRohIn.Acctype = rohIn.Acctype;
        mesRohIn.SynchronousDate = DateTime.Now;
        return mesRohIn;
    }
@@ -155,7 +165,7 @@
        {
            var entity = new MesRohInData
            {
                 EbelnK3id = Convert.ToDecimal(s.id),
                EbelnK3id = Convert.ToDecimal(s.id),
                ErpId = Convert.ToDecimal(s.Eid),
                BillNo = s.FBillNo,
                ItemId = s.FMaterialId,
@@ -185,23 +195,29 @@
                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,
                //FreezeTime = !string.IsNullOrEmpty(s.FFreezeDate)
                //            && DateTime.TryParseExact(s.FFreezeDate,
                //                new[] { "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd" },  // 支持多种格式
                //                CultureInfo.InvariantCulture,
                //                DateTimeStyles.None,
                //                out var parsedDate)
                //            && parsedDate > new DateTime(1900, 1, 1)
                //                ? parsedDate
                //                : (DateTime?)null,
                BusinessTerminate = s.FMRPTerminateStatus,
                Terminator = s.FTerminaterId,
                TerminateTime = s.FTerminateDate != null
                    ? DateTime.ParseExact(s.FTerminateDate,
                        "yyyy-MM-dd HH:mm:ss", null)
                    : null,
                //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), //收料可退数
                ReturnableReceivedQty =
                    Convert.ToDecimal(s.FCHECKRETQTY), //收料可退数
                ReturnableStoredQty = Convert.ToDecimal(s.FSTOCKRETQTY), //库存可退数
                SourceDocumentType = s.FSrcBillTypeId,
                SourceDocumentId = s.FSrcBillNo,
@@ -222,9 +238,21 @@
                ReceivingDepartment = s.FReceiveDeptId
            };
            if (s.FFreezeDate != null)
                if (!s.FFreezerId.IsNullOrEmpty())
                    entity.FreezeTime =
                        DateTime.ParseExact(s.FFreezeDate,
                            "yyyy-MM-dd HH:mm:ss", null);
            if (s.FTerminateDate != null)
                if (!s.FTerminaterId.IsNullOrEmpty())
                    entity.TerminateTime =
                        DateTime.ParseExact(s.FTerminateDate,
                            "yyyy-MM-dd HH:mm:ss", null);
            var single = rohInDataManager.GetSingle(it =>
                it.EbelnK3id == entity.EbelnK3id);
            if (single != null) entity.Id = single.Id;
            if (single != null) entity.Guid = single.Guid;
            return entity;
        }).ToList();