sjz
2025-09-12 0c1a03e880bbf795b771a9c8ee4b7b271c262b58
MES.Service/service/WomcaaManager.cs
@@ -23,10 +23,8 @@
    public bool Save(ErpWOM wom)
    {
        var womErpCaa = wom.ErpCaa;
        var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa, wom.ErpCabs[0].FBillNo);
        var mesWomcabs =
            MapErpCABtoWomcab(wom.ErpCabs);
        var mesWomcabs = MapErpCABtoWomcab(wom.ErpCabs);
        return UseTransaction(db =>
        {
@@ -38,35 +36,29 @@
                case "4":
                //kyy 2024-09-13 变更
                case "5":
                    return SaveOrUpdateData(db, mesWomcaa, mesWomcabs)
                        ? 1
                        : 0;
                    return SaveOrUpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0;
                default:
                    throw new NotImplementedException(
                        $"type没有{womErpCaa.Type}这个类型");
                    throw new NotImplementedException($"type没有{womErpCaa.Type}这个类型");
            }
        }) > 0;
    }
    private bool SaveOrUpdateData(SqlSugarScope db, Womcaa mesWomcaa,
        List<Womcab> mesWomcabs)
    private bool SaveOrUpdateData(SqlSugarScope db, Womcaa mesWomcaa,List<Womcab> mesWomcabs)
    {
        if (StringUtil.CheckGuid(mesWomcaa.Guid))
        {
            base.DeleteById(mesWomcaa.Guid);
        }
        if (mesWomcabs.Count > 0)
            db.Deleteable<Womcab>()
                .Where(s => s.Pid == mesWomcaa.Erpid).ExecuteCommand();
        {
            db.Deleteable<Womcab>().Where(s => s.Pid == mesWomcaa.Erpid).ExecuteCommand();
        }
        //单条插入忽略空字段
        var orUpdate = db.Insertable(mesWomcaa)
            .IgnoreColumns(true).ExecuteCommand() > 0;
        var orUpdate = db.Insertable(mesWomcaa).IgnoreColumns(true).ExecuteCommand() > 0;
        //批量插入忽略空字段
        var baOrUpdate = db.Insertable(mesWomcabs).PageSize(1)
            .IgnoreColumnsNull()
            .ExecuteCommand() > 0;
        var baOrUpdate = db.Insertable(mesWomcabs).PageSize(1).IgnoreColumnsNull().ExecuteCommand() > 0;
        // if (orUpdate && baOrUpdate) 
        // throw new NotImplementedException("插入或更新失败");
@@ -75,11 +67,10 @@
        {
            // 调用存储过程更新用料清单
            db.Ado.ExecuteCommand("exec [dbo].[prc_update_womdab] @outMsg output,@outSum output,@inEdtUserGuid,@inCaaGuid",
                new {
                    outMsg = (string)null,  // 输出参数
                    outSum = (int?)null,     // 输出参数
                    inEdtUserGuid = new Guid("11111111-1111-1111-1111-111111111111"),
                    inCaaGuid = new Guid(mesWomcaa.Guid.ToString())
                new { outMsg = (string)null,  // 输出参数
                      outSum = (int?)null,     // 输出参数
                      inEdtUserGuid = new Guid("11111111-1111-1111-1111-111111111111"),
                      inCaaGuid = new Guid(mesWomcaa.Guid.ToString())
                });
            return true;
        }
@@ -88,16 +79,16 @@
    }
    private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa,
        List<Womcab> mesWomcabs)
    private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa, List<Womcab> mesWomcabs)
    {
        var decimals = mesWomcabs.Select(s => s.Guid).ToArray();
        var update = base.DeleteById(mesWomcaa.Guid);
        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("更新失败");
    }
@@ -116,22 +107,17 @@
            Caa023 = dto.FStatus, ///     状态 完工,未完工
            Caa006 = dto.FMaterialId, ///     产品编码
            Caa009 = dto.FUnitId, ///     单位
            Caa012 = !string.IsNullOrEmpty(dto.FQty)
                ? Convert.ToDecimal(dto.FQty)
                : null, ///     数量
            Caa012 = !string.IsNullOrEmpty(dto.FQty) ? Convert.ToDecimal(dto.FQty) : null, ///     数量
            WorkGroupId = dto.FWorkGroupId, ///     计划组
            PlanId = dto.FPlannerID, ///     计划员
            Caa010 = dto.FPlanStartDate, ///     预计开工时间
            Caa011 = dto.FPlanFinishDate, ///     预计完工时间
            Caa005 = DateTime.TryParse(dto.FConveyDate, out var conveyDate)
            ? (conveyDate <= new DateTime(1900, 1, 1) ? null : conveyDate.ToString())
                : null, ///     开单日期
            Caa005 = DateTime.TryParse(dto.FConveyDate, out var conveyDate) ? (conveyDate <= new DateTime(1900, 1, 1) ? null : conveyDate.ToString()) : null, ///     开单日期
            StockInlimith = dto.FStockInLimitH, ///     入库上限
            StockInlimitl = dto.FStockInLimitL, ///     入库下限
            Mtono = dto.FMTONO, ///     计划跟踪号
            Lot = dto.FLot, ///     批号
            Caa013 = dto.FBomId, ///     BOM版次
            CreateType = dto.FCreateType, ///     生成方式
            SrcBillType = dto.FSrcBillType, ///     源单类型
            SrcBillNo = dto.FSrcBillNo, ///     源单编号
