123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- using AmrControl.ADS;
- using AmrControl.DB.Models;
- using AmrControl.Dto;
- using Microsoft.EntityFrameworkCore;
- using Newtonsoft.Json;
- namespace AmrControl.DB
- {
- public class MyDbHandler
- {
- /// <summary>
- /// 连接字符,用于动态创建MyDbContext使用
- /// </summary>
- private readonly string connStr;
- public MyDbHandler(string connString)
- {
- //mysql用这一句
- //connStr = connString;
- //sqlite用这一句
- connStr = "Filename=" + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, connString);
- }
- /// <summary>
- /// 获取今日的出库单
- /// </summary>
- /// <returns></returns>
- public List<IssueNoteDto> getIssueNodeDto()
- {
- List<IssueNoteDto> dots = new List<IssueNoteDto>();
- using (var context = new MyDbContext(this.connStr))
- {
- var notes = context.issuenotes.ToList();
- foreach (var item in notes)
- {
- IssueNoteDto dto = new IssueNoteDto();
- dto.ID = item.issueNoteID;
- dto.MesTaskID = item.mesTaskID;
- dto.StationID = item.stationID;
- dto.RawBoms = JsonConvert.DeserializeObject<List<RequireRawBom>>(item.jsonRawBoms);
- dots.Add(dto);
- }
- }
- return dots;
- }
- /// <summary>
- /// 获得车的清单
- /// </summary>
- /// <returns></returns>
- public List<JGR_Tc_Model> getJGRs()
- {
- List<JGR_Tc_Model> jgrs = new List<JGR_Tc_Model>();
- using (var context = new MyDbContext(this.connStr))
- {
- var dbJgrs = context.jgrs.Where(x=>x.enable == true).ToList();
- foreach (var item in dbJgrs)
- {
- JGR_Tc_Model jgr = new JGR_Tc_Model();
- jgr.jgrID = item.jgrID;
- jgr.jgrSN = item.jgrSN;
- jgr.jgrType = item.jgrType;
- jgr.rcAddr = item.rcAddr ;
- jgr.rcFreqCode = item.rcFreqCode;
- jgr.currLocation_X = (short)item.positionX;
- jgr.currLocation_Y = (short)item.positionY;
- jgr.displayX = item.displayX;
- jgr.displayY = item.displayY;
- jgr.isOnline = 0; //初始化的时候,是否在线为0
- jgr.isCharging = 0; //初始化的时候,没在充电为0
- jgr.isHealthy = 0; //初始化的时候,默认没有异常0
- jgrs.Add(jgr);
- }
- }
- return jgrs;
- }
- public bool saveJGRs(List<JGR_Tc_Model> models)
- {
- List<JGR_Tc_Model> jgrs = new List<JGR_Tc_Model>();
- using (var context = new MyDbContext(this.connStr))
- {
- var dbJgrs = context.jgrs.Where(x => x.enable == true).ToList();
- foreach (var item in models)
- {
- var dbModel = dbJgrs.Where(x => x.jgrSN == item.jgrSN).FirstOrDefault();
- if(dbModel != null)
- {
- dbModel.jgrID = item.jgrID;
- dbModel.jgrType = item.jgrType;
- dbModel.displayX = item.displayX;
- dbModel.displayY = item.displayY;
- dbModel.rcAddr = item.rcAddr;
- dbModel.rcFreqCode = item.rcFreqCode;
- dbModel.positionX = item.currLocation_X;
- dbModel.positionY = item.currLocation_Y;
- }
- }
- context.SaveChanges();
- return true;
- }
- }
- /// <summary>
- /// 充电桩
- /// </summary>
- /// <returns></returns>
- public List<ChargingStationDataModel> getChargers()
- {
- List<ChargingStationDataModel> charger = new List<ChargingStationDataModel>();
- using (var context = new MyDbContext(this.connStr))
- {
- var chargers = context.chargers.Where(x => x.enable == true).ToList();
- foreach (var item in chargers)
- {
- ChargingStationDataModel newItem = new ChargingStationDataModel();
- newItem.csID = item.chargerID;
- newItem.csSN = item.chargerSN;
- newItem.csType = item.chargerType;
- newItem.rcAddr = item.rcAddr;
- newItem.rcFreqCode = item.rcFreqCode;
- newItem.positionX = item.positionX;
- newItem.positionY = item.positionY;
- newItem.displayX = item.displayX;
- newItem.displayY = item.displayY;
- charger.Add(newItem);
- }
- }
- return charger;
- }
- public List<StationDataModel> getSatations()
- {
- List<StationDataModel> stations = new List<StationDataModel>();
- using (var context = new MyDbContext(this.connStr))
- {
- var chargers = context.stations.Where(x => x.enable == true).ToList();
- foreach (var item in chargers)
- {
- StationDataModel newItem = new StationDataModel();
- newItem.stationID = item.stationID;
- newItem.stationType = (StationType)item.stationType;
- newItem.displayName = item.displayName;
- newItem.positionX = item.positionX;
- newItem.positionY = item.positionY;
- newItem.displayX = item.displayX;
- newItem.displayY = item.displayY;
- stations.Add(newItem);
- }
- }
- return stations;
- }
- public void InitSqlite()
- {
- try
- {
- using (var context = new MyDbContext(this.connStr))
- {
- context.Database.Migrate();
- context.Database.EnsureCreated();
- }
- }
- catch(Exception e)
- {
- Console.WriteLine("初始化sqlite数据库出现异常:" + e.Message);
- }
- }
- public StationDataModel? getStationByNo(String stationNo)
- {
- using (var context = new MyDbContext(this.connStr))
- {
- var item = context.stations.Where(x => x.stationID == stationNo).FirstOrDefault();
- if (item != null)
- {
- StationDataModel newItem = new()
- {
- stationID = item.stationID,
- stationType = (StationType)item.stationType,
- displayName = item.displayName,
- positionX = item.positionX,
- positionY = item.positionY,
- displayX = item.displayX,
- displayY = item.displayY
- };
- return newItem;
- }
- return null;
- }
- }
- }
- }
|