208 lines
9.4 KiB
C#
208 lines
9.4 KiB
C#
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<T_OG_EVENT_REPORT>
|
|
{
|
|
IFMNotificationTaskService NotificationTaskService { get; set; }
|
|
public OGEventReportController(IFMNotificationTaskService notificationTaskService, IPFCodeRuleService codeRuleService)
|
|
{
|
|
NotificationTaskService = notificationTaskService;
|
|
}
|
|
/// <summary>
|
|
/// 更新
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
[HttpPost, Route("FullUpdate")]
|
|
public JsonActionResult<bool> FullUpdate([FromBody] T_OG_EVENT_REPORT entity)
|
|
{
|
|
return SafeExecute<bool>(() =>
|
|
{
|
|
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_FM_USER>(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<T_FM_USER>((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_FM_USER>(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_FM_USER>(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_FM_USER>(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<T_FM_USER>(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<EventsModel> GetCurrentYearEvent([FromBody] KeywordFilter filter)
|
|
{
|
|
int year = DateTime.Now.Year;
|
|
if (filter.Parameter1 != null)
|
|
{
|
|
year = Convert.ToInt32(filter.Parameter1);
|
|
}
|
|
var allEvents = GetEntities<T_OG_EVENT_REPORT>(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<EventsModel>();
|
|
ret.Data = eventModel;
|
|
ret.IsSuccessful = true;
|
|
ret.TotalCount = 1;
|
|
ret.ErrorMessage = "";
|
|
return ret;
|
|
}
|
|
}
|
|
}
|