using Ropin.Inspection.Model.Entities; using Ropin.Inspection.Model.SearchModel; using Ropin.Inspection.Model.ViewModel; using Ropin.Inspection.Repository.Interface; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ropin.Inspection.Repository { public class ReportRepository : RepositoryBase, IReportRepository { public ReportRepository(InspectionDbContext dbContext) : base(dbContext) { } public Task> GetWithoutReportData(ReportSearchModel searchModel) { MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("id", searchModel.Id), new MySqlConnector.MySqlParameter("StoreCode", searchModel.StoreCode), new MySqlConnector.MySqlParameter("start", searchModel.Start), new MySqlConnector.MySqlParameter("end", searchModel.End), new MySqlConnector.MySqlParameter("name ", searchModel.C_Name), new MySqlConnector.MySqlParameter("type", searchModel.I_Type), new MySqlConnector.MySqlParameter("groupName ", searchModel.C_GroupName) }; string sql = @"select * from ( SELECT R.G_ID,R.C_Name,R.C_StoreCode,D.C_Name as C_DevName,D.C_NumberCode as C_DevNumber,R.I_Type,R.C_GroupName,R.D_CreateTime,R.C_Remark,R.D_Start,R.D_End,R.C_Status FROM TISP_Report R LEFT JOIN TDEV_DevStore D on (R.C_DevStoreCode=D.C_ID) ) tab WHERE C_Status = '1' "; if (!string.IsNullOrEmpty(searchModel.C_Name)) { sql += " AND C_Name = @name"; } if (searchModel.I_Type != 0) { sql += " AND I_Type = @type"; } if (!string.IsNullOrEmpty(searchModel.C_GroupName)) { sql += " AND C_GroupName = @groupName"; } if (!string.IsNullOrEmpty(searchModel.StoreCode)) { sql += " AND C_StoreCode = @StoreCode "; } if (searchModel.End!=DateTimeOffset.MinValue&&searchModel.Start!= DateTimeOffset.MinValue) { sql += " AND D_CreateTime between @start and @end"; } if (!string.IsNullOrEmpty(searchModel.Id)) { sql += " AND G_ID = @id"; } sql += " ORDER BY D_CreateTime DESC"; IEnumerable list = EntityFrameworkCoreExtensions.GetList(DbContext.Database, sql, parameters); searchModel.TotalCount = list.First() != null ? list.ToList().Count : 0; return Task.FromResult(searchModel.IsPagination ? list.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize) : list); } } }