using System; using SqlSugar; using Infrastructure.Attribute; using Infrastructure.Extensions; using ZR.Model; using ZR.Repository; using ZR.Service.Business.IBusinessService; using System.Linq; using ZR.Model.MES.dev; using ZR.Model.MES.dev.Dto; namespace ZR.Service.MES.dev { /// /// 报修单Service业务层处理 /// [AppService(ServiceType = typeof(IDeviceRepairService), ServiceLifetime = LifeTime.Transient)] public class DeviceRepairService : BaseService, IDeviceRepairService { /// /// 查询报修单列表 /// /// /// public PagedInfo GetList(DeviceRepairQueryDto parm) { var predicate = Expressionable.Create(); var response = Queryable() .Where(predicate.ToExpression()) .ToPage(parm); return response; } /// /// 获取详情 /// /// /// public DeviceRepair GetInfo(string Id) { var response = Queryable() .Where(x => x.Id == Id) .First(); return response; } /// /// 添加报修单 /// /// /// public DeviceRepair AddDeviceRepair(DeviceRepair model) { model.Id = SnowFlakeSingle.Instance.NextId().ToString(); model.RepairOrder = GetNextRepairNo(); model.Status = 1; return Context.Insertable(model).ExecuteReturnEntity(); } /// /// 生成维修单编号 /// /// public string GetNextRepairNo() { string split = "-"; string titleStr = "MR"; string timeStr = DateTime.Now.ToString("yyyyMMdd"); var predicate = Expressionable.Create() .And(it => it.RepairOrder.Contains(timeStr)); var lastDeviceRepair = Queryable() .Where(predicate.ToExpression()) .OrderByDescending(it => it.RepairOrder) .First(); if (lastDeviceRepair != null && lastDeviceRepair.RepairOrder != null) { if (int.TryParse(lastDeviceRepair.RepairOrder.Split(split)[2], out int lastNum)) { return titleStr + split + timeStr + split + lastNum + 1; } else { return titleStr + split + timeStr + split + "001"; } } else { return titleStr + split + timeStr + split + "001"; } } /// /// 修改报修单 /// /// /// public int UpdateDeviceRepair(DeviceRepair model) { //var response = Update(w => w.Id == model.Id, it => new DeviceRepair() //{ // RepairOrder = model.RepairOrder, // Type = model.Type, // RepairPeron = model.RepairPeron, // Phone = model.Phone, // FaultDescription = model.FaultDescription, // File = model.File, // Status = model.Status, // CreatedBy = model.CreatedBy, // CreatedTime = model.CreatedTime, // UpdatedBy = model.UpdatedBy, // UpdatedTime = model.UpdatedTime, //}); //return response; return Update(model, true); } } }