BoxApiRepository.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  1. using Ropin.Inspection.Model.Entities;
  2. using Ropin.Inspection.Model.SearchModel.PRD;
  3. using Ropin.Inspection.Model.ViewModel.PRD;
  4. using Ropin.Inspection.Repository.Interface;
  5. using Ropin.Inspection.Repository.PRD.Interface;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace Ropin.Inspection.Repository.PRD
  12. {
  13. public class BoxApiRepository : RepositoryBase<TSYS_User, Guid>, IBoxApiRepository
  14. {
  15. public BoxApiRepository(InspectionDbContext dbContext) : base(dbContext)
  16. {
  17. }
  18. public Task<PrivModel> GetUserPriv(string openId, string deviceCode)
  19. {
  20. PrivModel privModel = new PrivModel();
  21. var user = DbContext.TSYS_User.Where(u => u.C_WechatID == openId).FirstOrDefault();
  22. var device = DbContext.TDEV_Device.Where(u => u.C_Code == deviceCode).FirstOrDefault();
  23. if (user != null && device != null)
  24. {
  25. var userRole = DbContext.TSYS_UserRole.Where(u => u.C_UserCode == user.C_UserID).FirstOrDefault();
  26. var storeOrg = DbContext.TPNT_StoreOrg.Where(u => u.C_OrgCode == user.C_OrgCode).FirstOrDefault();
  27. var product = DbContext.TPRD_Product.Where(u => u.C_Code.Equals(device.C_ProductCode)).FirstOrDefault();
  28. if (userRole != null || storeOrg != null || product != null)
  29. {
  30. if (storeOrg.C_StoreCode == product.C_StoreCode)
  31. {
  32. var priv = DbContext.TSYS_Priv.Where(u => u.C_Module == "SYS_PRIV_MODULE_003" && u.C_Type == "SYS_PRIV_TYPE_001").FirstOrDefault();//菜单权限
  33. var rolePriv = DbContext.TSYS_RolePriv.Where(u => u.C_RoleCode.Equals(userRole.C_RoleCode) && u.C_PrivilegeCode == priv.C_Code).FirstOrDefault();
  34. if (rolePriv != null)
  35. {
  36. var priv2 = DbContext.TSYS_Priv.Where(u => u.C_Module == "SYS_PRIV_MODULE_003" && u.C_Type == "SYS_PRIV_TYPE_002").FirstOrDefault();//操作权限
  37. var rolePriv2 = DbContext.TSYS_RolePriv.Where(u => u.C_RoleCode.Equals(userRole.C_RoleCode) && u.C_PrivilegeCode == priv2.C_Code).FirstOrDefault();
  38. if (rolePriv2 != null)
  39. {
  40. privModel.openId = openId;
  41. privModel.type = "SYS_PRIV_TYPE_002";
  42. privModel.status = "true";
  43. }
  44. else
  45. {
  46. privModel.openId = openId;
  47. privModel.type = "SYS_PRIV_TYPE_001";
  48. privModel.status = "true";
  49. }
  50. return Task.FromResult(privModel);
  51. }
  52. }
  53. }
  54. }
  55. privModel.type = "";
  56. privModel.status = "false";
  57. return Task.FromResult(privModel);
  58. }
  59. public Task<bool> AddDevData(TDEV_DevData devData)
  60. {
  61. DbContext.TDEV_DevData.Add(devData);
  62. var query = DbContext.SaveChanges();
  63. if (query > 0)
  64. {
  65. return Task.FromResult(true);
  66. }
  67. return Task.FromResult(false);
  68. }
  69. public Task<bool> AddDevAlert(TDEV_DevAlert devAlert)
  70. {
  71. DbContext.TDEV_DevAlert.Add(devAlert);
  72. var query = DbContext.SaveChanges();
  73. if (query > 0)
  74. {
  75. return Task.FromResult(true);
  76. }
  77. return Task.FromResult(false);
  78. }
  79. public Task<TDEV_Device> GetDeviceInfo(string C_MachineCode)
  80. {
  81. var device = DbContext.TDEV_Device.Where(u => u.C_MachineCode == C_MachineCode).FirstOrDefault();
  82. return Task.FromResult(device);
  83. }
  84. public Task<List<TDEV_Device>> GetAllDeviceInfo()
  85. {
  86. var device = DbContext.TDEV_Device;
  87. return Task.FromResult(device.ToList());
  88. }
  89. public Task<List<TSYS_User>> GetAllUser()
  90. {
  91. var users = DbContext.TSYS_User.ToList();
  92. return Task.FromResult(users);
  93. }
  94. public Task<TDEV_DevAlertConfig> GetDevAlertConfig(string C_ConfigCode)
  95. {
  96. var devAlertConfig = DbContext.TDEV_DevAlertConfig.Where(u => u.C_Code == C_ConfigCode).FirstOrDefault();
  97. return Task.FromResult(devAlertConfig);
  98. }
  99. public Task<List<ProductModel>> GetProductInfo(List<epcModel> models)
  100. {
  101. List<ProductModel> productModels = new List<ProductModel>();
  102. List<string> lstepc = models.Select(u => u.C_QRCode).ToList();
  103. List<TPRD_Product> lstProduct = DbContext.TPRD_Product.Where(u => lstepc.Contains(u.C_QRCode)).ToList();
  104. if (lstProduct.Count>0)
  105. {
  106. foreach (var product in lstProduct)
  107. {
  108. var prodSKU = DbContext.TPRD_ProdSKU.Where(u => u.C_SKUCode == product.C_SKUCode).FirstOrDefault();
  109. var store = DbContext.TPNT_Store.Where(u => u.C_Code == product.C_StoreCode).FirstOrDefault();
  110. if (prodSKU != null && store != null)
  111. {
  112. ProductModel productModel = new ProductModel();
  113. productModel.C_QRCode = product.C_QRCode;
  114. productModel.C_SKUCode = product.C_SKUCode;
  115. productModel.C_StoreCode = product.C_StoreCode;
  116. productModel.C_DeviceCode = product.C_DeviceCode;
  117. productModel.D_ProdDate = product.D_ProdDate;
  118. productModel.D_ValiDate = product.D_ValiDate;
  119. productModel.C_ImageUrl = product.C_ImageUrl;
  120. productModel.D_LastISP = product.D_LastISP;
  121. productModel.I_IsAlarm = product.I_IsAlarm;
  122. productModel.C_AlarmMsg = product.C_AlarmMsg;
  123. productModel.I_Status = product.I_Status;
  124. productModel.C_CreateBy = product.C_CreateBy;
  125. productModel.D_CreateOn = product.D_CreateOn;
  126. productModel.C_Name = prodSKU.C_Name;
  127. productModel.C_Spec = prodSKU.C_Spec;
  128. productModel.C_Brand = prodSKU.C_Brand;
  129. productModel.C_Vender = prodSKU.C_Vender;
  130. productModel.C_ProdArea = prodSKU.C_ProdArea;
  131. productModel.C_Unit = prodSKU.C_Unit;
  132. productModel.C_ImagePath = prodSKU.C_ImagePath;
  133. productModel.C_IconPath = prodSKU.C_IconPath;
  134. productModel.I_MinStock = prodSKU.I_MinStock;
  135. productModel.I_ValiDays = prodSKU.I_ValiDays;
  136. productModel.I_AlarmDays = prodSKU.I_AlarmDays;
  137. productModel.TypeCode = prodSKU.C_TypeCode;
  138. productModel.C_Status = prodSKU.C_Status;
  139. productModel.C_StoreName = store.C_Name;
  140. productModels.Add(productModel);
  141. }
  142. }
  143. }
  144. return Task.FromResult(productModels);
  145. }
  146. public Task<List<ProductModel>> GetDevProductInfo(string c_DeviceCode)
  147. {
  148. //var page = 1;
  149. //var pageSize = 10;
  150. //var query = (from product in DbContext.Set<TPRD_Product>()
  151. // join prodSKU in DbContext.Set<TPRD_ProdSKU>() on product.C_SKUCode equals prodSKU.C_SKUCode
  152. // join store in DbContext.Set<TPNT_Store>() on product.C_StoreCode equals store.C_Code
  153. // where product.C_DeviceCode == c_DeviceCode
  154. // orderby product.C_Code descending
  155. // select new
  156. // {
  157. // product.C_SKUCode,
  158. // prodSKU.C_Name,
  159. // storename = store.C_Name,
  160. // }).Skip((page - 1) * pageSize).Take(pageSize);
  161. List<ProductModel> productModels = new List<ProductModel>();
  162. var product = DbContext.TPRD_Product.Where(u => u.C_DeviceCode == c_DeviceCode && u.I_Status == 2).ToList();
  163. if (product.Count > 0)
  164. {
  165. foreach (var item in product)
  166. {
  167. var prodSKU = DbContext.TPRD_ProdSKU.Where(u => u.C_SKUCode == item.C_SKUCode).FirstOrDefault();
  168. var store = DbContext.TPNT_Store.Where(u => u.C_Code == item.C_StoreCode).FirstOrDefault();
  169. if (prodSKU != null && store != null)
  170. {
  171. ProductModel productModel = new ProductModel();
  172. productModel.C_QRCode = item.C_QRCode;
  173. productModel.C_SKUCode = item.C_SKUCode;
  174. productModel.C_StoreCode = item.C_StoreCode;
  175. productModel.C_DeviceCode = item.C_DeviceCode;
  176. productModel.D_ProdDate = item.D_ProdDate;
  177. productModel.D_ValiDate = item.D_ValiDate;
  178. productModel.C_ImageUrl = item.C_ImageUrl;
  179. productModel.D_LastISP = item.D_LastISP;
  180. productModel.I_IsAlarm = item.I_IsAlarm;
  181. productModel.C_AlarmMsg = item.C_AlarmMsg;
  182. productModel.I_Status = item.I_Status;
  183. productModel.C_CreateBy = item.C_CreateBy;
  184. productModel.D_CreateOn = item.D_CreateOn;
  185. productModel.C_Name = prodSKU.C_Name;
  186. productModel.C_Spec = prodSKU.C_Spec;
  187. productModel.C_Brand = prodSKU.C_Brand;
  188. productModel.C_Vender = prodSKU.C_Vender;
  189. productModel.C_ProdArea = prodSKU.C_ProdArea;
  190. productModel.C_Unit = prodSKU.C_Unit;
  191. productModel.C_ImagePath = prodSKU.C_ImagePath;
  192. productModel.C_IconPath = prodSKU.C_IconPath;
  193. productModel.I_MinStock = prodSKU.I_MinStock;
  194. productModel.I_ValiDays = prodSKU.I_ValiDays;
  195. productModel.I_AlarmDays = prodSKU.I_AlarmDays;
  196. productModel.TypeCode = prodSKU.C_TypeCode;
  197. productModel.C_Status = prodSKU.C_Status;
  198. productModel.C_StoreName = store.C_Name;
  199. productModels.Add(productModel);
  200. }
  201. }
  202. }
  203. return Task.FromResult(productModels);
  204. }
  205. public Task<bool> UpOffRackProduct(ProductInfoModel model)
  206. {
  207. List<string> lstepc = model.goods.Select(u => u.C_QRCode).ToList();
  208. List<TPRD_Product> lstProduct = DbContext.TPRD_Product.Where(u => lstepc.Contains(u.C_QRCode)).ToList();
  209. foreach (var item in lstProduct)
  210. {
  211. item.C_DeviceCode = model.C_DeviceCode;
  212. item.I_Status = model.goods.Where(u => u.C_QRCode == item.C_QRCode).FirstOrDefault().I_Status;
  213. item.C_LastUpdatedBy = model.C_CreateBy;
  214. item.D_LastUpdatedOn = DateTime.Now;
  215. }
  216. var query = DbContext.SaveChanges();
  217. if (query > 0)
  218. {
  219. return Task.FromResult(true);
  220. }
  221. return Task.FromResult(false);
  222. }
  223. public Task<UserModel> GetUserInfo(string openid)
  224. {
  225. var user = DbContext.TSYS_User.Where(u => u.C_WechatID == openid && u.C_Status == "1").FirstOrDefault();
  226. UserModel model = new UserModel();
  227. model.C_UserID = user.C_UserID;
  228. model.C_UserName = user.C_UserName;
  229. model.I_Render = user.I_Render;
  230. model.D_Birthday = user.D_Birthday;
  231. model.C_Post = user.C_Post;
  232. model.C_ProgramID = user.C_ProgramID;
  233. model.C_OrgCode = user.C_OrgCode;
  234. model.C_IDNum = user.C_IDNum;
  235. model.C_Address = user.C_Address;
  236. model.C_Email = user.C_Email;
  237. model.C_ImagePath = user.C_ImagePath;
  238. model.C_Mobile = user.C_Mobile;
  239. model.C_Phone = user.C_Phone;
  240. model.C_Status = user.C_Status;
  241. return Task.FromResult(model);
  242. }
  243. }
  244. }