@@ -142,13 +128,8 @@
            CloseType = dto.FCloseType, ///     结案类型
            SrcSplitBillno = dto.FSrcSplitBillNo, ///     源拆分订单编号
            Caa016 = dto.FDESCRIPTION, ///     备注
            Caa018 = !string.IsNullOrEmpty(dto.PLAN_ID)
                ? Convert.ToInt32(dto.PLAN_ID)
                : null, ///     ERP源单ID
            Caa019 = !string.IsNullOrEmpty(dto.PLAN_SEQ)
                ? Convert.ToInt32(dto.PLAN_SEQ)
                : null, ///     ERP源单行号
            Caa018 = !string.IsNullOrEmpty(dto.PLAN_ID) ? Convert.ToInt32(dto.PLAN_ID) : null, ///     ERP源单ID
            Caa019 = !string.IsNullOrEmpty(dto.PLAN_SEQ) ? Convert.ToInt32(dto.PLAN_SEQ) : null, ///     ERP源单行号
            Caa020 = dto.PLAN_NUM, ///     ERP源单单号(任务单号)
            //Caa015 = dto.F_UNW_Text_xsddh, ///     销售订单号
            ErpSczz = Convert.ToInt32(dto.FPrdOrgId), ///     生产组织ID
@@ -171,7 +152,10 @@
        };
        var single = base.GetSingle(it => it.Erpid == entity.Erpid);
        if (single != null) entity.Guid = single.Guid;
        if (single != null)
        {
            entity.Guid = single.Guid;
        }
        return entity;
    }
@@ -188,12 +172,8 @@
                Cab001 = dto.FBillNo, /// 工单单号 
                Cab002 = Convert.ToInt32(dto.FSeq), /// 序号 
                Cab003 = dto.FMaterialID, /// 材料编码 
                Cab006 = !string.IsNullOrEmpty(dto.FNeedQty)
                    ? Convert.ToDecimal(dto.FNeedQty)
                    : null, /// 需领用量
                Cab007 = !string.IsNullOrEmpty(dto.FPickedQty)
                    ? Convert.ToDecimal(dto.FPickedQty)
                    : null, /// 已领用量
                Cab006 = !string.IsNullOrEmpty(dto.FNeedQty) ? Convert.ToDecimal(dto.FNeedQty) : null, /// 需领用量
                Cab007 = !string.IsNullOrEmpty(dto.FPickedQty) ? Convert.ToDecimal(dto.FPickedQty) : null, /// 已领用量
                PositionNo = dto.FPositionNO, /// 位置号 
                SupplyOrganization = dto.FChildSupplyOrgId, /// 供应组织 
                IssuingOrganization = dto.FSUPPLYORG, /// 发料组织 
@@ -205,15 +185,12 @@
                // Cab008 = dto.F_UNW_Text_tpgy, /// 工艺 
                Cab009 = dto.FUnitID, /// 单位 
                SupplyType = dto.FSupplyType, /// 供应类型(C采购 Z自制 W委外) 
                Cab012 = !string.IsNullOrEmpty(dto.FStdQty)
                    ? Convert.ToDecimal(dto.FStdQty)
                    : null, /// 组成用量
                Cab012 = !string.IsNullOrEmpty(dto.FStdQty) ? Convert.ToDecimal(dto.FStdQty) : null, /// 组成用量
                Cab014 = dto.FIsKeyItem, /// 是否替料 
                Numerator = dto.FNumerator, /// 分子 
                Denominator = dto.FDenominator, /// 分母 
                Pid = Convert.ToInt32(dto.PID), /// ERP头ID 
                Eid = Convert.ToInt32(dto.Id), /// ERP ID 
                Scrapqty = dto.FFixScrapQty, /// 固定损耗 
                Scraprate = dto.FScrapRate, /// 变动损耗率
                Freplacegroup = Convert.ToInt32(dto.FReplaceGroup),
@@ -223,7 +200,6 @@
                Typeb = dto.TypeB,
                LW_WLBGY = dto.F_WPVT_TEXT_RE5
                // Fsaleorderno = dto.FSALEORDERNO, /// 销售订单 
                //
                // CustomerItemNumber = dto.F_XIFG_Text_re5, /// 客户货号 
                // PackingListNumber = dto.F_XIFG_Text_apv, /// 包装单号 
                // MainProduct = dto.F_XIFG_Base_re5, /// 主产品 
@@ -232,9 +208,11 @@
                // ParentItemName = dto.F_XIFG_Base_apv /// 父项物料名称 
            };
            var entity = Db.Queryable<Womcab>()
                .Where(s => s.Eid == womcab.Eid).Single();
            if (entity != null) womcab.Guid = entity.Guid;
            var entity = Db.Queryable<Womcab>() .Where(s => s.Eid == womcab.Eid).Single();
            if (entity != null)
            {
                womcab.Guid = entity.Guid;
            }
            womcabList.Add(womcab);
        }