南骏 池
2025-06-13 135599eb59bccb5f8f8a567ad174cc2af4357887
service/Warehouse/MesItemBlManager.cs
@@ -69,7 +69,7 @@
        //return (mesItemBl.Bl001, blDetails);
        var sql = string.Format(@"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,A.BLD007 FQty,A.BLD008 SQty,A.BLD007 - A.BLD008 DSQty,
       dbo.F_QX_GETRECODEPOTSE(A.bld012) as RecoKw,D.daa001
       dbo.F_QX_GETRECODEPOTSE(A.bld012,'','','') as RecoKw,D.daa001
fROM MES_ITEM_BL_DETAIL A
         LEFT JOIN MES_ITEM_BL B ON A.MID = B.ID
         LEFT JOIN MES_ITEMS C ON A.bld012 = CAST(C.item_id AS VARCHAR(50))
@@ -323,7 +323,7 @@
                    ErpAutoid = womdab.Erpid,
                    PbillNo = query.billNo,
                    ItemId = blDetail.Bld012,
                    DepotId = stockBarcode.DepotsId.ToString(),
                    DepotId = stockBarcode.DepotId.ToString(),
                    ItemDabid = blDetail.Id,
                    // Unit = blDetail.Bld009,
                    // DepotId = (int)stockBarcode.DepotsId
@@ -1815,5 +1815,72 @@
        return (true, pendingList);
    }
    /// <summary>
    ///     根据单号获取生产补料单明细  prc_rf_pda_scan_zout_showbl
    /// </summary>
    /// <param name="billNo">补料单号</param>
    /// <returns>补料单明细列表</returns>
    public ProductionPickDto
        GetMesItemWWBlDetailByBillNo(
            WarehouseQuery query)
    {
        if (string.IsNullOrEmpty(query.billNo))
            throw new Exception("请选单据号!");
        // 检查补料单是否存在且为生产补料类型
        var mesItemBl = Db.Queryable<MesItemBl>()
            .Where(a => a.BlNo == query.billNo && a.Bl008 == query.Type && a.Bl018 == true)
            .First();
        if (mesItemBl == null)
            throw new Exception("单据号不存在或未审核!");
        //if (mesItemBl.Bl019 == true)
        //    throw new Exception("单据号已完成!");
        //// 获取未完成的补料单明细
        //var blDetails = Db.Queryable<MesItemBl, MesItemBlDetail>((a, b) =>
        //        new JoinQueryInfos(JoinType.Left, a.Id == b.Mid))
        //    .Where((a, b) => a.BlNo == query.billNo
        //                     && (b.Bld007 ?? 0) - (b.Bld008 ?? 0) > 0)
        //    .Select((a, b) => new MesItemBlDetail
        //    {
        //        Bld012 = b.Bld012,
        //        Bld002 = b.Bld002,
        //        Bld003 = b.Bld003,
        //        Bld004 = b.Bld004,
        //        Bld007 = b.Bld007,
        //        Bld008 = b.Bld008
        //    })
        //    .ToList();
        //return (mesItemBl.Bl001, blDetails);
        var sql = string.Format(@"SELECT c.item_no ItemNo,c.item_name ItemName,c.item_model ItemModel,A.BLD007 FQty,A.BLD008 SQty,A.BLD007 - A.BLD008 DSQty,
       dbo.F_QX_GETRECODEPOTSE(A.bld012,'','','') as RecoKw,D.daa001
fROM MES_ITEM_BL_DETAIL A
         LEFT JOIN MES_ITEM_BL B ON A.MID = B.ID
         LEFT JOIN MES_ITEMS C ON A.bld012 = CAST(C.item_id AS VARCHAR(50))
         LEFT JOIN WW_GD D ON B.about_guid = D.ID
WHERE B.bl_no = '{0}'", query.billNo);
        var womdabs = Db.Ado.SqlQuery<ItemDetailModel>(sql);
        var DS_list = womdabs.Where(s => s.DSQty > 0).ToList();
        var YS_list = womdabs.Where(s => s.SQty > 0).ToList();
        var dto = new ProductionPickDto
        {
            daa001 = womdabs[0].DAA001,
            //PlanNo = womcaa.Caa020,
            items = DS_list,
            Ysitems = YS_list
        };
        return dto;
    }
    #endregion
}