ReportRepository.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using Ropin.Inspection.Model.Entities;
  2. using Ropin.Inspection.Model.SearchModel;
  3. using Ropin.Inspection.Model.ViewModel;
  4. using Ropin.Inspection.Repository.Interface;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Text;
  9. using System.Threading.Tasks;
  10. namespace Ropin.Inspection.Repository
  11. {
  12. public class ReportRepository : RepositoryBase<TISP_Report, Guid>, IReportRepository
  13. {
  14. public ReportRepository(InspectionDbContext dbContext) : base(dbContext)
  15. {
  16. }
  17. public Task<IEnumerable<ReportViewModel>> GetWithoutReportData(ReportSearchModel searchModel)
  18. {
  19. MySqlConnector.MySqlParameter[] parameters = new[] {
  20. new MySqlConnector.MySqlParameter("id", searchModel.Id),
  21. new MySqlConnector.MySqlParameter("StoreCode", searchModel.StoreCode),
  22. new MySqlConnector.MySqlParameter("start", searchModel.Start),
  23. new MySqlConnector.MySqlParameter("end", searchModel.End),
  24. new MySqlConnector.MySqlParameter("name ", searchModel.C_Name),
  25. new MySqlConnector.MySqlParameter("type", searchModel.I_Type),
  26. new MySqlConnector.MySqlParameter("groupName ", searchModel.C_GroupName) };
  27. string sql = @"select * from (
  28. 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
  29. FROM TISP_Report R
  30. LEFT JOIN TDEV_DevStore D on (R.C_DevStoreCode=D.C_ID)
  31. ) tab WHERE C_Status = '1' ";
  32. if (!string.IsNullOrEmpty(searchModel.C_Name))
  33. {
  34. sql += " AND C_Name = @name";
  35. }
  36. if (searchModel.I_Type != 0)
  37. {
  38. sql += " AND I_Type = @type";
  39. }
  40. if (!string.IsNullOrEmpty(searchModel.C_GroupName))
  41. {
  42. sql += " AND C_GroupName = @groupName";
  43. }
  44. if (!string.IsNullOrEmpty(searchModel.StoreCode))
  45. {
  46. sql += " AND C_StoreCode = @StoreCode ";
  47. }
  48. if (searchModel.End!=DateTimeOffset.MinValue&&searchModel.Start!= DateTimeOffset.MinValue)
  49. {
  50. sql += " AND D_CreateTime between @start and @end";
  51. }
  52. if (!string.IsNullOrEmpty(searchModel.Id))
  53. {
  54. sql += " AND G_ID = @id";
  55. }
  56. sql += " ORDER BY D_CreateTime DESC";
  57. IEnumerable<ReportViewModel> list = EntityFrameworkCoreExtensions.GetList<ReportViewModel>(DbContext.Database, sql, parameters);
  58. searchModel.TotalCount = list.First() != null ? list.ToList().Count : 0;
  59. return Task.FromResult(searchModel.IsPagination ? list.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize) : list);
  60. }
  61. }
  62. }