RegionChargerdal.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. using Cksoft.Data;
  2. using Cksoft.Unity;
  3. using DllEapEntity.Dtos;
  4. using DllEapEntity.OFILM;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Data.Common;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace DllEapDal.OFILM
  12. {
  13. /// <summary>
  14. /// 区域负责人
  15. /// </summary>
  16. public class RegionChargerDal
  17. {
  18. private IDatabase CurrDb = null;
  19. public RegionChargerDal(IDatabase db)
  20. {
  21. CurrDb = db;
  22. }
  23. /// <summary>
  24. /// 获取区域负责人
  25. /// </summary>
  26. /// <param name="regionName"></param>
  27. /// <returns></returns>
  28. public async Task<LayuiModel<RegionChargerDto>> Get(string regionName, string factory, string plant, string chargeName)
  29. {
  30. string errorinfo = string.Empty;
  31. var sql = $@"select distinct b.fname as RegionName,b.id as RegionId,c.fname as plant,d.fname as factory from factoryregion a
  32. inner join factoryregion b on a.parentid=b.id
  33. inner join factoryregion c on b.parentid=c.id
  34. inner join factoryregion d on c.parentid=d.id
  35. where 1=1 ";
  36. if (!string.IsNullOrEmpty(regionName))
  37. {
  38. sql += $" and b.fName like '%{regionName}%' ";
  39. }
  40. if (!string.IsNullOrEmpty(factory))
  41. {
  42. sql += $" and d.fName like '%{factory}%' ";
  43. }
  44. if (!string.IsNullOrEmpty(plant))
  45. {
  46. sql += $" and c.fName like '%{plant}%' ";
  47. }
  48. sql += "order by factory,plant,RegionName";
  49. var regions = await CurrDb.FindListAsync<RegionChargerDto>(sql, null);
  50. IEnumerable<RegionChargerDto> da;
  51. if (regions != null && regions.Count() > 0)
  52. {
  53. string str = "";
  54. if (!string.IsNullOrEmpty(chargeName))
  55. {
  56. str =$@"and a.chargeName='{chargeName}'";
  57. }
  58. var chargers = await CurrDb.FindListForConditionAsync<RegionCharger>(str,
  59. ref errorinfo);
  60. foreach (var item in regions)
  61. {
  62. item.ChargeName = chargers?.FirstOrDefault(c => c.RegionId == item.RegionId)?.ChargeName;
  63. item.Remark = chargers?.FirstOrDefault(c => c.RegionId == item.RegionId)?.Remark;
  64. }
  65. if (!string.IsNullOrEmpty(chargeName))
  66. {
  67. var list = new List<RegionChargerDto>();
  68. foreach (var item in regions)
  69. {
  70. if (item.ChargeName != null)
  71. list.Add(item);
  72. }
  73. da = list.AsEnumerable();
  74. }
  75. else
  76. {
  77. da = regions;
  78. }
  79. }
  80. else
  81. {
  82. da = regions;
  83. }
  84. return new LayuiModel<RegionChargerDto>
  85. {
  86. count = regions?.Count() ?? 0,
  87. data = da
  88. };
  89. }
  90. /// <summary>
  91. /// 修改负责人
  92. /// </summary>
  93. /// <param name="model"></param>
  94. /// <returns></returns>
  95. public async Task<EapResponse> AddOrUpdate(RegionCharger model)
  96. {
  97. string errorinfo = string.Empty;
  98. var exist = (await CurrDb.FindListForConditionAsync<RegionCharger>($" " +
  99. $"and a.regionId = {model.RegionId}", ref errorinfo)).FirstOrDefault();
  100. if (exist != null)
  101. {
  102. exist.ChargeName = model.ChargeName;
  103. exist.Remark = model.Remark;
  104. exist.ModCode = model.ModCode;
  105. exist.ModTime = DateTime.Now;
  106. CurrDb.UpdateFor(exist, model.ModCode);
  107. }
  108. else
  109. {
  110. CurrDb.InsertFor(model, model.RecCode);
  111. }
  112. return new EapResponse { Code = 1 };
  113. }
  114. }
  115. }