From c3f6850a3732aee821cd238e1fe2e2cab8a0f36d Mon Sep 17 00:00:00 2001 From: "qianhao.xu" Date: Fri, 9 Aug 2024 13:05:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E7=8F=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MES/group/GroupScheduleController.cs | 99 +++++++++++++++---- DOAN.Model/MES/group/Dto/GroupPersonDto.cs | 2 +- .../MES/group/GroupScheduleService.cs | 64 +++++++++++- .../group/IService/IGroupScheduleService.cs | 4 + 4 files changed, 148 insertions(+), 21 deletions(-) diff --git a/DOAN.Admin.WebApi/Controllers/MES/group/GroupScheduleController.cs b/DOAN.Admin.WebApi/Controllers/MES/group/GroupScheduleController.cs index 37fad5d..92257d6 100644 --- a/DOAN.Admin.WebApi/Controllers/MES/group/GroupScheduleController.cs +++ b/DOAN.Admin.WebApi/Controllers/MES/group/GroupScheduleController.cs @@ -4,6 +4,7 @@ using DOAN.Model.MES.group.Dto; using DOAN.Service.group.IService; using DOAN.Admin.WebApi.Filters; using SqlSugar.Extensions; +using System.Collections.Generic; //创建时间:2024-08-08 namespace DOAN.Admin.WebApi.Controllers @@ -85,23 +86,6 @@ namespace DOAN.Admin.WebApi.Controllers return ToResponse(response); } - /// - /// 删除排班 - /// - /// - [HttpDelete("{ids}")] - // [ActionPermissionFilter(Permission = "business:groupschedule:delete")] - [Log(Title = "排班", BusinessType = BusinessType.DELETE)] - public IActionResult DeleteGroupSchedule(string ids) - { - int[] idsArr = Tools.SpitIntArrary(ids); - if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } - - var response = _GroupScheduleService.Delete(idsArr); - - return ToResponse(response); - } - /// /// 1 根据日期获取班组 @@ -144,7 +128,86 @@ namespace DOAN.Admin.WebApi.Controllers return SUCCESS(response); } - // TODO 2 根据日期添加班组 + // TODO + /// + /// 3 删除班组 + /// + /// + [HttpDelete("{ids}")] + // [ActionPermissionFilter(Permission = "business:groupschedule:delete")] + [Log(Title = "排班", BusinessType = BusinessType.DELETE)] + public IActionResult DeleteGroupSchedule(string ids) + { + int[] idsArr = Tools.SpitIntArrary(ids); + if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); } + + var response = _GroupScheduleService.Delete(idsArr); + + return ToResponse(response); + } + /// + /// //TODO 查询班组绑定的人员 + /// + /// 班组id + /// + [HttpGet("list_person_bind")] + public IActionResult SearchPerson_group_bind(string group_schedule_id) + { + if (string.IsNullOrEmpty(group_schedule_id)) + { + return SUCCESS(null); + } + var response = _GroupScheduleService.SearchPerson_group_bind(group_schedule_id); + + return SUCCESS(response); + } + + + /// + /// TODO 查询排班未绑定的人员 + /// + /// 班id + /// + [HttpGet("list_person_bind_no")] + public IActionResult SearchPerson_group_bind_No(string group_schedule_id) + { + if (string.IsNullOrEmpty(group_schedule_id)) + { + return SUCCESS(null); + } + + var response = _GroupScheduleService.SearchPerson_group_bind_No(group_schedule_id); + + return SUCCESS(response); + } + + + //TODO 班组添加人员 + [HttpGet("add_person")] + public IActionResult GroupAddPerson(string group_schedule_id,string person_id) + { + if(string.IsNullOrEmpty(group_schedule_id)) { return SUCCESS(null); } + if(string.IsNullOrEmpty(person_id)) { return SUCCESS(null); } + + + var response = _GroupScheduleService + .GroupAddPerson(group_schedule_id, person_id, HttpContext.GetName()); + + return SUCCESS(response); + } + //TODO 班组删除人员 + [HttpGet("delete_person")] + public IActionResult GroupRemovePerson(string group_schedule_id, string person_id) + { + if (string.IsNullOrEmpty(group_schedule_id)) { return SUCCESS(null); } + if (string.IsNullOrEmpty(person_id)) { return SUCCESS(null); } + + + var response = _GroupScheduleService + .GroupRemovePerson(group_schedule_id, person_id); + + return SUCCESS(response); + } diff --git a/DOAN.Model/MES/group/Dto/GroupPersonDto.cs b/DOAN.Model/MES/group/Dto/GroupPersonDto.cs index fe94dab..2676fb4 100644 --- a/DOAN.Model/MES/group/Dto/GroupPersonDto.cs +++ b/DOAN.Model/MES/group/Dto/GroupPersonDto.cs @@ -21,7 +21,7 @@ namespace DOAN.Model.MES.group.Dto /// public class GroupPersonDto { - [Required(ErrorMessage = "雪花不能为空")] + public string Id { get; set; } [Required(ErrorMessage = "岗位不能为空")] diff --git a/DOAN.Service/MES/group/GroupScheduleService.cs b/DOAN.Service/MES/group/GroupScheduleService.cs index 3ddda74..ea1ff1d 100644 --- a/DOAN.Service/MES/group/GroupScheduleService.cs +++ b/DOAN.Service/MES/group/GroupScheduleService.cs @@ -11,6 +11,7 @@ using DOAN.Service.group.IService; using System.Linq; using DOAN.Model.MES.group.Dto; using Aliyun.OSS; +using Microsoft.AspNetCore.Http.HttpResults; namespace DOAN.Service.Business { @@ -92,11 +93,70 @@ namespace DOAN.Service.Business public PagedInfo ListGroupByDate(GroupScheduleQueryDto2 query) { query.ScheduleDate = query.ScheduleDate.Date; - return Queryable().Where(it => it.ScheduleDate == query.ScheduleDate). - ToPage(query); + return Queryable().Where(it => it.ScheduleDate == query.ScheduleDate).ToPage(query); + + + } + /// + /// 查询班组绑定的人员 + /// + /// + /// + public List SearchPerson_group_bind(string group_schedule_id) + { + List peopleList = Context.Queryable() + .LeftJoin((rel, p) => rel.FkPersonId == p.Id) + .Where((rel, p) => rel.FkGroupId == group_schedule_id) + .Select((rel, p) => p).ToList(); + + return peopleList; } + /// + /// 查询班组未绑定的人员 + /// + /// + /// + /// + public List SearchPerson_group_bind_No(string group_schedule_id) + { + // 查询日期内所有绑定人员 + + //查询指定日期排班 + var ScheduleDate1= SqlFunc.Subqueryable().Where(it => it.Id == group_schedule_id).Select(it => it.ScheduleDate); + + var ScheduleDate2 = SqlFunc.Subqueryable().Where(it => it.ScheduleDate == ScheduleDate1); + + //查询排班所有绑定的人员 + var query = SqlFunc.Subqueryable() + .LeftJoin((rel, p) => rel.FkPersonId == p.Id) + .Where((rel, p) => ScheduleDate2.Where(it => it.Id == rel.FkGroupId).Any()); + + + // 查询排班内所有未绑定人员 + return Context.Queryable().Where(it => query.Where((rel, p) => p.Id == it.Id).NotAny()).ToList(); + + } + + public int GroupAddPerson(string group_schedule_id, string person_id,string CreatedBy) + { + GroupRelPersonGroup relPersonGroup = new GroupRelPersonGroup(); + relPersonGroup.FkGroupId = group_schedule_id; + relPersonGroup.FkPersonId = person_id; + relPersonGroup.CreatedTime = DateTime.Now; + relPersonGroup.CreatedBy = CreatedBy; + return Context.Insertable(relPersonGroup).ExecuteCommand(); + } + + public int GroupRemovePerson(string group_schedule_id, string person_id) + { + return Context.Deleteable() + .Where(it=>it.FkGroupId == group_schedule_id) + .Where(it=>it.FkPersonId == person_id) + .ExecuteCommand(); + } + } } \ No newline at end of file diff --git a/DOAN.Service/MES/group/IService/IGroupScheduleService.cs b/DOAN.Service/MES/group/IService/IGroupScheduleService.cs index b32d638..8359f8a 100644 --- a/DOAN.Service/MES/group/IService/IGroupScheduleService.cs +++ b/DOAN.Service/MES/group/IService/IGroupScheduleService.cs @@ -21,5 +21,9 @@ namespace DOAN.Service.group.IService PagedInfo ListGroupByDate(GroupScheduleQueryDto2 query); + List SearchPerson_group_bind(string group_schedule_id); + List SearchPerson_group_bind_No(string group_schedule_id); + int GroupAddPerson(string group_schedule_id, string person_id, string CreatedBy); + int GroupRemovePerson(string group_schedule_id, string person_id); } }