using System; using SqlSugar; using Infrastructure.Attribute; using Infrastructure.Extensions; using DOAN.Model; using DOAN.Model.Dto; using DOAN.Model.MES.andon; using DOAN.Model.MES.andon.Dto; using DOAN.Repository; using DOAN.Service.MES.andon.IService; using System.Linq; using Aliyun.OSS; namespace DOAN.Service.MES.andon { /// /// 故障记录表Service业务层处理 /// [AppService(ServiceType = typeof(IAndonFaultRecordService), ServiceLifetime = LifeTime.Transient)] public class AndonFaultRecordService : BaseService, IAndonFaultRecordService { /// /// 查询故障记录表列表 /// /// /// public PagedInfo GetList(AndonFaultRecordQueryDto parm) { var predicate = Expressionable.Create() .AndIF(!string.IsNullOrEmpty(parm.LineCode),it=>it.LineCode.Contains(parm.LineCode)) .AndIF(!string.IsNullOrEmpty(parm.AskPerson),it=>it.AskPerson.Contains(parm.AskPerson)) .AndIF(!string.IsNullOrEmpty(parm.FaultDict),it=>it.FaultDict.Contains(parm.FaultDict)) .AndIF(!string.IsNullOrEmpty(parm.FaultDict),it=>it.FaultDict.Contains(parm.FaultDict)) .AndIF(parm.Status==1,it=>it.Status==1) .AndIF(parm.Status==2,it=>it.Status==2) .AndIF(parm.DateTimeRange.Count()==2&&parm.DateTimeRange[0]>DateTime.MinValue,it=>it.StartTime>= parm.DateTimeRange[0]) .AndIF(parm.DateTimeRange.Count() == 2&&parm.DateTimeRange[1]>DateTime.MinValue,it=>it.StartTime<= parm.DateTimeRange[1]) ; var response = Queryable() .Where(predicate.ToExpression()) .ToPage(parm); return response; } public string[] GetListFault() { return Context.Queryable().Where(it=>it.Status==1).Select(it => it.Name).ToArray(); } /// /// 获取详情 /// /// /// public AndonFaultRecord GetInfo(string Id) { var response = Queryable() .Where(x => x.Id == Id) .First(); return response; } /// /// 添加故障记录表 /// /// /// public AndonFaultRecord AddAndonFaultRecord(AndonFaultRecord model) { model.Id = SnowFlakeSingle.Instance.NextId().ToString(); if(model.StartTime>DateTime.MinValue&&model.EndTime>DateTime.MinValue) { TimeSpan timeDifference = model.EndTime.Value - model.StartTime.Value; model.Duration = Math.Round((decimal)timeDifference.TotalMinutes, 2); } return Context.Insertable(model).ExecuteReturnEntity(); } /// /// 修改故障记录表 /// /// /// public int UpdateAndonFaultRecord(AndonFaultRecord model) { if (model.StartTime > DateTime.MinValue && model.EndTime > DateTime.MinValue) { TimeSpan timeDifference = model.EndTime.Value - model.StartTime.Value; model.Duration = Math.Round((decimal)timeDifference.TotalMinutes, 2); } else { } //var response = Update(w => w.Id == model.Id, it => new AndonFaultRecord() //{ // LineCode = model.LineCode, // FaultDict = model.FaultDict, // FaultContext = model.FaultContext, // StartTime = model.StartTime, // EndTime = model.EndTime, // Duration = model.Duration, // AskPerson = model.AskPerson, // ResponsePerson = model.ResponsePerson, // CreatedBy = model.CreatedBy, // CreatedTime = model.CreatedTime, // UpdatedBy = model.UpdatedBy, // UpdatedTime = model.UpdatedTime, //}); //return response; return Update(model, true); } } }