MyDbHandler.cs 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. using AmrControl.ADS;
  2. using AmrControl.DB.Models;
  3. using AmrControl.Dto;
  4. using Microsoft.EntityFrameworkCore;
  5. using Newtonsoft.Json;
  6. namespace AmrControl.DB
  7. {
  8. public class MyDbHandler
  9. {
  10. /// <summary>
  11. /// 连接字符,用于动态创建MyDbContext使用
  12. /// </summary>
  13. private readonly string connStr;
  14. public MyDbHandler(string connString)
  15. {
  16. //mysql用这一句
  17. //connStr = connString;
  18. //sqlite用这一句
  19. connStr = "Filename=" + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, connString);
  20. }
  21. /// <summary>
  22. /// 获取今日的出库单
  23. /// </summary>
  24. /// <returns></returns>
  25. public List<IssueNoteDto> getIssueNodeDto()
  26. {
  27. List<IssueNoteDto> dots = new List<IssueNoteDto>();
  28. using (var context = new MyDbContext(this.connStr))
  29. {
  30. var notes = context.issuenotes.ToList();
  31. foreach (var item in notes)
  32. {
  33. IssueNoteDto dto = new IssueNoteDto();
  34. dto.ID = item.issueNoteID;
  35. dto.MesTaskID = item.mesTaskID;
  36. dto.StationID = item.stationID;
  37. dto.RawBoms = JsonConvert.DeserializeObject<List<RequireRawBom>>(item.jsonRawBoms);
  38. dots.Add(dto);
  39. }
  40. }
  41. return dots;
  42. }
  43. /// <summary>
  44. /// 获得车的清单
  45. /// </summary>
  46. /// <returns></returns>
  47. public List<JGR_Tc_Model> getJGRs()
  48. {
  49. List<JGR_Tc_Model> jgrs = new List<JGR_Tc_Model>();
  50. using (var context = new MyDbContext(this.connStr))
  51. {
  52. var dbJgrs = context.jgrs.Where(x=>x.enable == true).ToList();
  53. foreach (var item in dbJgrs)
  54. {
  55. JGR_Tc_Model jgr = new JGR_Tc_Model();
  56. jgr.jgrID = item.jgrID;
  57. jgr.jgrSN = item.jgrSN;
  58. jgr.jgrType = item.jgrType;
  59. jgr.rcAddr = item.rcAddr ;
  60. jgr.rcFreqCode = item.rcFreqCode;
  61. jgr.currLocation_X = (short)item.positionX;
  62. jgr.currLocation_Y = (short)item.positionY;
  63. jgr.displayX = item.displayX;
  64. jgr.displayY = item.displayY;
  65. jgr.isOnline = 0; //初始化的时候,是否在线为0
  66. jgr.isCharging = 0; //初始化的时候,没在充电为0
  67. jgr.isHealthy = 0; //初始化的时候,默认没有异常0
  68. jgrs.Add(jgr);
  69. }
  70. }
  71. return jgrs;
  72. }
  73. public bool saveJGRs(List<JGR_Tc_Model> models)
  74. {
  75. List<JGR_Tc_Model> jgrs = new List<JGR_Tc_Model>();
  76. using (var context = new MyDbContext(this.connStr))
  77. {
  78. var dbJgrs = context.jgrs.Where(x => x.enable == true).ToList();
  79. foreach (var item in models)
  80. {
  81. var dbModel = dbJgrs.Where(x => x.jgrSN == item.jgrSN).FirstOrDefault();
  82. if(dbModel != null)
  83. {
  84. dbModel.jgrID = item.jgrID;
  85. dbModel.jgrType = item.jgrType;
  86. dbModel.displayX = item.displayX;
  87. dbModel.displayY = item.displayY;
  88. dbModel.rcAddr = item.rcAddr;
  89. dbModel.rcFreqCode = item.rcFreqCode;
  90. dbModel.positionX = item.currLocation_X;
  91. dbModel.positionY = item.currLocation_Y;
  92. }
  93. }
  94. context.SaveChanges();
  95. return true;
  96. }
  97. }
  98. /// <summary>
  99. /// 充电桩
  100. /// </summary>
  101. /// <returns></returns>
  102. public List<ChargingStationDataModel> getChargers()
  103. {
  104. List<ChargingStationDataModel> charger = new List<ChargingStationDataModel>();
  105. using (var context = new MyDbContext(this.connStr))
  106. {
  107. var chargers = context.chargers.Where(x => x.enable == true).ToList();
  108. foreach (var item in chargers)
  109. {
  110. ChargingStationDataModel newItem = new ChargingStationDataModel();
  111. newItem.csID = item.chargerID;
  112. newItem.csSN = item.chargerSN;
  113. newItem.csType = item.chargerType;
  114. newItem.rcAddr = item.rcAddr;
  115. newItem.rcFreqCode = item.rcFreqCode;
  116. newItem.positionX = item.positionX;
  117. newItem.positionY = item.positionY;
  118. newItem.displayX = item.displayX;
  119. newItem.displayY = item.displayY;
  120. charger.Add(newItem);
  121. }
  122. }
  123. return charger;
  124. }
  125. public List<StationDataModel> getSatations()
  126. {
  127. List<StationDataModel> stations = new List<StationDataModel>();
  128. using (var context = new MyDbContext(this.connStr))
  129. {
  130. var chargers = context.stations.Where(x => x.enable == true).ToList();
  131. foreach (var item in chargers)
  132. {
  133. StationDataModel newItem = new StationDataModel();
  134. newItem.stationID = item.stationID;
  135. newItem.stationType = (StationType)item.stationType;
  136. newItem.displayName = item.displayName;
  137. newItem.positionX = item.positionX;
  138. newItem.positionY = item.positionY;
  139. newItem.displayX = item.displayX;
  140. newItem.displayY = item.displayY;
  141. stations.Add(newItem);
  142. }
  143. }
  144. return stations;
  145. }
  146. public void InitSqlite()
  147. {
  148. try
  149. {
  150. using (var context = new MyDbContext(this.connStr))
  151. {
  152. context.Database.Migrate();
  153. context.Database.EnsureCreated();
  154. }
  155. }
  156. catch(Exception e)
  157. {
  158. Console.WriteLine("初始化sqlite数据库出现异常:" + e.Message);
  159. }
  160. }
  161. public StationDataModel? getStationByNo(String stationNo)
  162. {
  163. using (var context = new MyDbContext(this.connStr))
  164. {
  165. var item = context.stations.Where(x => x.stationID == stationNo).FirstOrDefault();
  166. if (item != null)
  167. {
  168. StationDataModel newItem = new()
  169. {
  170. stationID = item.stationID,
  171. stationType = (StationType)item.stationType,
  172. displayName = item.displayName,
  173. positionX = item.positionX,
  174. positionY = item.positionY,
  175. displayX = item.displayX,
  176. displayY = item.displayY
  177. };
  178. return newItem;
  179. }
  180. return null;
  181. }
  182. }
  183. }
  184. }