|
|
|
|
@@ -15,6 +15,7 @@ using Microsoft.AspNetCore.Http.HttpResults;
|
|
|
|
|
using MimeKit.Tnef;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using DOAN.Model.MES.base_;
|
|
|
|
|
using Mapster;
|
|
|
|
|
|
|
|
|
|
namespace DOAN.Service.Business
|
|
|
|
|
{
|
|
|
|
|
@@ -107,21 +108,31 @@ namespace DOAN.Service.Business
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 查询班组绑定的人员
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="group_code"></param>
|
|
|
|
|
/// <param name="schedule_date">排班日期</param>
|
|
|
|
|
/// <param name="group_code">排班线别</param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public List<GroupPersonDto> SearchPerson_group_bind(string group_code)
|
|
|
|
|
public List<GroupPersonDto> SearchPerson_group_bind(DateTime schedule_date, string group_code)
|
|
|
|
|
{
|
|
|
|
|
var query = Context.Queryable<GroupRelPersonGroup>()
|
|
|
|
|
.LeftJoin<GroupPerson>((rel, p) => rel.FkPersonId == p.Id)
|
|
|
|
|
.Where((rel, p) => rel.GroupCode == group_code)
|
|
|
|
|
.Where((rel, p) => p.Status == 1)
|
|
|
|
|
.Select((rel, p) => p);
|
|
|
|
|
//var query = Context.Queryable<GroupRelPersonGroup>()
|
|
|
|
|
// .LeftJoin<GroupPerson>((rel, p) => rel.FkPersonId == p.Id)
|
|
|
|
|
// .Where((rel, p) => rel.GroupCode == group_code)
|
|
|
|
|
// .Where((rel, p) => rel.ScheduleDate == schedule_date)
|
|
|
|
|
// .Where((rel, p) => p.Status == 1)
|
|
|
|
|
// .Select((rel, p) => p);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return Context.Queryable(query)
|
|
|
|
|
.LeftJoin<GroupPost>((q, p) => q.FkPost == p.Id)
|
|
|
|
|
.Select((q, p) => new GroupPersonDto { PostName = p.PostName }, true)
|
|
|
|
|
.ToList();
|
|
|
|
|
//return Context.Queryable(query)
|
|
|
|
|
// .LeftJoin<GroupPost>((q, p) => q.FkPost == p.Id)
|
|
|
|
|
// .Select((q, p) => new GroupPersonDto { PostName = p.PostName }, true)
|
|
|
|
|
// .ToList();
|
|
|
|
|
|
|
|
|
|
return Context.Queryable<GroupRelPersonGroup>().LeftJoin<GroupPerson>((rel,p)=>rel.FkPersonId==p.Id)
|
|
|
|
|
.Where((rel, p) => rel.GroupCode == group_code)
|
|
|
|
|
.Where((rel, p) => rel.ScheduleDate == schedule_date)
|
|
|
|
|
.Select((rel, p) => p)
|
|
|
|
|
.ToList()
|
|
|
|
|
.Adapt<List<GroupPersonDto>>()
|
|
|
|
|
;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
@@ -141,24 +152,43 @@ namespace DOAN.Service.Business
|
|
|
|
|
//查询排班所有绑定的人员
|
|
|
|
|
|
|
|
|
|
// 查询排班内所有未绑定人员
|
|
|
|
|
var query = Context.Queryable<GroupPerson>().Where(it => SqlFunc.Subqueryable<GroupRelPersonGroup>()
|
|
|
|
|
.LeftJoin<GroupPerson>((rel, p) => rel.FkPersonId == p.Id)
|
|
|
|
|
.Where((rel, p) => p.Status == 1)
|
|
|
|
|
.Where((rel, p) => SqlFunc.Subqueryable<GroupSchedule>().Where(it => it.ScheduleDate == SqlFunc.Subqueryable<GroupSchedule>()
|
|
|
|
|
.Where(it => it.Id == parm.group_code)
|
|
|
|
|
.Select(it => it.ScheduleDate)).Where(it => it.Id == rel.GroupCode).Any()).Where((rel, p) => p.Id == it.Id).NotAny());
|
|
|
|
|
//var query = Context.Queryable<GroupPerson>().Where(it => SqlFunc.Subqueryable<GroupRelPersonGroup>()
|
|
|
|
|
// .LeftJoin<GroupPerson>((rel, p) => rel.FkPersonId == p.Id)
|
|
|
|
|
// .Where((rel, p) => p.Status == 1)
|
|
|
|
|
// .Where((rel, p) => SqlFunc.Subqueryable<GroupSchedule>()
|
|
|
|
|
// .Where(it => it.ScheduleDate == SqlFunc.Subqueryable<GroupSchedule>()
|
|
|
|
|
// .Where(it => it.Id == parm.group_code)
|
|
|
|
|
// .Select(it => it.ScheduleDate))
|
|
|
|
|
// .Where(it => it.Id == rel.GroupCode)
|
|
|
|
|
// .Any())
|
|
|
|
|
// .Where((rel, p) => p.Id == it.Id)
|
|
|
|
|
// .NotAny());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return Context.Queryable(query)
|
|
|
|
|
.LeftJoin<GroupPost>((q, p) => q.FkPost == p.Id)
|
|
|
|
|
.Where((q, p) => q.Status == 1)
|
|
|
|
|
.WhereIF(!string.IsNullOrEmpty(parm.WorkNum), (q, p) => q.WorkNum.Contains(parm.WorkNum))
|
|
|
|
|
.WhereIF(!string.IsNullOrEmpty(parm.Name), (q, p) => q.Name.Contains(parm.Name))
|
|
|
|
|
.WhereIF(!string.IsNullOrEmpty(parm.FkPost), (q, p) => q.FkPost == parm.FkPost)
|
|
|
|
|
.Select((q, p) => new GroupPersonDto { PostName = p.PostName }, true)
|
|
|
|
|
.ToPage<GroupPersonDto, GroupPersonDto>(parm);
|
|
|
|
|
//return Context.Queryable(query)
|
|
|
|
|
// .LeftJoin<GroupPost>((q, p) => q.FkPost == p.Id)
|
|
|
|
|
// .Where((q, p) => q.Status == 1)
|
|
|
|
|
// .WhereIF(!string.IsNullOrEmpty(parm.WorkNum), (q, p) => q.WorkNum.Contains(parm.WorkNum))
|
|
|
|
|
// .WhereIF(!string.IsNullOrEmpty(parm.Name), (q, p) => q.Name.Contains(parm.Name))
|
|
|
|
|
// .WhereIF(!string.IsNullOrEmpty(parm.FkPost), (q, p) => q.FkPost == parm.FkPost)
|
|
|
|
|
// .Select((q, p) => new GroupPersonDto { PostName = p.PostName }, true)
|
|
|
|
|
// .ToPage<GroupPersonDto, GroupPersonDto>(parm);
|
|
|
|
|
|
|
|
|
|
parm.ScheduleDate= parm.ScheduleDate.Date;
|
|
|
|
|
// 1. 查询已绑定的人员ID列表
|
|
|
|
|
var PersonList = Context.Queryable<GroupRelPersonGroup>()
|
|
|
|
|
.LeftJoin<GroupPerson>((rel, p) => rel.FkPersonId == p.Id)
|
|
|
|
|
.Where((rel, p) => rel.GroupCode == parm.group_code)
|
|
|
|
|
.Where((rel, p) => rel.ScheduleDate == parm.ScheduleDate)
|
|
|
|
|
.Select((rel, p) => p.Id)
|
|
|
|
|
.ToList();
|
|
|
|
|
|
|
|
|
|
// 2. 查询未绑定的人员列表
|
|
|
|
|
var unboundPersons = Context.Queryable<GroupPerson>()
|
|
|
|
|
.Where(x => !PersonList.Contains(x.Id))
|
|
|
|
|
.ToPage<GroupPerson, GroupPersonDto>(parm);
|
|
|
|
|
|
|
|
|
|
return unboundPersons;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|