Exemple #1
0
        public QueryResult QueryConvertRequest(ConvertRequestQueryFilter request)
        {
            int totalCount;
            var dataTable = ObjectFactory <IConvertRequestQueryDA> .Instance.QueryConvertRequest(request, out totalCount);

            return(new QueryResult()
            {
                Data = dataTable,
                TotalCount = totalCount
            });
        }
        /// <summary>
        /// 查询转换单
        /// </summary>
        /// <returns></returns>
        ///
        public DataTable QueryConvertRequest(ConvertRequestQueryFilter queryCriteria, out int totalCount)
        {
            PagingInfoEntity pagingEntity = new PagingInfoEntity();

            pagingEntity.SortField     = SortFieldMapping(queryCriteria.PagingInfo.SortBy);
            pagingEntity.MaximumRows   = queryCriteria.PagingInfo.PageSize;
            pagingEntity.StartRowIndex = queryCriteria.PagingInfo.PageIndex * queryCriteria.PagingInfo.PageSize;

            CustomDataCommand cmd = DataCommandManager.CreateCustomDataCommandFromConfig("Inventory_QueryConvertRequest");

            using (var sqlBuilder = new DynamicQuerySqlBuilder(cmd.CommandText, cmd, pagingEntity, "a.SysNo DESC"))
            {
                if (queryCriteria.SysNo.HasValue && queryCriteria.SysNo > 0)
                {
                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND,
                                                                 "a.SysNo", DbType.Int32, "@RequestSysNo",
                                                                 QueryConditionOperatorType.Equal, queryCriteria.SysNo);
                }
                else
                {
                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND,
                                                                 "a.TransferID", DbType.String, "@RequestID",
                                                                 QueryConditionOperatorType.Like, queryCriteria.RequestID);

                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND,
                                                                 "a.Status", DbType.Int32, "@RequestStatus",
                                                                 QueryConditionOperatorType.Equal, queryCriteria.RequestStatus);

                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND,
                                                                 "a.StockSysNo", DbType.Int32, "@StockSysNo",
                                                                 QueryConditionOperatorType.Equal, queryCriteria.StockSysNo);

                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND,
                                                                 "a.CreateTime", DbType.DateTime, "@CreateDateFrom",
                                                                 QueryConditionOperatorType.MoreThanOrEqual, queryCriteria.CreateDateFrom);

                    sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND,
                                                                 "a.CreateTime", DbType.DateTime, "@CreateDateTo",
                                                                 QueryConditionOperatorType.LessThanOrEqual, queryCriteria.CreateDateTo);
                }

                //不是高级权限
                if (queryCriteria.PMQueryRightType != PMQueryType.AllValid)
                {
                    string subSQLString_ProductSysNoList =
                        @" SELECT ProductLineSysNo 
                    FROM OverseaContentManagement.dbo.V_CM_ProductLine_PMs AS p 
                    WHERE  PMUserSysNo=" + queryCriteria.UserSysNo + " OR CHARINDEX(';'+CAST(" + queryCriteria.UserSysNo + " AS VARCHAR(20))+';',';'+p.BackupPMSysNoList+';')>0";

                    sqlBuilder.ConditionConstructor.AddSubQueryCondition(QueryConditionRelationType.AND,
                                                                         "a.ProductLineSysno", QueryConditionOperatorType.In, subSQLString_ProductSysNoList);
                }
                if (queryCriteria.ProductSysNo.HasValue)
                {
                    //添加子查询,并添加参数
                    sqlBuilder.ConditionConstructor.AddSubQueryCondition(QueryConditionRelationType.AND, "",
                                                                         QueryConditionOperatorType.Exist,
                                                                         @"  SELECT TOP 1 ti.SysNo
                            FROM IPP3.dbo.St_Transfer_Item ti WITH(NOLOCK) 
                            WHERE a.SysNo = ti.TransferSysNo AND ti.ProductSysNo =@ProductSysNo");

                    cmd.AddInputParameter("@ProductSysNo", DbType.Int32, queryCriteria.ProductSysNo);
                }
                sqlBuilder.ConditionConstructor.AddCondition(QueryConditionRelationType.AND,
                                                             "a.CompanyCode", DbType.String, "@CompanyCode",
                                                             QueryConditionOperatorType.Equal, queryCriteria.CompanyCode);

                cmd.CommandText = sqlBuilder.BuildQuerySql();

                EnumColumnList enumColumnList = new EnumColumnList();
                enumColumnList.Add("RequestStatus", typeof(ConvertRequestStatus));

                var resultData = cmd.ExecuteDataTable(enumColumnList);
                totalCount = Convert.ToInt32(cmd.GetParameterValue("@TotalCount"));
                return(resultData);
            }
        }