NozzleService.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306
  1. using Fuel.Core;
  2. using Fuel.Core.Models;
  3. using Fuel.Core.Nozzle.Dto;
  4. using FuelServer.Core.Entity;
  5. using Org.BouncyCastle.Ocsp;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. using System.Transactions;
  12. using static FreeSql.Internal.GlobalFilter;
  13. namespace Fuel.Application.Service
  14. {
  15. public class NozzleService : INozzleService
  16. {
  17. private readonly EntityHelper _entityHelper;
  18. public readonly IFreeSql _fsql;
  19. public NozzleService(EntityHelper entityHelper, IFreeSql fsql)
  20. {
  21. _entityHelper = entityHelper;
  22. _fsql = fsql;
  23. }
  24. #region 油品
  25. /// <summary>
  26. /// 上传油品
  27. /// </summary>
  28. /// <param name="uploadProduct"></param>
  29. /// <returns></returns>
  30. public async Task<ServiceResponse> UploadProduct(UploadProduct uploadProduct)
  31. {
  32. Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
  33. var _product = _fsql.Select<product>().Where(_ => _.Buid == guid && _.ProductId == uploadProduct.ProductId).First();
  34. if (_product != null)
  35. {
  36. return ServiceResponse.Error("油品已存在,请勿重复上传");
  37. }
  38. product product = new product();
  39. product.Buid = guid;
  40. product.ProductId = uploadProduct.ProductId;
  41. product.ProductCode = uploadProduct.ProductCode;
  42. product.ProductName = uploadProduct.ProductName;
  43. product.ProductPrice = uploadProduct.ProductPrice;
  44. int affectedRows = _fsql.Insert<product>().AppendData(product).ExecuteAffrows();
  45. if (affectedRows <= 0)
  46. {
  47. return ServiceResponse.Error("油品信息插入失败");
  48. }
  49. return ServiceResponse.Ok(product);
  50. }
  51. /// <summary>
  52. /// 更新油品信息
  53. /// </summary>
  54. /// <param name="uploadNozzle"></param>
  55. /// <returns></returns>
  56. public async Task<ServiceResponse> UpdateProduct(UploadProduct uploadProduct)
  57. {
  58. Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
  59. var _product = _fsql.Select<product>().Where(_ => _.Buid == guid && _.ProductId == uploadProduct.ProductId).First();
  60. if (_product == null)
  61. {
  62. return await UploadProduct(uploadProduct);
  63. }
  64. _product.ProductCode = uploadProduct.ProductCode;
  65. _product.ProductName = uploadProduct.ProductName;
  66. _product.ProductPrice = uploadProduct.ProductPrice;
  67. int affectedRows = _fsql.Update<product>().SetSource(_product).ExecuteAffrows();
  68. if (affectedRows <= 0)
  69. {
  70. return ServiceResponse.Error("油品信息更新失败");
  71. }
  72. return ServiceResponse.Ok(_product);
  73. }
  74. /// <summary>
  75. /// 删除油品信息
  76. /// </summary>
  77. /// <param name="uploadNozzle"></param>
  78. /// <returns></returns>
  79. public async Task<ServiceResponse> DeleteProduct(UploadProduct uploadProduct)
  80. {
  81. Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
  82. var _product = _fsql.Select<product>().Where(_ => _.Buid == guid && _.ProductId == uploadProduct.ProductId).First();
  83. if (_product == null)
  84. {
  85. return ServiceResponse.Error("未找到油品");
  86. }
  87. int affectedRows = _fsql.Delete<product>()
  88. .Where(p => p.ProductId == uploadProduct.ProductId)
  89. .ExecuteAffrows();
  90. if (affectedRows <= 0)
  91. {
  92. return ServiceResponse.Error("油品信息删除失败");
  93. }
  94. return ServiceResponse.Ok();
  95. }
  96. #endregion
  97. #region 油罐
  98. /// <summary>
  99. /// 上传油罐
  100. /// </summary>
  101. /// <param name="uploadProduct"></param>
  102. /// <returns></returns>
  103. public async Task<ServiceResponse> UploadTanks(UploadTanks uploadTanks)
  104. {
  105. Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
  106. var _tanks = _fsql.Select<tanks>().Where(_ => _.Buid == guid && _.TankID == uploadTanks.TankID).First();
  107. if (_tanks != null)
  108. {
  109. return ServiceResponse.Error("油灌已存在,请勿重复上传");
  110. }
  111. tanks tanks = new tanks();
  112. tanks.Buid = guid;
  113. tanks.ProductId = (long)uploadTanks.ProductId;
  114. tanks.TankCapacity = uploadTanks.TankCapacity;
  115. tanks.ProductName = uploadTanks.ProductName;
  116. tanks.TankNumber = uploadTanks.TankNumber;
  117. tanks.TankID = uploadTanks.TankID;
  118. int affectedRows = _fsql.Insert<tanks>().AppendData(tanks).ExecuteAffrows();
  119. if (affectedRows <= 0)
  120. {
  121. return ServiceResponse.Error("油灌信息插入失败");
  122. }
  123. return ServiceResponse.Ok(tanks);
  124. }
  125. /// <summary>
  126. /// 更新油罐
  127. /// </summary>
  128. /// <param name="uploadNozzle"></param>
  129. /// <returns></returns>
  130. public async Task<ServiceResponse> UpdateTanks(UploadTanks uploadTanks)
  131. {
  132. Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
  133. var _tanks = _fsql.Select<tanks>().Where(_ => _.Buid == guid && _.TankID == uploadTanks.TankID).First();
  134. if (_tanks == null)
  135. {
  136. return await UploadTanks(uploadTanks);
  137. }
  138. _tanks.ProductId = (long)uploadTanks.ProductId;
  139. _tanks.TankCapacity = uploadTanks.TankCapacity;
  140. _tanks.ProductName = uploadTanks.ProductName;
  141. _tanks.TankNumber = uploadTanks.TankNumber;
  142. int affectedRows = _fsql.Update<tanks>().SetSource(_tanks).ExecuteAffrows();
  143. if (affectedRows <= 0)
  144. {
  145. return ServiceResponse.Error("油灌信息更新失败");
  146. }
  147. return ServiceResponse.Ok(_tanks);
  148. }
  149. /// <summary>
  150. /// 删除油罐
  151. /// </summary>
  152. /// <param name="uploadNozzle"></param>
  153. /// <returns></returns>
  154. public async Task<ServiceResponse> DeleteTanks(UploadTanks uploadTanks)
  155. {
  156. Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
  157. var _tanks = _fsql.Select<tanks>().Where(_ => _.Buid == guid && _.TankID == uploadTanks.TankID).First();
  158. if (_tanks == null)
  159. {
  160. return ServiceResponse.Error("油灌不存在,删除失败");
  161. }
  162. int affectedRows = _fsql.Delete<tanks>()
  163. .Where(p => p.TankID == uploadTanks.TankID)
  164. .ExecuteAffrows();
  165. if (affectedRows <= 0)
  166. {
  167. return ServiceResponse.Error("油灌信息删除失败");
  168. }
  169. return ServiceResponse.Ok();
  170. }
  171. #endregion
  172. #region 油枪
  173. /// <summary>
  174. /// 上传油枪
  175. /// </summary>
  176. /// <param name="uploadNozzle"></param>
  177. /// <returns></returns>
  178. public async Task<ServiceResponse> UploadNozzle(UploadNozzle uploadNozzle)
  179. {
  180. //RedisHelper.HSetAsync("Transaction", "11:22:33:44", "3232");
  181. //RedisHelper.SetAsync("33:22:33:44", "qweqweqwe", 3600);
  182. // var fsdds = RedisHelper.GetAsync("33:22:33:44");
  183. //var das = RedisHelper.ExpireAsync("33:22:33:44", 10);
  184. Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
  185. var _product = _fsql.Select<product>().Where(_ => _.Buid == guid && _.ProductId == uploadNozzle.ProductId).First();
  186. var _tanks = _fsql.Select<tanks>().Where(_ => _.Buid == guid && _.TankID == uploadNozzle.TankID).First();
  187. var isproduct = _fsql.Select<nozzle>().Where(_ => _.Buid == guid && _.NozzleId == uploadNozzle.NozzleId).First();
  188. if (isproduct != null)
  189. {
  190. return ServiceResponse.Error("油枪已存在");
  191. }
  192. if (_product == null || _tanks == null)
  193. {
  194. return ServiceResponse.Error("油品或油罐信息为空");
  195. }
  196. nozzle _nozzle = new nozzle();
  197. _nozzle.Buid = guid;
  198. _nozzle.PumpId = uploadNozzle.PumpID;
  199. _nozzle.TankId = _tanks.Id;
  200. _nozzle.InternalGunNumber = uploadNozzle.InternalGunNumber;
  201. _nozzle.ExternalGunNumber = uploadNozzle.ExternalGunNumber;
  202. _nozzle.ProductID = _product.Id;
  203. _nozzle.NozzleId = uploadNozzle.NozzleId;
  204. int affectedRows = _fsql.Insert<nozzle>().AppendData(_nozzle).ExecuteAffrows();
  205. if (affectedRows <= 0)
  206. {
  207. return ServiceResponse.Error("油枪信息插入失败");
  208. }
  209. return ServiceResponse.Ok(_nozzle);
  210. }
  211. /// <summary>
  212. /// 更新油枪信息
  213. /// </summary>
  214. /// <param name="uploadNozzle"></param>
  215. /// <returns></returns>
  216. public async Task<ServiceResponse> UpdateNozzle(UploadNozzle uploadNozzle)
  217. {
  218. Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
  219. var _nozzle = _fsql.Select<nozzle>().Where(_ => _.Buid == guid && _.NozzleId == uploadNozzle.NozzleId).First();
  220. if (_nozzle == null)
  221. {
  222. return await UploadNozzle(uploadNozzle);
  223. }
  224. _nozzle.PumpId = uploadNozzle.PumpID;
  225. _nozzle.InternalGunNumber = uploadNozzle.InternalGunNumber;
  226. _nozzle.ExternalGunNumber = uploadNozzle.ExternalGunNumber;
  227. _nozzle.TankId = (long)uploadNozzle.TankID;
  228. _nozzle.ProductID = (long)uploadNozzle.ProductId;
  229. int affectedRows = _fsql.Update<nozzle>().SetSource(_nozzle).ExecuteAffrows();
  230. if (affectedRows <= 0)
  231. {
  232. return ServiceResponse.Error("油枪信息更新失败");
  233. }
  234. return ServiceResponse.Ok(_nozzle);
  235. }
  236. /// <summary>
  237. /// 删除油枪信息
  238. /// </summary>
  239. /// <param name="uploadNozzle"></param>
  240. /// <returns></returns>
  241. public async Task<ServiceResponse> DeleteNozzle(UploadNozzle uploadNozzle)
  242. {
  243. Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
  244. var _nozzle = _fsql.Select<nozzle>().Where(_ => _.Buid == guid && _.NozzleId == uploadNozzle.NozzleId).First();
  245. if (_nozzle == null)
  246. {
  247. return ServiceResponse.Error("未找到油枪");
  248. }
  249. int affectedRows = _fsql.Delete<nozzle>()
  250. .Where(p => p.NozzleId == uploadNozzle.NozzleId)
  251. .ExecuteAffrows();
  252. if (affectedRows <= 0)
  253. {
  254. return ServiceResponse.Error("油枪信息删除失败");
  255. }
  256. return ServiceResponse.Ok();
  257. }
  258. public async Task<ServiceResponse> UpdateNozzleStatus(List<UploadNozzleStatus> uploadNozzleStatuses)
  259. {
  260. Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
  261. List<nozzle> nozzleStatuses = new List<nozzle>();
  262. foreach (var n in uploadNozzleStatuses)
  263. {
  264. nozzleStatuses.Add(new nozzle() {
  265. NozzleId = n.NozzleId,
  266. Buid = guid,
  267. Status = n.Status
  268. });
  269. }
  270. int affectedRows = _fsql.InsertOrUpdate<nozzle>().SetSource(nozzleStatuses).ExecuteAffrows();
  271. return ServiceResponse.Ok();
  272. }
  273. public async Task<List<NozzleInfo>> GetNozzleInfo(int Nozzleid)
  274. {
  275. Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
  276. return _entityHelper._fsql.Select<nozzle, tanks, product>()
  277. .LeftJoin((a, b, c) => a.TankId == b.Id)
  278. .LeftJoin((a, b, c) => a.ProductID == c.Id)
  279. .Where((a, b, c) => a.Buid == guid && a.ExternalGunNumber == Nozzleid)
  280. .ToList((a, b, c) => new NozzleInfo()
  281. {
  282. Nozzleid = a.ExternalGunNumber,
  283. ProductName = c.ProductName,
  284. ProductPrice = c.ProductPrice,
  285. Status = a.Status,
  286. TankNumber = b.TankNumber
  287. });
  288. }
  289. #endregion
  290. }
  291. }