TdevDevStoreRepository.cs 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. using Ropin.Inspection.Common;
  2. using Ropin.Inspection.Model;
  3. using Ropin.Inspection.Model.Entities;
  4. using System;
  5. using System.Collections;
  6. using System.Collections.Generic;
  7. using System.Linq;
  8. using System.Security.Claims;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace Ropin.Inspection.Repository
  12. {
  13. public class TdevDevStoreRepository : RepositoryBase<TDEV_DevStore, string>, ITdevDevStoreRepository
  14. {
  15. public TdevDevStoreRepository(InspectionDbContext DbContext) : base(DbContext)
  16. {
  17. }
  18. public Task<TdevDevStoreDetailViewModel> GetDevStoreByQRCodeAsync(string qRCode, string storeCode)
  19. {
  20. //WHERE A.C_ID = '1e2aa77d-2838-48eb-a012-c1fecac679d3' OR (A.C_NumberCode = '2021083005' AND D.C_StoreCode = '4d05189f-0f7a-4c30-bd14-7ffc76553e98') OR (D.C_QRCode = '412050000391' AND D.C_StoreCode = '4d05189f-0f7a-4c30-bd14-7ffc76553e98')
  21. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("qRCode", qRCode), new MySqlConnector.MySqlParameter("storeCode", storeCode) };
  22. string sql = @"SELECT A.C_ID,A.C_GPS, B.*,A.C_Name AS DevStoreName,A.C_NumberCode AS DevStoreNumberCode,A.C_Remark AS DevStoreRemark,A.C_Status AS DevStoreStatus,A.C_Url AS DevStoreUrl,D.C_Code AS SpotID
  23. From TDEV_DevStore A
  24. INNER JOIN TDEV_DeviceTemplate B ON B.C_ID = A.C_DevTempCode
  25. INNER JOIN TDEV_DevSpot C ON C.C_DevStoreCode = A.C_ID
  26. INNER JOIN TISP_Spot D ON D.C_Code = C.C_SpotCode
  27. WHERE (A.C_ID = @qRCode) OR (A.C_NumberCode = @qRCode AND D.C_StoreCode = @storeCode) OR (D.C_QRCode = @qRCode AND D.C_StoreCode = @storeCode)
  28. ";
  29. TdevDevStoreDetailViewModel model = EntityFrameworkCoreExtensions.SqlQuery<TdevDevStoreDetailViewModel>(DbContext.Database, sql, parameters).FirstOrDefault();
  30. return Task.FromResult(model);
  31. }
  32. public Task<TsysUserViewModel> GetUserByDevStoreIdAndRoleNameAsync(string devStoreId, string roleName)
  33. {
  34. MySqlConnector.MySqlParameter[] parameters = new[] { new MySqlConnector.MySqlParameter("devStoreId", devStoreId), new MySqlConnector.MySqlParameter("roleName", roleName) };
  35. string sql = @"SELECT B.* from TPNT_StoreOrg A
  36. LEFT JOIN TSYS_User B ON A.C_OrgCode = B.C_OrgCode
  37. LEFT JOIN TSYS_UserRole C ON C.C_UserCode = B.C_UserID
  38. LEFT JOIN TSYS_Role D ON D.C_Code = C.C_RoleCode
  39. LEFT JOIN TDEV_DevStore E ON E.C_StoreCode = A.C_StoreCode
  40. WHERE E.C_ID = @devStoreId AND D.C_Name = '设备管理员' AND B.C_Status = '1' AND D.C_Status = '1'
  41. ";
  42. TsysUserViewModel model = EntityFrameworkCoreExtensions.SqlQuery<TsysUserViewModel>(DbContext.Database, sql, parameters).FirstOrDefault();
  43. return Task.FromResult(model);
  44. }
  45. public Task<int> UpdateDevStoreStatus(string devId,string status)
  46. {
  47. MySqlConnector.MySqlParameter[] parameters = new[] {
  48. new MySqlConnector.MySqlParameter("devId", devId),
  49. new MySqlConnector.MySqlParameter("status", status)
  50. };
  51. string sql = "UPDATE TDEV_DevStore SET C_Status=@status where C_ID=@devId ";
  52. int result = EntityFrameworkCoreExtensions.ExecuteSqlNoQuery(DbContext.Database, sql, parameters);
  53. return Task.FromResult(result);
  54. }
  55. public Task<IEnumerable<TdevDevStoreViewModel>> GetConditionAsync(TdevDevStoreSearchModel searchModel, string userLicenseTypeCode,string ApiUserId)
  56. {
  57. MySqlConnector.MySqlParameter[] parameters = new[] {
  58. new MySqlConnector.MySqlParameter("Status", searchModel.C_Status),
  59. new MySqlConnector.MySqlParameter("DevTempCode", searchModel.C_DevTempCode),
  60. new MySqlConnector.MySqlParameter("StoreCode", searchModel.C_StoreCode),
  61. new MySqlConnector.MySqlParameter("id", searchModel.C_ID),
  62. new MySqlConnector.MySqlParameter("name", "%"+searchModel.C_Name+"%"),
  63. new MySqlConnector.MySqlParameter("OrgCode", searchModel.C_OrgCode)
  64. };
  65. StringBuilder sql = new StringBuilder();
  66. sql.Append(@" select A.*,dd.C_Name as c_DevTempName,ops.C_Name as C_OpsTempName,
  67. rep.C_Name as C_RepairTempName,
  68. run.C_Name as C_RunTempName,
  69. plan.C_Name as C_PlanTempName
  70. from TDEV_DevStore A
  71. LEFT JOIN TPNT_Store B on (A.C_StoreCode=B.C_Code)
  72. LEFT JOIN TDEV_DeviceTemplate dd on (A.C_DevTempCode=dd.C_ID)
  73. LEFT JOIN TDEV_MaintenanceTemplate ops on (A.C_OpsTempCode=ops.C_ID)
  74. LEFT JOIN TDEV_MaintenanceTemplate rep on (A.C_RepairTempCode=rep.C_ID)
  75. LEFT JOIN TDEV_MaintenanceTemplate run on (A.C_RunTempCode=run.C_ID)
  76. LEFT JOIN TDEV_MaintenancePlan plan on (A.C_PlanTempCode=plan.C_ID)
  77. where 1=1");
  78. #region 添加条件查询
  79. if (!string.IsNullOrEmpty(searchModel.C_Status))
  80. {
  81. sql.Append(" AND A.C_Status=@Status ");
  82. }
  83. else
  84. {
  85. if (searchModel.type != "details")
  86. {
  87. sql.Append(" AND A.C_Status!='0' ");
  88. }
  89. }
  90. if (!string.IsNullOrEmpty(searchModel.C_DevTempCode))
  91. {
  92. sql.Append(" AND A.C_DevTempCode=@DevTempCode ");
  93. }
  94. if (!string.IsNullOrEmpty(searchModel.C_StoreCode))
  95. {
  96. sql.Append(" AND A.C_StoreCode=@StoreCode ");
  97. }
  98. if (!string.IsNullOrEmpty(searchModel.C_ID))
  99. {
  100. sql.Append(" AND A.C_ID=@id");
  101. }
  102. if (!string.IsNullOrEmpty(searchModel.C_Name))
  103. {
  104. sql.Append(" AND A.C_Name like @name ");
  105. }
  106. if (userLicenseTypeCode != null && userLicenseTypeCode != TsysLicenseType.SYSTEM)
  107. {
  108. sql.Append(" AND A.C_UserConfig like '%"+ ApiUserId + "%' ");
  109. }
  110. if (!string.IsNullOrEmpty(searchModel.C_OrgCode))
  111. {
  112. sql.Append(" and A.C_StoreCode in (select A.C_StoreCode from TPNT_StoreOrg A LEFT JOIN TPNT_Store B on A.C_StoreCode=B.C_Code where A.C_OrgCode=@OrgCode and B.C_Status!=0) ");
  113. }
  114. #endregion
  115. sql.Append(" order by B.I_Sort,A.I_Sort,A.C_Name asc ");
  116. IEnumerable<TdevDevStoreViewModel> model = EntityFrameworkCoreExtensions.GetList<TdevDevStoreViewModel>(DbContext.Database, sql.ToString(), parameters);
  117. return Task.FromResult(model);
  118. }
  119. public Task<IEnumerable<DevStoreStatusGroup>> GetDevStoreStatusCount(TdevDevStoreSearchModel searchModel, string userLicenseTypeCode, string ApiUserId)
  120. {
  121. MySqlConnector.MySqlParameter[] parameters = new[] {
  122. new MySqlConnector.MySqlParameter("Status", searchModel.C_Status),
  123. new MySqlConnector.MySqlParameter("DevTempCode", searchModel.C_DevTempCode),
  124. new MySqlConnector.MySqlParameter("StoreCode", searchModel.C_StoreCode),
  125. new MySqlConnector.MySqlParameter("name", "%"+searchModel.C_Name+"%"),
  126. new MySqlConnector.MySqlParameter("OrgCode", searchModel.C_OrgCode)
  127. };
  128. StringBuilder sql = new StringBuilder();
  129. sql.Append(@"select A.C_Status as status,count(A.C_Status) as cut from TDEV_DevStore A LEFT JOIN TPNT_Store B on A.C_StoreCode=B.C_Code where 1=1 ");
  130. #region 添加条件查询
  131. if (searchModel.type != "details")
  132. {
  133. sql.Append(" AND A.C_Status!='0' ");
  134. }
  135. if (!string.IsNullOrEmpty(searchModel.C_DevTempCode))
  136. {
  137. sql.Append(" AND A.C_DevTempCode=@DevTempCode ");
  138. }
  139. if (!string.IsNullOrEmpty(searchModel.C_StoreCode))
  140. {
  141. sql.Append(" AND A.C_StoreCode=@StoreCode ");
  142. }
  143. if (!string.IsNullOrEmpty(searchModel.C_Name))
  144. {
  145. sql.Append(" AND A.C_Name like @name ");
  146. }
  147. if (userLicenseTypeCode != null && userLicenseTypeCode != TsysLicenseType.SYSTEM)
  148. {
  149. sql.Append(" AND A.C_UserConfig like '%" + ApiUserId + "%' ");
  150. }
  151. if (!string.IsNullOrEmpty(searchModel.C_OrgCode))
  152. {
  153. sql.Append(" and A.C_StoreCode in (select A.C_StoreCode from TPNT_StoreOrg A LEFT JOIN TPNT_Store B on A.C_StoreCode=B.C_Code where A.C_OrgCode=@OrgCode and B.C_Status!=0) ");
  154. }
  155. #endregion
  156. sql.Append(" group by A.C_Status ");
  157. IEnumerable<DevStoreStatusGroup> model = EntityFrameworkCoreExtensions.GetList<DevStoreStatusGroup>(DbContext.Database, sql.ToString(), parameters);
  158. return Task.FromResult(model);
  159. }
  160. }
  161. }