zjh
2025-04-26 f8187896eeafc43457b81f4d08a1f0821bf51f1c
StandardPda/MES.Service/service/WomcaaManager.cs
@@ -1,19 +1,12 @@
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;
using System.Runtime.CompilerServices;
namespace MES.Service.service;
public class WomcaaManager : Repository<Womcaa>
{
    //当前类已经继承了 Repository 增、删、查、改的方法
    //这里面写的代码不会给覆盖,如果要重新生成请删除 WomcaaManager.cs
    private readonly WomcabManager _womcabManager = new();
    public bool SaveList(List<ErpWOM> rohIns)
@@ -37,14 +30,13 @@
                    return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0;
                case "2":
                case "4":
                //kyy 2024-09-13 变更
                case "5":
                    return SaveOrUpdateData(db, mesWomcaa, mesWomcabs)
                        ? 1
                        : 0;
                default:
                    throw new NotImplementedException(
                        $"type没有{womErpCaa.Type}这个类型");
                        $"type类型为{womErpCaa.Type}的不存在");
            }
        }) > 0;
    }
@@ -58,17 +50,15 @@
            db.Deleteable<Womcab>()
                .Where(s => s.Eid == mesWomcaa.Erpid).ExecuteCommand();
        //单条插入忽略空字段
        var orUpdate = db.Insertable(mesWomcaa)
            .IgnoreColumns(true).ExecuteCommand() > 0;
        //批量插入忽略空字段
        var baOrUpdate = db.Insertable(mesWomcabs).PageSize(1)
            .IgnoreColumnsNull()
            .ExecuteCommand() > 0;
        if (orUpdate && baOrUpdate) return true;
        throw new NotImplementedException("插入或更新失败");
        throw new NotImplementedException("更新失败");
    }
    private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa,
