using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using Model.ModelDto.BllSoDto; using Model.ModelDto.LogDto; using SqlSugar; using WMS.DAL; using WMS.Entity.Context; using WMS.Entity.LogEntity; using WMS.Entity.SysEntity; using WMS.IBLL.ILogServer; namespace WMS.BLL.LogServer { public class TaskServer : DbHelper, ITaskServer { private static readonly SqlSugarScope Db = DataContext.Db; public TaskServer() : base(Db) { } public List GetTaskList(List orderType, string type, string status, string taskNo, int isSuccess, string palletNo, string startTime, string EndTime, string msg, int page, int limit, out int count) { try { Expression> item = Expressionable.Create() .AndIF(orderType.Count>0, it => orderType.Contains(it.OrderType)) .AndIF(!string.IsNullOrWhiteSpace(type), it => it.Type == type) .AndIF(!string.IsNullOrWhiteSpace(status), it => it.Status == status) .AndIF(!string.IsNullOrWhiteSpace(taskNo), it => it.TaskNo.Contains(taskNo.Trim())) .AndIF(isSuccess != -1, it => it.IsSuccess == isSuccess) .AndIF(!string.IsNullOrWhiteSpace(palletNo), it => it.PalletNo.Contains(palletNo.Trim())) .AndIF(!string.IsNullOrWhiteSpace(msg), it => it.Msg.Contains(msg.Trim())) .AndIF(!string.IsNullOrWhiteSpace(startTime), it => it.CreateTime >= Convert.ToDateTime(startTime)) .AndIF(!string.IsNullOrWhiteSpace(EndTime), it => it.CreateTime <= Convert.ToDateTime(EndTime).AddDays(1)) .ToExpression();//注意 这一句 不能少 var total = 0; var data = GetAllWhereAsync(item) .LeftJoin((a, b) => a.CreateUser == b.Id). Select((a, b) => new TaskDto() { Id = a.Id, TaskNo = a.TaskNo, Sender = a.Sender, Receiver = a.Receiver, IsSuccess = a.IsSuccess, Information = a.Information, SendDate = a.SendDate, BackDate = a.BackDate, StartLocat = a.StartLocat, EndLocat = a.EndLocat, MessageDate = a.MessageDate, PalletNo = a.PalletNo, Msg = a.Msg, IsSend = a.IsSend, IsCancel = a.IsCancel, IsFinish = a.IsFinish, Status = a.Status, Type = a.Type, OrderType = a.OrderType, CancelDate = a.CancelDate, FinishDate = a.FinishDate, CreateUserName =b.RealName, CreateTime = a.CreateTime }) .OrderByDescending(a => a.CreateTime) .ToOffsetPage(page, limit, ref total); count = total; return data.OrderByDescending(m => m.TaskNo).ToList(); } catch (Exception e) { throw new Exception(e.Message); } } //修改任务下发状态为成功 public void EditTaskIssueOk(List taskNo, DateTime sendTime, DateTime backTime) { try { var list = GetAllWhereAsync(m => taskNo.Contains(m.TaskNo)).ToList(); foreach (var item in list) { item.IsSuccess = 1; item.Status = "1"; item.SendDate = sendTime; item.BackDate = backTime; } Db.Updateable(list).ExecuteCommand(); } catch (Exception e) { throw new Exception(e.Message); } } //修改任务下发状态为失败异常信息 public void EditTaskIssueNo(List taskNo, DateTime sendTime, DateTime backTime, string information) { try { var list = GetAllWhereAsync(m => taskNo.Contains(m.TaskNo)).ToList(); foreach (var item in list) { item.SendDate = sendTime; item.BackDate = backTime; item.Information = information; } Db.Updateable(list).ExecuteCommand(); } catch (Exception e) { throw new Exception(e.Message); } } public string GetTaskOrderType(string taskNo) { try { var task = Db.Queryable().First(m => m.TaskNo == taskNo); if (task == null) { throw new Exception($"未查询到{taskNo}任务号的任务信息"); } return task.OrderType; } catch (Exception e) { throw new Exception(e.Message); } } public string GetTaskType(string taskNo) { try { var task = Db.Queryable().First(m => m.TaskNo == taskNo); if (task == null) { throw new Exception($"未查询到{taskNo}任务号的任务信息"); } return task.Type; } catch (Exception e) { throw new Exception(e.Message); } } } }