using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using DOAN.Model.JobKanban; using DOAN.Model.MES.andon; using DOAN.Model.MES.base_; using DOAN.Model.MES.base_.Dto; using DOAN.Model.MES.group; using DOAN.Model.MES.product; using DOAN.Model.MES.product.Dto; using DOAN.Service.JobKanban.IService; using DOAN.Service.MES.andon.IService; using Infrastructure.Attribute; namespace DOAN.Service.JobKanban { [AppService(ServiceType = typeof(ILoginOrSetService), ServiceLifetime = LifeTime.Transient)] public class LoginOrSetService : BaseService, ILoginOrSetService { public List GetGroupList() { return Context.Queryable().Where(it => it.Status == 1).ToList(); } public List GetRouteList() { return Context.Queryable() .Where(it => it.Status == 1).ToList(); } /// /// 获取工单列表 /// /// /// /// public List GetWorkOrderList(DateTime today, string LineCode) { today = today.Date; var query1 = Context.Queryable() .Where(it => it.WorkorderDate == today) .Where(it => it.RouteId == LineCode); return Context.Queryable(query1) .LeftJoin((q, r) => q.Workorder == r.FkWorkorder) .Select((q, r) => new ProWorkorderDto4() { FinishNum = r.FinishedNum }, true) .MergeTable() .OrderBy(it=>it.Workorder) .ToList(); } /// /// 获取工单列表 完成 /// /// /// /// public List GetWorkOrderListNoFinish(DateTime today, string LineCode) { today = today.Date; var query1 = Context.Queryable() .Where(it => it.WorkorderDate == today) .Where(it => it.RouteId == LineCode) .Where(it=>it.Status==1||it.Status==2) ; return Context.Queryable(query1) .LeftJoin((q, r) => q.Workorder == r.FkWorkorder) .Select((q, r) => new ProWorkorderDto4() { FinishNum = r.FinishedNum }, true) .MergeTable() .OrderBy(it => it.Workorder) .ToList(); } public ProWorkorderDto4 GetWorkOrderDetail(string workorder) { var query = Context.Queryable() .Where(it => it.Workorder == workorder); return Context.Queryable(query) .LeftJoin((q, r) => q.Workorder == r.FkWorkorder) .Select((q, r) => new ProWorkorderDto4() { FinishNum = r.FinishedNum }, true).First(); } /// /// 开始工单 /// /// /// public int StartWorkOrder(string workorder) { int result = 0; UseTran2(() => { Context.Updateable() .Where(it => it.Workorder == workorder) .SetColumns(it => it.Status == 2) .ExecuteCommand(); ProWorkorderStatus workorderStatus = new ProWorkorderStatus(); workorderStatus.Id = XueHua; workorderStatus.Status = 1; workorderStatus.FkWorkorderId = workorder; workorderStatus.ChangeTime = DateTime.Now; workorderStatus.CreatedTime = DateTime.Now; Context.Insertable(workorderStatus).ExecuteCommand(); }); return result; } /// /// 完成工单和报工 /// /// /// 完成数量 /// public int FinishWorkOrder(ProReportwork reportWorkDto) { int result = 0; int DispatchNum = Context.Queryable() .Where(it => it.Workorder == reportWorkDto.FkWorkorder) .Select(it => it.DeliveryNum.Value).First(); UseTran2(() => { Context.Updateable() .Where(it => it.Workorder == reportWorkDto.FkWorkorder) .SetColumns(it => it.Status == 3) .ExecuteCommand(); ProWorkorderStatus workorderStatus = new ProWorkorderStatus(); workorderStatus.Id = XueHua; workorderStatus.Status = 2; workorderStatus.FkWorkorderId = reportWorkDto.FkWorkorder; workorderStatus.ChangeTime = DateTime.Now; workorderStatus.CreatedTime = DateTime.Now; Context.Insertable(workorderStatus).ExecuteCommand(); }); ProReportwork reportWork = new ProReportwork(); reportWork.Id = XueHua; reportWork.FkWorkorder = reportWorkDto.FkWorkorder; reportWork.DispatchNum = DispatchNum; reportWork.FinishedNum = reportWorkDto.FinishedNum; reportWork.GroupCode = reportWorkDto.GroupCode; reportWork.LineCode = reportWorkDto.LineCode; reportWork.GroupLeader = reportWorkDto.GroupLeader; reportWork.CreatedTime = DateTime.Now; reportWork.CreatedBy = reportWorkDto.CreatedBy; Context.Storageable(reportWork) .WhereColumns(it => it.FkWorkorder) .ExecuteCommand(); return result; } public KanbanInfo GetKanbanNum(DateTime today, string LineCode) { KanbanInfo kanbanInfo = new KanbanInfo(); today = today.Date; kanbanInfo.TotalTaskNum = Context.Queryable() .Where(it => it.WorkorderDate == today) .Where(it => it.RouteId == LineCode) .Count(); kanbanInfo.RemainTasKNum = Context.Queryable() .Where(it => it.WorkorderDate == today) .Where(it => it.RouteId == LineCode) .Where(it => it.Status == 1||it.Status==2) .Count(); return kanbanInfo; } public List ListGroupByDate(DateTime date) { return Context.Queryable().Where(it=>it.ScheduleDate == date) .ToList(); } } }