From 7d7d1f3c87ed34f3cef9126c0526031c75858bf9 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: Wed, 14 Aug 2024 16:55:31 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=8A=A5=E8=A1=A8=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BIStatiscialAnalysisController.cs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 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 09d4812..d97338d 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs @@ -6143,10 +6143,10 @@ namespace APT.SC.WebApi.Controllers.Api.BIController { throw new Exception("请先选择时间开始时间和结束时间"); } - if (string.IsNullOrEmpty(pageFilter.Keyword)) - { - throw new Exception("部门未传入,请联系管理员"); - } + //if (string.IsNullOrEmpty(pageFilter.Keyword)) + //{ + // throw new Exception("部门未传入,请联系管理员"); + //} var newFilter = new BaseFilter(pageFilter.OrgId); DateTime year = DateTime.Parse(pageFilter.Parameter1); DateTime yearEnd = DateTime.Parse(pageFilter.Parameter2); @@ -6156,7 +6156,7 @@ namespace APT.SC.WebApi.Controllers.Api.BIController int dayDidd = span.Days + 1; if (dayDidd >= 180) throw new Exception("查询时间不能超过6个月!"); - var departmentId = Guid.Parse(pageFilter.Keyword); + //var departmentId = Guid.Parse(pageFilter.Keyword); List departSummary = new List(); var taskYear = this.GetEntities(t =>!t.IS_DELETED && t.CREATE_DATE >= year && t.CREATE_DATE <= yearEnd, new BaseFilter(pageFilter.OrgId)).ToList(); newFilter.SelectField = new List { "ID", "PARENT_ID", "NAME", "Nav_Parent", "DEPARTMENT_TYPE" }; @@ -6164,11 +6164,11 @@ namespace APT.SC.WebApi.Controllers.Api.BIController //newFilter.SelectField = new List { "ID", "DEPARTMENT_ID", "NAME" }; //var userInfos = this.GetEntities(t => !t.IS_DELETED, newFilter).ToList(); //部门级 - var departGroupYear = taskYear.Where(t => t.DEPT_DEPARTMENT_ID != null && t.DEPT_DEPARTMENT_ID == departmentId).ToList(); + var departGroupYear = taskYear.Where(t => t.DEPT_DEPARTMENT_ID != null).ToList(); //车间级 - var shopGroupYear = taskYear.Where(t => t.SHOP_DEPARTMENT_ID != null && t.DEPT_DEPARTMENT_ID == departmentId).ToList(); + var shopGroupYear = taskYear.Where(t => t.SHOP_DEPARTMENT_ID != null).ToList(); //班组级 - var classGroupYear = taskYear.Where(t => t.CLASS_DEPARTMENT_ID != null && t.DEPT_DEPARTMENT_ID == departmentId).ToList(); + var classGroupYear = taskYear.Where(t => t.CLASS_DEPARTMENT_ID != null).ToList(); //分组 if (departGroupYear.Any()) { From 546a979817987489663b4f839c969418552b3324 Mon Sep 17 00:00:00 2001 From: wjn Date: Thu, 15 Aug 2024 09:45:59 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Services/PF/PFApproveCallBackService.cs | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs index 74b55de..9c49a9b 100644 --- a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs +++ b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs @@ -4156,7 +4156,8 @@ namespace APT.BaseData.Services.DomainServices Guid sendUserId = Guid.Empty; string sendName = ""; var sendUser = new T_FM_USER(); - + var userDepartmentId = GetEntity(t => t.ID == entity.NOTE_TAKER_ID && t.ENABLE_STATUS == 0).DEPARTMENT_ID; + var department = GetEntity(userDepartmentId.ToString()); if (entity.LEVEL == FMDepartmentType.公司) { var approveRole = GetEntity(t => t.NAME == "安环部安全员").ID; @@ -4170,8 +4171,6 @@ namespace APT.BaseData.Services.DomainServices } else { - var userDepartmentId = GetEntity(t => t.ID == entity.NOTE_TAKER_ID && t.ENABLE_STATUS == 0).DEPARTMENT_ID; - var department = GetEntity(userDepartmentId.ToString()); Guid departmentId = Guid.Empty; if (department.DEPARTMENT_TYPE == (int)FMDepartmentType.班组) { @@ -4342,7 +4341,7 @@ namespace APT.BaseData.Services.DomainServices } entity.STATUS = FOPreMeetingStatusEnum.归档; - NotificationTaskService.SendNotificationTask("危险源与风险辨识评价结果", result.ID, orgId, sendUserId, sendName, + NotificationTaskService.SendNotificationTask("《"+department.NAME+"》危险源与风险辨识评价结果", result.ID, orgId, sendUserId, sendName, DateTime.Now, DateTime.Parse(DateTime.Now.AddDays(5).ToShortDateString() + " 23:59:59"), (int)FMNoticeTypeEnum.消息, "HM122", () => { if (entity != null) @@ -4475,7 +4474,8 @@ namespace APT.BaseData.Services.DomainServices Guid sendUserId = Guid.Empty; string sendName = ""; var sendUser = new T_FM_USER(); - + var userDepartmentId = GetEntity(t => t.ID == entity.NOTE_TAKER_ID && t.ENABLE_STATUS == 0).DEPARTMENT_ID; + var department = GetEntity(userDepartmentId.ToString()); if (entity.LEVEL == FMDepartmentType.公司) { var approveRole = GetEntity(t => t.NAME == "安环部安全员").ID; @@ -4489,8 +4489,6 @@ namespace APT.BaseData.Services.DomainServices } else { - var userDepartmentId = GetEntity(t => t.ID == entity.NOTE_TAKER_ID && t.ENABLE_STATUS == 0).DEPARTMENT_ID; - var department = GetEntity(userDepartmentId.ToString()); Guid departmentId = Guid.Empty; if (department.DEPARTMENT_TYPE == (int)FMDepartmentType.班组) { @@ -4613,7 +4611,7 @@ namespace APT.BaseData.Services.DomainServices } } entity.STATUS = FOPreMeetingStatusEnum.归档; - NotificationTaskService.SendNotificationTask("职业危害辨识评价结果", result.ID, orgId, sendUserId, sendName, + NotificationTaskService.SendNotificationTask("《"+department.NAME+">职业危害辨识评价结果", result.ID, orgId, sendUserId, sendName, DateTime.Now, DateTime.Parse(DateTime.Now.AddDays(5).ToShortDateString() + " 23:59:59"), (int)FMNoticeTypeEnum.消息, "HM122", () => { if (entity != null) From f89f320def81a8849d74e720c5d6519f1fc7112e 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, 26 Aug 2024 15:00:25 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=97=A5=E6=8A=A5=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BIStatiscialAnalysisController.cs | 193 ++++++++++++++++++ 1 file changed, 193 insertions(+) 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 d97338d..38d73b9 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs @@ -92,6 +92,9 @@ namespace APT.SC.WebApi.Controllers.Api.BIController public string DEPARTMENT_NAME { get; set; } public DateTime? CREATE_TIME { get; set; } + public DateTime? TASK_STARTDT { get; set; } + public DateTime? TASK_ENDDT { get; set; } + public DateTime? TASK_DT { get; set; } public string STATUS_NAME { get; set; } } public class GroupbyDepartmentCompletion @@ -330,6 +333,138 @@ namespace APT.SC.WebApi.Controllers.Api.BIController GetDepartmentIds(orgId, listDepIDInt, ref departmentIdPs); } } + [HttpPost, Route("GetFormRunDay")] + public JsonActionResult> GetFormRunDay([FromBody] KeywordFilter filter) + { + return SafeExecute>(() => + { + //首页待办增加数量统计字段 + if (string.IsNullOrEmpty(filter.Parameter1)) + { + throw new Exception("请先选择开始时间"); + } + if (string.IsNullOrEmpty(filter.Parameter2)) + { + throw new Exception("请先选择结束时间"); + } + DateTime startTime = Convert.ToDateTime(filter.Parameter1); + DateTime endTime = Convert.ToDateTime(filter.Parameter2); + var diffTime = startTime.AddDays(32).Date; + if (diffTime < endTime.Date) + { + throw new Exception("查询时间不能超过32天!"); + } + List formAnalysis = new List(); + var newFilter = new BaseFilter(filter.OrgId); + newFilter.IgnoreDataRule = true; + newFilter.SelectField = new List { "USER_ID", "NOTICE_STATUS" }; + var tasks = this.GetEntities(t => !t.IS_DELETED && t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && (t.NOTICE_STATUS == 0 || t.NOTICE_STATUS == 1 || t.NOTICE_STATUS == 2), newFilter).ToList(); + var userIds = tasks.Select(t => t.USER_ID).Distinct().ToList(); + var users = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_Department"); + var departments = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_Parent"); + if (tasks.Any()) + { + var company = departments.FirstOrDefault(t => t.DEPARTMENT_TYPE == 3); + foreach (var item in tasks) + { + var user = users.FirstOrDefault(t => t.ID == item.USER_ID); + if (user != null) + { + if (company != null) + item.DEPARTMENT_ID = company.ID; + var department = departments.FirstOrDefault(t => t.ID == user.Nav_Department?.PARENT_ID); + var type = user.Nav_Department?.DEPARTMENT_TYPE; + switch (type) + { + case 0: + item.DEPT_DEPARTMENT_ID = user.DEPARTMENT_ID; + item.SHOP_DEPARTMENT_ID = null; + item.CLASS_DEPARTMENT_ID = null; + break; + case 1: + item.DEPT_DEPARTMENT_ID = department.ID; + item.SHOP_DEPARTMENT_ID = user.DEPARTMENT_ID; + item.CLASS_DEPARTMENT_ID = null; + break; + case 2: + item.DEPT_DEPARTMENT_ID = department.PARENT_ID; + item.SHOP_DEPARTMENT_ID = department.ID; + item.CLASS_DEPARTMENT_ID = user.DEPARTMENT_ID; + break; + case 3: + item.DEPT_DEPARTMENT_ID = null; + item.SHOP_DEPARTMENT_ID = null; + item.CLASS_DEPARTMENT_ID = null; + break; + default: + break; + } + } + } + tasks = tasks.Where(t => t.DEPARTMENT_ID != null).ToList(); + tasks.ForEach(m => { m.DEPARTMENT_NAME = company?.NAME; }); + var departs = departments.Where(t => t.DEPARTMENT_TYPE == 2).OrderBy(m => m.PARENT_ID).ThenBy(k => k.NUM).ToList(); + if (!string.IsNullOrEmpty(filter.Keyword)) + { + var type = filter.Keyword.ToString(); + switch (type) + { + case "0": + tasks = tasks.Where(t => t.DEPT_DEPARTMENT_ID != null).ToList(); + tasks.ForEach(m => { m.DEPARTMENT_NAME = departments.FirstOrDefault(t => t.ID == m.DEPT_DEPARTMENT_ID)?.NAME; }); + departs = departments.Where(t => t.DEPARTMENT_TYPE == 0).OrderBy(m => m.PARENT_ID).ThenBy(k => k.NUM).ToList(); + break; + case "1": + tasks = tasks.Where(t => t.SHOP_DEPARTMENT_ID != null).ToList(); + tasks.ForEach(m => { m.DEPARTMENT_NAME = departments.FirstOrDefault(t => t.ID == m.SHOP_DEPARTMENT_ID)?.NAME; }); + departs = departments.Where(t => t.DEPARTMENT_TYPE == 1).OrderBy(m => m.PARENT_ID).ThenBy(k => k.NUM).ToList(); + break; + case "2": + tasks = tasks.Where(t => t.CLASS_DEPARTMENT_ID != null).ToList(); + tasks.ForEach(m => { m.DEPARTMENT_NAME = departments.FirstOrDefault(t => t.ID == m.CLASS_DEPARTMENT_ID)?.NAME; }); + departs = departments.Where(t => t.DEPARTMENT_TYPE == 2).OrderBy(m => m.PARENT_ID).ThenBy(k => k.NUM).ToList(); + break; + case "3": + departs = departments.Where(t => t.DEPARTMENT_TYPE == 0).OrderBy(m => m.PARENT_ID).ThenBy(k => k.NUM).ToList(); + break; + default: + break; + } + } + else + { + tasks = tasks.Where(t => t.CLASS_DEPARTMENT_ID != null).ToList(); + tasks.ForEach(m => { m.DEPARTMENT_NAME = departments.FirstOrDefault(t => t.ID == m.CLASS_DEPARTMENT_ID)?.NAME; }); + } + if (tasks.Any() && departs.Any()) + { + //var temp = tasks.GroupBy(t => t.DEPARTMENT_NAME).ToList(); + foreach (var item in departs) + { + var count = tasks.Where(t => t.DEPARTMENT_NAME == item.NAME).Count(); + var finish = tasks.Count(t => t.NOTICE_STATUS == 1 && t.DEPARTMENT_NAME == item.NAME); + var overfinish = tasks.Count(t => t.NOTICE_STATUS == 2 && t.DEPARTMENT_NAME == item.NAME); + var unfinish = count - finish - overfinish; + var temp1 = count == 0 ? 100 : (double)(finish + overfinish) / count * 100; + var finishRate = temp1.ToString("0") + "%"; + var temp2 = count == 0 ? 100 : (double)finish / count * 100; + var normalFinishRate = temp2.ToString("0") + "%"; + T_BI_FORM_RUN_ANALYSIS analysis = new T_BI_FORM_RUN_ANALYSIS(); + analysis.MOUDLE_NAME = item.NAME; + analysis.ORG_ID = filter.OrgId; + analysis.TOTAL_QTY = count; + analysis.FINISH_QTY = finish; + analysis.OVER_FINISH_QTY = overfinish; + analysis.UNFINISH_QTY = unfinish; + analysis.FINISH_RATE = finishRate; + analysis.NORMAL_FINISH_RATE = normalFinishRate; + formAnalysis.Add(analysis); + } + } + } + return formAnalysis; + }); + } [HttpPost, Route("GetFormRun")] public JsonActionResult> GetFormRun([FromBody] KeywordFilter filter) { @@ -4295,6 +4430,64 @@ namespace APT.SC.WebApi.Controllers.Api.BIController }); } + [HttpPost, Route("GetFormRunAnalyzeDay")] + public JsonActionResult> GetFormRunAnalyzeDay([FromBody] KeywordFilter filter) + { + return SafeExecute>(() => + { + //首页待办增加数量统计字段 + List formAnalysis = new List(); + if (string.IsNullOrEmpty(filter.Parameter1)) + { + throw new Exception("请先选择开始时间"); + } + if (string.IsNullOrEmpty(filter.Parameter2)) + { + throw new Exception("请先选择结束时间"); + } + if (string.IsNullOrEmpty(filter.Keyword)) + { + throw new Exception("未传入组织"); + } + var depart = this.GetEntity(t => t.NAME == filter.Keyword && t.ENABLE_STATUS == 0); + if (depart == null) + throw new Exception("组织" + filter.Keyword + "不存在,请确认!"); + DateTime startTime = Convert.ToDateTime(filter.Parameter1); + DateTime endTime = Convert.ToDateTime(filter.Parameter2); + var diffTime = startTime.AddDays(32).Date; + if (diffTime < endTime.Date) + { + throw new Exception("查询时间不能超过32天!"); + } + List outPartmentIds = new List(); + List inputIds = new List() { depart.ID }; + GetDepartmentIds(APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value, inputIds, ref outPartmentIds); + outPartmentIds.Add(depart.ID); + var userInfos = this.GetEntities(t => t.ENABLE_STATUS == 0 && outPartmentIds.Contains((Guid)t.DEPARTMENT_ID), new BaseFilter(filter.OrgId), "Nav_Department"); + var userIds = userInfos.Select(m => m.ID).ToList(); + var tasks = this.GetEntities(t => !t.IS_DELETED && t.CREATE_TIME >= startTime && t.CREATE_TIME <= endTime && userIds.Contains(t.USER_ID) && (t.NOTICE_STATUS == 0 || t.NOTICE_STATUS == 1 || t.NOTICE_STATUS == 2), new BaseFilter(filter.OrgId)).ToList(); + if (!string.IsNullOrEmpty(filter.Parameter3)) + { + tasks = tasks.Where(t => t.NOTICE_STATUS == int.Parse(filter.Parameter3)).ToList(); + } + if (tasks.Any()) + { + tasks.ForEach(t => + { + UnFinishInfo analysis = new UnFinishInfo(); + analysis.NAME = t.NOTICE_TITLE; + analysis.CREATE_NAME = userInfos.FirstOrDefault(m => m.ID == t.USER_ID)?.NAME; + analysis.DEPARTMENT_NAME = userInfos.FirstOrDefault(m => m.ID == t.USER_ID)?.Nav_Department?.NAME; + analysis.TASK_STARTDT = t.TASK_STARTDT; + analysis.TASK_ENDDT = t.TASK_ENDDT; + analysis.TASK_DT = t.TASK_DT; + analysis.STATUS_NAME = Enum.GetName(typeof(FMNoticeStatusEnum), t.NOTICE_STATUS); + formAnalysis.Add(analysis); + }); + } + return formAnalysis; + }); + } [HttpPost, Route("GetFormRunAnalyze")] public JsonActionResult> GetFormRunAnalyze([FromBody] KeywordFilter filter) { From 15d4e0129093a8a0b319f6a0583c1e355c55b65b 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, 26 Aug 2024 16:09:28 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Api/BIController/BIStatiscialAnalysisController.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 38d73b9..1011b82 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs @@ -425,7 +425,7 @@ namespace APT.SC.WebApi.Controllers.Api.BIController departs = departments.Where(t => t.DEPARTMENT_TYPE == 2).OrderBy(m => m.PARENT_ID).ThenBy(k => k.NUM).ToList(); break; case "3": - departs = departments.Where(t => t.DEPARTMENT_TYPE == 0).OrderBy(m => m.PARENT_ID).ThenBy(k => k.NUM).ToList(); + departs = departments.Where(t => t.DEPARTMENT_TYPE == 3).OrderBy(m => m.PARENT_ID).ThenBy(k => k.NUM).ToList(); break; default: break;