mh_jy_safe/APT.MicroApi/APT.SC.WebApi/Controllers/Api/WBController/3WBTrainSelectController.cs

87 lines
3.7 KiB
C#
Raw Normal View History

2025-08-25 09:56:57 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Enums;
using APT.BaseData.Domain.IServices.FM;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.LR;
using APT.MS.Domain.Entities.SE;
using APT.MS.Domain.Entities.WB;
using APT.MS.Domain.Enums;
using APT.Utility;
using Microsoft.AspNetCore.Mvc;
using NPOI.SS.Formula.Functions;
namespace APT.SC.WebApi.Controllers.Api.WB
{
[Route("api/WB/WBTrainSelect")]
public class WBTrainSelectController : AuthorizeApiController<T_WB_TRAIN_SELECT>
{
IFMNotificationTaskService NotificationTaskService { get; set; }
public WBTrainSelectController(IFMNotificationTaskService notificationTaskService)
{
NotificationTaskService = notificationTaskService;
}
/// <summary>
/// 保存
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost, Route("FullUpdate")]
public JsonActionResult<bool> FullUpdate([FromBody] T_WB_TRAIN_SELECT entity)
{
return SafeExecute(() =>
{
T_WB_OUTSOURCE_TRAIN_RECORD newRecord = null;
T_FM_NOTIFICATION_TASK sendNotice = null;
T_FM_NOTIFICATION_TASK finishTask = null;
if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify"))
{
if (!entity.END_TIME.HasValue)
{
throw new Exception("最迟时间不能为空!");
}
else if (entity.END_TIME.Value < DateTime.Now.AddMinutes(2))
{
throw new Exception("最迟时间必须大于当前时间!");
}
if (entity.TaskID != Guid.Empty)
{
finishTask = NotificationTaskService.FOGetTaskFinishModel(entity.TaskID, entity.ID, "WB006_SHOWPRINT");
}
newRecord = new T_WB_OUTSOURCE_TRAIN_RECORD();
newRecord.ID = Guid.NewGuid();
newRecord.ORG_ID = entity.ORG_ID;
newRecord.PARENT_ID = entity.ID;
newRecord.END_TIME = entity.END_TIME;
var modelInput = GetEntity<T_WB_PROJECT_INPUT>(e => e.ID == entity.PROJECT_ID);
if (modelInput != null && modelInput.DEPARTMENT_ID.HasValue)
{
newRecord.DEPARTMENT_ID = modelInput.DEPARTMENT_ID.Value;//数据权限处理
}
sendNotice = new T_FM_NOTIFICATION_TASK();
sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("外包单位入厂安全培训记录", newRecord.ID, entity.ORG_ID, (Guid)entity.USER_ID, GetEntity<T_FM_USER>(t => t.ID == entity.USER_ID).NAME, DateTime.Now, entity.END_TIME.Value, 1, "WB008");
//sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("外包单位入厂安全培训记录", newRecord.ID, entity.ORG_ID, (Guid)entity.USER_ID, GetEntity<T_FM_USER>(t => t.ID == entity.USER_ID).NAME, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB008");
}
UnifiedCommit(() =>
{
UpdateEntityNoCommit(entity);
if (newRecord != null)
AddEntityNoCommit(newRecord);
if (sendNotice != null)
AddEntityNoCommit(sendNotice);
if (finishTask != null)
UpdateEntityNoCommit(finishTask);
});
return true;
});
}
}
}