using DOAN.Model.MES.base_; using DOAN.Model.MES.base_.Dto; using DOAN.Model.MES.product; using DOAN.Model.Mobile.ReportFlow.Dto; using DOAN.Model.Public; using DOAN.Model.System; using DOAN.Service.Mobile.IService; using DOAN.Service.Public.IPublicService; using Infrastructure.Attribute; using Mapster; using Microsoft.AspNetCore.Mvc; using SqlSugar.DistributedSystem.Snowflake; using System.Diagnostics; namespace DOAN.Service.Mobile; /// /// 广告管理Service业务层处理 /// [AppService(ServiceType = typeof(IReportFlowService), ServiceLifetime = LifeTime.Transient)] public class ReportFlowService : BaseService, IReportFlowService { public ProWorkorder GetWorkOrderDetail(string workorder) { return Context.Queryable().Where(x => x.Workorder == workorder).First(); } public List GetWorkOrdersByDate(DateTime startDate, DateTime endDate) { return Context.Queryable() .Where(it => it.WorkorderDate >= startDate && it.WorkorderDate <= endDate).ToList(); } public ProReportwork01 GetProcessReportWorkDetail(string workorder, int process) { return Context.Queryable().Where(x => x.Workorder == workorder && x.ProcessId == process).First(); } /// /// 首工序报工 /// /// /// /// /// /// /// /// public bool FeedProcessReportwork(string workorder, int processId, int finish_num, string stove_code, string feed_order, string Worker) { int result = 0; bool Exist = Context.Queryable().Where(it => it.Workorder == workorder && it.ProcessId == processId).Any(); string NickName = Context.Queryable().Where(it => it.UserName == Worker).Select(it => it.NickName).First(); Worker = string.IsNullOrEmpty(NickName) ? Worker + "|异常人员|" : NickName; if (Exist) { result = Context.Updateable().Where(it => it.Workorder == workorder && it.ProcessId == processId) .SetColumns(it => it.FinishNum == finish_num) .SetColumns(it => it.Worker == Worker) .SetColumns(it => it.JobDate == DateTime.Now) .SetColumns(it => it.UpdatedBy == Worker) .SetColumns(it => it.UpdatedTime == DateTime.Now) .ExecuteCommand(); Context.Updateable().Where(it => it.Workorder == workorder) .SetColumns(it => it.StoveCode == stove_code) .SetColumns(it => it.FeedOrder == feed_order) .ExecuteCommand(); } else { ProReportwork01 proReportwork01 = new ProReportwork01(); proReportwork01.Id = XueHua; proReportwork01.Workorder = workorder; proReportwork01.ProcessId = processId; proReportwork01.FinishNum = finish_num; proReportwork01.Worker = Worker; proReportwork01.JobDate = DateTime.Now; proReportwork01.CreatedBy = Worker; proReportwork01.CreatedTime = DateTime.Now; result = Context.Insertable(proReportwork01).ExecuteCommand(); Context.Updateable().Where(it => it.Workorder == workorder) .SetColumns(it => it.StoveCode == stove_code) .SetColumns(it => it.FeedOrder == feed_order) .ExecuteCommand(); } return result > 0; } public bool ProcessReportWork(string workorder, int process, int finish_num, int bad_num, string Worker) { int result = 0; bool Exist = Context.Queryable().Where(it => it.Workorder == workorder && it.ProcessId == process).Any(); string NickName = Context.Queryable().Where(it => it.UserName == Worker).Select(it => it.NickName).First(); Worker = string.IsNullOrEmpty(NickName) ? Worker + "|异常人员|" : NickName; if (Exist) { result = Context.Updateable().Where(it => it.Workorder == workorder && it.ProcessId == process) .SetColumns(it => it.FinishNum == finish_num) .SetColumns(it => it.BadNum == bad_num) .SetColumns(it => it.Worker == Worker) .SetColumns(it => it.JobDate == DateTime.Now) .SetColumns(it => it.UpdatedBy == Worker) .SetColumns(it => it.UpdatedTime == DateTime.Now) .ExecuteCommand(); } else { ProReportwork01 proReportwork01 = new ProReportwork01(); proReportwork01.Id = XueHua; proReportwork01.Workorder = workorder; proReportwork01.ProcessId = process; proReportwork01.FinishNum = finish_num; proReportwork01.BadNum = bad_num; proReportwork01.Worker = Worker; proReportwork01.JobDate = DateTime.Now; proReportwork01.CreatedBy = Worker; proReportwork01.CreatedTime = DateTime.Now; result = Context.Insertable(proReportwork01).ExecuteCommand(); } return result > 0; } /// /// 出货工序报工 /// /// /// /// /// /// /// /// public bool ShipmentProcessReportwork(string workorder, int processId, int finish_num, int bad_num, string customer_order, string Worker) { int result = 0; bool Exist = Context.Queryable().Where(it => it.Workorder == workorder && it.ProcessId == processId).Any(); string NickName = Context.Queryable().Where(it => it.UserName == Worker).Select(it => it.NickName).First(); Worker = string.IsNullOrEmpty(NickName) ? Worker + "|异常人员|" : NickName; if (Exist) { result = Context.Updateable() .Where(it => it.Workorder == workorder && it.ProcessId == processId) .SetColumns(it => it.FinishNum == finish_num) .SetColumns(it => it.BadNum == bad_num) .SetColumns(it => it.Worker == Worker) .SetColumns(it => it.JobDate == DateTime.Now) .SetColumns(it => it.UpdatedBy == Worker) .SetColumns(it => it.UpdatedTime == DateTime.Now) .ExecuteCommand(); Context.Updateable().Where(it => it.Workorder == workorder) .SetColumns(it => it.CustomerOrder == customer_order) .ExecuteCommand(); } else { ProReportwork01 proReportwork01 = new ProReportwork01(); proReportwork01.Id = XueHua; proReportwork01.Workorder = workorder; proReportwork01.ProcessId = processId; proReportwork01.FinishNum = finish_num; proReportwork01.BadNum = bad_num; proReportwork01.Worker = Worker; proReportwork01.JobDate = DateTime.Now; proReportwork01.CreatedBy = Worker; proReportwork01.CreatedTime = DateTime.Now; result = Context.Insertable(proReportwork01).ExecuteCommand(); Context.Updateable().Where(it => it.Workorder == workorder) .SetColumns(it => it.CustomerOrder == customer_order) .ExecuteCommand(); } return result > 0; } public List GetWorkOrderReportWorkList(string workorder) { return Context.Queryable() .LeftJoin((rw, wp) => rw.ProcessId == wp.Id) .Where((rw, wp) => rw.Workorder == workorder) .OrderBy(rw => rw.ProcessId) .Select((rw, wp) => new ProReportWorkDetialDto() { ProcessName = wp.Name, }, true) .ToList(); } public List GetReportInfoByName(string Name) { string NickName = Context.Queryable().Where(it => it.UserName == Name).Select(it => it.NickName).First(); Name = string.IsNullOrEmpty(NickName) ? Name + "|异常人员|" : NickName; return Context.Queryable() .LeftJoin((rw, wp) => rw.ProcessId == wp.Id) .Where((rw, wp) => rw.Worker == Name && rw.JobDate >= DateTime.Today && rw.JobDate < DateTime.Today.AddDays(1)) .OrderBy(rw => rw.ProcessId) .Select((rw, wp) => new ProReportWorkDetialDto() { ProcessName = wp.Name, }, true) .ToList(); } public List GetProcessByRoute(int route_id) { return Context.Queryable() .LeftJoin((rel, pro) => rel.FkWorkProcesses == pro.Id) .Where((rel, pro) => rel.FkWorkRoute == route_id) .Select((rel, pro) => pro) .ToList() .Adapt, List>(); } public List GetReportByProcessId(int processId) { return Context.Queryable() .LeftJoin((rw, wp) => rw.ProcessId == wp.Id) .Where((rw, wp) => rw.ProcessId == processId && rw.JobDate >= DateTime.Today && rw.JobDate < DateTime.Today.AddDays(1)) .OrderBy(rw => rw.ProcessId) .Select((rw, wp) => new ProReportWorkDetialDto() { ProcessName = wp.Name, }, true) .ToList(); } }