119 lines
4.4 KiB
C#
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);
|
|
}
|
|
|
|
}
|
|
} |