NozzleService.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  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 ServiceResponse.Error("未找到油枪");
  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 = uploadTanks.ProductId;
  114. tanks.TankCapacity = uploadTanks.TankCapacity;
  115. tanks.ProductName = uploadTanks.ProductName;
  116. tanks.TankNumber = uploadTanks.TankNumber;
  117. int affectedRows = _fsql.Insert<tanks>().AppendData(tanks).ExecuteAffrows();
  118. if (affectedRows <= 0)
  119. {
  120. return ServiceResponse.Error("油灌信息插入失败");
  121. }
  122. return ServiceResponse.Ok(tanks);
  123. }
  124. /// <summary>
  125. /// 更新油罐
  126. /// </summary>
  127. /// <param name="uploadNozzle"></param>
  128. /// <returns></returns>
  129. public async Task<ServiceResponse> UpdateTanks(UploadTanks uploadTanks)
  130. {
  131. Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
  132. var _tanks = _fsql.Select<tanks>().Where(_ => _.Buid == guid && _.TankID == uploadTanks.TankID).First();
  133. if (_tanks != null)
  134. {
  135. return ServiceResponse.Error("油灌已存在,请勿重复上传");
  136. }
  137. _tanks.ProductId = uploadTanks.ProductId;
  138. _tanks.TankCapacity = uploadTanks.TankCapacity;
  139. _tanks.ProductName = uploadTanks.ProductName;
  140. _tanks.TankNumber = uploadTanks.TankNumber;
  141. int affectedRows = _fsql.Update<tanks>().SetSource(_tanks).ExecuteAffrows();
  142. if (affectedRows <= 0)
  143. {
  144. return ServiceResponse.Error("油灌信息更新失败");
  145. }
  146. return ServiceResponse.Ok(_tanks);
  147. }
  148. /// <summary>
  149. /// 删除油罐
  150. /// </summary>
  151. /// <param name="uploadNozzle"></param>
  152. /// <returns></returns>
  153. public async Task<ServiceResponse> DeleteTanks(UploadTanks uploadTanks)
  154. {
  155. Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
  156. var _tanks = _fsql.Select<tanks>().Where(_ => _.Buid == guid && _.TankID == uploadTanks.TankID).First();
  157. if (_tanks != null)
  158. {
  159. return ServiceResponse.Error("油灌已存在,请勿重复上传");
  160. }
  161. int affectedRows = _fsql.Delete<tanks>()
  162. .Where(p => p.TankID == uploadTanks.TankID)
  163. .ExecuteAffrows();
  164. if (affectedRows <= 0)
  165. {
  166. return ServiceResponse.Error("油灌信息删除失败");
  167. }
  168. return ServiceResponse.Ok();
  169. }
  170. #endregion
  171. #region 油枪
  172. /// <summary>
  173. /// 上传油枪
  174. /// </summary>
  175. /// <param name="uploadNozzle"></param>
  176. /// <returns></returns>
  177. public async Task<ServiceResponse> uploadNozzle(UploadNozzle uploadNozzle)
  178. {
  179. //RedisHelper.HSetAsync("Transaction", "11:22:33:44", "3232");
  180. //RedisHelper.SetAsync("33:22:33:44", "qweqweqwe", 3600);
  181. // var fsdds = RedisHelper.GetAsync("33:22:33:44");
  182. //var das = RedisHelper.ExpireAsync("33:22:33:44", 10);
  183. Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
  184. var _product = _fsql.Select<product>().Where(_ => _.Buid == guid && _.ProductName == uploadNozzle.ProductName).First();
  185. var _tanks = _fsql.Select<tanks>().Where(_ => _.Buid == guid && _.TankNumber == uploadNozzle.TankNumber).First();
  186. var isproduct = _fsql.Select<nozzle>().Where(_ => _.Buid == guid && _.NozzleId == uploadNozzle.NozzleId).First();
  187. if (isproduct != null)
  188. {
  189. return ServiceResponse.Error("油枪已存在");
  190. }
  191. if (_product != null || _tanks != null)
  192. {
  193. return ServiceResponse.Error("油品或油罐信息为空");
  194. }
  195. nozzle _nozzle = new nozzle();
  196. _nozzle.Buid = guid;
  197. _nozzle.PumpId = uploadNozzle.PumpID;
  198. _nozzle.TankId = _tanks.Id;
  199. _nozzle.InternalGunNumber = uploadNozzle.InternalGunNumber;
  200. _nozzle.ExternalGunNumber = uploadNozzle.ExternalGunNumber;
  201. _nozzle.ProductID = _product.Id;
  202. int affectedRows = _fsql.Insert<nozzle>().AppendData(_nozzle).ExecuteAffrows();
  203. if (affectedRows <= 0)
  204. {
  205. return ServiceResponse.Error("油枪信息插入失败");
  206. }
  207. return ServiceResponse.Ok(_nozzle);
  208. }
  209. /// <summary>
  210. /// 更新油枪信息
  211. /// </summary>
  212. /// <param name="uploadNozzle"></param>
  213. /// <returns></returns>
  214. public async Task<ServiceResponse> UpdateNozzle(UploadNozzle uploadNozzle)
  215. {
  216. Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
  217. var _nozzle = _fsql.Select<nozzle>().Where(_ => _.Buid == guid && _.NozzleId == uploadNozzle.NozzleId).First();
  218. if (_nozzle == null)
  219. {
  220. return ServiceResponse.Error("未找到油枪");
  221. }
  222. _nozzle.PumpId = uploadNozzle.PumpID;
  223. _nozzle.InternalGunNumber = uploadNozzle.InternalGunNumber;
  224. _nozzle.ExternalGunNumber = uploadNozzle.ExternalGunNumber;
  225. int affectedRows = _fsql.Update<nozzle>().SetSource(_nozzle).ExecuteAffrows();
  226. if (affectedRows <= 0)
  227. {
  228. return ServiceResponse.Error("油枪信息更新失败");
  229. }
  230. return ServiceResponse.Ok(_nozzle);
  231. }
  232. /// <summary>
  233. /// 删除油枪信息
  234. /// </summary>
  235. /// <param name="uploadNozzle"></param>
  236. /// <returns></returns>
  237. public async Task<ServiceResponse> DeleteNozzle(UploadNozzle uploadNozzle)
  238. {
  239. Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
  240. var _nozzle = _fsql.Select<nozzle>().Where(_ => _.Buid == guid && _.NozzleId == uploadNozzle.NozzleId).First();
  241. if (_nozzle == null)
  242. {
  243. return ServiceResponse.Error("未找到油枪");
  244. }
  245. int affectedRows = _fsql.Delete<nozzle>()
  246. .Where(p => p.NozzleId == uploadNozzle.NozzleId)
  247. .ExecuteAffrows();
  248. if (affectedRows <= 0)
  249. {
  250. return ServiceResponse.Error("油枪信息删除失败");
  251. }
  252. return ServiceResponse.Ok();
  253. }
  254. public async Task<List<NozzleInfo>> GetNozzleInfo(int Nozzleid)
  255. {
  256. Guid guid = HttpRequestReader.GetCurrentBuId(); //站点id
  257. return _entityHelper._fsql.Select<nozzle, tanks, product>()
  258. .LeftJoin((a, b, c) => a.TankId == b.Id)
  259. .LeftJoin((a, b, c) => a.ProductID == c.Id)
  260. .Where((a, b, c) => a.Buid == guid && a.ExternalGunNumber == Nozzleid)
  261. .ToList((a, b, c) => new NozzleInfo()
  262. {
  263. Nozzleid = a.ExternalGunNumber,
  264. ProductName = c.ProductName,
  265. ProductPrice = c.ProductPrice,
  266. Status = a.Status,
  267. TankNumber = b.TankNumber
  268. });
  269. }
  270. #endregion
  271. }
  272. }