TdevDevStoreDocRepository.cs 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using Ropin.Inspection.Model;
  2. using Ropin.Inspection.Model.Entities;
  3. using Ropin.Inspection.Model.ViewModel.DEV;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace Ropin.Inspection.Repository
  10. {
  11. public class TdevDevStoreDocRepository : RepositoryBase<TDEV_DevStoreDoc, string>, ITdevDevStoreDocRepository
  12. {
  13. public TdevDevStoreDocRepository(InspectionDbContext DbContext) : base(DbContext)
  14. {
  15. }
  16. /// <summary>
  17. /// 获取设备文档(包括关联的模板文档)
  18. /// </summary>
  19. /// <param name="searchModel"></param>
  20. /// <returns></returns>
  21. public Task<IEnumerable<TdevDevStoreDocViewModel>> GetDevFile(TdevDevStoreDocSearchModel searchModel)
  22. {
  23. MySqlConnector.MySqlParameter[] parameters = new[] {
  24. new MySqlConnector.MySqlParameter("Status", searchModel.C_Status),
  25. new MySqlConnector.MySqlParameter("name", "%"+searchModel.C_Name+"%"),
  26. new MySqlConnector.MySqlParameter("devStoreCode", searchModel.C_DevStoreCode),
  27. new MySqlConnector.MySqlParameter("Id ", searchModel.C_ID)
  28. };
  29. StringBuilder sql = new StringBuilder();
  30. sql.Append(@"select * from (
  31. select C_ID,C_Name,C_DevStoreCode,C_Type,C_Url,C_Remark,C_CreateBy,D_CreateOn,C_Status from TDEV_DevStoreDoc
  32. union
  33. select * from (
  34. select C_ID,C_Name,@devStoreCode as C_DevStoreCode,C_Type,C_Url,C_Remark,C_CreateBy,D_CreateOn,C_Status from TDEV_DeviceTempArchives
  35. where C_DevTempCode in (
  36. select C_DevTempCode as id from TDEV_DevStore where C_ID =@devStoreCode
  37. union
  38. select C_OpsTempCode as id from TDEV_DevStore where C_ID =@devStoreCode
  39. union
  40. select C_RepairTempCode as id from TDEV_DevStore where C_ID =@devStoreCode
  41. union
  42. select C_RunTempCode as id from TDEV_DevStore where C_ID =@devStoreCode
  43. )) tab)tabs
  44. where C_DevStoreCode=@devStoreCode");
  45. if (!string.IsNullOrEmpty(searchModel.C_Status))
  46. {
  47. sql.Append(" and C_Status=@Status ");
  48. }
  49. else
  50. {
  51. sql.Append(" and C_Status!='0' ");
  52. }
  53. if (!string.IsNullOrEmpty(searchModel.C_Name))
  54. {
  55. sql.Append(" and C_Name like @name");
  56. }
  57. if (searchModel.IdList!=null&& searchModel.IdList.Count>0)
  58. {
  59. string idJoin=string.Join("','", searchModel.IdList);
  60. sql.Append($" and C_ID in ('{idJoin}') ");
  61. }
  62. if (!string.IsNullOrEmpty(searchModel.C_ID))
  63. {
  64. sql.Append(" and C_ID=@Id ");
  65. }
  66. sql.Append(" order by C_Name asc,D_CreateOn desc ");
  67. IEnumerable<TdevDevStoreDocViewModel> recordItemlist = EntityFrameworkCoreExtensions.GetList<TdevDevStoreDocViewModel>(DbContext.Database, sql.ToString(), parameters);
  68. searchModel.TotalCount = recordItemlist.First() != null ? recordItemlist.ToList().Count : 0;
  69. return Task.FromResult(searchModel.IsPagination ? recordItemlist.Skip((searchModel.PageIndex - 1) * searchModel.PageSize).Take(searchModel.PageSize) : recordItemlist);
  70. }
  71. }
  72. }