@@ -86,130 +76,67 @@
    private Womcaa MapErpCAAtoWomcaa(ErpCAA dto)
    {
        //string jabs="0";
        //var entity = new Womcaa
        //{
        //    Erpid = Convert.ToDecimal(dto.Id),
        //    Caa001 = dto.FBillNo,
        //    Caa004 = dto.FBillType,
        //    Caa005 = dto.FConveyDate,
        //    Caa006 = dto.FMaterialId,
        //    Caa009 = dto.FUnitId,
        //    Caa010 = dto.FPlanStartDate,
        //    Caa011 = dto.FPlanFinishDate,
        //    Caa012 = Convert.ToDecimal(dto.FQty),
        //    Caa013 = dto.FBomId,
        //    Caa015 = dto.FSaleOrderNo,
        //    Caa015Head = dto.FSaleOrderEntrySeq,
        //    Caa016 = dto.FDescription,
        //    Caa017 = 0,
        //    Caa018 = Convert.ToDecimal(dto.PLAN_ID),
        //    Caa019 = dto.PLAN_SEQ,
        //    Caa020 = dto.PLAN_NUM,
        //    Caa021 = dto.FWorkShopID,
        //    Fstatus = 0,
        //    Caa022 = Convert.ToDecimal(dto.FQty),
        //    Caa023 = dto.FStatus,
        //    Caa024 = 0,
        //    RoutingId = dto.FRoutingId,
        //    WorkShopId = dto.FREMWorkShopId,
        //    DepotCode = dto.FStockId,
        //    CreateDate = dto.FDate,
        //    WorkGroupId = dto.FWorkGroupId,
        //    PlanId = dto.FPlannerID,
        //    StockInlimith = dto.FStockInLimitH,
        //    StockInlimitl = dto.FStockInLimitL,
        //    Mtono = dto.FMTONO,
        //    Lot = dto.FLot,
        //    CreateType = dto.FCreateType,
        //    SrcBillType = dto.FSrcBillType,
        //    SrcBillNo = dto.FSrcBillNo,
        //    SrcBillentryseq = dto.FSrcBillEntrySeq,
        //    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,
        //    TbTime = DateTime.Now,
        //    JaBs = "0"
        //};
        //if (dto.Type == "5")
        //{
        //    entity.IsXg = 1;
        //}
        //else
        //{
        //    entity.IsXg = 0;
        //}
        //if (dto.FStatus == "6" || dto.FStatus == "7")
        //{
        //    entity.JaBs = "1";
        //    entity.JaTime = DateTime.Now;
        //}
        var entity = new Womcaa
        {
            Erpid = Convert.ToInt32(dto.Id), ///     ERPID
            Caa001 = dto.FBillNo, ///     单号
            Caa021 = dto.FWorkShopID, ///     工作车间
            RoutingId = dto.FRoutingId, ///     工艺路线
            WorkShopId = dto.FREMWorkShopId, ///     产线
            DepotCode = dto.FStockId, ///     仓库
            CreateDate = dto.FDate, ///     单据日期
            Caa004 = dto.FBillType, ///     单据类型
            Caa023 = dto.FStatus, ///     状态 完工,未完工
            Caa006 = dto.FMaterialId, ///     产品编码
            Caa009 = dto.FUnitId, ///     单位
            Erpid = Convert.ToInt64(dto.Id),
            Caa001 = dto.FBillNo,
            Caa021 = dto.FWorkShopID,
            RoutingId = dto.FRoutingId,
            WorkShopId = dto.FREMWorkShopId,
            DepotCode = dto.FStockId,
            CreateDate = dto.FDate,
            Caa004 = dto.FBillType,
            Caa023 = dto.FStatus,
            Caa006 = dto.FMaterialId,
            Caa009 = dto.FUnitId,
            Caa012 = !string.IsNullOrEmpty(dto.FQty)
                ? Convert.ToDecimal(dto.FQty)
                : null, ///     数量
            WorkGroupId = dto.FWorkGroupId, ///     计划组
            PlanId = dto.FPlannerID, ///     计划员
            Caa010 = dto.FPlanStartDate, ///     预计开工时间
            Caa011 = dto.FPlanFinishDate, ///     预计完工时间
            Caa005 = dto.FConveyDate, ///     开单日期
            StockInlimith = dto.FStockInLimitH, ///     入库上限
            StockInlimitl = dto.FStockInLimitL, ///     入库下限
            Mtono = dto.FMTONO, ///     计划跟踪号
            Lot = dto.FLot, ///     批号
            Caa013 = dto.FBomId, ///     BOM版次
                : null,
            WorkGroupId = dto.FWorkGroupId,
            PlanId = dto.FPlannerID,
            Caa010 = dto.FPlanStartDate,
            Caa011 = dto.FPlanFinishDate,
            Caa005 = dto.FConveyDate,
            StockInlimith = dto.FStockInLimitH,
            StockInlimitl = dto.FStockInLimitL,
            Mtono = dto.FMTONO,
            Lot = dto.FLot,
            Caa013 = dto.FBomId,
            CreateType = dto.FCreateType, ///     生成方式
            CreateType = dto.FCreateType,
            Caa018 = !string.IsNullOrEmpty(dto.PLAN_ID)
                ? Convert.ToInt32(dto.PLAN_ID)
                : null, ///     ERP源单ID
            Caa019 = dto.PLAN_SEQ, ///     ERP源单行号
            Caa020 = dto.PLAN_NUM, ///     ERP源单单号(任务单号)
            SrcBillType = dto.FSrcBillType, ///     源单类型
            SrcBillNo = dto.FSrcBillNo, ///     源单编号
            SrcBillentryseq = dto.FSrcBillEntrySeq, ///     源单分录行号
            SaleOrderNo = dto.FSaleOrderNo, ///     需求单据号
            SaleOrderEntryseq = dto.FSaleOrderEntrySeq, ///     需求单据行号
            ForceCloserid = dto.FForceCloserId, ///     结案人
            CloseType = dto.FCloseType, ///     结案类型
            SrcSplitBillno = dto.FSrcSplitBillNo, ///     源拆分订单编号
            Caa016 = dto.FDescription, ///     备注
            BTBZ = dto.BTBZ, ///     备注
            PrdOrg = dto.FPrdOrgId, ///     生产组织ID
            TrustOrg = dto.FEnTrustOrgId, ///     委托组织ID
            Typea = dto.TypeA, ///     单据状态
            //沃尔新增
            WR_F_SCDD_SCTZD = dto.F_SCDD_SCTZD,
            WR_F_SCDD_XH = dto.F_SCDD_XH
                ? Convert.ToInt64(dto.PLAN_ID)
                : null,
            Caa019 = !string.IsNullOrEmpty(dto.PLAN_SEQ)
                ? Convert.ToInt64(dto.PLAN_SEQ)
                : null,
            Caa020 = dto.PLAN_NUM,
            SrcBillType = dto.FSrcBillType,
            SrcBillNo = dto.FSrcBillNo,
            SrcBillentryseq = dto.FSrcBillEntrySeq,
            SaleOrderNo = dto.FSaleOrderNo,
            SaleOrderEntryseq = dto.FSaleOrderEntrySeq,
            ForceCloserid = dto.FForceCloserId,
            CloseType = dto.FCloseType,
            SrcSplitBillno = dto.FSrcSplitBillNo,
            Caa016 = dto.FDescription,
            //BTBZ = dto.BTBZ,
            PrdOrg = dto.FPrdOrgId,
            TrustOrg = dto.FEnTrustOrgId
            //Typea = dto.TypeA
        };
        var single = base.GetSingle(it => it.Erpid == entity.Erpid);
        if (single != null) entity.Id = single.Id;
        //Caa006 = dto.FMaterialId,
        var mesLinkU9 = Db.Queryable<MesLinkU9>()
            .Where(x => x.U9Id == dto.FMaterialId
                        && x.OrgId == dto.FPrdOrgId
                        && x.TableType == "MES_ITEMS").First();
        if (mesLinkU9 != null) entity.Caa006 = mesLinkU9.MesId;
        return entity;
    }
