zhuangpei-mesbackend/DOAN.Service/MES/andon/AndonFaultRecordService.cs
2024-07-01 16:04:40 +08:00

119 lines
4.4 KiB
C#

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
{
/// <summary>
/// 故障记录表Service业务层处理
/// </summary>
[AppService(ServiceType = typeof(IAndonFaultRecordService), ServiceLifetime = LifeTime.Transient)]
public class AndonFaultRecordService : BaseService<AndonFaultRecord>, IAndonFaultRecordService
{
/// <summary>
/// 查询故障记录表列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
public PagedInfo<AndonFaultRecordDto> GetList(AndonFaultRecordQueryDto parm)
{
var predicate = Expressionable.Create<AndonFaultRecord>()
.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<AndonFaultRecord, AndonFaultRecordDto>(parm);
return response;
}
public string[] GetListFault()
{
return Context.Queryable<AndonFaultDict>().Where(it=>it.Status==1).Select(it => it.Name).ToArray();
}
/// <summary>
/// 获取详情
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public AndonFaultRecord GetInfo(string Id)
{
var response = Queryable()
.Where(x => x.Id == Id)
.First();
return response;
}
/// <summary>
/// 添加故障记录表
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
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();
}
/// <summary>
/// 修改故障记录表
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
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);
}
}
}