sjz
2025-07-28 f1deb7b024e17cba204de5fcb0dac15801436b90
MES.Service/service/WomcaaManager.cs
@@ -1,9 +1,7 @@
using Dm;
using MES.Service.DB;
using MES.Service.DB;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
using SqlSugar;
using System.Net.NetworkInformation;
namespace MES.Service.service;
@@ -24,7 +22,8 @@
    public bool Save(ErpWOM wom)
    {
        var womErpCaa = wom.ErpCaa;
        var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa);
        var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa, wom.ErpCabs[0].FXSHTBH,
            wom.ErpCabs[0].F_ZJXF_HSDJ);
        var mesWomcabs =
            MapErpCABtoWomcab(wom.ErpCabs);
@@ -41,12 +40,13 @@
                case "5":
                    return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0;
                default:
                    throw new NotImplementedException(
                        $"type没有{womErpCaa.Type}这个类型");
                    throw new NotImplementedException( $"type没有{womErpCaa.Type}这个类型");
            }
        }) > 0;
    }
    private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa, List<Womcab> mesWomcabs)
    private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa,
        List<Womcab> mesWomcabs)
    {
        if (mesWomcaa.Id != null)
        {
@@ -58,6 +58,7 @@
        }
        var orUpdate = base.Insert(mesWomcaa);
        var baOrUpdate = _womcabManager.InsertRange(mesWomcabs);
        db.Ado.CommitTran();
        if (orUpdate && baOrUpdate)
        {
            //定义输入参数
@@ -66,33 +67,61 @@
            var outParam1 = new SugarParameter("c_Result", null, true);
            var outParam2 = new SugarParameter("C_MSG", null, true);
            // 使用 SqlSugar 执行存储过程
            Db.Ado.ExecuteCommand("BEGIN PRC_UPDATE_DAA(:P_WORK_NO,:c_Result,:C_MSG); END;", inputParam1, outParam1, outParam2);
            Db.Ado.ExecuteCommand("BEGIN PRC_UPDATE_DAA(:P_WORK_NO,:c_Result,:C_MSG); END;",inputParam1, outParam1, outParam2);
            // 获取输出参数的值
            int result = int.Parse((string)outParam1.Value);
            string message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value;
            var result = int.Parse((string)outParam1.Value);
            var message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value;
            if (result == 1)
            {
                //存储过程失败则事务进行回滚
                db.Ado.RollbackTran();
                //db.Ado.RollbackTran();
                throw new Exception(message);
            }
            // 提交事务
            db.Ado.CommitTran();
            //db.Ado.CommitTran();
            return true;
        }
        throw new NotImplementedException("插入或更新失败");
    }
    private bool SaveOrUpdateData(SqlSugarScope db, Womcaa mesWomcaa,List<Womcab> mesWomcabs)
    {
        if (mesWomcaa.Id != null) base.DeleteById(mesWomcaa.Id);
        if (mesWomcaa.Id != null)
        {
            base.DeleteById(mesWomcaa.Id);
        }
        if (mesWomcabs.Count > 0)
        {
            db.Deleteable<Womcab>().Where(s => s.Eid == mesWomcaa.Erpid).ExecuteCommand();
        }
        var orUpdate = base.Insert(mesWomcaa);
        var baOrUpdate = _womcabManager.InsertRange(mesWomcabs);
        if (orUpdate && baOrUpdate) return true;
        db.Ado.CommitTran();
        if (orUpdate && baOrUpdate)
        {
            //定义输入参数
            var inputParam1 = new SugarParameter("P_WORK_NO", mesWomcaa.Caa001);
            // 定义输出参数
            var outParam1 = new SugarParameter("c_Result", null, true);
            var outParam2 = new SugarParameter("C_MSG", null, true);
            // 使用 SqlSugar 执行存储过程
            Db.Ado.ExecuteCommand("BEGIN PRC_UPDATE_DAA(:P_WORK_NO,:c_Result,:C_MSG); END;",inputParam1, outParam1, outParam2);
            // 获取输出参数的值
            var result = int.Parse((string)outParam1.Value);
            var message = outParam2.Value == DBNull.Value ? string.Empty : (string)outParam2.Value;
            if (result == 1)
            {
                //存储过程失败则事务进行回滚
                //db.Ado.RollbackTran();
                throw new Exception(message);
            }
            // 提交事务
            //db.Ado.CommitTran();
            return true;
        }
        throw new NotImplementedException("插入或更新失败");
    }