@@ -222,13 +149,21 @@
        {
            var womcab = new Womcab
            {
                Erpid = Convert.ToDecimal(dto.ID),
                Erpid = !string.IsNullOrEmpty(dto.ID)
                    ? Convert.ToDecimal(dto.ID)
                    : throw new Exception("子表id不允许为空"),
                Cab001 = dto.FBillNo,
                Cab002 = dto.FSeq,
                Cab003 = dto.FMaterialID,
                Cab006 = Convert.ToDecimal(dto.FNeedQty),
                MustQty = Convert.ToDecimal(dto.FMustQty),
                Cab007 = Convert.ToDecimal(dto.FPickedQty),
                Cab006 = !string.IsNullOrEmpty(dto.FNeedQty)
                    ? Convert.ToDecimal(dto.FNeedQty)
                    : null,
                MustQty = !string.IsNullOrEmpty(dto.FMustQty)
                    ? Convert.ToDecimal(dto.FMustQty)
                    : null,
                Cab007 = !string.IsNullOrEmpty(dto.FPickedQty)
                    ? Convert.ToDecimal(dto.FPickedQty)
                    : null,
                PositionNo = dto.FPositionNO,
                SupplyOrganization = dto.FChildSupplyOrgId,
                IssuingOrganization = dto.FSupplyOrg,
@@ -239,25 +174,53 @@
                IssueType = dto.FIssueType,
                Cab009 = dto.FUnitID,
                SupplyType = dto.FSupplyType,
                Cab012 = Convert.ToDecimal(dto.FStdQty),
                Freplacegroup = Convert.ToInt32(dto.FReplaceGroup),
                UseRate = Convert.ToDecimal(dto.FUseRate),
                Cab012 = !string.IsNullOrEmpty(dto.FStdQty)
                    ? Convert.ToDecimal(dto.FStdQty)
                    : null,
                FreplaceGroup = !string.IsNullOrEmpty(dto.FReplaceGroup)
                    ? Convert.ToInt64(dto.FReplaceGroup)
                    : null,
                UseRate = !string.IsNullOrEmpty(dto.FUseRate)
                    ? Convert.ToDecimal(dto.FUseRate)
                    : null,
                MaterialType = dto.FMaterialType,
                Cab014 = dto.FIsKeyItem,
                Numerator = Convert.ToDecimal(dto.FNumerator),
                Denominator = Convert.ToDecimal(dto.FDenominator),
                Pid = Convert.ToDecimal(dto.FID),
                Eid = Convert.ToDecimal(dto.FID),
                SCRAPQTY = Convert.ToDecimal(dto.FFixScrapQty),
                SCRAPRATE = Convert.ToDecimal(dto.FScrapRate),
                Typeb = dto.TypeB,
                WR_F_XIFG_Base_qtr = dto.F_XIFG_Base_qtr,
                WR_F_XIFG_Base_83g = dto.F_XIFG_Base_83g
                Cab014 = !string.IsNullOrEmpty(dto.FIsKeyItem)
                    ? Convert.ToInt64(dto.FIsKeyItem)
                    : null,
                Numerator = !string.IsNullOrEmpty(dto.FNumerator)
                    ? Convert.ToDecimal(dto.FNumerator)
                    : null,
                Denominator = !string.IsNullOrEmpty(dto.FDenominator)
                    ? Convert.ToDecimal(dto.FDenominator)
                    : null,
                Pid = !string.IsNullOrEmpty(dto.FID)
                    ? Convert.ToDecimal(dto.FID)
                    : throw new Exception("父id不允许为空"),
                Eid = !string.IsNullOrEmpty(dto.FID)
                    ? Convert.ToDecimal(dto.FID)
                    : throw new Exception("父id不允许为空"),
                Scrapqty = !string.IsNullOrEmpty(dto.FFixScrapQty)
                    ? Convert.ToDecimal(dto.FFixScrapQty)
                    : null,
                Scraprate = !string.IsNullOrEmpty(dto.FScrapRate)
                    ? Convert.ToDecimal(dto.FScrapRate)
                    : null,
                TypeB = dto.TypeB
                // WR_F_XIFG_Base_qtr = dto.F_XIFG_Base_qtr,
                // WR_F_XIFG_Base_83g = dto.F_XIFG_Base_83g
            };
            var entity = Db.Queryable<Womcab>()
                .Where(s => s.Erpid == womcab.Erpid).Single();
            if (entity != null) womcab.Id = entity.Id;
            //Cab003 = dto.FMaterialID
            var mesLinkU9 = Db.Queryable<MesLinkU9>()
                .Where(x => x.U9Id == dto.FMaterialID
                            && x.OrgId == "1002011210000095"
                            && x.TableType == "MES_ITEMS").First();
            if (mesLinkU9 != null) womcab.Cab003 = mesLinkU9.MesId;
            womcabList.Add(womcab);
        }