123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- using SqlSugar;
- using WMS.BZModels;
- using WMS.Info;
- using wms.sqlsugar.model.fj;
- using WMS.BZSqlSugar;
- using WMS.BZModels.Dto.FJ.TaskDtos;
- namespace WMS.BZServices.FJ
- {
- public class AgvTaskInfoService
- {
- private readonly Repository<WCS_AgvTaskInfo> _agvtaskrepository;
-
- public AgvTaskInfoService(Repository<WCS_AgvTaskInfo> agvtaskrepository)
- {
- _agvtaskrepository = agvtaskrepository;
- }
- public PagedInfo<AgvTaskoldDto> GetPageList(Pagination pagination, AgvTaskoldQueryDto agvTaskoldQueryDto)
- {
- var predicate = Expressionable.Create<WCS_AgvTaskInfo>();
- predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.KeyWord), m => m.ID.ToString().Contains(agvTaskoldQueryDto.KeyWord) || m.AgvID.Contains(agvTaskoldQueryDto.KeyWord)
- || m.Station.Contains(agvTaskoldQueryDto.KeyWord) || m.Position.Contains(agvTaskoldQueryDto.KeyWord));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.ID), m => m.ID.ToString().Contains(agvTaskoldQueryDto.ID));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.AgvID), m => m.AgvID.Contains(agvTaskoldQueryDto.AgvID));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.Station), m => m.Station.Contains(agvTaskoldQueryDto.Station));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.Position), m => m.Position.Contains(agvTaskoldQueryDto.Position));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.TaskType), m => m.TaskType.Equals(agvTaskoldQueryDto.TaskType));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.AgvStatus), m => m.AgvStatus.Equals(agvTaskoldQueryDto.AgvStatus));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.Status), m => m.Status.Equals(agvTaskoldQueryDto.Status));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.TaskId), m => m.TaskId.GetValueOrDefault().ToString().Contains(agvTaskoldQueryDto.TaskId));
- predicate = predicate.And(p => p.Status < 99 || p.AgvStatus<99);
- predicate = predicate.And(p => p.AddTime >= DateTime.Now.AddDays(-3).Date);
- var query = _agvtaskrepository.Queryable().Where(predicate.ToExpression()).SplitTable(p => p.Take(1));
- //if (agvTaskoldQueryDto != null && agvTaskoldQueryDto.AddTimeFrom.HasValue)
- //{
- // var endtime = DateTime.Now;
- // if (agvTaskoldQueryDto.AddTimeTo.HasValue)
- // {
- // endtime = agvTaskoldQueryDto.AddTimeTo.Value;
- // }
- // query = _agvtaskoldrepository.Queryable().Where(predicate.ToExpression()).SplitTable(AgvTaskoldQueryDto.AddTimeFrom.Value, endtime);
- //}
- var list = query.ToPage<WCS_AgvTaskInfo, AgvTaskoldDto>(pagination);
- return list;
- }
- public PagedInfo<AgvTaskoldDto> GetPageList1(Pagination pagination, AgvTaskoldQueryDto agvTaskoldQueryDto)
- {
- var predicate = Expressionable.Create<WCS_AgvTaskInfo>();
- predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.KeyWord), m => m.ID.ToString().Contains(agvTaskoldQueryDto.KeyWord) || m.AgvID.Contains(agvTaskoldQueryDto.KeyWord)
- || m.Station.Contains(agvTaskoldQueryDto.KeyWord) || m.Position.Contains(agvTaskoldQueryDto.KeyWord));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.ID), m => m.ID.ToString().Contains(agvTaskoldQueryDto.ID));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.AgvID), m => m.AgvID.Contains(agvTaskoldQueryDto.AgvID));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.Station), m => m.Station.Contains(agvTaskoldQueryDto.Station));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.Position), m => m.Position.Contains(agvTaskoldQueryDto.Position));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.TaskType), m => m.TaskType.Equals(agvTaskoldQueryDto.TaskType));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.AgvStatus), m => m.AgvStatus.Equals(agvTaskoldQueryDto.AgvStatus));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.Status), m => m.Status.Equals(agvTaskoldQueryDto.Status));
- predicate = predicate.AndIF(!string.IsNullOrEmpty(agvTaskoldQueryDto?.TaskId), m => m.TaskId.GetValueOrDefault().ToString().Contains(agvTaskoldQueryDto.TaskId));
- predicate = predicate.And(p => p.Status >= 99);
- var query = _agvtaskrepository.Queryable().Where(predicate.ToExpression()).SplitTable(p => p.Take(1));
- //if (agvTaskoldQueryDto != null && agvTaskoldQueryDto.AddTimeFrom.HasValue)
- //{
- // var endtime = DateTime.Now;
- // if (agvTaskoldQueryDto.AddTimeTo.HasValue)
- // {
- // endtime = agvTaskoldQueryDto.AddTimeTo.Value;
- // }
- // query = _agvtaskoldrepository.Queryable().Where(predicate.ToExpression()).SplitTable(AgvTaskoldQueryDto.AddTimeFrom.Value, endtime);
- //}
- var list = query.ToPage<WCS_AgvTaskInfo, AgvTaskoldDto>(pagination);
- return list;
- }
- public int GetTaskUnFinishCount()
- {
- var predicate = Expressionable.Create<WCS_AgvTaskInfo>();
- predicate = predicate.And(m => m.Status < (int)BZModels.TaskStatus.Finish);
- var count = _agvtaskrepository.Queryable().Where(predicate.ToExpression()).SplitTable(tabs => tabs.Take(3)).Count();
- return count;
- }
-
- public void UpdateAgvState(List<string> ids, string userId, int state)
- {
- if (!ids.Any())
- {
- throw new ArgumentException("没有选择任务!");
- }
- var list = _agvtaskrepository.Queryable().With(SqlWith.NoLock).SplitTable(tabs => tabs.Take(3)).Where(o => ids.Contains(o.ID.ToString())).ToList();
- if (!list.Any())
- {
- throw new ArgumentException("没有找到该任务!");
- }
- foreach (var id in list)
- {
- _agvtaskrepository.UseTranAction(() =>
- {
- _agvtaskrepository.AsUpdateable().With("WITH(ROWLOCK,UPDLOCK)").SetColumns(p => new WCS_AgvTaskInfo()
- {
- AgvStatus = state,
- EditTime = DateTime.Now,
- EditWho=userId,
- // ManualRemarks = "手动变更状态"
- }).Where(p => p.ID == id.ID).SplitTable(tabs => tabs.Take(3)).ExecuteCommand();
-
- });
- }
- }
- }
- }
|