11
啊鑫
2024-12-24 cecd4ee7dac11e8157af2edbaf3f7f2ce13d3346
service/Warehouse/MesInvItemInCDetailsManager.cs
@@ -17,9 +17,9 @@
        string user = entity.userName,
            sectionCode = entity.sectionCode,
            itemBarcode = entity.barcode;
        string transactionNo = "101";
        var transactionNo = "101";
        int? billTypeId = 100, num = 0, num2 = 0;
        int freeze = 0;
        var freeze = 0;
        decimal cSyQty = 0;
        if (string.IsNullOrEmpty(sectionCode))
@@ -117,7 +117,7 @@
                throw new Exception("入库失败,到货单据有问题!");
        }
        PurchaseInventory result = new PurchaseInventory();
        var result = new PurchaseInventory();
        UseTransaction(db =>
        {
@@ -134,7 +134,7 @@
                })
                .First();
            Guid cId = Guid.Empty;
            var cId = Guid.Empty;
            string cBillNo = null;
            if (existingRecord != null)
@@ -207,7 +207,7 @@
                                IsdepsIn = true
                            })
                            .Where(d => d.Guid == detail.Guid)
                            .IgnoreColumns(ignoreAllNullColumns: true)
                            .IgnoreColumns(true)
                            .ExecuteCommand();
                        // Check if already inserted
@@ -222,7 +222,6 @@
                        cSyQty -= remainingQty.Value;
                        if (count == 0)
                        {
                            // Insert new item into MES_INV_ITEM_IN_C_ITEMS
                            db.Insertable(new MesInvItemInCItems
                            {
@@ -234,7 +233,7 @@
                                DepotCode = mesDepost.DepotCode,
                                ItemSname = itemBarcodeDetails.ItemSname,
                                Unit = itemBarcodeDetails.Unit,
                                Ebeln = detail.WorkNo,
                                Ebeln = detail.Ebeln,
                                BillNo = cBillNo,
                                WorkNo = detail.WorkNo,
                                CbillNo = detail.CbillNo,
@@ -245,9 +244,7 @@
                                EbelnK3id = detail.EbelnK3id,
                                LineK3id = detail.LineK3id
                            }).IgnoreColumns(true).ExecuteCommand();
                        }
                        else
                        {
                            db.Updateable<MesInvItemInCItems>()
                                .SetColumns(it =>
                                    it.Quantity == it.Quantity + remainingQty)
@@ -256,9 +253,8 @@
                                    it.ItemId == detail.ItemId &&
                                    it.WorkNo == detail.WorkNo &&
                                    it.WorkLine == detail.WorkLine)
                                .IgnoreColumns(ignoreAllNullColumns: true)
                                .IgnoreColumns(true)
                                .ExecuteCommand();
                        }
                        // Insert new detail into MES_INV_ITEM_IN_C_DETAILS
                        db.Insertable(new MesInvItemInCDetails
@@ -303,7 +299,7 @@
                                OkRkqty = (int)((d.OkRkqty ?? 0) + cSyQty)
                            })
                            .Where(d => d.Guid == detail.Guid)
                            .IgnoreColumns(ignoreAllNullColumns: true)
                            .IgnoreColumns(true)
                            .ExecuteCommand();
                        var count = db.Queryable<MesInvItemInCItems>()
