using DOAN.Model.MES.base_; 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 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 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(); } }