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();
}
}