@@ -315,7 +311,6 @@
                            .Count();
                        if (count == 0)
                        {
                            db.Insertable(new MesInvItemInCItems
                            {
                                ItemInId = cId,
@@ -339,9 +334,7 @@
                                LineK3id = detail.LineK3id,
                                ItemId = detail.ItemId
                            }).IgnoreColumns(true).ExecuteCommand();
                        }
                        else
                        {
                            db.Updateable<MesInvItemInCItems>()
                                .SetColumns(it =>
                                    it.Quantity == it.Quantity + cSyQty)
@@ -350,9 +343,8 @@
                                    it.ItemId == detail.ItemId &&
                                    it.WorkNo == detail.WorkNo &&
                                    it.WorkLine == detail.WorkLine)
                                .IgnoreColumns(ignoreAllNullColumns: true)
                                .IgnoreColumns(true)
                                .ExecuteCommand();
                        }
                        db.Insertable(new MesInvItemInCDetails
                        {
@@ -434,7 +426,6 @@
                    .Count();
                if (existingCount == 0)
                {
                    // 不存在时插入新记录
                    db.Insertable(new MesInvItemInCItems
                    {
@@ -459,9 +450,7 @@
                        LineK3id = itemBarcodeDetails.LineK3id,
                        ItemId = itemBarcodeDetails.ItemId
                    }).IgnoreColumns(true).ExecuteCommand();
                }
                else
                {
                    // 存在时更新数量
                    db.Updateable<MesInvItemInCItems>()
                        .SetColumns(it =>
@@ -471,9 +460,8 @@
                                     it.ItemId == itemBarcodeDetails.ItemId &&
                                     it.WorkNo == itemBarcodeDetails.WorkNo &&
                                     it.WorkLine == itemBarcodeDetails.WorkLine)
                        .IgnoreColumns(ignoreAllNullColumns: true)
                        .IgnoreColumns(true)
                        .ExecuteCommand();
                }
                // 插入 mes_inv_item_in_c_details 表
                db.Insertable(new MesInvItemInCDetails
@@ -570,7 +558,8 @@
                EbelnK3id = itemBarcodeDetails.EbelnK3id,
                LineK3id = itemBarcodeDetails.LineK3id,
                ItemId = itemBarcodeDetails.ItemId,
                BillNo = itemBarcodeDetails.BillNo
                BillNo = itemBarcodeDetails.BillNo,
                DepotId = Convert.ToInt32(depotCode2)
            }).IgnoreColumns(true).ExecuteCommand();
            itemBarcodeDetails.Hbdy ??= 0;
@@ -601,12 +590,10 @@
                var TotalOkRkQty = first.TotalOkRkQty ?? 0;
                if (TotalQuantity == TotalOkRkQty)
                {
                    db.Updateable<MesInvItemArnDetail>()
                        .SetColumns(s => s.IsdepsIn == true)
                        .Where(s => s.Guid == inventoryDetails.Guid)
                        .ExecuteCommand();
                }
                var totalSummary = db.Queryable<MesInvItemArnDetail>()
@@ -622,12 +609,10 @@
                if ((totalSummary.TotalQuantity ?? 0) ==
                    (totalSummary.TotalOkRkQty ?? 0))
                {
                    db.Updateable<MesInvItemArn>()
                        .SetColumns(it => it.Status == 1)
                        .Where(it => it.BillNo == itemBarcodeDetails.BillNo)
                        .ExecuteCommand();
                }
                var totalCDetailsQuantity = db.Queryable<MesInvItemInCDetails>()
                    .Where(it => it.WorkLine == itemBarcodeDetails.WorkLine &&
@@ -649,9 +634,7 @@
                var diffQty = comeQty - invQty;
                if (detailSummary == null)
                {
                    throw new Exception("此条码找不到对应收货单明细!");
                }
                var mesItems = db.Queryable<MesItems>()
                    .Where(s => s.Id == itemBarcodeDetails.ItemId).First();
@@ -681,12 +664,10 @@
                if ((totalSummary.TotalQuantity ?? 0) ==
                    (totalSummary.TotalOkRkQty ?? 0))
                {
                    db.Updateable<MesInvItemArn>()
                        .SetColumns(it => it.Status == 1)
                        .Where(it => it.BillNo == itemBarcodeDetails.BillNo)
                        .ExecuteCommand();
                }
                // Step 2: Calculate total sum from `mes_inv_item_in_c_details`
                var totalCDetailsQuantity = db.Queryable<MesInvItemInCDetails>()
@@ -706,9 +687,7 @@
                    .First();
                if (detailSummary == null)
                {
                    throw new Exception("此条码找不到对应收货单明细!");
                }
                var comeQty = detailSummary.TotalComeQty ?? 0;
                var invQty = detailSummary.TotalInvQty ?? 0;
@@ -760,7 +739,7 @@
        var parsedGuid = Guid.Empty;
        if (!string.IsNullOrEmpty(query.id))
        {
            bool isValid = Guid.TryParse(query.id, out parsedGuid);
            var isValid = Guid.TryParse(query.id, out parsedGuid);
            if (!isValid)
                throw new ApplicationException("GUID转换错误");
        }
@@ -769,8 +748,8 @@
        var result = Db.Queryable<MesInvItemIns, MesDepots, MesSupplier>(
                (a, b, c) =>
                    new JoinQueryInfos(JoinType.Left,
                        a.DepotsCode == b.DepotCode,
                        JoinType.Left, a.SuppNo == c.SuppNo))
                        a.DepotsId == b.DepotId,
                        JoinType.Left, a.SuppId == c.Id.ToString()))
            .WhereIF(UtilityHelper.CheckGuid(parsedGuid),
                (a, b, c) => a.Guid == parsedGuid)
            .Select((a, b, c) => new MesInvItemIns
@@ -796,12 +775,9 @@
    {
        //string转guid
        var parsedGuid = Guid.Empty;
        if (string.IsNullOrEmpty(pid))
        {
            return ( []);
        }
        if (string.IsNullOrEmpty(pid)) return [];
        bool isValid = Guid.TryParse(pid, out parsedGuid);
        var isValid = Guid.TryParse(pid, out parsedGuid);
        if (!isValid)
            throw new ApplicationException("GUID转换错误");
@@ -819,7 +795,7 @@
                ItemNo = c.ItemNo,
                ItemSname = g.ItemSname,
                Quantity = g.Quantity,
                Unit = d.Fname,
                Unit = d.Fname
            })
            .ToList();
