sjz
5 天以前 5de35354e8dfcb4933350d0d1b645d400bcf23ab
MES.Service/service/WomcaaWWManager.cs
@@ -2,8 +2,6 @@
using MES.Service.Dto.webApi;
using MES.Service.Modes;
using SqlSugar;
using System;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
namespace MES.Service.service;
@@ -15,8 +13,8 @@
    private readonly WomcabManager _womcabWWManager = new();
    private decimal?[] decimals;
    private bool update;
    private bool insertOrUpdate;
    private bool update;
    public bool SaveList(List<ErpWOM> rohIns)
    {
@@ -35,12 +33,15 @@
            switch (womErpCaa.Type)
            {
                case "3":
                    return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0;
                    return DeleteData(db, mesWomcaa, mesWomcabs) ? 1 : 0;
                case "1":
                case "2":
                case "4":
                    return SaveOrUpdateDataWw(db, mesWomcaa, mesWomcabs)
                        ? 1
                        : 0;
                case "5":
                    return SaveOrUpdateDataWw(db, mesWomcaa, mesWomcabs) ? 1 : 0;
                    return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0;
                default:
                    throw new NotImplementedException(
                        $"type没有{womErpCaa.Type}这个类型");
@@ -48,32 +49,98 @@
        }) > 0;
    }
    private bool SaveOrUpdateDataWw(SqlSugarScope db, Womcaa mesWomcaa, List<Womcab> mesWomcabss)
    private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa,
        List<Womcab> mesWomcabs)
    {
        if (mesWomcaa.Id != null) base.DeleteById(mesWomcaa.Id);
        if (mesWomcabss.Count > 0)
            db.Deleteable<Womcab>().Where(s => s.Eid == mesWomcaa.Erpid).ExecuteCommand();
        if (mesWomcabs.Count > 0)
            db.Deleteable<Womcab>().Where(s => s.Eid == mesWomcaa.Erpid)
                .ExecuteCommand();
        var orUpdate = base.Insert(mesWomcaa);
        var baOrUpdate = _womcabWWManager.InsertRange(mesWomcabss);
        if (orUpdate && baOrUpdate) return true;
        var baOrUpdate = _womcabWWManager.InsertRange(mesWomcabs);
        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("插入或更新失败");
    }
    private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa,List<Womcab> mesWomcabs)
    private bool SaveOrUpdateDataWw(SqlSugarScope db, Womcaa mesWomcaa,
        List<Womcab> mesWomcabss)
    {
        if (mesWomcaa.Id != null) base.DeleteById(mesWomcaa.Id);
        if (mesWomcabss.Count > 0)
            db.Deleteable<Womcab>().Where(s => s.Eid == mesWomcaa.Erpid)
                .ExecuteCommand();
        var orUpdate = base.Insert(mesWomcaa);
        var baOrUpdate = _womcabWWManager.InsertRange(mesWomcabss);
        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("插入或更新失败");
    }
    private bool DeleteData(SqlSugarScope db, Womcaa mesWomcaa,
        List<Womcab> mesWomcabs)
    {
        if (mesWomcaa.Id != null)
        {
            decimals = mesWomcabs.Select(s => s.Id).ToArray();
            update = base.DeleteById(mesWomcaa.Id);
            insertOrUpdate = db.Deleteable<Womcab>().In(decimals).ExecuteCommand() > 0;
            insertOrUpdate =
                db.Deleteable<Womcab>().In(decimals).ExecuteCommand() > 0;
        }
        else
        {
            update = true;
            insertOrUpdate = true;
        }
        if (update && insertOrUpdate) return true;
        throw new NotImplementedException("更新失败");
    }
@@ -93,6 +160,7 @@
            Caa012 = Convert.ToDecimal(dto.FQty),
            Caa013 = dto.FBomId,
            Caa015 = dto.FXSHTH,
            Caa015Head = dto.FSaleOrderEntrySeq,
            Caa016 = dto.FDescription,
            Caa017 = 0,
            Caa018 = Convert.ToDecimal(dto.PLAN_ID),
@@ -117,7 +185,7 @@
            SrcBillType = dto.FSrcBillType,
            SrcBillNo = dto.FSrcBillNo,
            SrcBillentryseq = dto.FSrcBillEntrySeq,
            SaleOrderNo = dto.FSaleOrderNo,
            SaleOrderNo = dto.FXSHTH,
            SaleOrderEntryseq = dto.FSaleOrderEntrySeq,
            ForceCloserid = dto.FForceCloserId,
            CloseType = dto.FCloseType,
@@ -132,16 +200,14 @@
            FPURORDERENTRYSEQ = Convert.ToDecimal(dto.FPurOrderEntrySeq),
            FSUBENTRYID = Convert.ToDecimal(dto.fsubentryid),
            FSTOCKINQTY = Convert.ToDecimal(dto.Caa024),
            FNOSTOCKINQTY = Convert.ToDecimal(dto.Caa025)
            FNOSTOCKINQTY = Convert.ToDecimal(dto.Caa025),
            SupplierId = dto.SupplierId,
            FinishedProduct = dto.FinishedProduct
        };
        if (dto.Type == "5")
        {
            entity.IsXg = 1;
        }
        else
        {
            entity.IsXg = 0;
        }
        if (dto.FStatus == "6" || dto.FStatus == "7")
        {
@@ -186,10 +252,11 @@
                Denominator = Convert.ToDecimal(dto.FDenominator),
                SCRAPQTY = Convert.ToDecimal(dto.FFixScrapQty),
                SCRAPRATE = Convert.ToDecimal(dto.FScrapRate),
                SalesOrder = dto.FXSHTBH,
                SalesOrder = dto.F_WWC_TEXT
            };
            var entity = Db.Queryable<Womcab>().Where(s => s.Erpid == womcab.Erpid).Single();
            var entity = Db.Queryable<Womcab>()
                .Where(s => s.Erpid == womcab.Erpid).Single();
            if (entity != null) womcab.Id = entity.Id;
            womcabList.Add(womcab);