1、培训教育统计 报表 三级安全教育 明细 时间按培训开始时间计算
2、三级安全教育 取消责任状 3、 培训教育统计报表 按人员列表统计
This commit is contained in:
parent
ec4c10bb0a
commit
56fba1f3b3
@ -1152,7 +1152,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI
|
|||||||
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 && !t.IS_DELETED && t.STATUS != SETrainRecordStatus.已取消, riskFilter);
|
var records = GetEntities<T_SE_TRAIN_RECORD>(t => t.CREATE_TIME >= currYear && !t.IS_DELETED && t.STATUS != SETrainRecordStatus.已取消, riskFilter);
|
||||||
var currMonthrecords = records.Where(t => t.CREATE_TIME > startTime && t.CREATE_TIME < endTime).OrderByDescending(t => t.Nav_Notify.TRAIN_START_TIME);//.OrderBy
|
//var currMonthrecords = records.Where(t => t.CREATE_TIME > startTime && t.CREATE_TIME < endTime).OrderByDescending(t => t.Nav_Notify.TRAIN_START_TIME);//.OrderBy //取记录的创建时间 如果培训通知 发一个很早的培训 这样 培训开始时间和培训记录创建时间就不一致了
|
||||||
|
var currMonthrecords = records.Where(t => t.Nav_Notify.TRAIN_START_TIME.HasValue && t.Nav_Notify.TRAIN_START_TIME > startTime && t.Nav_Notify.TRAIN_START_TIME < endTime).OrderByDescending(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" };
|
||||||
|
|||||||
@ -1418,21 +1418,21 @@ namespace APT.SC.WebApi.Controllers.Api.SE
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (sendUser == null)
|
//if (sendUser == null)
|
||||||
{
|
//{
|
||||||
//找不到人只能给她自己做联系人员处理
|
// //找不到人只能给她自己做联系人员处理
|
||||||
sendNoticeRef = NotificationTaskService.InsertUserNoticeTaskModel("请联系你所在组织安全员绑定责任制岗位并上传责任状让你签订", TaskID, currUser.ORG_ID, currUser.ID, currUser.NAME, DateTime.Now, DateTime.Now.AddDays(7), (int)FMNoticeTypeEnum.今日提醒, "PF135");
|
// sendNoticeRef = NotificationTaskService.InsertUserNoticeTaskModel("请联系你所在组织安全员绑定责任制岗位并上传责任状让你签订", TaskID, currUser.ORG_ID, currUser.ID, currUser.NAME, DateTime.Now, DateTime.Now.AddDays(7), (int)FMNoticeTypeEnum.今日提醒, "PF135");
|
||||||
}
|
//}
|
||||||
else
|
//else
|
||||||
{
|
//{
|
||||||
var UserPost = GetEntity<T_FM_USER_POST>(currPerson.POST_ID.Value);
|
// var UserPost = GetEntity<T_FM_USER_POST>(currPerson.POST_ID.Value);
|
||||||
string Title = "请为《" + currUser.NAME + ":" + UserPost.NAME + "》绑定责任制岗位并上传责任状,并让其签订";
|
// string Title = "请为《" + currUser.NAME + ":" + UserPost.NAME + "》绑定责任制岗位并上传责任状,并让其签订";
|
||||||
var chaen = GetEntity<T_FM_NOTIFICATION_TASK>(e => e.USER_ID == sendUser.ID && e.SOURCE_FORMCODE == "PF135" && e.NOTICE_TITLE == Title);
|
// var chaen = GetEntity<T_FM_NOTIFICATION_TASK>(e => e.USER_ID == sendUser.ID && e.SOURCE_FORMCODE == "PF135" && e.NOTICE_TITLE == Title);
|
||||||
if (chaen == null)
|
// if (chaen == null)
|
||||||
{
|
// {
|
||||||
sendNoticeRef = NotificationTaskService.InsertUserNoticeTaskModel(Title, TaskID, currUser.ORG_ID, sendUser.ID, sendUser.NAME, DateTime.Now, DateTime.Now.AddDays(7), (int)FMNoticeTypeEnum.今日提醒, "PF135");
|
// sendNoticeRef = NotificationTaskService.InsertUserNoticeTaskModel(Title, TaskID, currUser.ORG_ID, sendUser.ID, sendUser.NAME, DateTime.Now, DateTime.Now.AddDays(7), (int)FMNoticeTypeEnum.今日提醒, "PF135");
|
||||||
}
|
// }
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,6 +12,7 @@ using NPOI.XSSF.UserModel;
|
|||||||
using System.IO;
|
using System.IO;
|
||||||
using APT.Infrastructure.Api;
|
using APT.Infrastructure.Api;
|
||||||
using APT.BaseData.Domain.Enums;
|
using APT.BaseData.Domain.Enums;
|
||||||
|
using System.Linq.Expressions;
|
||||||
|
|
||||||
namespace APT.SC.WebApi.Controllers.Api.SE
|
namespace APT.SC.WebApi.Controllers.Api.SE
|
||||||
{
|
{
|
||||||
@ -52,26 +53,102 @@ namespace APT.SC.WebApi.Controllers.Api.SE
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var listInfo = GetEntities<T_SE_TRAIN_RECORD_REPORT>(null, pageFilter).GroupBy(e => new { e.UNIT, e.DEPARTMENT_NAME, e.CODE, e.NAME, e.USER_ID, e.ORG_ID }).Select(e => new RECORD_REPORT { ORG_ID = e.Key.ORG_ID, UNIT = e.Key.UNIT, CODE = e.Key.CODE, USER_ID = e.Key.USER_ID, NAME = e.Key.NAME, DEPARTMENT_NAME = e.Key.DEPARTMENT_NAME, TRAIN_HOUR_ALL = e.Sum(t => t.TRAIN_HOUR) }).OrderBy(e => e.UNIT).ThenBy(e => e.DEPARTMENT_NAME).ThenBy(e => e.NAME);
|
//var listInfo = GetEntities<T_SE_TRAIN_RECORD_REPORT>(null, pageFilter).GroupBy(e => new { e.UNIT, e.DEPARTMENT_NAME, e.CODE, e.NAME, e.USER_ID, e.ORG_ID }).Select(e => new RECORD_REPORT { ORG_ID = e.Key.ORG_ID, UNIT = e.Key.UNIT, CODE = e.Key.CODE, USER_ID = e.Key.USER_ID, NAME = e.Key.NAME, DEPARTMENT_NAME = e.Key.DEPARTMENT_NAME, TRAIN_HOUR_ALL = e.Sum(t => t.TRAIN_HOUR) });
|
||||||
var listDataT = listInfo.Skip(pageFilter.Start).Take(pageFilter.Limit).ToArray();
|
//.OrderBy(e => e.UNIT).ThenBy(e => e.DEPARTMENT_NAME).ThenBy(e => e.NAME);
|
||||||
var listData = new List<T_SE_TRAIN_RECORD_REPORT>();
|
if (!pageFilter.SelectField.Contains("USER_ID"))
|
||||||
foreach (var item in listDataT)
|
pageFilter.SelectField.Add("USER_ID");
|
||||||
|
var listInfo = GetEntities<T_SE_TRAIN_RECORD_REPORT>(null, pageFilter);
|
||||||
|
KeywordPageFilter pageFilterUser = pageFilter;
|
||||||
|
var FilterGroup = pageFilter.FilterGroup;
|
||||||
|
FilterGroup.Groups = new List<FilterGroup>();
|
||||||
|
var Rules = FilterGroup.Rules;
|
||||||
|
FilterGroup.Rules = new List<FilterRule>();
|
||||||
|
var Fn = Rules.FirstOrDefault(e => e.Field == "NAME");
|
||||||
|
if (Fn != null)
|
||||||
{
|
{
|
||||||
|
FilterGroup.Rules.Add(Fn);
|
||||||
|
}
|
||||||
|
Expression<Func<T_FM_USER, bool>> expression = null;
|
||||||
|
if (Rules.Count > 0)
|
||||||
|
{
|
||||||
|
if (Rules.Count == 1 && Fn != null)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var listUserID = listInfo.Where(e => e.USER_ID.HasValue).Select(e => e.USER_ID.Value);
|
||||||
|
if (listUserID != null && listUserID.Count() > 0)
|
||||||
|
{
|
||||||
|
expression = e => listUserID.Contains(e.ID);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
pageFilterUser.FilterGroup = FilterGroup;
|
||||||
|
pageFilterUser.SelectField = new List<string>();
|
||||||
|
var listPageUser = this.GetOrderPageEntities<T_FM_USER>(expression, pageFilterUser, "Nav_Department");
|
||||||
|
var listUser = listPageUser.Data;
|
||||||
|
var listData = new List<T_SE_TRAIN_RECORD_REPORT>();
|
||||||
|
List<T_SE_TRAIN_RECORD_REPORT> listTemp = null;
|
||||||
|
decimal TRAIN_HOUR_ALL = 0;
|
||||||
|
string UNIT = "";
|
||||||
|
string DEPARTMENT_NAME = "";
|
||||||
|
foreach (var item in listUser)
|
||||||
|
{
|
||||||
|
listTemp = listInfo.Where(e => e.USER_ID.HasValue && e.USER_ID.Value == item.ID).ToList();
|
||||||
|
if (listTemp != null && listTemp.Count > 0)
|
||||||
|
{
|
||||||
|
UNIT = listTemp[0].UNIT;
|
||||||
|
TRAIN_HOUR_ALL = listTemp.Sum(e => e.TRAIN_HOUR);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
UNIT = "";
|
||||||
|
DEPARTMENT_NAME = "";
|
||||||
|
TRAIN_HOUR_ALL = 0;
|
||||||
|
}
|
||||||
listData.Add(new T_SE_TRAIN_RECORD_REPORT()
|
listData.Add(new T_SE_TRAIN_RECORD_REPORT()
|
||||||
{
|
{
|
||||||
UNIT = item.UNIT,
|
UNIT = UNIT,
|
||||||
DEPARTMENT_NAME = item.DEPARTMENT_NAME,
|
DEPARTMENT_NAME = (item.Nav_Department != null ? item.Nav_Department.NAME : DEPARTMENT_NAME),
|
||||||
|
TRAIN_HOUR = TRAIN_HOUR_ALL,
|
||||||
CODE = item.CODE,//作为操作唯一标志
|
CODE = item.CODE,//作为操作唯一标志
|
||||||
NAME = item.NAME,
|
NAME = item.NAME,
|
||||||
USER_ID = item.USER_ID,
|
USER_ID = item.ID,
|
||||||
TRAIN_HOUR = item.TRAIN_HOUR_ALL,
|
|
||||||
START_TIME_S = START_TIME_S,
|
START_TIME_S = START_TIME_S,
|
||||||
START_TIME_E = START_TIME_E,
|
START_TIME_E = START_TIME_E,
|
||||||
ORG_ID = item.ORG_ID
|
ORG_ID = item.ORG_ID
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
result.TotalCount = listPageUser.TotalCount;
|
||||||
result.Data = listData;
|
result.Data = listData;
|
||||||
result.TotalCount = listInfo.Count();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//var listDataT = listInfo.Skip(pageFilter.Start).Take(pageFilter.Limit).ToArray();
|
||||||
|
//var listData = new List<T_SE_TRAIN_RECORD_REPORT>();
|
||||||
|
//foreach (var item in listDataT)
|
||||||
|
//{
|
||||||
|
// listData.Add(new T_SE_TRAIN_RECORD_REPORT()
|
||||||
|
// {
|
||||||
|
// UNIT = item.UNIT,
|
||||||
|
// DEPARTMENT_NAME = item.DEPARTMENT_NAME,
|
||||||
|
// CODE = item.CODE,//作为操作唯一标志
|
||||||
|
// NAME = item.NAME,
|
||||||
|
// USER_ID = item.USER_ID,
|
||||||
|
// TRAIN_HOUR = item.TRAIN_HOUR_ALL,
|
||||||
|
// START_TIME_S = START_TIME_S,
|
||||||
|
// START_TIME_E = START_TIME_E,
|
||||||
|
// ORG_ID = item.ORG_ID
|
||||||
|
// });
|
||||||
|
//}
|
||||||
|
//result.Data = listData;
|
||||||
|
//result.TotalCount = listInfo.Count();
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
//var allUser = WitOrderPaged(null, pageFilter);
|
//var allUser = WitOrderPaged(null, pageFilter);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user