@@ -830,12 +806,9 @@
    {
        //string转guid
        var parsedGuid = Guid.Empty;
        if (string.IsNullOrEmpty(pid))
        {
            return ( []);
        }
        if (string.IsNullOrEmpty(pid)) return [];
        bool isValid = Guid.TryParse(pid, out parsedGuid);
        var isValid = Guid.TryParse(pid, out parsedGuid);
        if (!isValid)
            throw new ApplicationException("GUID转换错误");
@@ -843,7 +816,7 @@
                (g, c, d) => new JoinQueryInfos(
                    JoinType.Left,
                    g.ItemId == c.Id, JoinType.Inner,
                    d.Id == Convert.ToDecimal(c.ItemUnit)
                    d.Id.ToString() == c.Fpurchaseunitid
                )
            ).WhereIF(UtilityHelper.CheckGuid(parsedGuid),
                (g, c, d) => g.ItemInId == parsedGuid)
@@ -944,7 +917,7 @@
            .SetColumns(x => x.Status == entity.status)
            .SetColumns(x => x.InsDate == entity.date)
            .Where(x => x.BillNo == entity.billNo)
            .IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommand() > 0;
            .IgnoreColumns(true).ExecuteCommand() > 0;
    }
    private string GetErpParameters(string? billNo)
@@ -960,8 +933,8 @@
            MesInvItemArnDetail>(
            (g, c, d, a) => new JoinQueryInfos(
                JoinType.Left,
                g.ItemId == c.Id , JoinType.Inner,
                d.Id == Convert.ToDecimal(c.ItemUnit),
                g.ItemId == c.Id, JoinType.Inner,
                d.Id.ToString() == c.Fpurchaseunitid,
                JoinType.Inner, a.Ebeln == g.WorkNo && g.CbillNo == a.CbillNo
            )
        ).Where((g, c, d, a) => g.BillNo == billNo).Select<Material>(
@@ -983,11 +956,11 @@
        var jsonEntries = materials.Select(d => new
        {
            FMaterialId = d.FMaterialId,
            FRealQty = d.FRealQty,
            FStockId = d.FStockId,
            FLot = d.FLot,
            FUnitID = d.FUnitID,
            d.FMaterialId,
            d.FRealQty,
            d.FStockId,
            d.FLot,
            FUintId = d.FUnitID,
            FSRCENTRYID = d.FsrcEntryId,
            F_MES_ENTRYID = d.FMesEntryid
        }).ToList();