TmtnAlarmOrderRepository.cs 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. using Ropin.Inspection.Model;
  2. using Ropin.Inspection.Model.Entities;
  3. using Ropin.Inspection.Model.SearchModel.MTN;
  4. using Ropin.Inspection.Model.ViewModel.DEV;
  5. using Ropin.Inspection.Model.ViewModel.MTN;
  6. using Ropin.Inspection.Repository.MTN.Interface;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. namespace Ropin.Inspection.Repository.MTN
  13. {
  14. /// <summary>
  15. /// 报警工单
  16. /// </summary>
  17. public class TmtnAlarmOrderRepository : RepositoryBase<TMTN_AlarmOrder, string>, ITmtnAlarmOrderRepository
  18. {
  19. public TmtnAlarmOrderRepository(InspectionDbContext DbContext) : base(DbContext)
  20. {
  21. }
  22. public Task<IEnumerable<AlarmOrderViewModel>> GetAlarmOrderList(AlarmOrderSearchModel searchModel)
  23. {
  24. MySqlConnector.MySqlParameter[] parameters = new[] {
  25. new MySqlConnector.MySqlParameter("Status", searchModel.C_Status),
  26. new MySqlConnector.MySqlParameter("id", searchModel.C_ID),
  27. new MySqlConnector.MySqlParameter("messageCode", searchModel.C_MessageCode),
  28. new MySqlConnector.MySqlParameter("storeCode", searchModel.C_StoreCode),
  29. new MySqlConnector.MySqlParameter("devCode", searchModel.C_DevCode),
  30. new MySqlConnector.MySqlParameter("name", "%"+searchModel.C_Name+"%"),
  31. new MySqlConnector.MySqlParameter("beginTme", searchModel.BeginTime?.ToString("yyyy-MM-dd")),
  32. new MySqlConnector.MySqlParameter("endTime ", searchModel.EndTime?.ToString("yyyy-MM-dd"))
  33. };
  34. StringBuilder sql = new StringBuilder();
  35. sql.Append(@" select * from (
  36. select a.*,m.C_Content,m.C_DevStoreCode,m.C_MsgTypeCode,d.C_Name as C_DevName,d.C_StoreCode,u.C_Name as C_ExamineName,c.C_Name as C_CreateName
  37. from TMTN_AlarmOrder a
  38. LEFT JOIN TMTN_PushMsgResult p on (a.C_PushMsgResultCode=p.C_ID)
  39. LEFT JOIN TSYS_Message m on (a.C_MessageCode=m.C_ID)
  40. LEFT JOIN TDEV_DevStore d on (m.C_DevStoreCode=d.C_ID)
  41. LEFT JOIN TSYS_User u on (a.C_ExamineBy=u.C_UserID)
  42. LEFT JOIN TSYS_User c on (a.C_CreateBy=c.C_UserID)
  43. ) tab
  44. ");
  45. if (!string.IsNullOrEmpty(searchModel.C_Status))
  46. {
  47. if (searchModel.C_Status.Contains(","))
  48. {
  49. sql.Append($" where C_Status in ('{searchModel.C_Status.Replace(",","','")}') ");
  50. }
  51. else
  52. {
  53. sql.Append(" where C_Status=@Status ");
  54. }
  55. }
  56. else
  57. {
  58. sql.Append(" where C_Status!='0' ");
  59. }
  60. if (!string.IsNullOrEmpty(searchModel.C_StoreCode))
  61. {
  62. sql.Append(" and C_StoreCode=@storeCode ");
  63. }
  64. if (!string.IsNullOrEmpty(searchModel.C_DevCode))
  65. {
  66. sql.Append(" and C_DevStoreCode=@devCode ");
  67. }
  68. if (!string.IsNullOrEmpty(searchModel.C_ID))
  69. {
  70. sql.Append(" and C_ID=@id ");
  71. }
  72. if (!string.IsNullOrEmpty(searchModel.C_MessageCode))
  73. {
  74. sql.Append(" and C_MessageCode=@messageCode ");
  75. }
  76. if (!string.IsNullOrEmpty(searchModel.C_Name))
  77. {
  78. sql.Append(" and C_Name like @name ");
  79. }
  80. if (searchModel.BeginTime!=null&&searchModel.BeginTime!=DateTime.MinValue)
  81. {
  82. sql.Append(" and DATE_FORMAT(D_CreateOn, '%Y-%m-%d')>=@beginTme ");
  83. }
  84. if (searchModel.EndTime != null && searchModel.EndTime != DateTime.MinValue)
  85. {
  86. sql.Append(" and DATE_FORMAT(D_CreateOn, '%Y-%m-%d')<=@endTime ");
  87. }
  88. sql.Append(" order by D_CreateOn desc ");
  89. IEnumerable<AlarmOrderViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<AlarmOrderViewModel>(DbContext.Database, sql.ToString(), parameters);
  90. searchModel.TotalCount = recordItemlist.First() != null ? recordItemlist.ToList().Count : 0;
  91. if (searchModel.TotalCount == 0)
  92. {
  93. recordItemlist=new List<AlarmOrderViewModel>();
  94. }
  95. return Task.FromResult(searchModel.IsPagination ? recordItemlist.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize) : recordItemlist);
  96. }
  97. public Task<RepairStatistics> GetAlarmOrderStatisticsAsync(string storeCode)
  98. {
  99. MySqlConnector.MySqlParameter[] parameters = new[] {
  100. new MySqlConnector.MySqlParameter("storeCode", storeCode)};
  101. string sql = "";
  102. 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,
  103. CASE WHEN ISNULL(SUM(if(C_Status='2',1,0))) THEN 0 ELSE SUM(if(C_Status='2',1,0)) END AS Confirm ,
  104. CASE WHEN ISNULL(SUM(if(C_Status='3',1,0))) THEN 0 ELSE SUM(if(C_Status='3',1,0)) END AS RepairOn ,
  105. CASE WHEN ISNULL(SUM(if(C_Status='4',1,0))) THEN 0 ELSE SUM(if(C_Status='4',1,0)) END AS Complete,
  106. CASE WHEN ISNULL(SUM(if(C_Status='5',1,0))) THEN 0 ELSE SUM(if(C_Status='5',1,0)) END AS Cancel,
  107. CASE WHEN ISNULL(SUM(if(C_Status='6',1,0))) THEN 0 ELSE SUM(if(C_Status='6',1,0)) END AS RepairRework,
  108. CASE WHEN ISNULL(SUM(if(C_Status='7',1,0))) THEN 0 ELSE SUM(if(C_Status='7',1,0)) END AS RepairCompleted
  109. FROM (
  110. SELECT A.D_CreateOn,A.C_Status FROM TMTN_AlarmOrder A
  111. LEFT JOIN TMTN_PushMsgResult p on (A.C_PushMsgResultCode=p.C_ID)
  112. LEFT JOIN TSYS_Message m on (A.C_MessageCode=m.C_ID)
  113. LEFT JOIN TDEV_DevStore d on (m.C_DevStoreCode=d.C_ID)
  114. WHERE d.C_Status != '0'
  115. AND d.C_StoreCode =@storeCode
  116. AND A.D_CreateOn >= date_sub(NOW(),INTERVAL 6 MONTH)
  117. )D
  118. ";
  119. RepairStatistics record;
  120. record = EntityFrameworkCoreExtensions.SqlQuery<RepairStatistics>(DbContext.Database, sql, parameters).FirstOrDefault();
  121. return Task.FromResult(record);
  122. }
  123. }
  124. /// <summary>
  125. /// 报警处理记录
  126. /// </summary>
  127. public class TmtnAlarmOrderRecordRepository : RepositoryBase<TMTN_AlarmHandleRecord, string>, ITmtnAlarmOrderRecordRepository
  128. {
  129. public TmtnAlarmOrderRecordRepository(InspectionDbContext DbContext) : base(DbContext)
  130. {
  131. }
  132. public Task<IEnumerable<AlarmOrderRecordViewModel>> GetAlarmOrderRecordList(AlarmOrderSearchModel searchModel)
  133. {
  134. MySqlConnector.MySqlParameter[] parameters = new[] {
  135. new MySqlConnector.MySqlParameter("id", searchModel.C_ID),
  136. new MySqlConnector.MySqlParameter("PushMsgResultCode", searchModel.C_PushMsgResultCode),
  137. new MySqlConnector.MySqlParameter("messageCode", searchModel.C_MessageCode)
  138. };
  139. string sql = @"select a.*,o.C_Name as C_AlarmOrderName,u.C_Name as C_CreateName
  140. from TMTN_AlarmHandleRecord a
  141. LEFT JOIN TMTN_AlarmOrder o on (a.C_AlarmOrderCode=o.C_ID)
  142. LEFT JOIN TSYS_User u on (a.C_CreateBy=u.C_UserID) where C_AlarmOrderCode=@id order by a.D_CreateOn asc";
  143. if (!string.IsNullOrEmpty(searchModel.C_PushMsgResultCode))
  144. {
  145. sql = @"select a.*,o.C_Name as C_AlarmOrderName,u.C_Name as C_CreateName
  146. from TMTN_AlarmHandleRecord a
  147. LEFT JOIN TMTN_AlarmOrder o on (a.C_AlarmOrderCode=o.C_ID)
  148. LEFT JOIN TSYS_User u on (a.C_CreateBy=u.C_UserID)
  149. where o.C_PushMsgResultCode=@PushMsgResultCode order by a.D_CreateOn asc";
  150. }
  151. if (!string.IsNullOrEmpty(searchModel.C_MessageCode))
  152. {
  153. sql = @"select a.*,o.C_Name as C_AlarmOrderName,u.C_Name as C_CreateName
  154. from TMTN_AlarmHandleRecord a
  155. LEFT JOIN TMTN_AlarmOrder o on (a.C_AlarmOrderCode=o.C_ID)
  156. LEFT JOIN TSYS_User u on (a.C_CreateBy=u.C_UserID)
  157. where o.C_MessageCode=@messageCode order by a.D_CreateOn asc";
  158. }
  159. IEnumerable<AlarmOrderRecordViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<AlarmOrderRecordViewModel>(DbContext.Database, sql, parameters);
  160. return Task.FromResult(recordItemlist);
  161. }
  162. }
  163. /// <summary>
  164. /// 报警处理记录附件
  165. /// </summary>
  166. public class TmtnAlarmOrderRecordAppRepository : RepositoryBase<TMTN_AlarmHandleRecordApp, string>, ITmtnAlarmOrderRecordAppRepository
  167. {
  168. public TmtnAlarmOrderRecordAppRepository(InspectionDbContext DbContext) : base(DbContext)
  169. {
  170. }
  171. }
  172. }