using Infrastructure.Attribute; using Infrastructure.Extensions; using RIZO.Model.Mes.Dto.WorkOrderInfo; using RIZO.Model.Mes.WorkOrderInfo; using RIZO.Repository; using RIZO.Service.Mes.IMesService.WorkOrderInfo; namespace RIZO.Service.Mes.WorkOrderInfo { /// /// 工单从表(存储工单所需物料明细及物料流转状态)Service业务层处理 /// [AppService(ServiceType = typeof(IWorkOrderItemService), ServiceLifetime = LifeTime.Transient)] public class WorkOrderItemService : BaseService, IWorkOrderItemService { /// /// 查询工单从表(存储工单所需物料明细及物料流转状态)列表 /// /// /// public PagedInfo GetList(WorkOrderItemQueryDto parm) { var predicate = QueryExp(parm); var response = Queryable() .Where(predicate.ToExpression()) .ToPage(parm); return response; } public PagedInfo GetListExport(WorkOrderItemQueryDto parm) { var predicate = QueryExpExport(parm); var response = Queryable() .Where(predicate.ToExpression()) .ToPage(parm); return response; } /// /// 获取详情 /// /// /// public WorkOrderItem GetInfo(long Id) { var response = Queryable() .Where(x => x.Id == Id) .First(); return response; } /// /// 添加工单从表(存储工单所需物料明细及物料流转状态) /// /// /// public WorkOrderItem AddWorkOrderItem(WorkOrderItem model) { return Insertable(model).ExecuteReturnEntity(); } /// /// 修改工单从表(存储工单所需物料明细及物料流转状态) /// /// /// public int UpdateWorkOrderItem(WorkOrderItem model) { return Update(model, true); } /// /// 查询导出表达式 /// /// /// private static Expressionable QueryExp(WorkOrderItemQueryDto parm) { var predicate = Expressionable.Create(); if (!string.IsNullOrWhiteSpace(parm.ProcessName)) { predicate.And(it => it.ProcessName.Contains(parm.ProcessName)); } if (!string.IsNullOrWhiteSpace(parm.ProcessCode)) { predicate.And(it => it.ProcessCode.Contains(parm.ProcessCode)); } return predicate; } /// /// 查询导出表达式 /// /// /// private static Expressionable QueryExpExport(WorkOrderItemQueryDto parm) { var predicate = Expressionable.Create(); if (parm.StartTime != null && parm.StartTime.ToString().Length > 0) { predicate.And(it => it.CreateTime >= parm.StartTime); } if (parm.EndTime != null && parm.EndTime.ToString().Length > 0) { predicate.And(it => it.CreateTime < parm.EndTime); } return predicate; } } }