217 lines
7.1 KiB
C#
217 lines
7.1 KiB
C#
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<BaseGroup>, ILoginOrSetService
|
|
{
|
|
|
|
public List<BaseGroup> GetGroupList()
|
|
{
|
|
return Context.Queryable<BaseGroup>().Where(it => it.Status == 1).ToList();
|
|
}
|
|
|
|
public List<BaseWorkRoute> GetRouteList()
|
|
{
|
|
return Context.Queryable<BaseWorkRoute>()
|
|
.Where(it => it.Status == 1).ToList();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取工单列表
|
|
/// </summary>
|
|
/// <param name="today"></param>
|
|
/// <param name="LineCode"></param>
|
|
/// <returns></returns>
|
|
public List<ProWorkorderDto4> GetWorkOrderList(DateTime today, string LineCode)
|
|
{
|
|
today = today.Date;
|
|
var query1 = Context.Queryable<ProWorkorder>()
|
|
.Where(it => it.WorkorderDate == today)
|
|
.Where(it => it.RouteId == LineCode);
|
|
return Context.Queryable(query1)
|
|
.LeftJoin<ProReportwork>((q, r) => q.Workorder == r.FkWorkorder)
|
|
.Select((q, r) => new ProWorkorderDto4()
|
|
{
|
|
FinishNum = r.FinishedNum
|
|
|
|
}, true)
|
|
.MergeTable()
|
|
.OrderBy(it=>it.Workorder)
|
|
.ToList();
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// 获取工单列表 完成
|
|
/// </summary>
|
|
/// <param name="today"></param>
|
|
/// <param name="LineCode"></param>
|
|
/// <returns></returns>
|
|
public List<ProWorkorderDto4> GetWorkOrderListNoFinish(DateTime today, string LineCode)
|
|
{
|
|
today = today.Date;
|
|
var query1 = Context.Queryable<ProWorkorder>()
|
|
.Where(it => it.WorkorderDate == today)
|
|
.Where(it => it.RouteId == LineCode)
|
|
.Where(it=>it.Status==1||it.Status==2)
|
|
;
|
|
|
|
|
|
return Context.Queryable(query1)
|
|
.LeftJoin<ProReportwork>((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<ProWorkorder>()
|
|
.Where(it => it.Workorder == workorder);
|
|
|
|
|
|
|
|
return Context.Queryable(query)
|
|
.LeftJoin<ProReportwork>((q, r) => q.Workorder == r.FkWorkorder)
|
|
.Select((q, r) => new ProWorkorderDto4()
|
|
{
|
|
FinishNum = r.FinishedNum
|
|
|
|
}, true).First();
|
|
|
|
}
|
|
|
|
|
|
|
|
/// <summary>
|
|
/// 开始工单
|
|
/// </summary>
|
|
/// <param name="workorder"></param>
|
|
/// <returns></returns>
|
|
public int StartWorkOrder(string workorder)
|
|
{
|
|
int result = 0;
|
|
UseTran2(() =>
|
|
{
|
|
Context.Updateable<ProWorkorder>()
|
|
.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;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 完成工单和报工
|
|
/// </summary>
|
|
/// <param name="workorder"></param>
|
|
/// <param name="num">完成数量</param>
|
|
/// <returns></returns>
|
|
public int FinishWorkOrder(ProReportwork reportWorkDto)
|
|
{
|
|
|
|
int result = 0;
|
|
|
|
int DispatchNum = Context.Queryable<ProWorkorder>()
|
|
.Where(it => it.Workorder == reportWorkDto.FkWorkorder)
|
|
.Select(it => it.DeliveryNum.Value).First();
|
|
UseTran2(() =>
|
|
{
|
|
Context.Updateable<ProWorkorder>()
|
|
.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<ProWorkorder>()
|
|
.Where(it => it.WorkorderDate == today)
|
|
.Where(it => it.RouteId == LineCode)
|
|
.Count();
|
|
|
|
kanbanInfo.RemainTasKNum = Context.Queryable<ProWorkorder>()
|
|
.Where(it => it.WorkorderDate == today)
|
|
.Where(it => it.RouteId == LineCode)
|
|
.Where(it => it.Status == 1||it.Status==2)
|
|
.Count();
|
|
|
|
return kanbanInfo;
|
|
}
|
|
|
|
|
|
public List<GroupSchedule> ListGroupByDate(DateTime date)
|
|
{
|
|
|
|
return Context.Queryable<GroupSchedule>().Where(it=>it.ScheduleDate == date)
|
|
.ToList();
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|