diff --git a/DOAN.Admin.WebApi/Controllers/MES/Group/GroupScheduleController.cs b/DOAN.Admin.WebApi/Controllers/MES/Group/GroupScheduleController.cs index 363dde9..de4cd63 100644 --- a/DOAN.Admin.WebApi/Controllers/MES/Group/GroupScheduleController.cs +++ b/DOAN.Admin.WebApi/Controllers/MES/Group/GroupScheduleController.cs @@ -163,13 +163,13 @@ namespace DOAN.Admin.WebApi.Controllers /// 班组id /// [HttpGet("list_person_bind")] - public IActionResult SearchPerson_group_bind(string group_code) + public IActionResult SearchPerson_group_bind(DateTime schedule_date, string group_code) { if (string.IsNullOrEmpty(group_code)) { return SUCCESS(null); } - var response = _GroupScheduleService.SearchPerson_group_bind(group_code); + var response = _GroupScheduleService.SearchPerson_group_bind(schedule_date.Date,group_code); return SUCCESS(response); } diff --git a/DOAN.Model/MES/Group/Dto/GroupScheduleDto.cs b/DOAN.Model/MES/Group/Dto/GroupScheduleDto.cs index 893b332..6085c80 100644 --- a/DOAN.Model/MES/Group/Dto/GroupScheduleDto.cs +++ b/DOAN.Model/MES/Group/Dto/GroupScheduleDto.cs @@ -13,6 +13,7 @@ namespace DOAN.Model.MES.group.Dto } public class GroupScheduleQueryDto3 : PagerInfo { + public DateTime ScheduleDate { get; set; } public string group_code { get; set; } public string WorkNum { get; set; } diff --git a/DOAN.Service/MES/Group/GroupScheduleService.cs b/DOAN.Service/MES/Group/GroupScheduleService.cs index 564e4ba..c773862 100644 --- a/DOAN.Service/MES/Group/GroupScheduleService.cs +++ b/DOAN.Service/MES/Group/GroupScheduleService.cs @@ -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 /// /// 查询班组绑定的人员 /// - /// + /// 排班日期 + /// 排班线别 /// - public List SearchPerson_group_bind(string group_code) + public List SearchPerson_group_bind(DateTime schedule_date, string group_code) { - var query = Context.Queryable() - .LeftJoin((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() + // .LeftJoin((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((q, p) => q.FkPost == p.Id) - .Select((q, p) => new GroupPersonDto { PostName = p.PostName }, true) - .ToList(); + //return Context.Queryable(query) + // .LeftJoin((q, p) => q.FkPost == p.Id) + // .Select((q, p) => new GroupPersonDto { PostName = p.PostName }, true) + // .ToList(); + + return Context.Queryable().LeftJoin((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>() + ; } @@ -141,24 +152,43 @@ namespace DOAN.Service.Business //查询排班所有绑定的人员 // 查询排班内所有未绑定人员 - var query = Context.Queryable().Where(it => SqlFunc.Subqueryable() - .LeftJoin((rel, p) => rel.FkPersonId == p.Id) - .Where((rel, p) => p.Status == 1) - .Where((rel, p) => SqlFunc.Subqueryable().Where(it => it.ScheduleDate == SqlFunc.Subqueryable() - .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().Where(it => SqlFunc.Subqueryable() + // .LeftJoin((rel, p) => rel.FkPersonId == p.Id) + // .Where((rel, p) => p.Status == 1) + // .Where((rel, p) => SqlFunc.Subqueryable() + // .Where(it => it.ScheduleDate == SqlFunc.Subqueryable() + // .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((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(parm); + //return Context.Queryable(query) + // .LeftJoin((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(parm); + parm.ScheduleDate= parm.ScheduleDate.Date; + // 1. 查询已绑定的人员ID列表 + var PersonList = Context.Queryable() + .LeftJoin((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() + .Where(x => !PersonList.Contains(x.Id)) + .ToPage(parm); + + return unboundPersons; } diff --git a/DOAN.Service/MES/Group/IService/IGroupScheduleService.cs b/DOAN.Service/MES/Group/IService/IGroupScheduleService.cs index faae285..e0f5ae8 100644 --- a/DOAN.Service/MES/Group/IService/IGroupScheduleService.cs +++ b/DOAN.Service/MES/Group/IService/IGroupScheduleService.cs @@ -24,7 +24,7 @@ namespace DOAN.Service.group.IService PagedInfo ListGroupByDate(GroupScheduleQueryDto2 query); - List SearchPerson_group_bind(string group_code); + List SearchPerson_group_bind(DateTime schedule_date, string group_code); PagedInfo SearchPerson_group_bind_No(GroupScheduleQueryDto3 parm); List GetALLGroup(string group_code,string group_name);