From 56fba1f3b3d5b6ad551e27c72b65ab28f15c19f5 Mon Sep 17 00:00:00 2001 From: wyw <571921741@qq.com> Date: Thu, 6 Aug 2026 10:33:29 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=9F=B9=E8=AE=AD=E6=95=99=E8=82=B2?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=20=E6=8A=A5=E8=A1=A8=20=20=E4=B8=89=E7=BA=A7?= =?UTF-8?q?=E5=AE=89=E5=85=A8=E6=95=99=E8=82=B2=20=E6=98=8E=E7=BB=86=20?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E6=8C=89=E5=9F=B9=E8=AE=AD=E5=BC=80=E5=A7=8B?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=AE=A1=E7=AE=97=202=E3=80=81=E4=B8=89?= =?UTF-8?q?=E7=BA=A7=E5=AE=89=E5=85=A8=E6=95=99=E8=82=B2=20=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E8=B4=A3=E4=BB=BB=E7=8A=B6=203=E3=80=81=20=E5=9F=B9?= =?UTF-8?q?=E8=AE=AD=E6=95=99=E8=82=B2=E7=BB=9F=E8=AE=A1=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=20=E6=8C=89=E4=BA=BA=E5=91=98=E5=88=97=E8=A1=A8=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Api/BIController/BIController.cs | 7 +- .../Api/SEController/SENewUsers.cs | 30 +++--- .../SETrainRecordReportController.cs | 95 +++++++++++++++++-- 3 files changed, 105 insertions(+), 27 deletions(-) diff --git a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIController.cs b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIController.cs index 4165156..530d895 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIController.cs @@ -918,8 +918,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI #region 8 var levelArr = new int[] { 5, 10, 15, 20 }; - var names= new string[] { "全公司", "选矿厂", "地下矿", "尾矿库" }.ToList(); - var productUnitIds = productionUnits.Where(t => names.Contains(t.NAME)).OrderBy(t=>t.NAME == "尾矿库").ThenBy(t => t.NAME == "地下矿").ThenBy(t => t.NAME == "选矿厂").ThenBy(t => t.NAME == "全公司").Select(m => m.ID).ToList(); + var names = new string[] { "全公司", "选矿厂", "地下矿", "尾矿库" }.ToList(); + var productUnitIds = productionUnits.Where(t => names.Contains(t.NAME)).OrderBy(t => t.NAME == "尾矿库").ThenBy(t => t.NAME == "地下矿").ThenBy(t => t.NAME == "选矿厂").ThenBy(t => t.NAME == "全公司").Select(m => m.ID).ToList(); foreach (var id in productUnitIds) { var mineTypeName = productionUnits.FirstOrDefault(t => t.ID == id)?.NAME; @@ -1152,7 +1152,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI var startTime = time.AddDays(1 - time.Day); var endTime = time.AddDays(1 - time.Day).AddMonths(1); var records = GetEntities(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 examFilter = new BaseFilter(filter.GetOrgId()); examFilter.SelectField = new string[] { "USER_ID", "RECORD_ID", "SCORE" }; diff --git a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/SEController/SENewUsers.cs b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/SEController/SENewUsers.cs index 05dd1bb..e9b4408 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/SEController/SENewUsers.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/SEController/SENewUsers.cs @@ -1418,21 +1418,21 @@ namespace APT.SC.WebApi.Controllers.Api.SE break; } } - if (sendUser == null) - { - //找不到人只能给她自己做联系人员处理 - sendNoticeRef = NotificationTaskService.InsertUserNoticeTaskModel("请联系你所在组织安全员绑定责任制岗位并上传责任状让你签订", TaskID, currUser.ORG_ID, currUser.ID, currUser.NAME, DateTime.Now, DateTime.Now.AddDays(7), (int)FMNoticeTypeEnum.今日提醒, "PF135"); - } - else - { - var UserPost = GetEntity(currPerson.POST_ID.Value); - string Title = "请为《" + currUser.NAME + ":" + UserPost.NAME + "》绑定责任制岗位并上传责任状,并让其签订"; - var chaen = GetEntity(e => e.USER_ID == sendUser.ID && e.SOURCE_FORMCODE == "PF135" && e.NOTICE_TITLE == Title); - if (chaen == null) - { - sendNoticeRef = NotificationTaskService.InsertUserNoticeTaskModel(Title, TaskID, currUser.ORG_ID, sendUser.ID, sendUser.NAME, DateTime.Now, DateTime.Now.AddDays(7), (int)FMNoticeTypeEnum.今日提醒, "PF135"); - } - } + //if (sendUser == null) + //{ + // //找不到人只能给她自己做联系人员处理 + // sendNoticeRef = NotificationTaskService.InsertUserNoticeTaskModel("请联系你所在组织安全员绑定责任制岗位并上传责任状让你签订", TaskID, currUser.ORG_ID, currUser.ID, currUser.NAME, DateTime.Now, DateTime.Now.AddDays(7), (int)FMNoticeTypeEnum.今日提醒, "PF135"); + //} + //else + //{ + // var UserPost = GetEntity(currPerson.POST_ID.Value); + // string Title = "请为《" + currUser.NAME + ":" + UserPost.NAME + "》绑定责任制岗位并上传责任状,并让其签订"; + // var chaen = GetEntity(e => e.USER_ID == sendUser.ID && e.SOURCE_FORMCODE == "PF135" && e.NOTICE_TITLE == Title); + // if (chaen == null) + // { + // sendNoticeRef = NotificationTaskService.InsertUserNoticeTaskModel(Title, TaskID, currUser.ORG_ID, sendUser.ID, sendUser.NAME, DateTime.Now, DateTime.Now.AddDays(7), (int)FMNoticeTypeEnum.今日提醒, "PF135"); + // } + //} } } } diff --git a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/SEController/SETrainRecordReportController.cs b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/SEController/SETrainRecordReportController.cs index 25dc066..b66ea94 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/SEController/SETrainRecordReportController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/SEController/SETrainRecordReportController.cs @@ -12,6 +12,7 @@ using NPOI.XSSF.UserModel; using System.IO; using APT.Infrastructure.Api; using APT.BaseData.Domain.Enums; +using System.Linq.Expressions; namespace APT.SC.WebApi.Controllers.Api.SE { @@ -52,26 +53,102 @@ namespace APT.SC.WebApi.Controllers.Api.SE } } } - var listInfo = GetEntities(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 listDataT = listInfo.Skip(pageFilter.Start).Take(pageFilter.Limit).ToArray(); - var listData = new List(); - foreach (var item in listDataT) + //var listInfo = GetEntities(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); + if (!pageFilter.SelectField.Contains("USER_ID")) + pageFilter.SelectField.Add("USER_ID"); + var listInfo = GetEntities(null, pageFilter); + KeywordPageFilter pageFilterUser = pageFilter; + var FilterGroup = pageFilter.FilterGroup; + FilterGroup.Groups = new List(); + var Rules = FilterGroup.Rules; + FilterGroup.Rules = new List(); + var Fn = Rules.FirstOrDefault(e => e.Field == "NAME"); + if (Fn != null) { + FilterGroup.Rules.Add(Fn); + } + Expression> 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(); + var listPageUser = this.GetOrderPageEntities(expression, pageFilterUser, "Nav_Department"); + var listUser = listPageUser.Data; + var listData = new List(); + List 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() { - UNIT = item.UNIT, - DEPARTMENT_NAME = item.DEPARTMENT_NAME, + UNIT = UNIT, + DEPARTMENT_NAME = (item.Nav_Department != null ? item.Nav_Department.NAME : DEPARTMENT_NAME), + TRAIN_HOUR = TRAIN_HOUR_ALL, CODE = item.CODE,//作为操作唯一标志 NAME = item.NAME, - USER_ID = item.USER_ID, - TRAIN_HOUR = item.TRAIN_HOUR_ALL, + USER_ID = item.ID, START_TIME_S = START_TIME_S, START_TIME_E = START_TIME_E, ORG_ID = item.ORG_ID }); } + result.TotalCount = listPageUser.TotalCount; result.Data = listData; - result.TotalCount = listInfo.Count(); + + + + + + + + //var listDataT = listInfo.Skip(pageFilter.Start).Take(pageFilter.Limit).ToArray(); + //var listData = new List(); + //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);