using Microsoft.Extensions.Logging; using SlnMesnac.Model.domain; using SlnMesnac.Repository.service.@base; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace SlnMesnac.Repository.service.Impl { public class AGVMapPointServiceImpl : BaseServiceImpl, IAGVMapPointService { private ILogger _logger; public AGVMapPointServiceImpl(Repository repository, ILogger logger) : base(repository) { _logger = logger; } /// /// 获取所有AGV地图点位 /// /// public List GetAllMapPoint() { try { List aGVMapPoints = _rep.GetList(); return aGVMapPoints; } catch(Exception ex) { _logger.LogError("获取所有AGV点位错误:" + ex.Message); return null; } } /// /// 更新或添加地图点位列表 /// /// /// public bool RefreshOrAddAGVMapPoint(List records) { bool result = true; try { var list = GetAllMapPoint(); if(list == null) { return false; } foreach (var r in records) { if (list.Where(x => x.PointGuid == r.PointGuid).Count() == 0) { if (!_rep.Insert(r)) { result = false; } } else { r.ID = list.Where(x => x.PointGuid == r.PointGuid).First().ID; result = _rep.Update(r); } } } catch (Exception ex) { _logger.LogError("更新或添加地图点位列表:" + ex.Message); return false; } return result; } /// /// 删除所有AGV点位 /// /// /// public bool DeleteAllAGVMapPoint() { try { var list = GetAllMapPoint(); return _rep.Delete(list); } catch (Exception ex) { _logger.LogError("删除所有AGV点位:" + ex.Message); return false; } } /// /// 删除旧的点位,添加新的点位 /// /// /// public bool DeleteAndAddAgvMapPoint(List aGVMapPoint) { try { var list = GetAllMapPoint(); if (!DeleteAllAGVMapPoint()) { return false; } return _rep.InsertRange(aGVMapPoint); } catch (Exception ex) { _logger.LogError("删除旧的点位,添加新的点位:" + ex.Message); return false; } } } }