啊鑫
2024-11-19 e662390cfd27710f55a999dc3552b39147cfb0b3
采购扫码入库
已修改3个文件
176 ■■■■ 文件已修改
Controllers/Warehouse/MesInvItemInCDetailsController.cs 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
entity/MesInvItemIns.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/Warehouse/MesInvItemInCDetailsManager.cs 158 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Controllers/Warehouse/MesInvItemInCDetailsController.cs
@@ -62,7 +62,7 @@
        try
        {
            dynamic resultInfos = new ExpandoObject();
            //resultInfos.tbBillList = m.getPurchaseInventory(entity);
            resultInfos.tbBillList = m.getPurchaseInventory(entity);
            return new ResponseResult
            {
                status = 0,
@@ -82,14 +82,14 @@
        try
        {
            dynamic resultInfos = new ExpandoObject();
            //var (items, totalCount) = m.GetInvItemInsList(entity);
            //resultInfos.tbBillList = items;
            var (items, totalCount) = m.GetInvItemInsList(entity);
            resultInfos.tbBillList = items;
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos,
                //TotalCount = totalCount
                TotalCount = totalCount
            };
        }
        catch (Exception ex)
entity/MesInvItemIns.cs
@@ -198,11 +198,11 @@
        [SugarColumn(ColumnName = "SAPTEXT")]
        public string? Saptext { get; set; }
        /// <summary>
        /// 确认入库日期
        ///</summary>
        [SugarColumn(ColumnName = "INSDATE")]
        public DateTime? Insdate { get; set; }
        // /// <summary>
        // /// 确认入库日期
        // ///</summary>
        // [SugarColumn(ColumnName = "INSDATE")]
        // public DateTime? Insdate { get; set; }
        /// <summary>
        /// 是否检验 
service/Warehouse/MesInvItemInCDetailsManager.cs
@@ -174,6 +174,10 @@
            cSyQty = itemBarcodeDetails.Quantity.Value;
            entity.id = cId.ToString();
            entity.PageIndex = 1;
            entity.Limit = 1;
            itemBarcodeDetails.Hbdy ??= 0;
            if (itemBarcodeDetails.Hbdy == 1)
            {
@@ -638,10 +642,15 @@
                }
                var mesItems = db.Queryable<MesItems>()
                    .Where(s=>s.Id == itemBarcodeDetails.ItemId).First();
                    .Where(s => s.Id == itemBarcodeDetails.ItemId).First();
                result.Message =
                    $"条码数量 {itemBarcodeDetails.Quantity},采购订单 {itemBarcodeDetails.WorkNo} 项次 {itemBarcodeDetails.WorkLine} 物料 {mesItems.ItemNo} 本次入库总数:{totalCDetailsQuantity} 总到 {comeQty} 已入 {invQty} 欠 {diffQty}";
                result.ItemNo = mesItems.ItemNo;
                result.SumQuantity = Convert.ToDecimal(totalCDetailsQuantity);
                return 1;
            }
            else
