南骏 池
2025-06-05 6ec09f73c6515297294d24cdec4c815927450607
service/Warehouse/MesItemTblManager.cs
@@ -2,6 +2,7 @@
using NewPdaSqlServer.DB;
using NewPdaSqlServer.Dto.service;
using NewPdaSqlServer.entity;
using NewPdaSqlServer.entity.Base;
using NewPdaSqlServer.util;
using SqlSugar;
using System.Security.Cryptography;
@@ -33,7 +34,7 @@
    /// </summary>
    /// <param name="query">仓库查询参数</param>
    /// <returns>物料明细列表</returns>
    public List<MesItemTblDetail> GetMesItemTblDetailByBillNo(
    public ProductionPickDto GetMesItemTblDetailByBillNo(
        WarehouseQuery query)
    {
        // 关联查询物料表、物料明细表和物料基础信息表
@@ -45,22 +46,31 @@
                    JoinType.Left,
                    b.Tld009 == c.Id)
            ).Where((a, b, c) => a.BillNo == query.billNo && (a.Tbl013 ?? 0) == 1)
            .Select<MesItemTblDetail>((a, b, c) => new MesItemTblDetail
            .Select<ItemDetailModel>((a, b, c) => new ItemDetailModel
            {
                BillNo = a.BillNo,
                Tlid = b.Tlid,
                Tlmid = b.Tlmid,
                Tld005 = b.Tld005 ?? 0, // 待退数量
                Tld006 = b.Tld006 ?? 0, // 已退数量
                Tld009 = b.Tld009,
                FQty = b.Tld005 ?? 0, // 待退数量
                SQty = b.Tld006 ?? 0, // 已退数量
                DSQty = (b.Tld005 ?? 0) - (b.Tld006 ?? 0),
                ItemNo = c.ItemNo, // 物料编号
                ItemName = c.ItemName, // 物料名称
                ItemModel = c.ItemModel // 物料型号
            }).ToList();
        // 筛选出待退数量大于已退数量的记录
        var itemTblDetails = mesItemTblDetails
            .Where(s => (s.Tld005 ?? 0) - (s.Tld006 ?? 0) > 0).ToList();
        if (mesItemTblDetails.Count<1)
            throw new Exception("该申请单【" + query.billNo + "】 明细不存在,请确认!");
        var DS_list = mesItemTblDetails.Where(s => s.DSQty > 0).ToList();
        var YS_list = mesItemTblDetails.Where(s => s.SQty > 0).ToList();
        var itemTblDetails = new ProductionPickDto
        {
            items = DS_list,
            Ysitems = YS_list
            // yisao = mesInvItemOutCDetailsList
        };
        return itemTblDetails;
    }