using APT.BaseData.Domain.Entities; using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.Enums.PF; using APT.BaseData.Domain.IServices.FM; using APT.BaseData.Domain.IServices; using APT.Infrastructure.Core; using APT.MS.Domain.Entities.OG; using APT.MS.Domain.Enums; using APT.Utility; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using APT.BaseData.Domain.Enums; namespace APT.SC.WebApi.Controllers.Api.OG { [Route("api/OG/OGEventReport")] public class OGEventReportController : AuthorizeApiController { IFMNotificationTaskService NotificationTaskService { get; set; } public OGEventReportController(IFMNotificationTaskService notificationTaskService, IPFCodeRuleService codeRuleService) { NotificationTaskService = notificationTaskService; } /// /// 更新 /// /// /// [HttpPost, Route("FullUpdate")] public JsonActionResult FullUpdate([FromBody] T_OG_EVENT_REPORT entity) { return SafeExecute(() => { if (entity.TIME == null) { if (entity.STATUS == (int)PFStandardStatus.Draft) { entity.TIME = DateTime.Now; } } if (entity.USER_ID == null) { if (entity.STATUS == (int)PFStandardStatus.Draft) { entity.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; } } if (entity.DEPARTMENT_ID == null) { if (entity.STATUS == (int)PFStandardStatus.Draft) { entity.DEPARTMENT_ID = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; } } T_FM_NOTIFICATION_TASK sendNotice = null; T_FM_NOTIFICATION_TASK finishNotice = null; if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify")) { if (entity.TaskID != Guid.Empty) { finishNotice = NotificationTaskService.GetTaskFinishModel(entity.TaskID, "OG031_SHOWPRINT"); } if (entity.AH_USER_ID == null) { var AHUser = GetEntity(t => t.Nav_ApproveRole.NAME == "安环部负责人"); if (AHUser != null) { entity.AH_USER_ID = AHUser.ID; } } if (entity.STATUS == PFStandardStatus.Draft) { entity.STATUS = PFStandardStatus.Sign; var chargeUser = GetEntity((Guid)entity.USER_ID, new string[] { "Nav_Department.Nav_User", "Nav_Department.Nav_Parent.Nav_User", "Nav_Department.Nav_Parent.Nav_Parent.Nav_User" }); Guid sendUser = Guid.Empty; Guid sendUserDep = Guid.Empty; string sendUserName = ""; if (chargeUser.Nav_Department.DEPARTMENT_TYPE == (int)FMDepartmentType.班组) { var safeUser = GetEntity(t => t.DEPARTMENT_ID == chargeUser.Nav_Department.Nav_Parent.Nav_Parent.ID && t.Nav_ApproveRole.NAME == "部门安全员"); if (safeUser == null) { sendUser = chargeUser.Nav_Department.Nav_Parent.Nav_Parent.Nav_User.ID; sendUserName = chargeUser.Nav_Department.Nav_Parent.Nav_Parent.Nav_User.NAME; sendUserDep = (Guid)chargeUser.Nav_Department.Nav_Parent.Nav_Parent.Nav_User.DEPARTMENT_ID; } else { sendUser = safeUser.ID; sendUserName = safeUser.NAME; sendUserDep = (Guid)safeUser.DEPARTMENT_ID; } } else if (chargeUser.Nav_Department.DEPARTMENT_TYPE == (int)FMDepartmentType.车间) { var safeUser = GetEntity(t => t.DEPARTMENT_ID == chargeUser.Nav_Department.Nav_Parent.Nav_Parent.ID && t.Nav_ApproveRole.NAME == "部门安全员"); if (safeUser == null) { sendUser = chargeUser.Nav_Department.Nav_Parent.Nav_User.ID; sendUserName = chargeUser.Nav_Department.Nav_Parent.Nav_User.NAME; sendUserDep = (Guid)chargeUser.Nav_Department.Nav_Parent.Nav_User.DEPARTMENT_ID; } else { sendUser = safeUser.ID; sendUserName = safeUser.NAME; sendUserDep = (Guid)safeUser.DEPARTMENT_ID; } } else if (chargeUser.Nav_Department.DEPARTMENT_TYPE == (int)FMDepartmentType.部门) { var safeUser = GetEntity(t => t.DEPARTMENT_ID == entity.DEPARTMENT_ID && t.Nav_ApproveRole.NAME == "部门负责人"); if (safeUser != null) { sendUser = chargeUser.Nav_Department.Nav_Parent.Nav_User.ID; sendUserName = chargeUser.Nav_Department.Nav_Parent.Nav_User.NAME; sendUserDep = (Guid)chargeUser.Nav_Department.Nav_Parent.Nav_User.DEPARTMENT_ID; } } if (entity.DO_DEPARTMENT_ID == null) { entity.DO_DEPARTMENT_ID = sendUserDep; } if (entity.DO_USER_ID == null) { entity.DO_USER_ID = sendUser; } sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("工余事件上报及处理-待处理", entity.ID, entity.ORG_ID, sendUser, sendUserName, DateTime.Now, DateTime.Now.AddDays(1), 0, "OG032"); } else if (entity.STATUS == PFStandardStatus.Sign) { entity.STATUS = PFStandardStatus.Approving; sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("工余事件上报及处理-待审核", entity.ID, entity.ORG_ID, (Guid)entity.AH_USER_ID, GetEntity(entity.AH_USER_ID.Value).NAME, DateTime.Now, DateTime.Now.AddDays(1), 0, "OG032"); } else if (entity.STATUS == PFStandardStatus.Approving) { entity.STATUS = PFStandardStatus.Archived; } } var Nav_Files = entity.Nav_Files; entity.Nav_Files = null; UnifiedCommit(() => { UpdateEntityNoCommit(entity); if (Nav_Files != null) BantchSaveEntityNoCommit(Nav_Files); if (finishNotice != null) UpdateEntityNoCommit(finishNotice); if (sendNotice != null) AddEntityNoCommit(sendNotice); }); return true; }); } public class EventsModel { public int PROCESSED_EVENTS { set; get; } public int TOTAL_EVENTS { set; get; } } [HttpPost, Route("GetCurrentYearEvent")] public JsonActionResult GetCurrentYearEvent([FromBody] KeywordFilter filter) { int year = DateTime.Now.Year; if (filter.Parameter1 != null) { year = Convert.ToInt32(filter.Parameter1); } var allEvents = GetEntities(t => t.TIME.Value.Year == year, new BaseFilter(filter.GetOrgId()), new string[] { } ).ToList(); var processedEvents = 0; var totalEvents = 0; if (allEvents != null && allEvents.Count > 0) { totalEvents = allEvents.Count; allEvents.ForEach(e => { if (e.DO_TYPE == OGEventDoType.已处理 && e.STATUS == PFStandardStatus.Archived) { processedEvents += 1; } }); } EventsModel eventModel = new EventsModel(); eventModel.PROCESSED_EVENTS = processedEvents; eventModel.TOTAL_EVENTS = totalEvents; var ret = new JsonActionResult(); ret.Data = eventModel; ret.IsSuccessful = true; ret.TotalCount = 1; ret.ErrorMessage = ""; return ret; } } }