using DOAN.Model.MES.base_; using DOAN.Model; using DOAN.Model.MES.product; using DOAN.Model.MES.product.Dto; using DOAN.Service.MES.product.IService; using Infrastructure.Attribute; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using DOAN.Repository; using DOAN.Model.MES.base_.Dto; using Mapster; namespace DOAN.Service.MES.product { /// /// 生产工单Service业务层处理 /// [AppService(ServiceType = typeof(IProWorkorderScheduleService), ServiceLifetime = LifeTime.Transient)] public class ProWorkorderScheduleService : BaseService, IProWorkorderScheduleService { /// /// 查询生产工单列表 /// /// /// public PagedInfo GetList(ProWorkorderQueryDto parm) { if (parm.WorkorderDate != null && parm.WorkorderDate.Length > 0) { parm.WorkorderDate[0] = parm.WorkorderDate[0].Date; parm.WorkorderDate[1] = parm.WorkorderDate[1].Date; } var predicate = Expressionable.Create() .AndIF(!string.IsNullOrEmpty(parm.ProductionName), it => it.ProductionName.Contains(parm.ProductionName)) .AndIF(!string.IsNullOrEmpty(parm.ProductionCode), it => it.ProductionCode.Contains(parm.ProductionCode)) .AndIF(!string.IsNullOrEmpty(parm.CustomCode), it => it.CustomCode.Contains(parm.CustomCode)) .AndIF(parm.WorkorderDate != null && parm.WorkorderDate[0] > DateTime.MinValue, it => it.WorkorderDate >= parm.WorkorderDate[0]) .AndIF(parm.WorkorderDate != null && parm.WorkorderDate[1] > DateTime.MinValue, it => it.WorkorderDate <= parm.WorkorderDate[1]) .AndIF(parm.Year > 0, it => it.Year == parm.Year) .AndIF(parm.Week > 0, it => it.Week == parm.Week) .AndIF(parm.Date > 0, it => it.Date == parm.Date) ; var response = Queryable() .Where(predicate.ToExpression()) .OrderBy(it => it.WorkorderDate) .ToPage(parm); return response; } /// /// 获取工序 /// /// /// public List GetworkProcess(int WorkRouteId) { var query = Context.Queryable().Where(it => it.FkWorkRoute == WorkRouteId); return Context.Queryable(query) .LeftJoin((q, p) => q.FkWorkProcesses == p.Id) .Select((q, p) => p) .ToList() .Adapt>(); } /// /// 获取工位 /// /// /// public List GetworkStation(int WorkProcessID) { return Context.Queryable() .Where(it => it.FkWorkProcesses == WorkProcessID) .ToList() .Adapt>(); } /// /// 获取设备 /// /// /// public List GetWorkDevice(int WorkStationID) { var query = Context.Queryable().Where(it => it.FkWorkStation == WorkStationID).ToList() .Adapt>(); return query; } /// /// 新增排产任务 /// /// /// public int AddProuductSchedule(ProWorkorderSchedule schedule) { return Context.Insertable(schedule).ExecuteCommand(); } // } }