领导带班下井记录
This commit is contained in:
parent
d7d2902020
commit
267c35191f
@ -179,7 +179,11 @@ namespace APT.MS.Domain.Enums
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[Description("草稿")]
|
[Description("草稿")]
|
||||||
Draft = 0,
|
Draft = 0,
|
||||||
|
/// <summary>
|
||||||
|
/// 交班人确认 2
|
||||||
|
/// </summary>
|
||||||
|
[Description("交班人确认")]
|
||||||
|
PreSign = 2,
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 责任人确认 5
|
/// 责任人确认 5
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -1,7 +1,13 @@
|
|||||||
using APT.Infrastructure.Core;
|
using APT.BaseData.Domain.Entities;
|
||||||
|
using APT.BaseData.Domain.Entities.FM;
|
||||||
|
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.FO;
|
||||||
|
using APT.MS.Domain.Enums;
|
||||||
using APT.Utility;
|
using APT.Utility;
|
||||||
using Google.Protobuf.Collections;
|
using Google.Protobuf.Collections;
|
||||||
|
using InfluxData.Net.InfluxDb.Models.Responses;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@ -15,7 +21,11 @@ namespace APT.FO.WebApi.Controllers
|
|||||||
[Route("api/FO/FOLeaderWellRecord")]
|
[Route("api/FO/FOLeaderWellRecord")]
|
||||||
public partial class LeaderWellRecordController : AuthorizeApiController<T_FO_LEADER_WELL_RECORD>
|
public partial class LeaderWellRecordController : AuthorizeApiController<T_FO_LEADER_WELL_RECORD>
|
||||||
{
|
{
|
||||||
|
IFMNotificationTaskService NotificationTaskService { get; set; }
|
||||||
|
public LeaderWellRecordController(IFMNotificationTaskService notificationTaskService)
|
||||||
|
{
|
||||||
|
NotificationTaskService = notificationTaskService;
|
||||||
|
}
|
||||||
[HttpPost, Route("GetEdit")]
|
[HttpPost, Route("GetEdit")]
|
||||||
public JsonActionResult<T_FO_LEADER_WELL_RECORD> GetEdit([FromBody] KeywordFilter filter)
|
public JsonActionResult<T_FO_LEADER_WELL_RECORD> GetEdit([FromBody] KeywordFilter filter)
|
||||||
{
|
{
|
||||||
@ -48,12 +58,14 @@ namespace APT.FO.WebApi.Controllers
|
|||||||
var departmentId = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID;
|
var departmentId = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID;
|
||||||
entity.APPLY_USER_ID = loginUserId;
|
entity.APPLY_USER_ID = loginUserId;
|
||||||
entity.APPLY_DEPARTMENT_ID = departmentId;
|
entity.APPLY_DEPARTMENT_ID = departmentId;
|
||||||
var details = entity.Nav_Details;
|
if (entity.JOB_START_DATE == null)
|
||||||
if (details != null && details.Any())
|
|
||||||
{
|
{
|
||||||
details = details.Where(t => !t.IS_DELETED).ToList();
|
throw new Exception("值班开始时间不能为空");
|
||||||
|
}
|
||||||
|
if (entity.JOB_END_DATE == null)
|
||||||
|
{
|
||||||
|
throw new Exception("值班结束时间不能为空");
|
||||||
}
|
}
|
||||||
entity.Nav_Details = null;
|
|
||||||
var userIds = this.GetEntities<T_FO_LEADER_WELL_RECORD_USER>(t => t.LEADER_WELL_RECORD_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList();
|
var userIds = this.GetEntities<T_FO_LEADER_WELL_RECORD_USER>(t => t.LEADER_WELL_RECORD_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList();
|
||||||
var fileIds = this.GetEntities<T_FO_LEADER_WELL_RECORD_FILE>(t => t.LEADER_WELL_RECORD_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList();
|
var fileIds = this.GetEntities<T_FO_LEADER_WELL_RECORD_FILE>(t => t.LEADER_WELL_RECORD_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList();
|
||||||
var detailIds = this.GetEntities<T_FO_LEADER_WELL_RECORD_DETAIL>(t => t.LEADER_WELL_RECORD_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList();
|
var detailIds = this.GetEntities<T_FO_LEADER_WELL_RECORD_DETAIL>(t => t.LEADER_WELL_RECORD_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList();
|
||||||
@ -68,6 +80,44 @@ namespace APT.FO.WebApi.Controllers
|
|||||||
var detailAreaList = new List<T_FO_LEADER_WELL_RECORD_DETAIL_AREA>();
|
var detailAreaList = new List<T_FO_LEADER_WELL_RECORD_DETAIL_AREA>();
|
||||||
var detailPreUserList = new List<T_FO_LEADER_WELL_RECORD_DETAIL_PREUSER>();
|
var detailPreUserList = new List<T_FO_LEADER_WELL_RECORD_DETAIL_PREUSER>();
|
||||||
var detailAfterUserList = new List<T_FO_LEADER_WELL_RECORD_DETAIL_AFTERUSER>();
|
var detailAfterUserList = new List<T_FO_LEADER_WELL_RECORD_DETAIL_AFTERUSER>();
|
||||||
|
var users = entity.Nav_Users;
|
||||||
|
if (users != null && users.Any())
|
||||||
|
{
|
||||||
|
users = users.Where(t => !t.IS_DELETED).ToList();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
users = new List<T_FO_LEADER_WELL_RECORD_USER>();
|
||||||
|
var currUserRecord = new T_FO_LEADER_WELL_RECORD_USER()
|
||||||
|
{
|
||||||
|
LEADER_WELL_RECORD_ID = entity.ID,
|
||||||
|
USER_ID = (Guid)loginUserId,
|
||||||
|
ORG_ID = entity.ORG_ID,
|
||||||
|
DEAL_STATUS = 0
|
||||||
|
};
|
||||||
|
users.Add(currUserRecord);
|
||||||
|
}
|
||||||
|
entity.Nav_Users = null;
|
||||||
|
if (users != null && users.Any())
|
||||||
|
{
|
||||||
|
foreach (var item in users)
|
||||||
|
{
|
||||||
|
item.ORG_ID = entity.ORG_ID;
|
||||||
|
item.LEADER_WELL_RECORD_ID = entity.ID;
|
||||||
|
item.Nav_User = null;
|
||||||
|
if (item.USER_ID == loginUserId)
|
||||||
|
{
|
||||||
|
item.DEAL_STATUS = MS.Domain.Enums.FOUserShiftStatusEnum.已处理;
|
||||||
|
}
|
||||||
|
userList.Add(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var details = entity.Nav_Details;
|
||||||
|
if (details != null && details.Any())
|
||||||
|
{
|
||||||
|
details = details.Where(t => !t.IS_DELETED).ToList();
|
||||||
|
}
|
||||||
|
entity.Nav_Details = null;
|
||||||
if (details != null && details.Any())
|
if (details != null && details.Any())
|
||||||
{
|
{
|
||||||
foreach (var item in details)
|
foreach (var item in details)
|
||||||
@ -99,9 +149,30 @@ namespace APT.FO.WebApi.Controllers
|
|||||||
item2.ORG_ID = entity.ORG_ID;
|
item2.ORG_ID = entity.ORG_ID;
|
||||||
item2.LEADER_WELL_RECORD_DETAIL_ID = item.ID;
|
item2.LEADER_WELL_RECORD_DETAIL_ID = item.ID;
|
||||||
item2.Nav_PreUser = null;
|
item2.Nav_PreUser = null;
|
||||||
|
if (item2.PRE_USER_ID == loginUserId)
|
||||||
|
{
|
||||||
|
item2.PRE_USER_DEAL_STATUS = MS.Domain.Enums.FOUserShiftStatusEnum.已处理;
|
||||||
|
}
|
||||||
detailPreUserList.Add(item2);
|
detailPreUserList.Add(item2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
foreach(var user in users)
|
||||||
|
{
|
||||||
|
T_FO_LEADER_WELL_RECORD_DETAIL_PREUSER currUserRecord = new T_FO_LEADER_WELL_RECORD_DETAIL_PREUSER();
|
||||||
|
currUserRecord.ORG_ID = entity.ORG_ID;
|
||||||
|
currUserRecord.LEADER_WELL_RECORD_DETAIL_ID = item.ID;
|
||||||
|
currUserRecord.PRE_USER_ID = user.USER_ID;
|
||||||
|
currUserRecord.PRE_USER_DEAL_STATUS = user.DEAL_STATUS;
|
||||||
|
currUserRecord.Nav_PreUser = null;
|
||||||
|
if (currUserRecord.PRE_USER_ID == loginUserId)
|
||||||
|
{
|
||||||
|
currUserRecord.PRE_USER_DEAL_STATUS = MS.Domain.Enums.FOUserShiftStatusEnum.已处理;
|
||||||
|
}
|
||||||
|
detailPreUserList.Add(currUserRecord);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (item.Nav_AfterUsers != null && item.Nav_AfterUsers.Any())
|
if (item.Nav_AfterUsers != null && item.Nav_AfterUsers.Any())
|
||||||
{
|
{
|
||||||
foreach (var item2 in item.Nav_AfterUsers)
|
foreach (var item2 in item.Nav_AfterUsers)
|
||||||
@ -109,12 +180,20 @@ namespace APT.FO.WebApi.Controllers
|
|||||||
item2.ORG_ID = entity.ORG_ID;
|
item2.ORG_ID = entity.ORG_ID;
|
||||||
item2.LEADER_WELL_RECORD_DETAIL_ID = item.ID;
|
item2.LEADER_WELL_RECORD_DETAIL_ID = item.ID;
|
||||||
item2.Nav_AfterUser = null;
|
item2.Nav_AfterUser = null;
|
||||||
|
if (item2.AFTER_USER_ID == loginUserId)
|
||||||
|
{
|
||||||
|
item2.AFTER_USER_DEAL_STATUS = MS.Domain.Enums.FOUserShiftStatusEnum.已处理;
|
||||||
|
}
|
||||||
detailAfterUserList.Add(item2);
|
detailAfterUserList.Add(item2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
item.ORG_ID = entity.ORG_ID;
|
item.ORG_ID = entity.ORG_ID;
|
||||||
item.LEADER_WELL_RECORD_ID = entity.ID;
|
item.LEADER_WELL_RECORD_ID = entity.ID;
|
||||||
item.Nav_DetailFiles = null;
|
item.Nav_DetailFiles = null;
|
||||||
|
if (item.USER_ID == loginUserId)
|
||||||
|
{
|
||||||
|
item.USER_DEAL_STATUS = MS.Domain.Enums.FOUserShiftStatusEnum.已处理;
|
||||||
|
}
|
||||||
detailList.Add(item);
|
detailList.Add(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -134,36 +213,42 @@ namespace APT.FO.WebApi.Controllers
|
|||||||
fileList.Add(item);
|
fileList.Add(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var users = entity.Nav_Users;
|
entity.STATUS = FOStatusEnum.Draft;
|
||||||
if (users != null && users.Any())
|
var sendNotices = new List<T_FM_NOTIFICATION_TASK>();
|
||||||
{
|
|
||||||
users = users.Where(t => !t.IS_DELETED).ToList();
|
|
||||||
}
|
|
||||||
entity.Nav_Users = null;
|
|
||||||
if (users != null && users.Any())
|
|
||||||
{
|
|
||||||
foreach (var item in users)
|
|
||||||
{
|
|
||||||
item.ORG_ID = entity.ORG_ID;
|
|
||||||
item.LEADER_WELL_RECORD_ID = entity.ID;
|
|
||||||
item.Nav_User = null;
|
|
||||||
userList.Add(item);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify"))
|
if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify"))
|
||||||
{
|
{
|
||||||
if (entity.STATUS == MS.Domain.Enums.FOStatusEnum.Draft)
|
var allUsers = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(entity.ORG_ID));
|
||||||
|
var sendUserIds = detailPreUserList.Where(t => t.PRE_USER_ID != loginUserId && t.PRE_USER_ID != null).Select(m => (Guid)m.PRE_USER_ID).Distinct().ToList();
|
||||||
|
if (sendUserIds != null && sendUserIds.Any())
|
||||||
{
|
{
|
||||||
foreach (var user in users)
|
//当班人员不等于自己的,触发签字确认单
|
||||||
|
var sendUserNames = allUsers.Where(t => sendUserIds.Contains(t.ID)).Select(m => m.NAME).ToList();
|
||||||
|
sendNotices = NotificationTaskService.InsertUserNoticeTaskModels("领导带班下井记录-交班人签字确认", entity.ID, entity.ORG_ID, sendUserIds, sendUserNames, DateTime.Now, entity.JOB_END_DATE.Value, 1, "FO037_SHOWPRINT");
|
||||||
|
entity.STATUS = FOStatusEnum.PreSign;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
//触发给现场责任人签字确认
|
||||||
|
var detailUserIds = details.Where(t => t.USER_ID != loginUserId && t.USER_ID != null).Select(m => (Guid)m.USER_ID).Distinct().ToList();
|
||||||
|
if (detailUserIds != null && detailUserIds.Any())
|
||||||
{
|
{
|
||||||
if (user.USER_ID == loginUserId)
|
var sendUserNames = allUsers.Where(t => detailUserIds.Contains(t.ID)).Select(m => m.NAME).ToList();
|
||||||
|
sendNotices = NotificationTaskService.InsertUserNoticeTaskModels("领导带班下井记录-现场责任人签字确认", entity.ID, entity.ORG_ID, detailUserIds, sendUserNames, DateTime.Now, entity.JOB_END_DATE.Value, 1, "FO037_SHOWPRINT");
|
||||||
|
entity.STATUS = FOStatusEnum.Sign;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var afterUserIds = detailAfterUserList.Where(t => t.AFTER_USER_ID != loginUserId && t.AFTER_USER_ID != null).Select(m => (Guid)m.AFTER_USER_ID).Distinct().ToList();
|
||||||
|
if (afterUserIds != null && afterUserIds.Any())
|
||||||
{
|
{
|
||||||
user.DEAL_STATUS = MS.Domain.Enums.FOUserShiftStatusEnum.已处理;
|
//触发给接班人签字确认
|
||||||
|
var sendUserNames = allUsers.Where(t => afterUserIds.Contains(t.ID)).Select(m => m.NAME).ToList();
|
||||||
|
sendNotices = NotificationTaskService.InsertUserNoticeTaskModels("领导带班下井记录-接班人签字确认", entity.ID, entity.ORG_ID, afterUserIds, sendUserNames, DateTime.Now, entity.JOB_END_DATE.Value, 1, "FO037_SHOWPRINT");
|
||||||
|
entity.STATUS = FOStatusEnum.SignAccept;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var sendUserIds= users.Where(t=>t.USER_ID != loginUserId && t.USER_ID!=null).Select(m=>m.USER_ID).Distinct().ToList();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
this.UnifiedCommit(() =>
|
this.UnifiedCommit(() =>
|
||||||
{
|
{
|
||||||
@ -197,6 +282,140 @@ namespace APT.FO.WebApi.Controllers
|
|||||||
this.BantchSaveEntityNoCommit(userList);
|
this.BantchSaveEntityNoCommit(userList);
|
||||||
if (fileList != null && fileList.Any())
|
if (fileList != null && fileList.Any())
|
||||||
this.BantchSaveEntityNoCommit(fileList);
|
this.BantchSaveEntityNoCommit(fileList);
|
||||||
|
if (sendNotices != null && sendNotices.Any())
|
||||||
|
this.BantchSaveEntityNoCommit(sendNotices);
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 签到同意
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="entity"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost, Route("PersonalAgree")]
|
||||||
|
public JsonActionResult<bool> PersonalAgree([FromBody] T_FO_LEADER_WELL_RECORD entity)
|
||||||
|
{
|
||||||
|
return SafeExecute<bool>(() =>
|
||||||
|
{
|
||||||
|
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
|
||||||
|
var userID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||||||
|
if (entity.TaskID != Guid.Empty)
|
||||||
|
{
|
||||||
|
var currTask = GetEntity<T_FM_NOTIFICATION_TASK>(t => t.ID == entity.TaskID);
|
||||||
|
if (currTask != null)
|
||||||
|
{
|
||||||
|
userID = currTask.USER_ID;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var allUsers = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(orgId));
|
||||||
|
var sendNotices = new List<T_FM_NOTIFICATION_TASK>();
|
||||||
|
var detailUsers = new List<T_FO_LEADER_WELL_RECORD_DETAIL>();
|
||||||
|
var preUsers = new List<T_FO_LEADER_WELL_RECORD_DETAIL_PREUSER>();
|
||||||
|
var afterUsers = new List<T_FO_LEADER_WELL_RECORD_DETAIL_AFTERUSER>();
|
||||||
|
var record = this.GetEntity<T_FO_LEADER_WELL_RECORD>(entity.ID);
|
||||||
|
if (record.STATUS == FOStatusEnum.PreSign)
|
||||||
|
{
|
||||||
|
var details = this.GetEntities<T_FO_LEADER_WELL_RECORD_DETAIL>(t => t.LEADER_WELL_RECORD_ID == record.ID, new BaseFilter(orgId));
|
||||||
|
var detailIds = details.Select(m => m.ID).ToList();
|
||||||
|
preUsers = this.GetEntities<T_FO_LEADER_WELL_RECORD_DETAIL_PREUSER>(t => detailIds.Contains(t.LEADER_WELL_RECORD_DETAIL_ID) && t.PRE_USER_ID == userID, new BaseFilter(orgId)).ToList();
|
||||||
|
if (preUsers != null && preUsers.Any())
|
||||||
|
{
|
||||||
|
preUsers.ForEach(t => t.PRE_USER_DEAL_STATUS = FOUserShiftStatusEnum.已处理);
|
||||||
|
}
|
||||||
|
var todoCount = this.GetCount<T_FO_LEADER_WELL_RECORD_DETAIL_PREUSER>(t => detailIds.Contains(t.LEADER_WELL_RECORD_DETAIL_ID) && t.PRE_USER_ID != userID && t.PRE_USER_DEAL_STATUS == 0 && t.PRE_USER_ID != null, new BaseFilter(orgId));
|
||||||
|
if (todoCount == 0)
|
||||||
|
{
|
||||||
|
//触发给现场责任人签字确认
|
||||||
|
var detailUserIds = details.Where(t => t.USER_ID != userID && t.USER_ID != null).Select(m => (Guid)m.USER_ID).Distinct().ToList();
|
||||||
|
if (detailUserIds != null && detailUserIds.Any())
|
||||||
|
{
|
||||||
|
var sendUserNames = allUsers.Where(t => detailUserIds.Contains(t.ID)).Select(m => m.NAME).ToList();
|
||||||
|
sendNotices = NotificationTaskService.InsertUserNoticeTaskModels("领导带班下井记录-现场责任人签字确认", entity.ID, record.ORG_ID, detailUserIds, sendUserNames, DateTime.Now, record.JOB_END_DATE.Value, 1, "FO037_SHOWPRINT");
|
||||||
|
record.STATUS = FOStatusEnum.Sign;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var afterUserIds = this.GetEntities<T_FO_LEADER_WELL_RECORD_DETAIL_AFTERUSER>(t => detailIds.Contains(t.LEADER_WELL_RECORD_DETAIL_ID) && t.AFTER_USER_ID != userID && t.AFTER_USER_ID != null, new BaseFilter(orgId)).Select(m => (Guid)m.AFTER_USER_ID).Distinct().ToList();
|
||||||
|
if (afterUserIds != null && afterUserIds.Any())
|
||||||
|
{
|
||||||
|
//触发给接班人签字确认
|
||||||
|
var sendUserNames = allUsers.Where(t => afterUserIds.Contains(t.ID)).Select(m => m.NAME).ToList();
|
||||||
|
sendNotices = NotificationTaskService.InsertUserNoticeTaskModels("领导带班下井记录-接班人签字确认", entity.ID, record.ORG_ID, afterUserIds, sendUserNames, DateTime.Now, record.JOB_END_DATE.Value, 1, "FO037_SHOWPRINT");
|
||||||
|
record.STATUS = FOStatusEnum.SignAccept;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
record.STATUS = FOStatusEnum.Archived;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (record.STATUS == FOStatusEnum.Sign)
|
||||||
|
{
|
||||||
|
var details = this.GetEntities<T_FO_LEADER_WELL_RECORD_DETAIL>(t => t.LEADER_WELL_RECORD_ID == record.ID, new BaseFilter(orgId));
|
||||||
|
detailUsers = details.Where(t => t.USER_ID == userID).ToList();
|
||||||
|
if (detailUsers != null && detailUsers.Any())
|
||||||
|
{
|
||||||
|
detailUsers.ForEach(t => t.USER_DEAL_STATUS = FOUserShiftStatusEnum.已处理);
|
||||||
|
}
|
||||||
|
var todoCount = this.GetCount<T_FO_LEADER_WELL_RECORD_DETAIL>(t => t.LEADER_WELL_RECORD_ID == record.ID && t.USER_ID != userID && t.USER_DEAL_STATUS == 0 && t.USER_ID != null, new BaseFilter(orgId));
|
||||||
|
if (todoCount == 0)
|
||||||
|
{
|
||||||
|
var detailIds = details.Select(m => m.ID).ToList();
|
||||||
|
var afterUserIds = this.GetEntities<T_FO_LEADER_WELL_RECORD_DETAIL_AFTERUSER>(t => detailIds.Contains(t.LEADER_WELL_RECORD_DETAIL_ID) && t.AFTER_USER_ID != userID && t.AFTER_USER_ID != null, new BaseFilter(orgId)).Select(m => (Guid)m.AFTER_USER_ID).Distinct().ToList();
|
||||||
|
if (afterUserIds != null && afterUserIds.Any())
|
||||||
|
{
|
||||||
|
//触发给接班人签字确认
|
||||||
|
var sendUserNames = allUsers.Where(t => afterUserIds.Contains(t.ID)).Select(m => m.NAME).ToList();
|
||||||
|
sendNotices = NotificationTaskService.InsertUserNoticeTaskModels("领导带班下井记录-接班人签字确认", entity.ID, record.ORG_ID, afterUserIds, sendUserNames, DateTime.Now, record.JOB_END_DATE.Value, 1, "FO037_SHOWPRINT");
|
||||||
|
record.STATUS = FOStatusEnum.SignAccept;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
record.STATUS = FOStatusEnum.Archived;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (record.STATUS == FOStatusEnum.SignAccept)
|
||||||
|
{
|
||||||
|
var details = this.GetEntities<T_FO_LEADER_WELL_RECORD_DETAIL>(t => t.LEADER_WELL_RECORD_ID == record.ID, new BaseFilter(orgId));
|
||||||
|
var detailIds = details.Select(m => m.ID).ToList();
|
||||||
|
afterUsers = this.GetEntities<T_FO_LEADER_WELL_RECORD_DETAIL_AFTERUSER>(t => detailIds.Contains(t.LEADER_WELL_RECORD_DETAIL_ID) && t.AFTER_USER_ID == userID, new BaseFilter(orgId)).ToList();
|
||||||
|
if (afterUsers != null && afterUsers.Any())
|
||||||
|
{
|
||||||
|
afterUsers.ForEach(t => t.AFTER_USER_DEAL_STATUS = FOUserShiftStatusEnum.已处理);
|
||||||
|
}
|
||||||
|
var todoCount = this.GetCount<T_FO_LEADER_WELL_RECORD_DETAIL_AFTERUSER>(t => detailIds.Contains(t.LEADER_WELL_RECORD_DETAIL_ID) && t.AFTER_USER_ID != userID && t.AFTER_USER_DEAL_STATUS == 0 && t.AFTER_USER_ID != null, new BaseFilter(orgId));
|
||||||
|
if (todoCount == 0)
|
||||||
|
{
|
||||||
|
record.STATUS = FOStatusEnum.Archived;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
record.STATUS = FOStatusEnum.Archived;
|
||||||
|
}
|
||||||
|
T_FM_NOTIFICATION_TASK task = null;
|
||||||
|
if (entity.TaskID != Guid.Empty)
|
||||||
|
{
|
||||||
|
task = NotificationTaskService.GetTaskFinishModel(entity.TaskID);
|
||||||
|
task.SOURCE_FORMCODE = "FO037_SHOWPRINT";
|
||||||
|
}
|
||||||
|
this.UnifiedCommit(() =>
|
||||||
|
{
|
||||||
|
if (record != null)
|
||||||
|
UpdateEntityNoCommit(record);
|
||||||
|
if (preUsers != null && preUsers.Any())
|
||||||
|
this.BantchSaveEntityNoCommit(preUsers);
|
||||||
|
if (detailUsers != null && detailUsers.Any())
|
||||||
|
this.BantchSaveEntityNoCommit(detailUsers);
|
||||||
|
if (afterUsers != null && afterUsers.Any())
|
||||||
|
this.BantchSaveEntityNoCommit(afterUsers);
|
||||||
|
if (sendNotices != null && sendNotices.Any())
|
||||||
|
this.BantchSaveEntityNoCommit(sendNotices);
|
||||||
|
if (task != null)
|
||||||
|
this.UpdateEntityNoCommit(task);
|
||||||
});
|
});
|
||||||
return true;
|
return true;
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user