using OASystem.Domain; using OASystem.Domain.Dtos.Financial; using OASystem.Domain.Dtos.UserDto; using OASystem.Domain.Entities.Financial; using OASystem.Domain.ViewModels.Financial; using OASystem.Infrastructure.Repositories.System; using Org.BouncyCastle.Asn1.Cms; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace OASystem.Infrastructure.Repositories.Financial { /// /// 财务 - 日付申请 /// public class DailyFeePaymentRepository : BaseRepository { private readonly System.SetDataTypeRepository _setDataTypeRep; public DailyFeePaymentRepository(SqlSugarClient sqlSugar, System.SetDataTypeRepository setDataTypeRep) : base(sqlSugar) { this._setDataTypeRep = setDataTypeRep; } /// /// 日付申请查询所有 /// /// /// public async Task GetPageSelectAll(PageDailyFeePaymentDto dto) { Result result = new Result() { Code = -2 }; #region sql条件处理 string sqlWhere = ""; if (dto.CompanyId != -1) //公司 sqlWhere += string.Format(" And dfp.CompanyId = {0}", dto.CompanyId); if (dto.FinancialAuditStatus != -1) //财务审核 sqlWhere += string.Format(" And dfp.FAudit = {0}", dto.FinancialAuditStatus); if (dto.ManagerAuditStatus != -1) //总经理审核 sqlWhere += string.Format(" And dfp.MAudit = {0}", dto.ManagerAuditStatus); if (dto.FeeTypeId != -1) //费用类型 { if (dto.FeeSubTypeId != -1) //子类处理 { sqlWhere += string.Format(" And dfp.PriceTypeId = {0}", dto.FeeSubTypeId); } else { var setData = _setDataTypeRep.QueryDto(s => s.STid == dto.FeeTypeId).ToList(); if (setData.Count > 0) { string setDataIds = ""; foreach (var item in setData) { setDataIds += item.Id + ","; } if (setDataIds.Length > 0) { setDataIds = setDataIds.Substring(1, setDataIds.Length - 2); sqlWhere += string.Format(" And dfp.PriceTypeId In ({0})", setDataIds); } } } } if (!string.IsNullOrEmpty(dto.FeeDesc)) sqlWhere += string.Format(" And dfp.Instructions Like '%{0}%'", dto.FeeDesc); if (dto.CreateUserId != -1) sqlWhere += string.Format(" And dfp.CreateUserId = {0}", dto.CreateUserId); //string sqlPage = string.Format(@"Select * From ( // Select row_number() over (order by dfp.Id Desc) as RowNumber, // dfp.Id,dfp.CompanyId,c.CompanyName,dfp.Instructions,dfp.SumPrice, // dfp.CreateUserId,u.CnName CreateUser,dfp.CreateTime,dfp.FAudit,dfp.MAudit, // dfp.PriceTypeId // From Fin_DailyFeePayment dfp // Inner Join Sys_Company c On dfp.CompanyId = c.Id // Left Join Sys_Users u On dfp.CreateUserId = u.Id // Where dfp.IsDel=0 {0} // ) temp Where RowNumber Between {1} and {2} ", sqlWhere, dto.PageIndex, dto.PageSize); string sqlPage = string.Format(@"Select * From ( Select row_number() over (order by dfp.Id Desc) as RowNumber, dfp.Id,dfp.CompanyId,c.CompanyName,dfp.Instructions,dfp.SumPrice, dfp.CreateUserId,u.CnName CreateUser,dfp.CreateTime,dfp.FAudit,dfp.MAudit, dfp.PriceTypeId From Fin_DailyFeePayment dfp Inner Join Sys_Company c On dfp.CompanyId = c.Id Left Join Sys_Users u On dfp.CreateUserId = u.Id Where dfp.IsDel=0 {0} ) temp ", sqlWhere); #endregion dynamic? DailyFeePaymentList = null; if (dto.PortType == 1 || dto.PortType == 2) //web { var DailyFeePaymentData = await _sqlSugar.SqlQueryable(sqlPage).ToListAsync(); int totalCount = DailyFeePaymentData.Count; int startIndex = (dto.PageIndex - 1) * dto.PageSize + 1; int endIndex = startIndex + dto.PageSize; DailyFeePaymentList = new Fin_DailyFeePaymentPage { Rows = totalCount, Data = DailyFeePaymentData.Where(a => a.RowNumber >= startIndex && a.RowNumber < endIndex).ToList() }; } result.Code = 0; result.Msg = "查询成功!"; result.Data = DailyFeePaymentList; return result; } } }