@@ -694,31 +703,156 @@
                var diffQty = comeQty - invQty;
                var mesItems = db.Queryable<MesItems>()
                    .Where(s=>s.Id == itemBarcodeDetails.ItemId).First();
                    .Where(s => s.Id == itemBarcodeDetails.ItemId).First();
                // Step 5: Combine final result
                result.Message =
                    $" 条码数量:{itemBarcodeDetails.Quantity},物料 {mesItems.ItemNo} 本次入库总数:{totalCDetailsQuantity} 总到 {comeQty} 已入 {invQty} 欠 {diffQty}";
            }
                result.ItemNo = mesItems.ItemNo;
                result.SumQuantity = Convert.ToDecimal(totalCDetailsQuantity);
            }
            var mesInvItemInCDetails =
                base.GetSingle(it => it.ItemBarcode == entity.barcode);
            if (mesInvItemInCDetails == null)
                throw new Exception("物料入库条码明细不存在"); // 抛出异常以供前台处理
            //
            // var itemInId = mesInvItemInCDetails.ItemInId;
            // entity.id = itemInId;
            // entity.PageIndex = 1;
            // entity.Limit = 1;
            //var inventory = getPurchaseInventory(entity);
            // inventory.ItemNo = parts[0];
            // inventory.SumQuantity = Convert.ToDecimal(parts[1]);
            //return inventory;
            return 1;
        });
        var purchaseInventory = getPurchaseInventory(entity);
        result.ItemIns = purchaseInventory.ItemIns;
        result.ItemInDetails = purchaseInventory.ItemInDetails;
        result.InvItemInCDetails = purchaseInventory.InvItemInCDetails;
        return result;
    }
    public PurchaseInventory getPurchaseInventory(WarehouseQuery query)
    {
        return new PurchaseInventory
        {
            ItemIns = GetInvItemInsList(query).Items[0],
            ItemInDetails = GetItemInDetails(query.id),
            InvItemInCDetails = GetInvItemInCDetails(query.id)
        };
    }
    public (List<MesInvItemIns> Items, int TotalCount) GetInvItemInsList(
        WarehouseQuery query)
    {
        var parsedGuid = Guid.Empty;
        if (string.IsNullOrEmpty(query.id))
        {
            return ([], 0);
        }
        bool isValid = Guid.TryParse(query.id, out parsedGuid);
        if (!isValid)
            throw new ApplicationException("GUID转换错误");
        var totalCount = 0;
        var result = Db.Queryable<MesInvItemIns, MesDepots, MesSupplier>(
                (a, b, c) =>
                    new JoinQueryInfos(JoinType.Left,
                        a.DepotsCode == b.DepotCode,
                        JoinType.Left, a.SuppNo == c.SuppNo))
            .WhereIF(UtilityHelper.CheckGuid(parsedGuid),
                (a, b, c) => a.Guid == parsedGuid)
            .Select((a, b, c) => new MesInvItemIns
            {
                Guid = a.Guid,
                SuppNo = a.SuppNo,
                InsDate = a.InsDate,
                PaperBillNo = a.PaperBillNo,
                Remark = a.Remark,
                DepotsCode = a.DepotsCode,
                CbillNo = a.CbillNo,
                Status = a.Status,
                BillNo = a.BillNo,
                CreateDate = a.CreateDate,
                CreateBy = a.CreateBy,
                DepotName = b.DepotName,
                SuppName = c.SuppName
            }).ToPageList(query.PageIndex, query.Limit, ref totalCount);
        return (result, totalCount);
    }
    public List<MesInvItemInCItems> GetItemInDetails(string? pid)
    {
        //string转guid
        var parsedGuid = Guid.Empty;
        if (string.IsNullOrEmpty(pid))
        {
            return ( []);
        }
        bool isValid = Guid.TryParse(pid, out parsedGuid);
        if (!isValid)
            throw new ApplicationException("GUID转换错误");
        var result = Db.Queryable<MesInvItemInCDetails, MesItems, MesUnit>(
            (g, c,d) => new JoinQueryInfos(
                JoinType.Left,g.ItemId == c.Id,
                JoinType.Inner,d.Id == Convert.ToDecimal(g.Unit)
            )
        ).WhereIF(UtilityHelper.CheckGuid(parsedGuid),
            (g, c,d) => g.ItemInId == parsedGuid)
        .Select((g, c,d)=> new MesInvItemInCItems
        {
            Guid = g.Guid,
            WorkNo = g.WorkNo,
            ItemNo = c.ItemNo,
            ItemSname = g.ItemSname,
            Quantity = g.Quantity,
            Unit = d.Fname,
        })
            .ToList();
        return result;
    }
    public List<MesInvItemInCDetails> GetInvItemInCDetails(string? pid)
    {
        //string转guid
        var parsedGuid = Guid.Empty;
        if (string.IsNullOrEmpty(pid))
        {
            return ( []);
        }
        bool isValid = Guid.TryParse(pid, out parsedGuid);
        if (!isValid)
            throw new ApplicationException("GUID转换错误");
        var result = Db.Queryable<MesInvItemInCDetails, MesItems, MesUnit>(
                (g, c, d) => new JoinQueryInfos(
                    JoinType.Left,
                    g.ItemId == c.Id, JoinType.Inner,
                    d.Id == Convert.ToDecimal(c.ItemUnit)
                )
            ).WhereIF(UtilityHelper.CheckGuid(parsedGuid),
                (g, c, d) => g.ItemInId == parsedGuid)
            .Select((g, c, d) => new MesInvItemInCDetails
            {
                Guid = g.Guid,
                ItemName = c.ItemName,
                ItemModel = c.ItemModel,
                ItemUnit = d.Fname,
                DepotSectionCode = g.DepotSectionCode,
                CbillNo = g.CbillNo,
                ItemBarcode = g.ItemBarcode,
                UrgentFlag = g.UrgentFlag,
                ItemNo = c.ItemNo,
                WorkNo = g.WorkNo,
                Quantity = g.Quantity
            })
            .ToList();
        return result;
    }