d_sms_service/APT.MicroApi/APT.SC.WebApi/Controllers/Api/SEController/SEThreeLevelEduCardController.cs

164 lines
7.3 KiB
C#
Raw Normal View History

2024-10-28 13:45:58 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Reflection.Metadata;
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.PF;
using APT.MS.Domain.Entities.SE;
using APT.MS.Domain.Enums;
using APT.Utility;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.Record;
namespace APT.SC.WebApi.Controllers.Api.SE
{
[Route("api/SE/SEThreeLevelSafeEduCard")]
public class SEThreeLevelEduCardController : AuthorizeApiController<T_SE_THREE_LEVEL_SAFE_EDU_CARD>
{
IFMNotificationTaskService NotificationTaskService { get; set; }
public SEThreeLevelEduCardController(IFMNotificationTaskService notificationTaskService)
{
NotificationTaskService = notificationTaskService;
}
/// <summary>
/// 更新
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost, Route("FullUpdate")]
public JsonActionResult<bool> FullUpdate([FromBody] T_SE_THREE_LEVEL_SAFE_EDU_CARD entity)
{
return SafeExecute<bool>(() =>
{
List<T_SE_THREE_LEVEL_SAFE_TRAIN_RECORD_FILE> files = new List<T_SE_THREE_LEVEL_SAFE_TRAIN_RECORD_FILE>();
var Nav_Record = entity.Nav_TrainRecordList;
Nav_Record.ForEach(t =>
{
if (t.Nav_TrainRecordFile != null && t.Nav_TrainRecordFile.Count() > 0)
{
t.Nav_TrainRecordFile.ForEach(nf =>
{
nf.TRAIN_RECORD_ID = t.ID;
});
files.AddRange(t.Nav_TrainRecordFile);
t.Nav_TrainRecordFile = null;
}
});
var currUser = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
if (string.IsNullOrEmpty(entity.ID_CARD_NUMBER))
{
throw new Exception("身份证号码不可为空");
}
if (entity.ID_CARD_NUMBER.Length < 18)
{
throw new Exception("身份证号码不足18位");
}
if (entity.LAUNCH_DEPARTMENT_ID == null || entity.LAUNCH_DEPARTMENT_ID == Guid.Empty)
{
T_FM_USER current_user = GetEntity<T_FM_USER>(t => t.ID == currUser);
entity.LAUNCH_DEPARTMENT_ID = current_user.DEPARTMENT_ID;
}
if (entity.LAUNCH_USER_ID == null || entity.LAUNCH_USER_ID == Guid.Empty)
{
entity.LAUNCH_USER_ID = currUser;
}
if (entity.LAUNCH_TIME == null)
{
entity.LAUNCH_TIME = DateTime.Now;
}
var threeLevelUser = GetEntity<T_FM_USER>(entity.USER_ID.Value, new string[] { "Nav_Person" });
entity.DEPARTMENT_ID = threeLevelUser.DEPARTMENT_ID;
entity.POST_ID = threeLevelUser.Nav_Person.POST_ID;
T_SE_THREE_LEVEL_SAFE_TRAIN_RECORD next_train_record = null;
T_FM_NOTIFICATION_TASK sendNotice = null;
if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify"))
{
if (entity.STATUS != SEThreeLevelSafeTrainStatus.稿)
{
throw new Exception("已发送过通知!");
}
var safeUser = GetEntity<T_FM_USER>(t => t.Nav_ApproveRole.NAME == "安环部安全员" && t.ENABLE_STATUS==0, new string[] { "Nav_Department", "Nav_ApproveRole" });
next_train_record = new T_SE_THREE_LEVEL_SAFE_TRAIN_RECORD
{
ID = Guid.NewGuid(),
EDU_CARD_ID = entity.ID,
ORG_ID = entity.ORG_ID,
THREE_LEVEL_SAFE_TRAIN_TYPE = SEThreeLevelSafeTrainType.
};
entity.STATUS += 1;
next_train_record.THREE_LEVEL_SAFE_TRAIN_TYPE = (SEThreeLevelSafeTrainType)entity.STATUS.GetInt();
var train_contents = GetEntity<T_SE_THREE_LEVEL_SAFE_CONTENT>(t => t.THREE_LEVEL_SAFE_TRAIN_TYPE == (SEThreeLevelSafeTrainType)entity.STATUS.GetInt());
next_train_record.CONTENT_ID = train_contents.ID;
if (safeUser == null)
{
throw new Exception("未找到公司安环部安全员");
}
sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("三级安全培训记录-" + threeLevelUser.NAME + "-" + entity.STATUS.GetDescription(), next_train_record.ID, entity.ORG_ID, safeUser.ID, safeUser.NAME, DateTime.Now, entity.IN_TIME.Value.AddMonths(1), 1, "SE042");
}
UnifiedCommit(() =>
{
UpdateEntityNoCommit(entity);
if (Nav_Record != null)
BantchSaveEntityNoCommit(Nav_Record);
if (files.Any())
BantchSaveEntityNoCommit(files);
if (next_train_record != null)
AddEntityNoCommit(next_train_record);
if (sendNotice != null)
AddEntityNoCommit(sendNotice);
});
return true;
});
}
/// <summary>
/// 审阅
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost, Route("Approve")]
public JsonActionResult<bool> Approve([FromBody] KeywordFilter filter)
{
return SafeExecute(() =>
{
var finishId = new Guid(filter.Parameter2);
T_SE_THREE_LEVEL_SAFE_EDU_CARD record = GetEntity<T_SE_THREE_LEVEL_SAFE_EDU_CARD>(filter.Parameter1);
record.STATUS = SEThreeLevelSafeTrainStatus.;
var finishNotice = NotificationTaskService.GetTaskFinishModel(finishId);
UnifiedCommit(() =>
{
UpdateEntityNoCommit(record);
if (finishNotice != null)
UpdateEntityNoCommit(finishNotice);
});
return true;
});
}
/// <summary>
/// 获得单条实体数据
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("Get")]
public JsonActionResult<T_SE_THREE_LEVEL_SAFE_EDU_CARD> Get([FromBody] KeywordFilter filter)
{
var result = WitEntity(null, filter);
if(result.Data==null)
{
var id = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "ID").Value.ToString();
var educardId = GetEntity<T_SE_THREE_LEVEL_SAFE_TRAIN_RECORD>(id).EDU_CARD_ID;
filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "ID").Value= educardId;
result = WitEntity(null, filter);
}
return result;
}
}
}