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 { IFMNotificationTaskService NotificationTaskService { get; set; } public WBTrainSelectController(IFMNotificationTaskService notificationTaskService) { NotificationTaskService = notificationTaskService; } /// /// 保存 /// /// /// [HttpPost, Route("FullUpdate")] public JsonActionResult 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(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 => 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 => 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; }); } } }