服务端的TigerApi 框架,基于.NET6 2024 版本
Rodney Chen
2024-07-26 7be659676d1a9d95856264e9c9e870581d9d56cf
修复联表授权查询时,别名不一致的问题
已删除1个文件
已修改5个文件
281 ■■■■ 文件已修改
Tiger.Api/Controllers/Test/TestController.R.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Api/Controllers/Test/TestController.Z.cs 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MES/Transaction/CollectNode.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MES/Transaction/PackingNode.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Business.MES/Transaction/TestNode.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.IBusiness/Extensions/DbExtension.cs 210 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Tiger.Api/Controllers/Test/TestController.R.cs
@@ -21,6 +21,8 @@
using System.Net;
using System.Reflection;
using Swifter.Tools;
using Tiger.Model.Entitys.MES.Position;
using Microsoft.CodeAnalysis.Options;
namespace Tiger.Api.Controllers.Test
{
@@ -104,14 +106,19 @@
        [HttpGet]
        public async Task<IActionResult> Get2Async(string param)
        {
            //var auth = new AuthOption() { UserId = "admin", ByOrg = true, ByWh = true };
            var auth = new AuthOption() { UserId = "admin", ByOrg = true, ByWh = true };
            //var data = await Biz.Db.Queryable<BIZ_ERP_PO>().Where(q => q.BILLTYPE == 11)
            //    //.ByAuth("admin", DbAuth.Org | DbAuth.Wh)
            //    .ByAuth(auth)
            //    .ToListAsync();
            //data = await Biz.Db.Queryable<BIZ_ERP_PO>().ByAuth("admin", DbAuth.Org).Where(q => q.BILLTYPE == 11).ToListAsync();
            var data = await Biz.Db.Queryable<BIZ_ERP_PO>().Where(q => q.BILLTYPE == 11).ToListAsync();
            //var data = await Biz.Db.Queryable<BIZ_ERP_PO>().Where(q => q.BILLTYPE == 11).ToListAsync();
            //var dtl = await Biz.Db.Queryable<BIZ_ERP_PO_DTL>().ByAuth("admin", DbAuth.Org | DbAuth.Wh).Where(q => q.BILLCODE == "AH3301-221000108").ToListAsync();
            var query = Biz.Db.Queryable<WMS_ITEM_PKG>().ByAuth("admin", DbAuth.Org | DbAuth.Wh).Where(t => t.SN == "barcode.SN").First();//
            var  data = Biz.Db.Queryable<BIZ_MES_WO_BATCH, BIZ_MES_WO_SN>((q, s) => new JoinQueryInfos(JoinType.Inner, q.ORDER_NO == s.WORK_ORDER))
                                                    .ByAuth(auth)//.ByAuth("admin", DbAuth.Org | DbAuth.Wh)
                                                    .Where((q, s) => s.SN == "input.SN" && q.ACT_LINE == "CurLine.LINE_CODE" && (q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Release.GetValue() || q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue()))
                                                    .Select((q, s) => new { Batch = q, SN = s }).First();
            return Ok(data);
        }
Tiger.Api/Controllers/Test/TestController.Z.cs
ÎļþÒÑɾ³ý
Tiger.Business.MES/Transaction/CollectNode.cs
@@ -52,9 +52,10 @@
                    //当前岗位在当前工单不是首站,则查找条码已绑定的工单当作当前工单
                    else
                    {
                        var wosn = Biz.Db.Queryable<BIZ_MES_WO_BATCH, BIZ_MES_WO_SN>((b, s) => new JoinQueryInfos(JoinType.Inner, b.ORDER_NO == s.WORK_ORDER))//.ByAuth(input.AuthOption)
                                                    .Where((b, s) => s.SN == input.SN && b.ACT_LINE == CurLine.LINE_CODE && (b.STATUS == BIZ_MES_WO_BATCH.STATUSs.Release.GetValue() || b.STATUS == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue()))
                                                    .Select((b, s) => new { Batch = b, SN = s }).First();
                        var wosn = Biz.Db.Queryable<BIZ_MES_WO_BATCH, BIZ_MES_WO_SN>((q, s) => new JoinQueryInfos(JoinType.Inner, q.ORDER_NO == s.WORK_ORDER))
                                                    .ByAuth(input.AuthOption)
                                                    .Where((q, s) => s.SN == input.SN && q.ACT_LINE == CurLine.LINE_CODE && (q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Release.GetValue() || q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue()))
                                                    .Select((q, s) => new { Batch = q, SN = s }).First();
                        //查找到条码已绑定的工单
                        if (!wosn.IsNullOrEmpty())
                        {
Tiger.Business.MES/Transaction/PackingNode.cs
@@ -52,9 +52,10 @@
                    //当前岗位在当前工单不是首站,则查找条码已绑定的工单当作当前工单
                    else
                    {
                        var wosn = Biz.Db.Queryable<BIZ_MES_WO_BATCH, BIZ_MES_WO_SN>((b, s) => new JoinQueryInfos(JoinType.Inner, b.ORDER_NO == s.WORK_ORDER))//.ByAuth(input.AuthOption)
                                                    .Where((b, s) => s.SN == input.SN && b.ACT_LINE == CurLine.LINE_CODE && (b.STATUS == BIZ_MES_WO_BATCH.STATUSs.Release.GetValue() || b.STATUS == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue()))
                                                    .Select((b, s) => new { Batch = b, SN = s }).First();
                        var wosn = Biz.Db.Queryable<BIZ_MES_WO_BATCH, BIZ_MES_WO_SN>((q, s) => new JoinQueryInfos(JoinType.Inner, q.ORDER_NO == s.WORK_ORDER))
                                                    .ByAuth(input.AuthOption)
                                                    .Where((q, s) => s.SN == input.SN && q.ACT_LINE == CurLine.LINE_CODE && (q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Release.GetValue() || q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue()))
                                                    .Select((q, s) => new { Batch = q, SN = s }).First();
                        //查找到条码已绑定的工单
                        if (!wosn.IsNullOrEmpty())
                        {
Tiger.Business.MES/Transaction/TestNode.cs
@@ -52,9 +52,10 @@
                    //当前岗位在当前工单不是首站,则查找条码已绑定的工单当作当前工单
                    else
                    {
                        var wosn = Biz.Db.Queryable<BIZ_MES_WO_BATCH, BIZ_MES_WO_SN>((b, s) => new JoinQueryInfos(JoinType.Inner, b.ORDER_NO == s.WORK_ORDER))//.ByAuth(input.AuthOption)
                                                    .Where((b, s) => s.SN == input.SN && b.ACT_LINE == CurLine.LINE_CODE && (b.STATUS == BIZ_MES_WO_BATCH.STATUSs.Release.GetValue() || b.STATUS == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue()))
                                                    .Select((b, s) => new { Batch = b, SN = s }).First();
                        var wosn = Biz.Db.Queryable<BIZ_MES_WO_BATCH, BIZ_MES_WO_SN>((q, s) => new JoinQueryInfos(JoinType.Inner, q.ORDER_NO == s.WORK_ORDER))
                                                    .ByAuth(input.AuthOption)
                                                    .Where((q, s) => s.SN == input.SN && q.ACT_LINE == CurLine.LINE_CODE && (q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Release.GetValue() || q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue()))
                                                    .Select((q, s) => new { Batch = q, SN = s }).First();
                        //查找到条码已绑定的工单
                        if (!wosn.IsNullOrEmpty())
                        {
Tiger.IBusiness/Extensions/DbExtension.cs
@@ -29,17 +29,17 @@
            //组织机构授权验证
            if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any());
            }
            //生产单元授权验证
            if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any());
            }
            //仓库单元授权验证
            if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
            }
            return queryable;
@@ -59,25 +59,26 @@
            if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries);
                queryable = queryable.Where(q => orgList.Any(o => o == q.AUTH_ORG));
                queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG));
            }
            //生产单元授权验证
            if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => prodList.Any(o => o == q.AUTH_PROD));
                queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD));
            }
            //仓库单元授权验证
            if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => whList.Any(o => o == q.AUTH_WH));
                queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH));
            }
            return queryable.ByAuth(options.UserId, options.GetOptions());
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <typeparam name="T2"></typeparam>
@@ -90,24 +91,25 @@
            //组织机构授权验证
            if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any());
            }
            //生产单元授权验证
            if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any());
            }
            //仓库单元授权验证
            if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
            }
            return queryable;
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <typeparam name="T2"></typeparam>
@@ -120,25 +122,26 @@
            if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries);
                queryable = queryable.Where(q => orgList.Any(o => o == q.AUTH_ORG));
                queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG));
            }
            //生产单元授权验证
            if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => prodList.Any(o => o == q.AUTH_PROD));
                queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD));
            }
            //仓库单元授权验证
            if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => whList.Any(o => o == q.AUTH_WH));
                queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH));
            }
            return queryable.ByAuth(options.UserId, options.GetOptions());
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -150,24 +153,25 @@
            //组织机构授权验证
            if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any());
            }
            //生产单元授权验证
            if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any());
            }
            //仓库单元授权验证
            if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
            }
            return queryable;
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -179,25 +183,26 @@
            if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries);
                queryable = queryable.Where(q => orgList.Any(o => o == q.AUTH_ORG));
                queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG));
            }
            //生产单元授权验证
            if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => prodList.Any(o => o == q.AUTH_PROD));
                queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD));
            }
            //仓库单元授权验证
            if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => whList.Any(o => o == q.AUTH_WH));
                queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH));
            }
            return queryable.ByAuth(options.UserId, options.GetOptions());
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -209,24 +214,25 @@
            //组织机构授权验证
            if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any());
            }
            //生产单元授权验证
            if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any());
            }
            //仓库单元授权验证
            if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
            }
            return queryable;
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -238,25 +244,26 @@
            if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries);
                queryable = queryable.Where(q => orgList.Any(o => o == q.AUTH_ORG));
                queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG));
            }
            //生产单元授权验证
            if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => prodList.Any(o => o == q.AUTH_PROD));
                queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD));
            }
            //仓库单元授权验证
            if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => whList.Any(o => o == q.AUTH_WH));
                queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH));
            }
            return queryable.ByAuth(options.UserId, options.GetOptions());
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -268,24 +275,25 @@
            //组织机构授权验证
            if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any());
            }
            //生产单元授权验证
            if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any());
            }
            //仓库单元授权验证
            if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
            }
            return queryable;
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -297,25 +305,26 @@
            if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries);
                queryable = queryable.Where(q => orgList.Any(o => o == q.AUTH_ORG));
                queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG));
            }
            //生产单元授权验证
            if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => prodList.Any(o => o == q.AUTH_PROD));
                queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD));
            }
            //仓库单元授权验证
            if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => whList.Any(o => o == q.AUTH_WH));
                queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH));
            }
            return queryable.ByAuth(options.UserId, options.GetOptions());
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -327,24 +336,25 @@
            //组织机构授权验证
            if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any());
            }
            //生产单元授权验证
            if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any());
            }
            //仓库单元授权验证
            if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
            }
            return queryable;
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -356,25 +366,26 @@
            if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries);
                queryable = queryable.Where(q => orgList.Any(o => o == q.AUTH_ORG));
                queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG));
            }
            //生产单元授权验证
            if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => prodList.Any(o => o == q.AUTH_PROD));
                queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD));
            }
            //仓库单元授权验证
            if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => whList.Any(o => o == q.AUTH_WH));
                queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH));
            }
            return queryable.ByAuth(options.UserId, options.GetOptions());
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -386,24 +397,25 @@
            //组织机构授权验证
            if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any());
            }
            //生产单元授权验证
            if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any());
            }
            //仓库单元授权验证
            if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
            }
            return queryable;
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -415,25 +427,26 @@
            if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries);
                queryable = queryable.Where(q => orgList.Any(o => o == q.AUTH_ORG));
                queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG));
            }
            //生产单元授权验证
            if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => prodList.Any(o => o == q.AUTH_PROD));
                queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD));
            }
            //仓库单元授权验证
            if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => whList.Any(o => o == q.AUTH_WH));
                queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH));
            }
            return queryable.ByAuth(options.UserId, options.GetOptions());
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -445,24 +458,25 @@
            //组织机构授权验证
            if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any());
            }
            //生产单元授权验证
            if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any());
            }
            //仓库单元授权验证
            if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
            }
            return queryable;
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -474,25 +488,26 @@
            if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries);
                queryable = queryable.Where(q => orgList.Any(o => o == q.AUTH_ORG));
                queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG));
            }
            //生产单元授权验证
            if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => prodList.Any(o => o == q.AUTH_PROD));
                queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD));
            }
            //仓库单元授权验证
            if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => whList.Any(o => o == q.AUTH_WH));
                queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH));
            }
            return queryable.ByAuth(options.UserId, options.GetOptions());
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -504,24 +519,25 @@
            //组织机构授权验证
            if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any());
            }
            //生产单元授权验证
            if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any());
            }
            //仓库单元授权验证
            if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
            }
            return queryable;
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -533,25 +549,26 @@
            if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries);
                queryable = queryable.Where(q => orgList.Any(o => o == q.AUTH_ORG));
                queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG));
            }
            //生产单元授权验证
            if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => prodList.Any(o => o == q.AUTH_PROD));
                queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD));
            }
            //仓库单元授权验证
            if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => whList.Any(o => o == q.AUTH_WH));
                queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH));
            }
            return queryable.ByAuth(options.UserId, options.GetOptions());
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -563,24 +580,25 @@
            //组织机构授权验证
            if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any());
            }
            //生产单元授权验证
            if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any());
            }
            //仓库单元授权验证
            if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
            }
            return queryable;
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -592,25 +610,26 @@
            if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries);
                queryable = queryable.Where(q => orgList.Any(o => o == q.AUTH_ORG));
                queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG));
            }
            //生产单元授权验证
            if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => prodList.Any(o => o == q.AUTH_PROD));
                queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD));
            }
            //仓库单元授权验证
            if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => whList.Any(o => o == q.AUTH_WH));
                queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH));
            }
            return queryable.ByAuth(options.UserId, options.GetOptions());
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -622,24 +641,25 @@
            //组织机构授权验证
            if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any());
            }
            //生产单元授权验证
            if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any());
            }
            //仓库单元授权验证
            if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
            }
            return queryable;
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -651,25 +671,26 @@
            if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries);
                queryable = queryable.Where(q => orgList.Any(o => o == q.AUTH_ORG));
                queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG));
            }
            //生产单元授权验证
            if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => prodList.Any(o => o == q.AUTH_PROD));
                queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD));
            }
            //仓库单元授权验证
            if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => whList.Any(o => o == q.AUTH_WH));
                queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH));
            }
            return queryable.ByAuth(options.UserId, options.GetOptions());
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -681,24 +702,25 @@
            //组织机构授权验证
            if (options.HasFlag(DbAuth.Org) && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(o => o.USER_ID == userId && o.ORG_CODE == q.AUTH_ORG).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_ORG>().Where(authorization => authorization.USER_ID == userId && authorization.ORG_CODE == q.AUTH_ORG).Any());
            }
            //生产单元授权验证
            if (options.HasFlag(DbAuth.Prod) && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(o => o.USER_ID == userId && o.PROD_CODE == q.AUTH_PROD).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_PROD>().Where(authorization => authorization.USER_ID == userId && authorization.PROD_CODE == q.AUTH_PROD).Any());
            }
            //仓库单元授权验证
            if (options.HasFlag(DbAuth.Wh) && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(o => o.USER_ID == userId && o.WH_CODE == q.AUTH_WH).Any());
                queryable = queryable.Where(q => SqlFunc.Subqueryable<V_USER_WH>().Where(authorization => authorization.USER_ID == userId && authorization.WH_CODE == q.AUTH_WH).Any());
            }
            return queryable;
        }
        /// <summary>
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®
        /// é€šè¿‡æŽˆæƒæŸ¥è¯¢æ•°æ®<br/>
        /// æ³¨æ„ï¼šè”表授权查询时,主表的别名必须为q,不然会出错
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="queryable"></param>
@@ -710,19 +732,19 @@
            if (!options.OrgCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_ORG").IsNullOrEmpty())
            {
                var orgList = options.OrgCode.Split(",", StringSplitOptions.RemoveEmptyEntries);
                queryable = queryable.Where(q => orgList.Any(o => o == q.AUTH_ORG));
                queryable = queryable.Where(q => orgList.Any(authorization => authorization == q.AUTH_ORG));
            }
            //生产单元授权验证
            if (!options.ProdCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_PROD").IsNullOrEmpty())
            {
                var prodList = options.ProdCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => prodList.Any(o => o == q.AUTH_PROD));
                queryable = queryable.Where(q => prodList.Any(authorization => authorization == q.AUTH_PROD));
            }
            //仓库单元授权验证
            if (!options.WhCode.IsNullOrEmpty() && !typeof(T).GetProperty("AUTH_WH").IsNullOrEmpty())
            {
                var whList = options.WhCode.Split(",", StringSplitOptions.RemoveEmptyEntries).ToList();
                queryable = queryable.Where(q => whList.Any(o => o == q.AUTH_WH));
                queryable = queryable.Where(q => whList.Any(authorization => authorization == q.AUTH_WH));
            }
            return queryable.ByAuth(options.UserId, options.GetOptions());
        }