@@ -100,15 +129,18 @@
    {
        var decimals = mesWomcabs.Select(s => s.Id).ToArray();
        var update = base.DeleteById(mesWomcaa.Id);
        var insertOrUpdate = db.Deleteable<Womcab>().In(decimals).ExecuteCommand() > 0;
        var insertOrUpdate =db.Deleteable<Womcab>().In(decimals).ExecuteCommand() > 0;
        if (update && insertOrUpdate) return true;
        if (update && insertOrUpdate)
        {
            return true;
        }
        throw new NotImplementedException("更新失败");
    }
    private Womcaa MapErpCAAtoWomcaa(ErpCAA dto)
    private Womcaa MapErpCAAtoWomcaa(ErpCAA dto, string? fxshtbh, string? hsdj)
    {
        string jabs="0";
        var jabs = "0";
        var entity = new Womcaa
        {
@@ -122,7 +154,7 @@
            Caa011 = dto.FPlanFinishDate,
            Caa012 = Convert.ToDecimal(dto.FQty),
            Caa013 = dto.FBomId,
            Caa015 = dto.FXSHTH,
            Caa015 = fxshtbh,
            Caa015Head = dto.FSaleOrderEntrySeq,
            Caa016 = dto.FDescription,
            Caa017 = 0,
@@ -135,7 +167,7 @@
            Caa023 = dto.FStatus,
            Caa024 = 0,
            RoutingId = dto.FRoutingId,
            WorkShopId = dto.FREMWorkShopId,
            WorkShopId = dto.FremWorkShopId,
            DepotCode = dto.FStockId,
            CreateDate = dto.FDate,
            WorkGroupId = dto.FWorkGroupId,
@@ -148,17 +180,20 @@
            SrcBillType = dto.FSrcBillType,
            SrcBillNo = dto.FSrcBillNo,
            SrcBillentryseq = dto.FSrcBillEntrySeq,
            SaleOrderNo = dto.FXSHTH,
            SaleOrderNo = dto.FSaleOrderNo,
            SaleOrderEntryseq = dto.FSaleOrderEntrySeq,
            ForceCloserid = dto.FForceCloserId,
            CloseType = dto.FCloseType,
            SrcSplitBillno = dto.FSrcSplitBillNo,
            F_ZSXG_KH = dto.F_ZSXG_KH,
            F_ZJXF_YHRQ = dto.F_ZJXF_YHRQ,
            PrdOrg = dto.erP_SCZZ,
            TrustOrg = dto.erP_WTZZ,
            PrdOrg = dto.ERP_SCZZ,
            TrustOrg = dto.ERP_WTZZ,
            TbTime = DateTime.Now,
            JaBs = "0"
            JaBs = "0",
            SupplierId = dto.SupplierId,
            FinishedProduct = dto.FinishedProduct,
            F_ZJXF_HSDJ = hsdj
        };
        if (dto.Type == "5")
@@ -177,7 +212,10 @@
        }
        var single = base.GetSingle(it => it.Erpid == entity.Erpid);
        if (single != null) entity.Id = single.Id;
        if (single != null)
        {
            entity.Id = single.Id;
        }
        return entity;
    }
@@ -202,8 +240,8 @@
                Pid = Convert.ToDecimal(dto.FID),
                Eid = Convert.ToDecimal(dto.FID),
                PositionNo = dto.FPositionNO,
                IssuingOrganization=dto.FSupplyOrg,
                SupplyOrganization=dto.FChildSupplyOrgId,
                IssuingOrganization = dto.FSupplyOrg,
                SupplyOrganization = dto.FChildSupplyOrgId,
                OwnerId = dto.FOwnerID,
                Mtono = dto.FMTONO,
                Lot = dto.FLot,
@@ -214,13 +252,16 @@
                Denominator = Convert.ToDecimal(dto.FDenominator),
                SCRAPQTY = Convert.ToDecimal(dto.FFixScrapQty),
                SCRAPRATE = Convert.ToDecimal(dto.FScrapRate),
                SalesOrder=dto.FXSHTBH,
                F_ZJXF_YHRQ=dto.F_ZJXF_YHRQ
                SalesOrder = dto.FXSHTBH,
                F_ZJXF_YHRQ = dto.F_ZJXF_YHRQ,
                ProcNo = dto.F_ZJXF_SSGX
            };
            var entity = Db.Queryable<Womcab>()
                .Where(s => s.Erpid == womcab.Erpid).Single();
            if (entity != null) womcab.Id = entity.Id;
            var entity = Db.Queryable<Womcab>().Where(s => s.Erpid == womcab.Erpid).Single();
            if (entity != null)
            {
                womcab.Id = entity.Id;
            }
            womcabList.Add(womcab);
        }