TmtnDevOperateRecordRepository.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using Ropin.Inspection.Model;
  2. using Ropin.Inspection.Model.Entities;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace Ropin.Inspection.Repository
  9. {
  10. public class TmtnDevOperateRecordRepository : RepositoryBase<TMTN_DevOperateRecord, Guid>, ITmtnDevOperateRecordRepository
  11. {
  12. public TmtnDevOperateRecordRepository(InspectionDbContext DbContext) : base(DbContext)
  13. {
  14. }
  15. public Task<RepairStatistics> GetDevOpsStatisticsAsync(string storeCode)
  16. {
  17. MySqlConnector.MySqlParameter[] parameters = new[] {
  18. new MySqlConnector.MySqlParameter("storeCode", storeCode)};
  19. string sql = "";
  20. sql = @"SELECT CASE WHEN ISNULL(SUM(if(C_Status='1',1,0))) THEN 0 ELSE SUM(if(C_Status='1',1,0)) END AS Approval,
  21. CASE WHEN ISNULL(SUM(if(C_Status='2',1,0))) THEN 0 ELSE SUM(if(C_Status='2',1,0)) END AS Confirm ,
  22. CASE WHEN ISNULL(SUM(if(C_Status='3',1,0))) THEN 0 ELSE SUM(if(C_Status='3',1,0)) END AS RepairOn ,
  23. CASE WHEN ISNULL(SUM(if(C_Status='4',1,0))) THEN 0 ELSE SUM(if(C_Status='4',1,0)) END AS Complete,
  24. CASE WHEN ISNULL(SUM(if(C_Status='5',1,0))) THEN 0 ELSE SUM(if(C_Status='5',1,0)) END AS Cancel,
  25. CASE WHEN ISNULL(SUM(if(C_Status='6',1,0))) THEN 0 ELSE SUM(if(C_Status='6',1,0)) END AS RepairRework,
  26. CASE WHEN ISNULL(SUM(if(C_Status='7',1,0))) THEN 0 ELSE SUM(if(C_Status='7',1,0)) END AS RepairCompleted
  27. FROM (
  28. SELECT A.D_CreateOn,A.C_Status FROM TMTN_DevOps A
  29. INNER JOIN TISP_Spot C ON C.C_Code = A.C_SpotCode WHERE C.C_StoreCode =@storeCode AND C.C_Status = '1' AND A.D_CreateOn >= date_sub(NOW(),INTERVAL 6 MONTH)
  30. )D
  31. ";
  32. RepairStatistics record;
  33. record = EntityFrameworkCoreExtensions.SqlQuery<RepairStatistics>(DbContext.Database, sql, parameters).FirstOrDefault();
  34. return Task.FromResult(record);
  35. }
  36. }
  37. }