generated from wenjy/SlnMesnac
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
93 lines
3.0 KiB
C#
93 lines
3.0 KiB
C#
using Microsoft.Extensions.Logging;
|
|
using SlnMesnac.Common;
|
|
using SlnMesnac.Model.AirportApiEntity;
|
|
using SlnMesnac.Model.domain;
|
|
using SlnMesnac.Repository.service.@base;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Linq.Expressions;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace SlnMesnac.Repository.service.Impl
|
|
{
|
|
public class ManipulatorStateServiceImpl : BaseServiceImpl<ManipulatorState>, IManipulatorStateService
|
|
{
|
|
private ILogger<ManipulatorStateServiceImpl> _logger;
|
|
|
|
|
|
public ManipulatorStateServiceImpl(Repository<ManipulatorState> rep, ILogger<ManipulatorStateServiceImpl> logger) : base(rep)
|
|
{
|
|
_logger = logger;
|
|
}
|
|
|
|
public List<ManipulatorState> GetAllManipulatorState()
|
|
{
|
|
var list = new List<ManipulatorState>();
|
|
try
|
|
{
|
|
list = base._rep.GetList();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_logger.LogError($"所有机械臂状态信息获取异常:{ex.Message}");
|
|
}
|
|
return list;
|
|
}
|
|
|
|
public List<ManipulatorState> GetFreeManipulatorState()
|
|
{
|
|
var list = new List<ManipulatorState>();
|
|
try
|
|
{
|
|
list = base._rep.GetList()
|
|
.Where(x => x.ManipulatorNo != "" && (x.TaskNo == null || x.TaskNo == "") && x.ManipulatorWorkState == "任务空闲")
|
|
.ToList();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
_logger.LogError($"空闲机械臂状态信息获取异常:{ex.Message}");
|
|
}
|
|
return list;
|
|
}
|
|
|
|
public async Task<bool> UpdateAsync(ManipulatorState record)
|
|
{
|
|
bool result = await _rep.UpdateAsync(record);
|
|
return result;
|
|
}
|
|
|
|
public async Task<bool> UpdateOrAddByResponse(ManipulatorStateResponseEntity response)
|
|
{
|
|
ManipulatorState record = new ManipulatorState()
|
|
{
|
|
ManipulatorNo = response.ManipulatorNo,
|
|
ManipulatorAlarmState = response.ManipulatorAlarmState,
|
|
ManipulatorWorkState = response.ManipulatorWorkState,
|
|
TaskNo = response.TaskNo,
|
|
RefreshTime = DateTime.Now,
|
|
};
|
|
bool result = false;
|
|
try
|
|
{
|
|
var list = GetAllManipulatorState();
|
|
if (list.Where(x => x.ManipulatorNo == response.ManipulatorNo).Count() == 0)
|
|
{
|
|
result = _rep.Insert(record);
|
|
}
|
|
else
|
|
{
|
|
record.ID = list.Where(x => x.ManipulatorNo == response.ManipulatorNo).FirstOrDefault().ID;
|
|
result = await _rep.UpdateAsync(record);
|
|
}
|
|
}
|
|
catch(Exception ex)
|
|
{
|
|
_logger.LogError($"机械臂状态信息更新异常:{ex.Message}");
|
|
}
|
|
return result;
|
|
}
|
|
}
|
|
}
|