班前会问题修复

This commit is contained in:
何美荣 2026-06-15 23:25:31 +08:00
parent 04eced5f1a
commit ce01fbac53

View File

@ -1,24 +1,25 @@
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Enums;
using APT.BaseData.Domain.IServices;
using APT.BaseData.Domain.IServices.FM;
using APT.BaseData.Services.Services.FM;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.FO;
using APT.MS.Domain.Entities.HM;
using APT.MS.Domain.Entities.SK;
using APT.MS.Domain.Enums;
using APT.Utility;
using Microsoft.AspNetCore.JsonPatch.Operations;
using Microsoft.AspNetCore.Mvc;
using NPOI.SS.Formula.Functions;
using System;
using System.Collections.Generic;
using System.Linq;
using APT.BaseData.Domain.Enums;
using APT.MS.Domain.Entities.HM;
using Microsoft.AspNetCore.JsonPatch.Operations;
using System.Threading.Tasks;
using System.Diagnostics.Eventing.Reader;
using APT.BaseData.Services.Services.FM;
using System.Linq;
using System.Linq.Expressions;
using NPOI.SS.Formula.Functions;
using APT.MS.Domain.Entities.SK;
using System.Threading.Tasks;
using static log4net.Appender.RollingFileAppender;
namespace APT.FO.WebApi.Controllers.Api.FO
{
@ -211,17 +212,33 @@ namespace APT.FO.WebApi.Controllers.Api.FO
var detailIds = GetEntities<T_FO_PRE_SHIFT_MEETING_RECORD_DETAIL>(t => t.PRE_SHIFT_MEETING_RECORD_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList();
var postIds = GetEntities<T_FO_PRE_SHIFT_MEETING_RECORD_DETAIL_POST>(t => detailIds.Contains(t.PRE_SHIFT_MEETING_RECORD_DETAIL_ID), new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); ;
//20230913新增同步人员排班
T_FM_DEPARTMENT_SCHEDULING addSchedule = null;
List<T_FM_DEPARTMENT_SCHEDULING_DETAIL> addSchedulings = new List<T_FM_DEPARTMENT_SCHEDULING_DETAIL>();
List<Guid> delSchedulings = new List<Guid>();
if (entity.DEPARTMENT_SCHEDULING_ID != null)
{
var shiftClass = GetEntities<T_FM_DEPARTMENT_SCHEDULING_DETAIL>(t => t.DEPARTMENT_SCHEDULING_ID == entity.DEPARTMENT_SCHEDULING_ID, new BaseFilter(entity.ORG_ID), new string[] { "Nav_Person.Nav_User" });
var shiftClass = GetEntity<T_FM_DEPARTMENT_SCHEDULING_DETAIL>(t => t.DEPARTMENT_SCHEDULING_ID == entity.DEPARTMENT_SCHEDULING_ID);
if (shiftClass == null)
{
addSchedule = new T_FM_DEPARTMENT_SCHEDULING();
addSchedule.ID = (Guid)entity.DEPARTMENT_SCHEDULING_ID;
addSchedule.ORG_ID = entity.ORG_ID;
addSchedule.TEAM_ID = entity.TEAM_ID;
addSchedule.DEPARTMENT_ID = (Guid)entity.DEPARTMENT_ID;
addSchedule.DATE_TIME = DateTime.Now.Date;
addSchedule.CLASS_ID = (Guid)entity.CLASS_ID;
addSchedule.RUN_STATUS = true;
addSchedule.START_TIME = entity.START_TIME;
addSchedule.END_TIME = entity.END_TIME;
}
var shiftClassDetails = GetEntities<T_FM_DEPARTMENT_SCHEDULING_DETAIL>(t => t.DEPARTMENT_SCHEDULING_ID == entity.DEPARTMENT_SCHEDULING_ID, new BaseFilter(entity.ORG_ID), new string[] { "Nav_Person.Nav_User" });
var haveUserIds = shiftClassDetails.Select(t => t.Nav_Person?.Nav_User?.ID).ToList();
var delUsers = users.Where(t => t.IS_DELETED == true).Select(t => t.USER_ID);
var addUsers = users.Where(t => t.CREATE_TIME > entity.CREATE_TIME).Select(t => t.USER_ID);
var addUsers = users.Where(t => !haveUserIds.Contains(t.USER_ID)).Select(t => t.USER_ID);
foreach (var user in addUsers)
{
var addDetails = shiftClass.FirstOrDefault(t => t.Nav_Person.Nav_User.ID == user);
var addDetails = shiftClassDetails.FirstOrDefault(t => t.Nav_Person.Nav_User.ID == user);
if (addDetails == null)
{
T_FM_DEPARTMENT_SCHEDULING_DETAIL addScheduling = new T_FM_DEPARTMENT_SCHEDULING_DETAIL();
@ -231,7 +248,7 @@ namespace APT.FO.WebApi.Controllers.Api.FO
addSchedulings.Add(addScheduling);
}
}
delSchedulings = shiftClass.Where(t => delUsers.Contains(t.Nav_Person.Nav_User.ID)).Select(t => t.ID).ToList();
delSchedulings = shiftClassDetails.Where(t => delUsers.Contains(t.Nav_Person.Nav_User.ID)).Select(t => t.ID).ToList();
}
//附件保存
if (files != null && files.Any())
@ -417,6 +434,8 @@ namespace APT.FO.WebApi.Controllers.Api.FO
BantchAddEntityNoCommit(sendNotices);
if (delSchedulings.Any())
BantchDeleteEntityNoCommit<T_FM_DEPARTMENT_SCHEDULING_DETAIL>(delSchedulings);
if (addSchedule != null)
UpdateEntityNoCommit(addSchedule);
if (addSchedulings.Any())
BantchAddEntityNoCommit(addSchedulings);
if (modelLast != null && modelLast.OVERTIME != FOISOVERTIME.)