查询班组未绑定的人员 ,修正

This commit is contained in:
qianhao.xu
2025-03-19 19:37:52 +08:00
parent db0e285a05
commit 9a05103503
4 changed files with 59 additions and 28 deletions

View File

@@ -163,13 +163,13 @@ namespace DOAN.Admin.WebApi.Controllers
/// <param name="group_code">班组id</param>
/// <returns></returns>
[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);
}

View File

@@ -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; }

View File

@@ -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)
//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<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);
return Context.Queryable(query)
.LeftJoin<GroupPost>((q, p) => q.FkPost == p.Id)
.Select((q, p) => new GroupPersonDto { PostName = p.PostName }, true)
.ToList();
.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>()
//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);
parm.ScheduleDate= parm.ScheduleDate.Date;
// 1. 查询已绑定的人员ID列表
var PersonList = Context.Queryable<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);
.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;
}

View File

@@ -24,7 +24,7 @@ namespace DOAN.Service.group.IService
PagedInfo<GroupScheduleDto> ListGroupByDate(GroupScheduleQueryDto2 query);
List<GroupPersonDto> SearchPerson_group_bind(string group_code);
List<GroupPersonDto> SearchPerson_group_bind(DateTime schedule_date, string group_code);
PagedInfo<GroupPersonDto> SearchPerson_group_bind_No(GroupScheduleQueryDto3 parm);
List<BaseGroup> GetALLGroup(string group_code,string group_name);