diff --git a/DOAN.Admin.WebApi/Controllers/MES/group/GroupScheduleController.cs b/DOAN.Admin.WebApi/Controllers/MES/group/GroupScheduleController.cs index afb6cee..c6a4d27 100644 --- a/DOAN.Admin.WebApi/Controllers/MES/group/GroupScheduleController.cs +++ b/DOAN.Admin.WebApi/Controllers/MES/group/GroupScheduleController.cs @@ -252,7 +252,6 @@ namespace DOAN.Admin.WebApi.Controllers /// /// 要排的日期 /// -2 已有数据不可复制 -1 前一天无数据无法复制 >=1 复制的数量 - /// [HttpGet("CopyGroup")] public IActionResult CopyGroup(DateTime date) { diff --git a/DOAN.Service/MES/group/GroupScheduleService.cs b/DOAN.Service/MES/group/GroupScheduleService.cs index 8bdd781..40907f8 100644 --- a/DOAN.Service/MES/group/GroupScheduleService.cs +++ b/DOAN.Service/MES/group/GroupScheduleService.cs @@ -186,7 +186,7 @@ namespace DOAN.Service.Business //获取月份所有日期 List GetDatesOfMonth(int year, int month) { - + List dates = new List(); DateTime firstDayOfMonth = new DateTime(year, month, 1); @@ -199,7 +199,7 @@ namespace DOAN.Service.Business return dates; } - List All_Dates = GetDatesOfMonth(year,HandleMonth); + List All_Dates = GetDatesOfMonth(year, HandleMonth); foreach (DateTime date in All_Dates) { @@ -225,19 +225,19 @@ namespace DOAN.Service.Business List date_schedules = Queryable().Where(it => it.ScheduleDate == PreDate).ToList(); - if(date_schedules==null|| date_schedules.Count==0) { return -1; } - bool isExist= Queryable().Where(it => it.ScheduleDate == date).Any(); + if (date_schedules == null || date_schedules.Count == 0) { return -1; } + bool isExist = Queryable().Where(it => it.ScheduleDate == date).Any(); if (isExist) { return -2; } //TODO copy 班组人员 string[] collects = date_schedules.Select(it => it.Id).ToArray(); List Copy_groups = Context.Queryable().Where(it => collects.Contains(it.FkGroupId)).ToList(); - + List inserts_GroupRelPersonGroup = new List(); foreach (var group in date_schedules) { - + group.ScheduleDate = date; group.CreatedBy = CreatedBy; group.CreatedTime = DateTime.Now; @@ -245,23 +245,39 @@ namespace DOAN.Service.Business group.UpdatedTime = DateTime.Now; //组绑定 的人员 List Copy_group_presons = Copy_groups.Where(it => it.FkGroupId == group.Id).ToList(); - group.Id = XueHua; - foreach (var person in Copy_group_presons) + if (Copy_group_presons.Count > 0) { - person.FkGroupId = group.Id; - person.CreatedBy = group.CreatedBy; - person.CreatedTime = group.CreatedTime; + group.Id = XueHua; + foreach (var person in Copy_group_presons) + { + person.FkGroupId = group.Id; + person.CreatedBy = group.CreatedBy; + person.CreatedTime = group.CreatedTime; + } + string[] person_id_array = Copy_group_presons.Select(it => it.FkPersonId).ToArray(); + + string[] Resigneds = Context.Queryable().Where(it => person_id_array.Contains(it.Id)) + .Where(it => it.Status == 0) + .Select(it => it.Id) + .ToArray(); + if (Resigneds.Length > 0) + { + Copy_group_presons = Copy_group_presons.Where(it => !Resigneds.Contains(it.FkPersonId)).ToList(); + } + + + inserts_GroupRelPersonGroup.AddRange(Copy_group_presons); + } - inserts_GroupRelPersonGroup.AddRange(Copy_group_presons); - + } UseTran2(() => { // 删除原有数据 - // Context.Deleteable(date_schedules).ExecuteCommand(); - // Context.Deleteable().Where(it => collects.Contains(it.FkGroupId)).ExecuteCommand(); + // Context.Deleteable(date_schedules).ExecuteCommand(); + // Context.Deleteable().Where(it => collects.Contains(it.FkGroupId)).ExecuteCommand(); result = Context.Insertable(date_schedules).ExecuteCommand(); Context.Insertable(inserts_GroupRelPersonGroup).ExecuteCommand(); diff --git a/DOAN.Service/MES/group/IService/IGroupScheduleService.cs b/DOAN.Service/MES/group/IService/IGroupScheduleService.cs index f9a1478..0c04bc7 100644 --- a/DOAN.Service/MES/group/IService/IGroupScheduleService.cs +++ b/DOAN.Service/MES/group/IService/IGroupScheduleService.cs @@ -26,7 +26,7 @@ namespace DOAN.Service.group.IService int GroupAddPerson(string group_schedule_id, string person_id, string CreatedBy); int GroupRemovePerson(string group_schedule_id, string person_id); - List GetMonthScheduleResult(int year,int HandleMonth); + List GetMonthScheduleResult(int year,int HandleMonth); int CopyPreDaySchedule(DateTime date, string CreatedBy); }