From 09ec3b7eecbe75c3c4ae2e3286264a9367c8dac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E7=BE=8E=E8=8D=A3?= <10755671+mei-rong-he@user.noreply.gitee.com> Date: Fri, 24 Jul 2026 17:59:44 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=90=8E=E5=8F=B0=E7=BB=A9=E6=95=88?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Entities/SC/BI/11T_BI_SAFETASK_FINISH.cs | 19 +- .../BIStatiscialAnalysisController.cs | 274 ++++++++++++++++-- 2 files changed, 266 insertions(+), 27 deletions(-) diff --git a/APT.MS.Domain/Entities/SC/BI/11T_BI_SAFETASK_FINISH.cs b/APT.MS.Domain/Entities/SC/BI/11T_BI_SAFETASK_FINISH.cs index 894e228..edabd47 100644 --- a/APT.MS.Domain/Entities/SC/BI/11T_BI_SAFETASK_FINISH.cs +++ b/APT.MS.Domain/Entities/SC/BI/11T_BI_SAFETASK_FINISH.cs @@ -1,6 +1,7 @@  using APT.BaseData.Domain.Entities.FM; using APT.Infrastructure.Core; +using APT.MS.Domain.Enums; using APT.MS.Domain.Enums.BI; using System; using System.Collections.Generic; @@ -141,6 +142,22 @@ namespace APT.MS.Domain.Entities.BI /// 结束时间 /// [Description("结束时间")] - public DateTime ENDTIME { get; set; } + public DateTime ENDTIME { get; set; } + + /// + /// 表单名称 + /// + [Description("表单名称")] + public string FORM_NAME { get; set; } + /// + /// 表单状态 + /// + [Description("表单状态")] + public string FORM_STATUS { get; set; } + /// + /// 是否超时 + /// + [Description("是否超时")] + public FOISOVERTIME OVERTIME { get; set; } } } diff --git a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs index ef0d69c..909d770 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs @@ -52,6 +52,7 @@ using System.Net.NetworkInformation; using System.Runtime.CompilerServices; using System.Threading.Tasks; using static APT.SC.WebApi.Controllers.Api.BI.BIKanBanController; +using static NPOI.HSSF.Util.HSSFColor; namespace APT.SC.WebApi.Controllers.Api.BIController { @@ -9737,31 +9738,24 @@ namespace APT.SC.WebApi.Controllers.Api.BIController else departmentIds = departmentInfo.Select(t => t.ID).ToList(); BaseFilter baseFilter = new BaseFilter(orgId); - baseFilter.SelectField = new string[] { "ID", "DEPARTMENT_ID" }; - //var teams = GetEntities(t => !t.IS_DELETED && departmentIds.Contains(t.DEPARTMENT_ID.Value), baseFilter); - //var teamIds = teams.Select(t => t.ID); - var completions = GetClassCompletion(orgId);// GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)).ToList(); - //var teamIds = completions.Select(t => t.TEAM_ID); + baseFilter.SelectField = new string[] { "ID", "DEPARTMENT_ID" }; + //var teams = GetEntities(t => !t.IS_DELETED && departmentIds.Contains(t.DEPARTMENT_ID.Value), baseFilter); + //var teamIds = teams.Select(t => t.ID); + var startTime = Convert.ToDateTime(DateTime.Now.AddMonths(-5).Year + "-" + DateTime.Now.AddMonths(-5).Month + "-01 00:00:00"); + var endTime = Convert.ToDateTime(DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.Day + " 23:59:59"); if (!string.IsNullOrEmpty(filter.Parameter2)) { - DateTime startTime = Convert.ToDateTime(filter.Parameter2); - completions = completions.Where(t => t.MONTH >= startTime).ToList(); - } - else - { - var startTime = Convert.ToDateTime(DateTime.Now.Year + "-" + DateTime.Now.AddMonths(-5).Month + "-01 00:00:00"); - completions = completions.Where(t => t.MONTH >= startTime).ToList(); + startTime = Convert.ToDateTime(filter.Parameter2); + //completions = completions.Where(t => t.MONTH >= startTime).ToList(); } if (!string.IsNullOrEmpty(filter.Parameter3)) { - DateTime endTime = Convert.ToDateTime(filter.Parameter3); - completions = completions.Where(t => t.MONTH <= endTime).ToList(); - } - else - { - var endTime = Convert.ToDateTime(DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.Day + " 23:59:59"); - completions = completions.Where(t => t.MONTH <= endTime).ToList(); + endTime = Convert.ToDateTime(filter.Parameter3); + //completions = completions.Where(t => t.MONTH <= endTime).ToList(); } + var completions = GetClassCompletion(orgId,startTime, endTime);// GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)).ToList(); + //var teamIds = completions.Select(t => t.TEAM_ID); + //if (teamIds != null && teamIds.Any()) { completionLists = completions.Where(m => m.TEAM_ID != null).GroupBy(t => new { t.TEAM_ID, t.TEAM_NAME }).Select(group => new GroupbyDepartmentId @@ -9800,11 +9794,39 @@ namespace APT.SC.WebApi.Controllers.Api.BIController item.CALC = tempCalc; } } - List completionSorts1 = completionSorts.OrderByDescending(t => t.CALC).Take(8).ToList(); + if (!string.IsNullOrEmpty(filter.Keyword)) + { + if (filter.Keyword == "10") + { + var departId = departmentInfo.FirstOrDefault(t => t.NAME == "选矿部")?.ID; + if (departId != null) + { + List parentIds = new List(); + parentIds.Add((Guid)departId); + List allIds = new List(); + GetDepartmentIds(orgId, parentIds, ref allIds); + completionSorts = completionSorts.Where(t => t.TEAM_ID != null && allIds.Contains((Guid)t.TEAM_ID)).ToList(); + } + } + if (filter.Keyword == "30") + { + var departId = departmentInfo.FirstOrDefault(t => t.NAME == "矿山部")?.ID; + if (departId != null) + { + List parentIds = new List(); + parentIds.Add((Guid)departId); + List allIds = new List(); + GetDepartmentIds(orgId, parentIds, ref allIds); + completionSorts = completionSorts.Where(t => t.TEAM_ID != null && allIds.Contains((Guid)t.TEAM_ID)).ToList(); + } + } + } + //List completionSorts1 = completionSorts.OrderByDescending(t => t.CALC).Take(8).ToList(); + List completionSorts1 = completionSorts.Where(m=>m.CALC!=0).OrderByDescending(t => t.CALC).ToList(); if (!string.IsNullOrEmpty(filter.Parameter1)) { var param = int.Parse(filter.Parameter1.ToString()); - completionSorts1 = completionSorts.OrderByDescending(t => t.CALC).Take(param).ToList(); + completionSorts1 = completionSorts1.OrderByDescending(t => t.CALC).Take(param).ToList(); } int i = 1; foreach (var item in completionSorts1) @@ -9855,7 +9877,19 @@ namespace APT.SC.WebApi.Controllers.Api.BIController //if (string.IsNullOrEmpty(filter.Keyword)) // return ret; //var departmentInfo = this.GetEntities(t => t.PRODUCTION_UNIT_ID == Guid.Parse(filter.Keyword.ToString()), new BaseFilter(orgId)); - var completions = GetClassCompletion(orgId);//GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)).ToList(); + var startTime = Convert.ToDateTime(DateTime.Now.AddMonths(-5).Year + "-" + DateTime.Now.AddMonths(-5).Month + "-01 00:00:00"); + var endTime = Convert.ToDateTime(DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.Day + " 23:59:59"); + if (!string.IsNullOrEmpty(filter.Parameter2)) + { + startTime = Convert.ToDateTime(filter.Parameter2); + //completions = completions.Where(t => t.MONTH >= startTime).ToList(); + } + if (!string.IsNullOrEmpty(filter.Parameter3)) + { + endTime = Convert.ToDateTime(filter.Parameter3); + //completions = completions.Where(t => t.MONTH <= endTime).ToList(); + } + var completions = GetClassCompletion(orgId, startTime, endTime);//GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)).ToList(); var departmentInfos = this.GetEntities(t => t.ENABLE_STATUS == 0 && t.CATEGORY == FMCATEGORY.ACTURE, new BaseFilter(orgId), "Nav_Parent"); //List listDepBM = new List(); @@ -10013,17 +10047,16 @@ namespace APT.SC.WebApi.Controllers.Api.BIController } /// - /// 返回所有下级部门节点 + /// 返回班前会议、班组活动记录 /// /// /// /// - public List GetClassCompletion(Guid orgId) + public List GetClassCompletion(Guid orgId,DateTime startTime, DateTime endTime) { List completions = new List(); BaseFilter baseFilter = new BaseFilter(orgId); - var startTime = Convert.ToDateTime(DateTime.Now.AddMonths(-5).Year + "-" + DateTime.Now.AddMonths(-5).Month + "-01 00:00:00"); - var endTime = Convert.ToDateTime(DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.Day + " 23:59:59"); + baseFilter.SelectField = new string[] { "ID", "NAME", "DEPARTMENT_TYPE", "Nav_Parent.NAME", "PARENT_ID" }; var departments = GetEntities(t => !t.IS_DELETED && t.ENABLE_STATUS == 0, baseFilter); baseFilter.SelectField = new string[] { "ID", "DEPARTMENT_ID" }; @@ -12617,6 +12650,195 @@ namespace APT.SC.WebApi.Controllers.Api.BIController } return result; } + /// + /// 查询所有数据 + /// + /// 过滤实体 + /// + [HttpPost, Route("GetSafeEntities")] + public JsonActionResult> GetSafeEntities([FromBody] KeywordFilter filter) + { + return SafeExecute>(() => + { + List completions = new List(); + var startTime = Convert.ToDateTime(DateTime.Now.AddMonths(-1).Year + "-" + DateTime.Now.AddMonths(-1).Month + "-01 00:00:00"); + var endTime = Convert.ToDateTime(DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.Day + " 23:59:59"); + if (!string.IsNullOrEmpty(filter.Parameter2)) + { + startTime = Convert.ToDateTime(filter.Parameter2); + //completions = completions.Where(t => t.MONTH >= startTime).ToList(); + } + if (!string.IsNullOrEmpty(filter.Parameter3)) + { + endTime = Convert.ToDateTime(filter.Parameter3); + //completions = completions.Where(t => t.MONTH <= endTime).ToList(); + } + BaseFilter baseFilter = new BaseFilter(filter.OrgId); + baseFilter.SelectField = new string[] { "ID", "NAME", "DEPARTMENT_TYPE", "Nav_Parent.NAME", "PARENT_ID" }; + var departments = GetEntities(t => !t.IS_DELETED && t.ENABLE_STATUS == 0, baseFilter); + var allInfos = GetSafeTaskFinish(filter.OrgId.Value, startTime, endTime); + var teamIds = allInfos.Select(t => t.TEAM_ID).Distinct().ToList(); + if (teamIds != null && teamIds.Any()) + { + foreach (var item in teamIds) + { + var first = departments.FirstOrDefault(t => t.ID == item); + var biSafeFinish = new T_BI_SAFETASK_FINISH(); + biSafeFinish.ORG_ID = filter.OrgId.Value; + biSafeFinish.TEAM_ID = item; + biSafeFinish.TEAM_NAME = first?.NAME; + var parentInfo = departments.FirstOrDefault(t => t.ID == first?.PARENT_ID); + if (parentInfo != null) + { + if (parentInfo.DEPARTMENT_TYPE == 15) + { + var parentUp = departments.FirstOrDefault(t => t.ID == parentInfo.PARENT_ID); + if (parentUp != null) + { + //biSafeFinish.shopId = parentUp.ID; + biSafeFinish.DEPARTMENT_NAME = parentUp.NAME; + } + } + else + { + //biSafeFinish.shopId = parentInfo.ID; + biSafeFinish.DEPARTMENT_NAME = parentInfo.NAME; + } + } + biSafeFinish.FO01_TOTAL = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME=="班前会议"); + biSafeFinish.FO01_FINISH = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "班前会议" && t.FORM_STATUS == "归档" && t.OVERTIME != FOISOVERTIME.超时); + biSafeFinish.FO01_UNFINISH = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "班前会议" && t.FORM_STATUS != "归档"); + biSafeFinish.FO01_OVERTIME = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "班前会议" && t.FORM_STATUS == "归档" && t.OVERTIME == FOISOVERTIME.超时); + biSafeFinish.FO02_TOTAL = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位当班记录"); + biSafeFinish.FO02_FINISH = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位当班记录" && t.FORM_STATUS == "归档" && t.OVERTIME != FOISOVERTIME.超时); + biSafeFinish.FO02_UNFINISH = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位当班记录" && t.FORM_STATUS != "归档"); + biSafeFinish.FO02_OVERTIME = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位当班记录" && t.FORM_STATUS == "归档" && t.OVERTIME == FOISOVERTIME.超时); + biSafeFinish.FO03_TOTAL = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位交接班"); + biSafeFinish.FO03_FINISH = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位交接班" && t.FORM_STATUS == "归档" && t.OVERTIME != FOISOVERTIME.超时); + biSafeFinish.FO03_UNFINISH = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位交接班" && t.FORM_STATUS != "归档"); + biSafeFinish.FO03_OVERTIME = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位交接班" && t.FORM_STATUS == "归档" && t.OVERTIME == FOISOVERTIME.超时); + completions.Add(biSafeFinish); + } + } + return completions; + }); + } + /// + /// 返回班前会议、班组活动记录 + /// + /// + /// + /// + public List GetSafeTaskFinish(Guid orgId,DateTime startTime, DateTime endTime) + { + List completions = new List(); + BaseFilter baseFilter = new BaseFilter(orgId); + baseFilter.SelectField = new string[] { "ID", "DEPARTMENT_ID" }; + var teams = GetEntities(t => !t.IS_DELETED && t.ENABLE_STATUS == 0, baseFilter); + baseFilter.SelectField = new string[] { "TEAM_ID", "Nav_Team.NAME", "PRE_MEETING_STATUS", "DEPARTMENT_ID", "OVERTIME", "CREATE_TIME", "Nav_User.DEPARTMENT_ID" }; //指定字段,包括导航属性 + var preShiftMeetingTemp = GetEntities(i => i.CREATE_TIME >= startTime && i.CREATE_TIME<= endTime && i.IS_DELETED == false, baseFilter).ToList(); + baseFilter.SelectField = new string[] { "CLASS_TEAM_ID", "Nav_Team.NAME", "SHIFT_STATUS", "DEPARTMENT_ID", "OVERTIME", "CREATE_TIME", "Nav_Editor.DEPARTMENT_ID" }; //指定字段,包括导航属性 + var currentShiftTemp = GetEntities(i => i.CREATE_TIME >= startTime && i.CREATE_TIME <= endTime && i.IS_DELETED == false, baseFilter).ToList(); + baseFilter.SelectField = new string[] { "TEAM_ID", "Nav_Team.NAME", "SHIFT_STATUS", "DEPARTMENT_ID", "OVERTIME", "CREATE_TIME", "Nav_Editor.DEPARTMENT_ID" }; //指定字段,包括导航属性 + var changeShiftTemp = GetEntities(i => i.CREATE_TIME >= startTime && i.CREATE_TIME <= endTime && i.IS_DELETED == false, baseFilter).ToList(); + //baseFilter.SelectField = new string[] { "TEAM_ID", "Nav_Taem.NAME", "TA_STATUS", "Nav_Taem.DEPARTMENT_ID", "OVERTIME", "CREATE_TIME", "Nav_MainUser.DEPARTMENT_ID" }; //指定字段,包括导航属性 + //var teamActivityTemp = GetEntities(i => i.CREATE_TIME >= startTime && i.IS_DELETED == false, baseFilter).ToList(); + + baseFilter.SelectField = new string[] { "SOURCE_DATA_ID" }; + var allnoticeTask = GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime, baseFilter); + foreach (var item in preShiftMeetingTemp) + { + if (item.TEAM_ID == null) + { + item.TEAM_ID = item.Nav_User?.DEPARTMENT_ID; + } + else + { + var deparId = teams.FirstOrDefault(t => t.ID == item.TEAM_ID)?.DEPARTMENT_ID; + item.TEAM_ID = deparId; + } + var isOver = allnoticeTask.Where(t => t.SOURCE_DATA_ID == item.ID); + if (isOver.Any()) + { + item.OVERTIME = FOISOVERTIME.超时; + } + else + { + item.OVERTIME = FOISOVERTIME.未超时; + } + var biSafeFinish = new T_BI_SAFETASK_FINISH(); + biSafeFinish.ORG_ID = orgId; + biSafeFinish.TEAM_ID = (Guid)item.TEAM_ID; + biSafeFinish.FORM_NAME = "班前会议"; + biSafeFinish.OVERTIME = item.OVERTIME; + biSafeFinish.FORM_STATUS = item.PRE_MEETING_STATUS.GetDescription(); + completions.Add(biSafeFinish); + //biSafeFinish.TEAM_CHARGE_USER = team.Nav_ChargePerson.NAME; + //biSafeFinish.FO01_TOTAL = fo01a.Count(); + //biSafeFinish.FO01_FINISH = fo01a.Count(t => t.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档 && t.OVERTIME != FOISOVERTIME.超时); + //biSafeFinish.FO01_UNFINISH = fo01a.Count(t => t.PRE_MEETING_STATUS < FOPreMeetingStatusEnum.归档); + //biSafeFinish.FO01_OVERTIME = fo01a.Count(t => t.OVERTIME == FOISOVERTIME.超时); + } + foreach (var item in currentShiftTemp) + { + if (item.CLASS_TEAM_ID == null) + { + item.CLASS_TEAM_ID = item.Nav_Editor?.DEPARTMENT_ID; + } + else + { + var deparId = teams.FirstOrDefault(t => t.ID == item.CLASS_TEAM_ID)?.DEPARTMENT_ID; + item.CLASS_TEAM_ID = deparId; + } + var isOver = allnoticeTask.Where(t => t.SOURCE_DATA_ID == item.ID); + if (isOver.Any()) + { + item.OVERTIME = FOISOVERTIME.超时; + } + else + { + item.OVERTIME = FOISOVERTIME.未超时; + } + var biSafeFinish = new T_BI_SAFETASK_FINISH(); + biSafeFinish.ORG_ID = orgId; + biSafeFinish.TEAM_ID = (Guid)item.CLASS_TEAM_ID; + biSafeFinish.FORM_NAME = "岗位当班记录"; + biSafeFinish.OVERTIME = item.OVERTIME; + biSafeFinish.FORM_STATUS = Enum.GetName(typeof(FOShiftStatusEnum), item.SHIFT_STATUS); + completions.Add(biSafeFinish); + } + foreach (var item in changeShiftTemp) + { + if (item.TEAM_ID == null) + { + item.TEAM_ID = item.Nav_Editor?.DEPARTMENT_ID; + } + else + { + var deparId = teams.FirstOrDefault(t => t.ID == item.TEAM_ID)?.DEPARTMENT_ID; + item.TEAM_ID = deparId; + } + var isOver = allnoticeTask.Where(t => t.SOURCE_DATA_ID == item.ID); + if (isOver.Any()) + { + item.OVERTIME = FOISOVERTIME.超时; + } + else + { + item.OVERTIME = FOISOVERTIME.未超时; + } + + var biSafeFinish = new T_BI_SAFETASK_FINISH(); + biSafeFinish.ORG_ID = orgId; + biSafeFinish.TEAM_ID = (Guid)item.TEAM_ID; + biSafeFinish.FORM_NAME = "岗位交接班"; + biSafeFinish.OVERTIME = item.OVERTIME; + biSafeFinish.FORM_STATUS = Enum.GetName(typeof(FOChangeShiftStatusEnum), item.SHIFT_STATUS); + completions.Add(biSafeFinish); + } + + return completions; + } public class JobInfo { public Guid? DEPARTMENT_ID { get; set; } From f391404d5a034cd9f62efe5d9de95a35cb70024a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E7=BE=8E=E8=8D=A3?= <10755671+mei-rong-he@user.noreply.gitee.com> Date: Fri, 24 Jul 2026 18:09:08 +0800 Subject: [PATCH 2/4] 1 --- .../Api/BIController/BIStatiscialAnalysisController.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs index 909d770..ef81e14 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs @@ -9822,12 +9822,12 @@ namespace APT.SC.WebApi.Controllers.Api.BIController } } //List completionSorts1 = completionSorts.OrderByDescending(t => t.CALC).Take(8).ToList(); - List completionSorts1 = completionSorts.Where(m=>m.CALC!=0).OrderByDescending(t => t.CALC).ToList(); + List completionSorts1 = completionSorts.Where(m=>m.CALC!=0).OrderByDescending(t => t.CALC).ToList(); if (!string.IsNullOrEmpty(filter.Parameter1)) { var param = int.Parse(filter.Parameter1.ToString()); completionSorts1 = completionSorts1.OrderByDescending(t => t.CALC).Take(param).ToList(); - } + } int i = 1; foreach (var item in completionSorts1) { @@ -11701,7 +11701,7 @@ namespace APT.SC.WebApi.Controllers.Api.BIController var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value; var filter = new BaseFilter(orgId); filter.SelectField = new List { "ID", "NAME", "DEPARTMENT_TYPE", "Nav_User.NAME", "Nav_ChargeUser.NAME" }; - var departs = this.GetEntities(t => !t.IS_DELETED, filter); + var departs = this.GetEntities(t => !t.IS_DELETED && t.ENABLE_STATUS == 0 && t.CATEGORY == FMCATEGORY.ACTURE, filter); if (departs != null && departs.Any()) { foreach (var depart in departs) @@ -12720,6 +12720,7 @@ namespace APT.SC.WebApi.Controllers.Api.BIController completions.Add(biSafeFinish); } } + completions = completions.OrderBy(t => t.DEPARTMENT_NAME).ThenBy(m => m.TEAM_NAME).ToList(); return completions; }); } From a5eed05199fd84eb15c3b882ce4a0d820729daf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E7=BE=8E=E8=8D=A3?= <10755671+mei-rong-he@user.noreply.gitee.com> Date: Mon, 27 Jul 2026 12:11:31 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Api/BIController/BIHomeController.cs | 9 +- .../BIStatiscialAnalysisController.cs | 171 +++++++++++------- 2 files changed, 110 insertions(+), 70 deletions(-) diff --git a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIHomeController.cs b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIHomeController.cs index ee8c83d..87fe789 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIHomeController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIHomeController.cs @@ -1519,7 +1519,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI // } // } //} - var checkNotices = GetEntities(e => e.APPLY_DEPARTMENT_ID.HasValue && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == dtNow.Year && e.Nav_CheckType!=null && !e.Nav_CheckType.NAME.Contains("岗位排查"), newFilter); + var checkNotices = GetEntities(e => e.APPLY_DEPARTMENT_ID.HasValue && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == dtNow.Year && e.Nav_CheckType!=null && !e.Nav_CheckType.NAME.Contains("岗位排查"), newFilter); var checkIds = checkNotices.Select(t => t.CHECK_TYPE_ID).Distinct().ToList(); //var loginDepart = this.GetEntity(t => t.ID == APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID); var listCheckType = GetEntities(e => checkIds.Contains(e.ID), null, "Nav_ProductionUnit").OrderBy(t => t.PRODUCTION_UNIT_ID).ToList(); @@ -2349,8 +2349,9 @@ namespace APT.SC.WebApi.Controllers.Api.BI newFilter.IgnoreDataRule = true; var startTime = dtNow.AddMonths(-11); var checkNotices = GetEntities(e => e.APPLY_DEPARTMENT_ID.HasValue && e.CREATE_TIME.HasValue && e.CREATE_TIME >= startTime && e.Nav_CheckType!=null && !e.Nav_CheckType.NAME.Contains("岗位排查"), newFilter); - var noticeIds = checkNotices.Select(t => t.ID).ToList(); - var checkRecords = GetEntities(e => e.SECURITY_INSPECTION_NOTICE_ID.HasValue && noticeIds.Contains((Guid)e.SECURITY_INSPECTION_NOTICE_ID), newFilter); + //var noticeIds = checkNotices.Select(t => t.ID).ToList(); + //var checkRecords = GetEntities(e => e.SECURITY_INSPECTION_NOTICE_ID.HasValue && noticeIds.Contains((Guid)e.SECURITY_INSPECTION_NOTICE_ID), newFilter); + var checkRecords = GetEntities(e => e.APPLY_DEPARTMENT_ID.HasValue && e.CREATE_TIME.HasValue && e.CREATE_TIME >= startTime && e.Nav_CheckType != null && !e.Nav_CheckType.NAME.Contains("岗位排查"), newFilter); var currentTime = Convert.ToDateTime(startTime.Year + "-" + startTime.Month + "-01 00:00:00"); List ListSafeCheckYearMonth = new List(); //int befoMonth = 11;//计算 12 个月 就是提前 11个月 @@ -2427,7 +2428,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI { monthEnd = dtNow; } - var listPerChearch = checkNotices.Where(t => t.CREATE_TIME >= monthStart && t.CREATE_TIME <= monthEnd); + var listPerChearch = checkRecords.Where(t => t.CREATE_TIME >= monthStart && t.CREATE_TIME <= monthEnd); HomeSafeCheckCountMonth modelper = new HomeSafeCheckCountMonth(); modelper.Total = listPerChearch.Count(); modelper.listSOURCENAME = listCheckTypeNAME; diff --git a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs index ef81e14..6626364 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs @@ -8983,25 +8983,32 @@ namespace APT.SC.WebApi.Controllers.Api.BIController #endregion [HttpPost, Route("GetTotalCount")] - public JsonActionResult GetTotalCount([FromBody] KeywordPageFilter pageFilter) + public JsonActionResult GetTotalCount([FromBody] KeywordFilter filter) { return SafeExecute(() => { - var newFilter = new KeywordFilter(); - newFilter.OrgId = pageFilter.OrgId; - newFilter.IgnoreDataRule = true; + filter.IgnoreDataRule = true; + var startTime = DateTime.Now; var endTime = DateTime.Now; + if (!string.IsNullOrEmpty(filter.Parameter2)) + { + startTime = Convert.ToDateTime(filter.Parameter2); + } + if (!string.IsNullOrEmpty(filter.Parameter3)) + { + endTime = Convert.ToDateTime(filter.Parameter3); + } //首页待办增加数量统计字段 dynamic ret = new System.Dynamic.ExpandoObject(); - var ordinaryCount = GetCount(s => !s.IS_DELETED, newFilter); - var crucialCount = GetCount(s => !s.IS_DELETED, newFilter); - var activityCount = GetCount(s => !s.IS_DELETED, newFilter); - var postCount = GetCount(s => !s.IS_DELETED, newFilter); - var postChangeCount = GetCount(s => !s.IS_DELETED, newFilter); - var taskCount = GetCount(s => !s.IS_DELETED, newFilter); - var shiftMeetingCount = GetCount(s => !s.IS_DELETED, newFilter); - var shiftMeetingFinishCount = GetCount(s => !s.IS_DELETED && s.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档, newFilter); - var postChangeFinishCount = GetCount(s => !s.IS_DELETED && s.SHIFT_STATUS == (int)FOChangeShiftStatusEnum.归档, newFilter); - var postFinishCount = GetCount(s => !s.IS_DELETED && s.SHIFT_STATUS == (int)FOShiftStatusEnum.归档, newFilter); + var ordinaryCount = GetCount(s => !s.IS_DELETED && s.CREATE_TIME>= startTime && s.CREATE_TIME<= endTime, filter); + var crucialCount = GetCount(s => !s.IS_DELETED && s.CREATE_TIME >= startTime && s.CREATE_TIME <= endTime, filter); + var activityCount = GetCount(s => !s.IS_DELETED && s.CREATE_TIME >= startTime && s.CREATE_TIME <= endTime, filter); + var postCount = GetCount(s => !s.IS_DELETED && s.CREATE_TIME >= startTime && s.CREATE_TIME <= endTime, filter); + var postChangeCount = GetCount(s => !s.IS_DELETED && s.CREATE_TIME >= startTime && s.CREATE_TIME <= endTime, filter); + var taskCount = GetCount(s => !s.IS_DELETED && s.CREATE_TIME >= startTime && s.CREATE_TIME <= endTime, filter); + var shiftMeetingCount = GetCount(s => !s.IS_DELETED && s.CREATE_TIME >= startTime && s.CREATE_TIME <= endTime, filter); + var shiftMeetingFinishCount = GetCount(s => !s.IS_DELETED && s.CREATE_TIME >= startTime && s.CREATE_TIME <= endTime && s.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档, filter); + var postChangeFinishCount = GetCount(s => !s.IS_DELETED && s.CREATE_TIME >= startTime && s.CREATE_TIME <= endTime && s.SHIFT_STATUS == (int)FOChangeShiftStatusEnum.归档, filter); + var postFinishCount = GetCount(s => !s.IS_DELETED && s.CREATE_TIME >= startTime && s.CREATE_TIME <= endTime && s.SHIFT_STATUS == (int)FOShiftStatusEnum.归档, filter); ret.ordinaryCount = ordinaryCount; ret.crucialCount = crucialCount; ret.activityCount = activityCount; @@ -9090,8 +9097,17 @@ namespace APT.SC.WebApi.Controllers.Api.BIController return SafeExecute>(() => { List completionSorts = new List(); - filter.IgnoreDataRule = true; - var completions = GetEntities(t => !t.IS_DELETED, filter); + filter.IgnoreDataRule = true; + var startTime = DateTime.Now; var endTime = DateTime.Now; + if (!string.IsNullOrEmpty(filter.Parameter2)) + { + startTime = Convert.ToDateTime(filter.Parameter2); + } + if (!string.IsNullOrEmpty(filter.Parameter3)) + { + endTime = Convert.ToDateTime(filter.Parameter3); + } + var completions = GetEntities(t => !t.IS_DELETED && t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime, filter); var countTj = completions.Where(t => t.AUDIT_LEVEL == (int)HMOperationTaskAuditEnum.特级审批).Count(); T_FM_RISK_LEVEL_PROPORTION levelTj = new T_FM_RISK_LEVEL_PROPORTION(); levelTj.RISK_LEVEL = "特级审批"; @@ -10062,13 +10078,13 @@ namespace APT.SC.WebApi.Controllers.Api.BIController baseFilter.SelectField = new string[] { "ID", "DEPARTMENT_ID" }; var teams = GetEntities(t => !t.IS_DELETED && t.ENABLE_STATUS == 0, baseFilter); baseFilter.SelectField = new string[] { "TEAM_ID", "Nav_Team.NAME", "PRE_MEETING_STATUS", "DEPARTMENT_ID", "OVERTIME", "CREATE_TIME", "Nav_User.DEPARTMENT_ID" }; //指定字段,包括导航属性 - var preShiftMeetingTemp = GetEntities(i => i.CREATE_TIME >= startTime && i.IS_DELETED == false, baseFilter).ToList(); + var preShiftMeetingTemp = GetEntities(i => i.CREATE_TIME >= startTime && i.CREATE_TIME<= endTime && i.IS_DELETED == false, baseFilter).ToList(); //baseFilter.SelectField = new string[] { "CLASS_TEAM_ID", "Nav_Team.NAME", "SHIFT_STATUS", "DEPARTMENT_ID", "OVERTIME", "CREATE_TIME", "Nav_Editor.DEPARTMENT_ID" }; //指定字段,包括导航属性 //var currentShiftTemp = GetEntities(i => i.CREATE_TIME >= startTime && i.IS_DELETED == false, baseFilter).ToList(); //baseFilter.SelectField = new string[] { "TEAM_ID", "Nav_Team.NAME", "SHIFT_STATUS", "DEPARTMENT_ID", "OVERTIME", "CREATE_TIME" }; //指定字段,包括导航属性 //var changeShiftTemp = GetEntities(i => i.CREATE_TIME >= startTime && i.IS_DELETED == false, baseFilter).ToList(); baseFilter.SelectField = new string[] { "TEAM_ID", "Nav_Taem.NAME", "TA_STATUS", "Nav_Taem.DEPARTMENT_ID", "OVERTIME", "CREATE_TIME", "Nav_MainUser.DEPARTMENT_ID" }; //指定字段,包括导航属性 - var teamActivityTemp = GetEntities(i => i.CREATE_TIME >= startTime && i.IS_DELETED == false, baseFilter).ToList(); + var teamActivityTemp = GetEntities(i => i.CREATE_TIME >= startTime && i.CREATE_TIME <= endTime && i.IS_DELETED == false, baseFilter).ToList(); for (DateTime i = startTime; i <= endTime; i = i.AddMonths(i.Month - i.Month + 1).AddDays(1 - i.Day)) { var monthEnd = Convert.ToDateTime(i.AddMonths(i.Month - i.Month + 1).AddDays(1 - i.Day - 1).ToString().Replace("0:00:00", "23:59:59")); @@ -12683,41 +12699,45 @@ namespace APT.SC.WebApi.Controllers.Api.BIController foreach (var item in teamIds) { var first = departments.FirstOrDefault(t => t.ID == item); - var biSafeFinish = new T_BI_SAFETASK_FINISH(); - biSafeFinish.ORG_ID = filter.OrgId.Value; - biSafeFinish.TEAM_ID = item; - biSafeFinish.TEAM_NAME = first?.NAME; - var parentInfo = departments.FirstOrDefault(t => t.ID == first?.PARENT_ID); - if (parentInfo != null) + if (first != null) { - if (parentInfo.DEPARTMENT_TYPE == 15) + var biSafeFinish = new T_BI_SAFETASK_FINISH(); + biSafeFinish.ORG_ID = filter.OrgId.Value; + biSafeFinish.TEAM_ID = item; + biSafeFinish.TEAM_NAME = first?.NAME; + var parentInfo = departments.FirstOrDefault(t => t.ID == first?.PARENT_ID); + if (parentInfo != null) { - var parentUp = departments.FirstOrDefault(t => t.ID == parentInfo.PARENT_ID); - if (parentUp != null) + if (parentInfo.DEPARTMENT_TYPE == 15) { - //biSafeFinish.shopId = parentUp.ID; - biSafeFinish.DEPARTMENT_NAME = parentUp.NAME; + var parentUp = departments.FirstOrDefault(t => t.ID == parentInfo.PARENT_ID); + if (parentUp != null) + { + //biSafeFinish.shopId = parentUp.ID; + biSafeFinish.DEPARTMENT_NAME = parentUp.NAME; + } + } + else + { + //biSafeFinish.shopId = parentInfo.ID; + biSafeFinish.DEPARTMENT_NAME = parentInfo.NAME; } } - else - { - //biSafeFinish.shopId = parentInfo.ID; - biSafeFinish.DEPARTMENT_NAME = parentInfo.NAME; - } + biSafeFinish.FO01_TOTAL = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "班前会议"); + biSafeFinish.FO01_FINISH = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "班前会议" && t.FORM_STATUS == "归档" && t.OVERTIME != FOISOVERTIME.超时); + biSafeFinish.FO01_UNFINISH = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "班前会议" && t.FORM_STATUS != "归档"); + biSafeFinish.FO01_OVERTIME = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "班前会议" && t.FORM_STATUS == "归档" && t.OVERTIME == FOISOVERTIME.超时); + biSafeFinish.FO02_TOTAL = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位当班记录"); + biSafeFinish.FO02_FINISH = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位当班记录" && t.FORM_STATUS == "归档" && t.OVERTIME != FOISOVERTIME.超时); + biSafeFinish.FO02_UNFINISH = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位当班记录" && t.FORM_STATUS != "归档"); + biSafeFinish.FO02_OVERTIME = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位当班记录" && t.FORM_STATUS == "归档" && t.OVERTIME == FOISOVERTIME.超时); + biSafeFinish.FO03_TOTAL = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位交接班"); + biSafeFinish.FO03_FINISH = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位交接班" && t.FORM_STATUS == "归档" && t.OVERTIME != FOISOVERTIME.超时); + biSafeFinish.FO03_UNFINISH = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位交接班" && t.FORM_STATUS != "归档"); + biSafeFinish.FO03_OVERTIME = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位交接班" && t.FORM_STATUS == "归档" && t.OVERTIME == FOISOVERTIME.超时); + completions.Add(biSafeFinish); } - biSafeFinish.FO01_TOTAL = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME=="班前会议"); - biSafeFinish.FO01_FINISH = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "班前会议" && t.FORM_STATUS == "归档" && t.OVERTIME != FOISOVERTIME.超时); - biSafeFinish.FO01_UNFINISH = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "班前会议" && t.FORM_STATUS != "归档"); - biSafeFinish.FO01_OVERTIME = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "班前会议" && t.FORM_STATUS == "归档" && t.OVERTIME == FOISOVERTIME.超时); - biSafeFinish.FO02_TOTAL = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位当班记录"); - biSafeFinish.FO02_FINISH = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位当班记录" && t.FORM_STATUS == "归档" && t.OVERTIME != FOISOVERTIME.超时); - biSafeFinish.FO02_UNFINISH = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位当班记录" && t.FORM_STATUS != "归档"); - biSafeFinish.FO02_OVERTIME = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位当班记录" && t.FORM_STATUS == "归档" && t.OVERTIME == FOISOVERTIME.超时); - biSafeFinish.FO03_TOTAL = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位交接班"); - biSafeFinish.FO03_FINISH = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位交接班" && t.FORM_STATUS == "归档" && t.OVERTIME != FOISOVERTIME.超时); - biSafeFinish.FO03_UNFINISH = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位交接班" && t.FORM_STATUS != "归档"); - biSafeFinish.FO03_OVERTIME = allInfos.Count(t => t.TEAM_ID == item && t.FORM_NAME == "岗位交接班" && t.FORM_STATUS == "归档" && t.OVERTIME == FOISOVERTIME.超时); - completions.Add(biSafeFinish); + } } completions = completions.OrderBy(t => t.DEPARTMENT_NAME).ThenBy(m => m.TEAM_NAME).ToList(); @@ -12744,9 +12764,13 @@ namespace APT.SC.WebApi.Controllers.Api.BIController var changeShiftTemp = GetEntities(i => i.CREATE_TIME >= startTime && i.CREATE_TIME <= endTime && i.IS_DELETED == false, baseFilter).ToList(); //baseFilter.SelectField = new string[] { "TEAM_ID", "Nav_Taem.NAME", "TA_STATUS", "Nav_Taem.DEPARTMENT_ID", "OVERTIME", "CREATE_TIME", "Nav_MainUser.DEPARTMENT_ID" }; //指定字段,包括导航属性 //var teamActivityTemp = GetEntities(i => i.CREATE_TIME >= startTime && i.IS_DELETED == false, baseFilter).ToList(); - + var sourceIds = preShiftMeetingTemp.Select(t => t.ID).ToList(); + var curIds = currentShiftTemp.Select(t => t.ID).ToList(); + sourceIds.AddRange(curIds); + var changeIds = changeShiftTemp.Select(t => t.ID).ToList(); + sourceIds.AddRange(changeIds); baseFilter.SelectField = new string[] { "SOURCE_DATA_ID" }; - var allnoticeTask = GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime, baseFilter); + var allnoticeTask = GetEntities(t => t.NOTICE_STATUS == 2 && t.CREATE_TIME >= startTime && t.SOURCE_DATA_ID !=null&& sourceIds.Contains((Guid)t.SOURCE_DATA_ID), baseFilter); foreach (var item in preShiftMeetingTemp) { if (item.TEAM_ID == null) @@ -12756,10 +12780,17 @@ namespace APT.SC.WebApi.Controllers.Api.BIController else { var deparId = teams.FirstOrDefault(t => t.ID == item.TEAM_ID)?.DEPARTMENT_ID; - item.TEAM_ID = deparId; + if (deparId == null) + { + item.TEAM_ID = item.Nav_User?.DEPARTMENT_ID; + } + else + { + item.TEAM_ID = deparId; + } } - var isOver = allnoticeTask.Where(t => t.SOURCE_DATA_ID == item.ID); - if (isOver.Any()) + var isOver = allnoticeTask.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID); + if (isOver!=null) { item.OVERTIME = FOISOVERTIME.超时; } @@ -12774,11 +12805,6 @@ namespace APT.SC.WebApi.Controllers.Api.BIController biSafeFinish.OVERTIME = item.OVERTIME; biSafeFinish.FORM_STATUS = item.PRE_MEETING_STATUS.GetDescription(); completions.Add(biSafeFinish); - //biSafeFinish.TEAM_CHARGE_USER = team.Nav_ChargePerson.NAME; - //biSafeFinish.FO01_TOTAL = fo01a.Count(); - //biSafeFinish.FO01_FINISH = fo01a.Count(t => t.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档 && t.OVERTIME != FOISOVERTIME.超时); - //biSafeFinish.FO01_UNFINISH = fo01a.Count(t => t.PRE_MEETING_STATUS < FOPreMeetingStatusEnum.归档); - //biSafeFinish.FO01_OVERTIME = fo01a.Count(t => t.OVERTIME == FOISOVERTIME.超时); } foreach (var item in currentShiftTemp) { @@ -12789,10 +12815,18 @@ namespace APT.SC.WebApi.Controllers.Api.BIController else { var deparId = teams.FirstOrDefault(t => t.ID == item.CLASS_TEAM_ID)?.DEPARTMENT_ID; - item.CLASS_TEAM_ID = deparId; + if (deparId == null) + { + item.CLASS_TEAM_ID = item.Nav_Editor?.DEPARTMENT_ID; + } + else + { + item.CLASS_TEAM_ID = deparId; + } + } - var isOver = allnoticeTask.Where(t => t.SOURCE_DATA_ID == item.ID); - if (isOver.Any()) + var isOver = allnoticeTask.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID); + if (isOver!=null) { item.OVERTIME = FOISOVERTIME.超时; } @@ -12817,10 +12851,17 @@ namespace APT.SC.WebApi.Controllers.Api.BIController else { var deparId = teams.FirstOrDefault(t => t.ID == item.TEAM_ID)?.DEPARTMENT_ID; - item.TEAM_ID = deparId; + if (deparId == null) + { + item.TEAM_ID = item.Nav_Editor?.DEPARTMENT_ID; + } + else + { + item.TEAM_ID = deparId; + } } - var isOver = allnoticeTask.Where(t => t.SOURCE_DATA_ID == item.ID); - if (isOver.Any()) + var isOver = allnoticeTask.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID); + if (isOver!=null) { item.OVERTIME = FOISOVERTIME.超时; } @@ -12828,7 +12869,6 @@ namespace APT.SC.WebApi.Controllers.Api.BIController { item.OVERTIME = FOISOVERTIME.未超时; } - var biSafeFinish = new T_BI_SAFETASK_FINISH(); biSafeFinish.ORG_ID = orgId; biSafeFinish.TEAM_ID = (Guid)item.TEAM_ID; @@ -12836,8 +12876,7 @@ namespace APT.SC.WebApi.Controllers.Api.BIController biSafeFinish.OVERTIME = item.OVERTIME; biSafeFinish.FORM_STATUS = Enum.GetName(typeof(FOChangeShiftStatusEnum), item.SHIFT_STATUS); completions.Add(biSafeFinish); - } - + } return completions; } public class JobInfo From c8d7d7ceb4813da3a08e6c9801bbf5510ed41ba9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E7=BE=8E=E8=8D=A3?= <10755671+mei-rong-he@user.noreply.gitee.com> Date: Mon, 27 Jul 2026 14:41:35 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Api/BIController/BIStatiscialAnalysisController.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs index 6626364..0dc5254 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs @@ -12347,7 +12347,7 @@ namespace APT.SC.WebApi.Controllers.Api.BIController run.FINISH_RATE = temp.ToString("0.0"); var temp2 = total == 0 ? 0 : (double)finish / total * 100; run.NORMAL_FINISH_RATE = temp2.ToString("0.0"); - run.TOTAL_QTY = total; + run.TOTAL_QTY = finish + overFinish; monthRuns.Add(run); } else @@ -12363,7 +12363,7 @@ namespace APT.SC.WebApi.Controllers.Api.BIController run.FINISH_RATE = temp.ToString("0"); var temp2 = total == 0 ? 0 : (double)finish / total * 100; run.NORMAL_FINISH_RATE = temp2.ToString("0"); - run.TOTAL_QTY = total; + run.TOTAL_QTY = finish + overFinish; monthRuns.Add(run); } }