1、培训记录取消 添加状态 2、安全教育与培训统计分析报表 通过率取 人员考核结果 3、效果评估 优良率 不需要效果评估的比例为 -
This commit is contained in:
parent
de1db46811
commit
b9c44c6ae2
@ -134,6 +134,7 @@ namespace APT.MS.Domain.Enums
|
|||||||
|
|
||||||
public enum SETrainRecordStatus
|
public enum SETrainRecordStatus
|
||||||
{
|
{
|
||||||
|
已取消 = -1,
|
||||||
草稿 = 0,
|
草稿 = 0,
|
||||||
签到中 = 1,
|
签到中 = 1,
|
||||||
审阅中 = 2,
|
审阅中 = 2,
|
||||||
|
|||||||
@ -1125,7 +1125,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 安全培训教育统计分析
|
/// 安全培训教育统计分析
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="pageFilter">返回系统用户数</param>
|
/// <param name="filter">返回系统用户数</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost, Route("getSafeTrainData")]
|
[HttpPost, Route("getSafeTrainData")]
|
||||||
public JsonActionResult<safeTrainData> getSafeTrainData([FromBody] KeywordFilter filter)
|
public JsonActionResult<safeTrainData> getSafeTrainData([FromBody] KeywordFilter filter)
|
||||||
@ -1135,13 +1135,11 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
|||||||
var riskFilter = new BaseFilter(filter.GetOrgId());
|
var riskFilter = new BaseFilter(filter.GetOrgId());
|
||||||
riskFilter.Include = new string[] { "Nav_Notify.Nav_TrainUserList", "Nav_Users", "Nav_Notify" };
|
riskFilter.Include = new string[] { "Nav_Notify.Nav_TrainUserList", "Nav_Users", "Nav_Notify" };
|
||||||
DateTime time = DateTime.Parse(filter.Parameter1);
|
DateTime time = DateTime.Parse(filter.Parameter1);
|
||||||
DateTime currYear = DateTime.Parse(time.Year + " 01-01");
|
DateTime currYear = DateTime.Parse(time.Year + " 01-01 00:00:00");
|
||||||
var startTime = time.AddDays(1 - time.Day);
|
var startTime = time.AddDays(1 - time.Day);
|
||||||
var endTime = time.AddDays(1 - time.Day).AddMonths(1);
|
var endTime = time.AddDays(1 - time.Day).AddMonths(1);
|
||||||
var records = GetEntities<T_SE_TRAIN_RECORD>(t => t.CREATE_TIME > currYear, riskFilter);
|
var records = GetEntities<T_SE_TRAIN_RECORD>(t => t.CREATE_TIME >= currYear && !t.IS_DELETED && t.STATUS != SETrainRecordStatus.已取消, riskFilter);
|
||||||
var testCount = GetCount<T_SE_TEST>(t => t.IS_DELETED == false, new BaseFilter(filter.GetOrgId()));
|
var currMonthrecords = records.Where(t => t.CREATE_TIME > startTime && t.CREATE_TIME < endTime).OrderByDescending(t => t.Nav_Notify.TRAIN_START_TIME);//.OrderBy
|
||||||
var threeLevelCount = GetCount<T_SE_THREE_LEVEL_SAFE_EDU_CARD>(t => t.IS_DELETED == false, new BaseFilter(filter.GetOrgId()));
|
|
||||||
var currMonthrecords = records.Where(t => t.CREATE_TIME > startTime && t.CREATE_TIME < endTime).OrderBy(t => t.Nav_Notify.TRAIN_START_TIME);
|
|
||||||
var recordids = currMonthrecords.Select(t => t.ID);
|
var recordids = currMonthrecords.Select(t => t.ID);
|
||||||
var examFilter = new BaseFilter(filter.GetOrgId());
|
var examFilter = new BaseFilter(filter.GetOrgId());
|
||||||
examFilter.SelectField = new string[] { "USER_ID", "RECORD_ID", "SCORE" };
|
examFilter.SelectField = new string[] { "USER_ID", "RECORD_ID", "SCORE" };
|
||||||
@ -1152,38 +1150,67 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
|||||||
var effects = GetEntities<T_SE_TRAINING_EFFECT_EVALUATION>(t => notifyIds.Contains((Guid)t.SURVEY_ID), effectFilter);
|
var effects = GetEntities<T_SE_TRAINING_EFFECT_EVALUATION>(t => notifyIds.Contains((Guid)t.SURVEY_ID), effectFilter);
|
||||||
|
|
||||||
List<trainRecords> trainRecords = new List<trainRecords>();
|
List<trainRecords> trainRecords = new List<trainRecords>();
|
||||||
|
int countPer = 0;
|
||||||
|
int countPass = 0;
|
||||||
foreach (var item in currMonthrecords)
|
foreach (var item in currMonthrecords)
|
||||||
{
|
{
|
||||||
trainRecords trainRecord = new trainRecords();
|
trainRecords trainRecord = new trainRecords();
|
||||||
trainRecord.NAME = item.Nav_Notify.NAME;
|
trainRecord.NAME = item.Nav_Notify.NAME;
|
||||||
|
if (item.Nav_Notify.TRAIN_START_TIME.HasValue && item.Nav_Notify.TRAIN_END_TIME.HasValue && item.Nav_Notify.TRAIN_START_TIME.Value.Date == item.Nav_Notify.TRAIN_END_TIME.Value.Date)
|
||||||
|
{
|
||||||
|
trainRecord.TIMERANGE = item.Nav_Notify.TRAIN_START_TIME + " - " + item.Nav_Notify.TRAIN_END_TIME.Value.ToString("HH:mm:ss");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
trainRecord.TIMERANGE = item.Nav_Notify.TRAIN_START_TIME + "-" + item.Nav_Notify.TRAIN_END_TIME;
|
trainRecord.TIMERANGE = item.Nav_Notify.TRAIN_START_TIME + "-" + item.Nav_Notify.TRAIN_END_TIME;
|
||||||
trainRecord.SHOULD_TRAINER = item.Nav_Notify.Nav_TrainUserList.Count();
|
}
|
||||||
trainRecord.ACTUAL_TRAINER = item.Nav_Users.Count();
|
trainRecord.SHOULD_TRAINER = item.Nav_Notify.Nav_TrainUserList.Where(e => !e.IS_DELETED).Count();//
|
||||||
|
trainRecord.ACTUAL_TRAINER = item.Nav_Users.Where(e => !e.IS_DELETED && e.OK).Count();//有签到
|
||||||
|
|
||||||
//trainRecord.METHOD = item.Nav_Notify.Nav_TrainCheckType.NAME;
|
//trainRecord.METHOD = item.Nav_Notify.Nav_TrainCheckType.NAME;
|
||||||
//if (item.Nav_Notify.Nav_TrainCheckType.NAME == "笔试")
|
//if (item.Nav_Notify.Nav_TrainCheckType.NAME == "笔试")
|
||||||
|
|
||||||
trainRecord.METHOD = item.Nav_Notify.CHECKTYPE.GetDescription();
|
trainRecord.METHOD = item.Nav_Notify.CHECKTYPE.GetDescription();
|
||||||
if (item.Nav_Notify.CHECKTYPE == PlanCheckType.InOnLine)
|
|
||||||
{
|
|
||||||
var currExams = exams.Where(t => t.RECORD_ID == item.ID);
|
#region 考试通过率 //T_SE_TRAIN_RECORD_USER SEExaminationResultsEnum? EXAMINATION_RESULTS { get; set; }
|
||||||
var currCount = currExams.Count();
|
|
||||||
if (currCount > 0)
|
countPer = item.Nav_Users.Where(e => !e.IS_DELETED).Count();
|
||||||
{
|
countPass = item.Nav_Users.Where(e => !e.IS_DELETED && e.EXAMINATION_RESULTS.HasValue && e.EXAMINATION_RESULTS.Value == SEExaminationResultsEnum.合格).Count();
|
||||||
var passExams = currExams.Where(t => t.SCORE >= 80);
|
if (countPer == 0)
|
||||||
var passCount = passExams.Count();
|
|
||||||
var rate = (passCount * 1.0 / currCount);
|
|
||||||
trainRecord.PASS_RATE = rate.ToString();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
trainRecord.PASS_RATE = "0";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
trainRecord.PASS_RATE = "1";
|
trainRecord.PASS_RATE = "1";
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
trainRecord.PASS_RATE = (countPass * 1.00 / countPer).ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
//if (item.Nav_Notify.CHECKTYPE == PlanCheckType.InOnLine)
|
||||||
|
//{
|
||||||
|
// var currExams = exams.Where(t => t.RECORD_ID == item.ID);
|
||||||
|
// //var currCount = currExams.Count();
|
||||||
|
// var currCount = trainRecord.ACTUAL_TRAINER;//分母应该是 有参加培训的人数
|
||||||
|
// if (currCount > 0)
|
||||||
|
// {
|
||||||
|
// var passExams = currExams.Where(t => t.SCORE >= 80);
|
||||||
|
// var passCount = passExams.Count();
|
||||||
|
// var rate = (passCount * 1.0 / currCount);
|
||||||
|
// trainRecord.PASS_RATE = rate.ToString();
|
||||||
|
// var ccc = (3 * 1.00 / 10).ToString();
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// trainRecord.PASS_RATE = "0";
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
//else
|
||||||
|
//{
|
||||||
|
// trainRecord.PASS_RATE = "1";
|
||||||
|
//}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
if (item.Nav_Notify.NEED_EVALUATION == SETrainNeedSuvey.是)
|
if (item.Nav_Notify.NEED_EVALUATION == SETrainNeedSuvey.是)
|
||||||
{
|
{
|
||||||
var effect = effects.FirstOrDefault(t => t.SURVEY_ID == item.NOTIFY_ID);
|
var effect = effects.FirstOrDefault(t => t.SURVEY_ID == item.NOTIFY_ID);
|
||||||
@ -1198,7 +1225,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
|||||||
sumTotal += num1;
|
sumTotal += num1;
|
||||||
sumTotal += num2;
|
sumTotal += num2;
|
||||||
}
|
}
|
||||||
trainRecord.EFFORT_RATE = (sumTotal / effectResult.Count()).ToString();
|
trainRecord.EFFORT_RATE = (1.00 * sumTotal / effectResult.Count()).ToString();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1207,7 +1234,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
trainRecord.EFFORT_RATE = "100";
|
trainRecord.EFFORT_RATE = "-";
|
||||||
|
|
||||||
}
|
}
|
||||||
trainRecords.Add(trainRecord);
|
trainRecords.Add(trainRecord);
|
||||||
@ -1220,17 +1247,17 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
|||||||
DateTime endTime1 = new DateTime(today.Year, i, 1).AddMonths(1).AddSeconds(-1);
|
DateTime endTime1 = new DateTime(today.Year, i, 1).AddMonths(1).AddSeconds(-1);
|
||||||
dateCountModel riskDate = new dateCountModel();
|
dateCountModel riskDate = new dateCountModel();
|
||||||
riskDate.DATE = startTime1;
|
riskDate.DATE = startTime1;
|
||||||
riskDate.COUNT = records.Count(t => t.CREATE_TIME > startTime1 && t.CREATE_TIME < endTime1);
|
riskDate.COUNT = records.Count(t => t.CREATE_TIME >= startTime1 && t.CREATE_TIME <= endTime1);
|
||||||
item3s.Add(riskDate);
|
item3s.Add(riskDate);
|
||||||
}
|
}
|
||||||
safeTrainData safeTrainData = new safeTrainData();
|
safeTrainData safeTrainData = new safeTrainData();
|
||||||
safeTrainData.NUM1 = 1;
|
safeTrainData.NUM1 = 1;
|
||||||
safeTrainData.NUM2 = records.Count();
|
safeTrainData.NUM2 = records.Count();
|
||||||
safeTrainData.NUM3 = threeLevelCount;
|
safeTrainData.NUM3 = GetCount<T_SE_THREE_LEVEL_SAFE_EDU_CARD>(t => t.IS_DELETED == false, new BaseFilter(filter.GetOrgId()));
|
||||||
safeTrainData.NUM4 = 13;
|
safeTrainData.NUM4 = 13;
|
||||||
safeTrainData.NUM5 = 14;
|
safeTrainData.NUM5 = 14;
|
||||||
safeTrainData.NUM6 = 15;
|
safeTrainData.NUM6 = 15;
|
||||||
safeTrainData.NUM7 = testCount;
|
safeTrainData.NUM7 = GetCount<T_SE_TEST>(t => t.IS_DELETED == false, new BaseFilter(filter.GetOrgId()));
|
||||||
safeTrainData.trainRecords = trainRecords;
|
safeTrainData.trainRecords = trainRecords;
|
||||||
safeTrainData.dateCountModel = item3s;
|
safeTrainData.dateCountModel = item3s;
|
||||||
return safeTrainData;
|
return safeTrainData;
|
||||||
|
|||||||
@ -169,6 +169,7 @@ namespace APT.SC.WebApi.Controllers.Api.SE
|
|||||||
|
|
||||||
entity.ISSTOPSIGN = true;//停止签到
|
entity.ISSTOPSIGN = true;//停止签到
|
||||||
entity.MODIFY_TIME = DateTime.Now;
|
entity.MODIFY_TIME = DateTime.Now;
|
||||||
|
entity.STATUS = SETrainRecordStatus.已取消;
|
||||||
UnifiedCommit(() =>
|
UnifiedCommit(() =>
|
||||||
{
|
{
|
||||||
UpdateEntityNoCommit(entity);
|
UpdateEntityNoCommit(entity);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user