diff --git a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs index 3639927..1ebc8a3 100644 --- a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs +++ b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs @@ -11824,8 +11824,8 @@ namespace APT.BaseData.Services.DomainServices noticeDetail.HIDDEN_PLACE = detail.HIDDEN_PLACE; noticeDetail.RECITIFY_TIME = detail.RECITIFY_TIME; noticeDetail.RECITIFY_USER_ID = detail.RECITIFY_USER_ID; - noticeDetail.RECTIFICATION_MEASURES = hidDescrip?.DEMAND; - noticeDetail.REMARK = detail.REMARK; + noticeDetail.RECTIFICATION_MEASURES = detail.REMARK; + //noticeDetail.REMARK = detail.REMARK; noticeDetails.Add(noticeDetail); if (detail.Nav_ReportDetailFiles != null && detail.Nav_ReportDetailFiles.Any()) { @@ -12077,7 +12077,7 @@ namespace APT.BaseData.Services.DomainServices record.HIDDEN_PLACE = entity.HIDDEN_PLACE; record.CHECK_CONTENTS_ID = entity.CHECK_CONTENTS_ID; record.CHECK_QUESTION_ID = entity.CHECK_QUESTION_ID; - record.HIDDEN_DESCRIPTION = entity.HIDDEN_DESCRIPTION; + record.HIDDEN_DESCRIPTION = entity.HIDDEN_DESCRIPTION_DETAIL; record.HIDDEN_LEVEL = entity.HIDDEN_LEVEL; record.RECITIFY_TIME = entity.RECITIFY_TIME; record.RECITIFY_USER_ID = entity.RECITIFY_USER_ID; @@ -12086,7 +12086,7 @@ namespace APT.BaseData.Services.DomainServices record.CHECK_PERSON = user.NAME; record.IMPLEMENT_USER_ID = entity.RECITIFY_USER_ID; record.ACCEPT_USER_ID = acceptUser?.ID; - record.RECTIFICATION_MEASURES = entity.REMARK; + record.RECTIFICATION_MEASURES = entity.RECTIFICATION_MEASURES; record.NOTICE_CODE = entity.NOTICE_CODE; if (photos != null && photos.Any()) { @@ -12142,7 +12142,7 @@ namespace APT.BaseData.Services.DomainServices record.HIDDEN_PLACE = entity.HIDDEN_PLACE; record.CHECK_CONTENTS_ID = entity.CHECK_CONTENTS_ID; record.CHECK_QUESTION_ID = entity.CHECK_QUESTION_ID; - record.HIDDEN_DESCRIPTION = entity.HIDDEN_DESCRIPTION; + record.HIDDEN_DESCRIPTION = entity.HIDDEN_DESCRIPTION_DETAIL; record.HIDDEN_LEVEL = entity.HIDDEN_LEVEL; record.RECITIFY_TIME = entity.RECITIFY_TIME; record.RECITIFY_USER_ID = entity.RECITIFY_USER_ID; @@ -12151,7 +12151,7 @@ namespace APT.BaseData.Services.DomainServices record.CHECK_PERSON = user.NAME; record.IMPLEMENT_USER_ID = entity.RECITIFY_USER_ID; record.ACCEPT_USER_ID = acceptUser?.ID; - record.RECTIFICATION_MEASURES = entity.REMARK; + record.RECTIFICATION_MEASURES = entity.RECTIFICATION_MEASURES; record.NOTICE_CODE = entity.NOTICE_CODE; if (photos != null && photos.Any()) { @@ -12238,8 +12238,8 @@ namespace APT.BaseData.Services.DomainServices noticeDetail.CHECKCONTENT = entity.CHECKCONTENT; noticeDetail.CHECKPROOF = entity.CHECKPROOF; noticeDetail.CHECKSTANDARD = entity.CHECKSTANDARD; - noticeDetail.HIDDEN_DESCRIPTION = entity.HIDDEN_DESCRIPTION; - noticeDetail.RECTIFICATION_MEASURES = hidDescrip?.DEMAND; + noticeDetail.HIDDEN_DESCRIPTION = entity.HIDDEN_DESCRIPTION_DETAIL; + noticeDetail.RECTIFICATION_MEASURES = entity.RECTIFICATION_MEASURES; noticeDetail.HIDDEN_LEVEL = entity.HIDDEN_LEVEL; noticeDetail.HIDDEN_PLACE = entity.HIDDEN_PLACE; noticeDetail.RECITIFY_TIME = entity.RECITIFY_TIME; diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FMController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FMController.cs index f639dcc..c0c93d5 100644 --- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FMController.cs +++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FMController.cs @@ -260,220 +260,412 @@ namespace APT.PP.WebApi.Controllers.Api.PP 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" }; //指定字段,包括导航属性 - var preShiftMeetingTemp = GetEntities(i => i.CREATE_TIME >= startTime && i.TEAM_ID != null && i.Nav_Team.IS_DELETED == false && i.IS_DELETED == false && i.DEPARTMENT_ID != null, baseFilter).ToList(); + var preShiftMeetingTemp = GetEntities(i => i.CREATE_TIME >= startTime && i.IS_DELETED == false, baseFilter).ToList(); baseFilter.SelectField = new string[] { "CLASS_TEAM_ID", "Nav_Team.NAME", "SHIFT_STATUS", "DEPARTMENT_ID", "OVERTIME", "CREATE_TIME" }; //指定字段,包括导航属性 - var currentShiftTemp = GetEntities(i => i.CREATE_TIME >= startTime && i.Nav_Team.IS_DELETED == false && i.CLASS_TEAM_ID != null && i.IS_DELETED == false && i.DEPARTMENT_ID != null, baseFilter).ToList(); + 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.TEAM_ID != null && i.Nav_Team.IS_DELETED == false && i.IS_DELETED == false && i.DEPARTMENT_ID != null, baseFilter).ToList(); + 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" }; //指定字段,包括导航属性 - var teamActivityTemp = GetEntities(i => i.CREATE_TIME >= startTime && i.TEAM_ID != null && i.Nav_Taem.IS_DELETED == false && i.IS_DELETED == false && i.Nav_Taem.DEPARTMENT_ID != null, baseFilter).ToList(); + var teamActivityTemp = GetEntities(i => i.CREATE_TIME >= startTime && 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")); var preTemp = preShiftMeetingTemp.Where(t => t.CREATE_TIME >= i && t.CREATE_TIME <= monthEnd).ToList(); + foreach (var item in preTemp) + { + if (item.TEAM_ID == null) + { + item.TEAM_ID = item.DEPARTMENT_ID; + } + else + { + var deparId = teams.FirstOrDefault(t => t.ID == item.TEAM_ID)?.DEPARTMENT_ID; + item.TEAM_ID = deparId; + } + } var preShiftMeeting = preTemp. - GroupBy(m => new { m.TEAM_ID, TeamName = m.Nav_Team.NAME, m.DEPARTMENT_ID }). + GroupBy(m => new { m.TEAM_ID }). Select(group => new { - group.Key, + group.Key.TEAM_ID, totalCount = group.Count(), finishCount = group.Where(i => i.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档).Count(), waitingCount = group.Where(i => i.PRE_MEETING_STATUS != FOPreMeetingStatusEnum.归档).Count(), onTimeCount = group.Where(i => i.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档 && i.OVERTIME == FOISOVERTIME.超时).Count(), overTimeCount = group.Where(i => i.PRE_MEETING_STATUS == FOPreMeetingStatusEnum.归档 && i.OVERTIME == FOISOVERTIME.超时).Count() }).ToList(); - foreach (var item in preShiftMeeting) + if (preShiftMeeting.Any()) { - var deparId = teams.FirstOrDefault(t => t.ID == item.Key.TEAM_ID)?.DEPARTMENT_ID; - var departInfo = departments.FirstOrDefault(t => t.ID == deparId); //GetDepartmentId((Guid)item.Key.DEPARTMENT_ID); + foreach (var item in preShiftMeeting) + { + //var deparId = teams.FirstOrDefault(t => t.ID == item.Key.TEAM_ID)?.DEPARTMENT_ID; + var departInfo = departments.FirstOrDefault(t => t.ID == item.TEAM_ID); //GetDepartmentId((Guid)item.Key.DEPARTMENT_ID); + T_FM_DEPARTMENT_COMPLETION completion = new T_FM_DEPARTMENT_COMPLETION(); + completion.MONTH = i; + completion.MONTHStr = i.Year + "年" + i.Month + "月"; + completion.TOTAL_COUNT = item.totalCount; + completion.WAITTING_COUNT = item.waitingCount; + completion.FINISH_COUNT = item.finishCount; + completion.ONTIME_COUNT = item.onTimeCount; + completion.OVERTIME_COUNT = item.overTimeCount; + completion.FORM_NAME = "班前会议"; + completion.ORG_ID = filter.GetOrgId(); + completion.START_TIME = i; + completion.END_TIME = monthEnd; + if (departInfo != null) + { + //if (departInfo.DEPARTMENT_TYPE == 10 || departInfo.DEPARTMENT_TYPE == 5) + //{ + // completion.DEPARTMENT_ID = item.Key.TEAM_ID; + // completion.DEPARTMENT_NAME = item.Key.TeamName; + // completion.SHOP_DEPARTMENT_ID = null; + // completion.SHOP_DEPARTMENT_NAME = null; + // completion.TEAM_ID = null; + // completion.TEAM_NAME = null; + //} + //if (departInfo.DEPARTMENT_TYPE == 15) + //{ + // completion.DEPARTMENT_ID = departInfo?.PARENT_ID; + // completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; + // completion.SHOP_DEPARTMENT_ID = item.Key.TEAM_ID; + // completion.SHOP_DEPARTMENT_NAME = item.Key.TeamName; + // completion.TEAM_ID = null; + // completion.TEAM_NAME = null; + //} + //if (departInfo.DEPARTMENT_TYPE == 20) + //{ + // completion.DEPARTMENT_ID = departInfo?.Nav_Parent?.PARENT_ID; + // completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.Nav_Parent?.NAME; + // completion.SHOP_DEPARTMENT_ID = departInfo?.PARENT_ID; + // completion.SHOP_DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; + // completion.TEAM_ID = departInfo.ID; + // completion.TEAM_NAME = departInfo.NAME; + //} + completion.DEPARTMENT_ID = departInfo?.PARENT_ID; + completion.DEPARTMENT_NAME = departments.FirstOrDefault(t => t.ID == completion.DEPARTMENT_ID)?.NAME; + completion.TEAM_ID = departInfo?.ID; + completion.TEAM_NAME = departInfo?.NAME; + } + completions.Add(completion); + } + } + else + { + T_FM_DEPARTMENT_COMPLETION completion = new T_FM_DEPARTMENT_COMPLETION(); completion.MONTH = i; completion.MONTHStr = i.Year + "年" + i.Month + "月"; - completion.TOTAL_COUNT = item.totalCount; - completion.WAITTING_COUNT = item.waitingCount; - completion.FINISH_COUNT = item.finishCount; - completion.ONTIME_COUNT = item.onTimeCount; - completion.OVERTIME_COUNT = item.overTimeCount; + completion.TOTAL_COUNT = 0; + completion.WAITTING_COUNT = 0; + completion.FINISH_COUNT = 0; + completion.ONTIME_COUNT = 0; + completion.OVERTIME_COUNT = 0; completion.FORM_NAME = "班前会议"; completion.ORG_ID = filter.GetOrgId(); completion.START_TIME = i; completion.END_TIME = monthEnd; - if (departInfo != null) - { - if (departInfo.DEPARTMENT_TYPE == 10) - { - completion.DEPARTMENT_ID = item.Key.TEAM_ID; - completion.DEPARTMENT_NAME = item.Key.TeamName; - } - if (departInfo.DEPARTMENT_TYPE == 15) - { - completion.DEPARTMENT_ID = departInfo?.PARENT_ID; - completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; - completion.SHOP_DEPARTMENT_ID = item.Key.TEAM_ID; - completion.SHOP_DEPARTMENT_NAME = item.Key.TeamName; - } - if (departInfo.DEPARTMENT_TYPE == 20) - { - completion.DEPARTMENT_ID = departInfo?.Nav_Parent?.PARENT_ID; - completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.Nav_Parent?.NAME; - completion.SHOP_DEPARTMENT_ID = departInfo?.PARENT_ID; - completion.SHOP_DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; - completion.TEAM_ID = item.Key.TEAM_ID; - completion.TEAM_NAME = item.Key.TeamName; - } - } completions.Add(completion); } - var currentTemp = currentShiftTemp.Where(t => t.CREATE_TIME >= i && t.CREATE_TIME <= monthEnd).ToList(); + var currentTemp = currentShiftTemp.Where(t => t.CREATE_TIME >= i && t.CREATE_TIME <= monthEnd).ToList(); + foreach (var item in currentTemp) + { + if (item.CLASS_TEAM_ID == null) + { + item.CLASS_TEAM_ID = item.DEPARTMENT_ID; + } + else + { + var deparId = teams.FirstOrDefault(t => t.ID == item.CLASS_TEAM_ID)?.DEPARTMENT_ID; + item.CLASS_TEAM_ID = deparId; + } + } var currentShift = currentTemp. - GroupBy(m => new { m.CLASS_TEAM_ID, TeamName = m.Nav_Team.NAME, m.DEPARTMENT_ID }). + GroupBy(m => new { TEAM_ID = m.CLASS_TEAM_ID }). Select(group => new - { - group.Key, + { + group.Key.TEAM_ID, totalCount = group.Count(), finishCount = group.Where(i => i.SHIFT_STATUS == (int)FOShiftStatusEnum.归档 || i.SHIFT_STATUS == (int)FOShiftStatusEnum.审批归档).Count(), waitingCount = group.Where(i => i.SHIFT_STATUS != (int)FOShiftStatusEnum.归档 && i.SHIFT_STATUS == (int)FOShiftStatusEnum.归档).Count(), onTimeCount = group.Where(i => (i.SHIFT_STATUS == (int)FOShiftStatusEnum.归档 || i.SHIFT_STATUS == (int)FOShiftStatusEnum.审批归档) && i.OVERTIME == FOISOVERTIME.未超时).Count(), overTimeCount = group.Where(i => (i.SHIFT_STATUS == (int)FOShiftStatusEnum.归档 || i.SHIFT_STATUS == (int)FOShiftStatusEnum.审批归档) && i.OVERTIME == FOISOVERTIME.超时).Count() }).ToList(); - foreach (var item in currentShift) + if (currentShift.Any()) { - var deparId = teams.FirstOrDefault(t => t.ID == item.Key.CLASS_TEAM_ID)?.DEPARTMENT_ID; - var departInfo = departments.FirstOrDefault(t => t.ID == deparId); //GetDepartmentId((Guid)item.Key.DEPARTMENT_ID); + foreach (var item in currentShift) + { + //var deparId = teams.FirstOrDefault(t => t.ID == item.Key.CLASS_TEAM_ID)?.DEPARTMENT_ID; + var departInfo = departments.FirstOrDefault(t => t.ID == item.TEAM_ID); //GetDepartmentId((Guid)item.Key.DEPARTMENT_ID); + T_FM_DEPARTMENT_COMPLETION completion = new T_FM_DEPARTMENT_COMPLETION(); + //completion.DEPARTMENT_ID = departInfo?.Nav_Parent?.PARENT_ID; + //completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.Nav_Parent?.NAME; + //completion.SHOP_DEPARTMENT_ID = departInfo?.PARENT_ID; + //completion.SHOP_DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; + completion.MONTH = i; + completion.MONTHStr = i.Year + "年" + i.Month + "月"; + //completion.TEAM_ID = item.Key.CLASS_TEAM_ID; + //completion.TEAM_NAME = item.Key.TeamName; + completion.TOTAL_COUNT = item.totalCount; + completion.WAITTING_COUNT = item.waitingCount; + completion.FINISH_COUNT = item.finishCount; + completion.ONTIME_COUNT = item.onTimeCount; + completion.OVERTIME_COUNT = item.overTimeCount; + completion.FORM_NAME = "岗位当班"; + completion.ORG_ID = filter.GetOrgId(); + completion.START_TIME = i; + completion.END_TIME = monthEnd; + if (departInfo != null) + { + //if (departInfo.DEPARTMENT_TYPE == 10 || departInfo.DEPARTMENT_TYPE == 5) + //{ + // completion.DEPARTMENT_ID = item.Key.CLASS_TEAM_ID; + // completion.DEPARTMENT_NAME = item.Key.TeamName; + // completion.SHOP_DEPARTMENT_ID = null; + // completion.SHOP_DEPARTMENT_NAME = null; + // completion.TEAM_ID = null; + // completion.TEAM_NAME = null; + //} + //if (departInfo.DEPARTMENT_TYPE == 15) + //{ + // completion.DEPARTMENT_ID = departInfo?.PARENT_ID; + // completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; + // completion.SHOP_DEPARTMENT_ID = item.Key.CLASS_TEAM_ID; + // completion.SHOP_DEPARTMENT_NAME = item.Key.TeamName; + // completion.TEAM_ID = null; + // completion.TEAM_NAME = null; + //} + //if (departInfo.DEPARTMENT_TYPE == 20) + //{ + // completion.DEPARTMENT_ID = departInfo?.Nav_Parent?.PARENT_ID; + // completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.Nav_Parent?.NAME; + // completion.SHOP_DEPARTMENT_ID = departInfo?.PARENT_ID; + // completion.SHOP_DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; + // completion.TEAM_ID = departInfo.ID; + // completion.TEAM_NAME = departInfo.NAME; + //} + completion.DEPARTMENT_ID = departInfo?.PARENT_ID; + completion.DEPARTMENT_NAME = departments.FirstOrDefault(t => t.ID == completion.DEPARTMENT_ID)?.NAME; + completion.TEAM_ID = departInfo?.ID; + completion.TEAM_NAME = departInfo?.NAME; + } + completions.Add(completion); + } + } + else + { + T_FM_DEPARTMENT_COMPLETION completion = new T_FM_DEPARTMENT_COMPLETION(); - //completion.DEPARTMENT_ID = departInfo?.Nav_Parent?.PARENT_ID; - //completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.Nav_Parent?.NAME; - //completion.SHOP_DEPARTMENT_ID = departInfo?.PARENT_ID; - //completion.SHOP_DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; completion.MONTH = i; completion.MONTHStr = i.Year + "年" + i.Month + "月"; - //completion.TEAM_ID = item.Key.CLASS_TEAM_ID; - //completion.TEAM_NAME = item.Key.TeamName; - completion.TOTAL_COUNT = item.totalCount; - completion.WAITTING_COUNT = item.waitingCount; - completion.FINISH_COUNT = item.finishCount; - completion.ONTIME_COUNT = item.onTimeCount; - completion.OVERTIME_COUNT = item.overTimeCount; + completion.TOTAL_COUNT = 0; + completion.WAITTING_COUNT = 0; + completion.FINISH_COUNT = 0; + completion.ONTIME_COUNT = 0; + completion.OVERTIME_COUNT = 0; completion.FORM_NAME = "岗位当班"; completion.ORG_ID = filter.GetOrgId(); completion.START_TIME = i; completion.END_TIME = monthEnd; - if (departInfo != null) - { - if (departInfo.DEPARTMENT_TYPE == 10) - { - completion.DEPARTMENT_ID = item.Key.CLASS_TEAM_ID; - completion.DEPARTMENT_NAME = item.Key.TeamName; - } - if (departInfo.DEPARTMENT_TYPE == 15) - { - completion.DEPARTMENT_ID = departInfo?.PARENT_ID; - completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; - completion.SHOP_DEPARTMENT_ID = item.Key.CLASS_TEAM_ID; - completion.SHOP_DEPARTMENT_NAME = item.Key.TeamName; - } - if (departInfo.DEPARTMENT_TYPE == 20) - { - completion.DEPARTMENT_ID = departInfo?.Nav_Parent?.PARENT_ID; - completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.Nav_Parent?.NAME; - completion.SHOP_DEPARTMENT_ID = departInfo?.PARENT_ID; - completion.SHOP_DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; - completion.TEAM_ID = item.Key.CLASS_TEAM_ID; - completion.TEAM_NAME = item.Key.TeamName; - } - } completions.Add(completion); } - var changeTemp = changeShiftTemp.Where(t => t.CREATE_TIME >= i && t.CREATE_TIME <= monthEnd).ToList(); + var changeTemp = changeShiftTemp.Where(t => t.CREATE_TIME >= i && t.CREATE_TIME <= monthEnd).ToList(); + foreach (var item in changeTemp) + { + if (item.TEAM_ID == null) + { + item.TEAM_ID = item.DEPARTMENT_ID; + } + else + { + var deparId = teams.FirstOrDefault(t => t.ID == item.TEAM_ID)?.DEPARTMENT_ID; + item.TEAM_ID = deparId; + } + } var changeShift = changeTemp. - GroupBy(m => new { m.TEAM_ID, TeamName = m.Nav_Team.NAME, m.DEPARTMENT_ID }). + GroupBy(m => new { m.TEAM_ID }). Select(group => new { - group.Key, + group.Key.TEAM_ID, totalCount = group.Count(), finishCount = group.Where(i => i.SHIFT_STATUS == (int)FOChangeShiftStatusEnum.归档).Count(), waitingCount = group.Where(i => i.SHIFT_STATUS != (int)FOChangeShiftStatusEnum.归档).Count(), onTimeCount = group.Where(i => i.SHIFT_STATUS == (int)FOChangeShiftStatusEnum.归档 && i.OVERTIME == FOISOVERTIME.未超时).Count(), overTimeCount = group.Where(i => i.SHIFT_STATUS == (int)FOChangeShiftStatusEnum.归档 && i.OVERTIME == FOISOVERTIME.超时).Count() }).ToList(); - foreach (var item in changeShift) + if (changeShift.Any()) { - var deparId = teams.FirstOrDefault(t => t.ID == item.Key.TEAM_ID)?.DEPARTMENT_ID; - var departInfo = departments.FirstOrDefault(t => t.ID == deparId); //GetDepartmentId((Guid)item.Key.DEPARTMENT_ID); + foreach (var item in changeShift) + { + var departInfo = departments.FirstOrDefault(t => t.ID == item.TEAM_ID); + //var departInfo = departments.FirstOrDefault(t => t.ID == deparId); //GetDepartmentId((Guid)item.Key.DEPARTMENT_ID); + T_FM_DEPARTMENT_COMPLETION completion = new T_FM_DEPARTMENT_COMPLETION(); + //completion.DEPARTMENT_ID = departInfo?.Nav_Parent?.PARENT_ID; + //completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.Nav_Parent?.NAME; + //completion.SHOP_DEPARTMENT_ID = departInfo?.PARENT_ID; + //completion.SHOP_DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; + completion.MONTH = i; + completion.MONTHStr = i.Year + "年" + i.Month + "月"; + //completion.TEAM_ID = item.Key.TEAM_ID; + //completion.TEAM_NAME = item.Key.TeamName; + completion.TOTAL_COUNT = item.totalCount; + completion.WAITTING_COUNT = item.waitingCount; + completion.FINISH_COUNT = item.finishCount; + completion.ONTIME_COUNT = item.onTimeCount; + completion.OVERTIME_COUNT = item.overTimeCount; + completion.FORM_NAME = "岗位交接班"; + completion.ORG_ID = filter.GetOrgId(); + completion.START_TIME = i; + completion.END_TIME = monthEnd; + if (departInfo != null) + { + //if (departInfo.DEPARTMENT_TYPE == 10 || departInfo.DEPARTMENT_TYPE == 5) + //{ + // completion.DEPARTMENT_ID = item.Key.TEAM_ID; + // completion.DEPARTMENT_NAME = item.Key.TeamName; + // completion.SHOP_DEPARTMENT_ID = null; + // completion.SHOP_DEPARTMENT_NAME = null; + // completion.TEAM_ID = null; + // completion.TEAM_NAME = null; + //} + //if (departInfo.DEPARTMENT_TYPE == 15) + //{ + // completion.DEPARTMENT_ID = departInfo?.PARENT_ID; + // completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; + // completion.SHOP_DEPARTMENT_ID = item.Key.TEAM_ID; + // completion.SHOP_DEPARTMENT_NAME = item.Key.TeamName; + // completion.TEAM_ID = null; + // completion.TEAM_NAME = null; + //} + //if (departInfo.DEPARTMENT_TYPE == 20) + //{ + // completion.DEPARTMENT_ID = departInfo?.Nav_Parent?.PARENT_ID; + // completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.Nav_Parent?.NAME; + // completion.SHOP_DEPARTMENT_ID = departInfo?.PARENT_ID; + // completion.SHOP_DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; + // completion.TEAM_ID = departInfo.ID; + // completion.TEAM_NAME = departInfo.NAME; + //} + completion.DEPARTMENT_ID = departInfo?.PARENT_ID; + completion.DEPARTMENT_NAME = departments.FirstOrDefault(t => t.ID == completion.DEPARTMENT_ID)?.NAME; + completion.TEAM_ID = departInfo?.ID; + completion.TEAM_NAME = departInfo?.NAME; + } + completions.Add(completion); + } + } + else + { + T_FM_DEPARTMENT_COMPLETION completion = new T_FM_DEPARTMENT_COMPLETION(); - //completion.DEPARTMENT_ID = departInfo?.Nav_Parent?.PARENT_ID; - //completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.Nav_Parent?.NAME; - //completion.SHOP_DEPARTMENT_ID = departInfo?.PARENT_ID; - //completion.SHOP_DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; completion.MONTH = i; completion.MONTHStr = i.Year + "年" + i.Month + "月"; - //completion.TEAM_ID = item.Key.TEAM_ID; - //completion.TEAM_NAME = item.Key.TeamName; - completion.TOTAL_COUNT = item.totalCount; - completion.WAITTING_COUNT = item.waitingCount; - completion.FINISH_COUNT = item.finishCount; - completion.ONTIME_COUNT = item.onTimeCount; - completion.OVERTIME_COUNT = item.overTimeCount; + completion.TOTAL_COUNT = 0; + completion.WAITTING_COUNT = 0; + completion.FINISH_COUNT = 0; + completion.ONTIME_COUNT = 0; + completion.OVERTIME_COUNT = 0; completion.FORM_NAME = "岗位交接班"; completion.ORG_ID = filter.GetOrgId(); completion.START_TIME = i; completion.END_TIME = monthEnd; - if (departInfo != null) - { - if (departInfo.DEPARTMENT_TYPE == 10) - { - completion.DEPARTMENT_ID = item.Key.TEAM_ID; - completion.DEPARTMENT_NAME = item.Key.TeamName; - } - if (departInfo.DEPARTMENT_TYPE == 15) - { - completion.DEPARTMENT_ID = departInfo?.PARENT_ID; - completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; - completion.SHOP_DEPARTMENT_ID = item.Key.TEAM_ID; - completion.SHOP_DEPARTMENT_NAME = item.Key.TeamName; - } - if (departInfo.DEPARTMENT_TYPE == 20) - { - completion.DEPARTMENT_ID = departInfo?.Nav_Parent?.PARENT_ID; - completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.Nav_Parent?.NAME; - completion.SHOP_DEPARTMENT_ID = departInfo?.PARENT_ID; - completion.SHOP_DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; - completion.TEAM_ID = item.Key.TEAM_ID; - completion.TEAM_NAME = item.Key.TeamName; - } - } completions.Add(completion); } - var teamTemp = teamActivityTemp.Where(t => t.CREATE_TIME >= i && t.CREATE_TIME <= monthEnd).ToList(); + + var teamTemp = teamActivityTemp.Where(t => t.CREATE_TIME >= i && t.CREATE_TIME <= monthEnd).ToList(); + foreach (var item in teamTemp) + { + if (item.TEAM_ID == null) + { + item.TEAM_ID = item.DEPARTMENT_ID; + } + else + { + var deparId = teams.FirstOrDefault(t => t.ID == item.TEAM_ID)?.DEPARTMENT_ID; + item.TEAM_ID = deparId; + } + } var teamActivity = teamTemp. - GroupBy(m => new { m.TEAM_ID, TeamName = m.Nav_Taem.NAME, m.Nav_Taem.DEPARTMENT_ID }). + GroupBy(m => new { m.TEAM_ID }). Select(group => new { - group.Key, + group.Key.TEAM_ID, totalCount = group.Count(), finishCount = group.Where(i => i.TA_STATUS == (int)FOTeamActivityState.已归档).Count(), waitingCount = group.Where(i => i.TA_STATUS != (int)FOTeamActivityState.已归档).Count(), onTimeCount = group.Where(i => i.TA_STATUS == (int)FOTeamActivityState.已归档 && i.OVERTIME == FOISOVERTIME.未超时).Count(), overTimeCount = group.Where(i => i.TA_STATUS == (int)FOTeamActivityState.已归档 && i.OVERTIME == FOISOVERTIME.超时).Count() }).ToList(); - foreach (var item in teamActivity) + if (teamActivity.Any()) { - var deparId = teams.FirstOrDefault(t => t.ID == item.Key.TEAM_ID)?.DEPARTMENT_ID; - var departInfo = departments.FirstOrDefault(t => t.ID == deparId); //GetDepartmentId((Guid)item.Key.DEPARTMENT_ID); + foreach (var item in teamActivity) + { + //var deparId = teams.FirstOrDefault(t => t.ID == item.Key.TEAM_ID)?.DEPARTMENT_ID; + var departInfo = departments.FirstOrDefault(t => t.ID == item.TEAM_ID); //GetDepartmentId((Guid)item.Key.DEPARTMENT_ID); + T_FM_DEPARTMENT_COMPLETION completion = new T_FM_DEPARTMENT_COMPLETION(); + //completion.DEPARTMENT_ID = departInfo?.Nav_Parent?.PARENT_ID; + //completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.Nav_Parent?.NAME; + //completion.SHOP_DEPARTMENT_ID = departInfo?.PARENT_ID; + //completion.SHOP_DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; + completion.MONTH = i; + completion.MONTHStr = i.Year + "年" + i.Month + "月"; + //completion.TEAM_ID = item.Key.TEAM_ID; + //completion.TEAM_NAME = item.Key.TeamName; + completion.TOTAL_COUNT = item.totalCount; + completion.WAITTING_COUNT = item.waitingCount; + completion.FINISH_COUNT = item.finishCount; + completion.ONTIME_COUNT = item.onTimeCount; + completion.OVERTIME_COUNT = item.overTimeCount; + completion.FORM_NAME = "班组安全活动记录"; + completion.ORG_ID = filter.GetOrgId(); + completion.START_TIME = i; + completion.END_TIME = monthEnd; + if (departInfo != null) + { + //if (departInfo.DEPARTMENT_TYPE == 10 || departInfo.DEPARTMENT_TYPE == 5) + //{ + // completion.DEPARTMENT_ID = item.Key.TEAM_ID; + // completion.DEPARTMENT_NAME = item.Key.TeamName; + // completion.SHOP_DEPARTMENT_ID = null; + // completion.SHOP_DEPARTMENT_NAME = null; + // completion.TEAM_ID = null; + // completion.TEAM_NAME = null; + //} + //if (departInfo.DEPARTMENT_TYPE == 15) + //{ + // completion.DEPARTMENT_ID = departInfo?.PARENT_ID; + // completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; + // completion.SHOP_DEPARTMENT_ID = item.Key.TEAM_ID; + // completion.SHOP_DEPARTMENT_NAME = item.Key.TeamName; + // completion.TEAM_ID = null; + // completion.TEAM_NAME = null; + //} + //if (departInfo.DEPARTMENT_TYPE == 20) + //{ + // completion.DEPARTMENT_ID = departInfo?.Nav_Parent?.PARENT_ID; + // completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.Nav_Parent?.NAME; + // completion.SHOP_DEPARTMENT_ID = departInfo?.PARENT_ID; + // completion.SHOP_DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; + // completion.TEAM_ID = departInfo.ID; + // completion.TEAM_NAME = departInfo.NAME; + //} + completion.DEPARTMENT_ID = departInfo?.PARENT_ID; + completion.DEPARTMENT_NAME = departments.FirstOrDefault(t => t.ID == completion.DEPARTMENT_ID)?.NAME; + completion.TEAM_ID = departInfo?.ID; + completion.TEAM_NAME = departInfo?.NAME; + } + completions.Add(completion); + } + } + else { + T_FM_DEPARTMENT_COMPLETION completion = new T_FM_DEPARTMENT_COMPLETION(); - completion.DEPARTMENT_ID = departInfo?.Nav_Parent?.PARENT_ID; - completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.Nav_Parent?.NAME; - completion.SHOP_DEPARTMENT_ID = departInfo?.PARENT_ID; - completion.SHOP_DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; completion.MONTH = i; completion.MONTHStr = i.Year + "年" + i.Month + "月"; - completion.TEAM_ID = item.Key.TEAM_ID; - completion.TEAM_NAME = item.Key.TeamName; - completion.TOTAL_COUNT = item.totalCount; - completion.WAITTING_COUNT = item.waitingCount; - completion.FINISH_COUNT = item.finishCount; - completion.ONTIME_COUNT = item.onTimeCount; - completion.OVERTIME_COUNT = item.overTimeCount; + completion.TOTAL_COUNT = 0; + completion.WAITTING_COUNT = 0; + completion.FINISH_COUNT = 0; + completion.ONTIME_COUNT = 0; + completion.OVERTIME_COUNT = 0; completion.FORM_NAME = "班组安全活动记录"; completion.ORG_ID = filter.GetOrgId(); completion.START_TIME = i; @@ -810,7 +1002,7 @@ namespace APT.PP.WebApi.Controllers.Api.PP try { List completions = new List(); - var jobIds = GetEntities(i => true, new BaseFilter(filter.GetOrgId())).Select(t => t.ID).ToList(); + var jobIds = GetEntities(i => true, new BaseFilter(filter.GetOrgId())).Select(t => t.ID).ToList(); var fireJobIds = GetEntities(i => true, new BaseFilter(filter.GetOrgId())).Select(t => t.ID).ToList(); var tasks = this.GetEntities(t => fireJobIds.Contains((Guid)t.SOURCE_DATA_ID) || jobIds.Contains((Guid)t.SOURCE_DATA_ID), new BaseFilter(filter.GetOrgId())) .Select(m => new { m.NOTICE_STATUS, m.USER_ID }).ToList(); @@ -888,19 +1080,20 @@ namespace APT.PP.WebApi.Controllers.Api.PP List completions = new List(); BaseFilter baseFilter = new BaseFilter(filter.GetOrgId()); + baseFilter.IgnoreDataRule = true; var startTime = Convert.ToDateTime(DateTime.Now.AddMonths(-11).Year + "-" + DateTime.Now.AddMonths(-11).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", "Nav_Parent.Nav_Parent", "PARENT_ID" }; var departments = GetEntities(t => !t.IS_DELETED, baseFilter); baseFilter.SelectField = new string[] { "ID", "IS_PUBLISH", "DEPARTMENT_ID", "CREATE_TIME", "IS_OVERTIME", "APPLY_USER_ID" }; //指定字段,包括导航属性 var jobInfos = GetEntities(i => i.CREATE_TIME >= startTime && i.IS_DELETED == false && i.APPLY_USER_ID != null, baseFilter).ToList(); - var jobIds = jobInfos.Select(t => t.ID).ToList(); - baseFilter.SelectField = new string[] { "ID", "STATUS", "APPLY_DEPARTMENT_ID", "CREATE_TIME", "IS_OVERTIME" }; + var jobIds = jobInfos.Select(t => t.ID).ToList(); + baseFilter.SelectField = new string[] { "ID", "STATUS", "APPLY_DEPARTMENT_ID", "CREATE_TIME", "IS_OVERTIME" }; var fireJobInfos = GetEntities(i => i.CREATE_TIME >= startTime && i.IS_DELETED == false && i.APPLY_DEPARTMENT_ID != null, baseFilter).ToList(); var fireJobIds = fireJobInfos.Select(t => t.ID).ToList(); jobIds.AddRange(fireJobIds); baseFilter.SelectField = new string[] { "ID", "NOTICE_STATUS", "CREATE_TIME", "SOURCE_DATA_ID" }; //指定字段,包括导航属性 - var tasks = this.GetEntities(t => t.IS_DELETED == false && t.CREATE_TIME >= startTime && t.NOTICE_STATUS == 2 && jobIds.Contains((Guid)t.SOURCE_DATA_ID), baseFilter).ToList(); + var tasks = this.GetEntities(t => t.IS_DELETED == false && t.CREATE_TIME >= startTime && t.NOTICE_STATUS == 2 && jobIds.Contains((Guid)t.SOURCE_DATA_ID), baseFilter).ToList(); var userIds = jobInfos.Select(t => t.APPLY_USER_ID).Distinct().ToList(); baseFilter.SelectField = new string[] { "ID", "DEPARTMENT_ID"}; //指定字段,包括导航属性 var userInfos = GetEntities(i => userIds.Contains(i.ID), baseFilter).ToList(); @@ -919,14 +1112,14 @@ namespace APT.PP.WebApi.Controllers.Api.PP job.DEPARTMENT_ID = user?.DEPARTMENT_ID; job.IS_PUBLISH = item.IS_PUBLISH; jobs.Add(job); - } + } foreach (var item in fireJobInfos) { var task = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID); if (task == null) item.IS_OVERTIME = 0; else - item.IS_OVERTIME = 1; + item.IS_OVERTIME = 1; JobInfo job = new JobInfo(); job.CREATE_TIME = item.CREATE_TIME; job.IS_OVERTIME = item.IS_OVERTIME; @@ -948,44 +1141,66 @@ namespace APT.PP.WebApi.Controllers.Api.PP onTimeCount = group.Where(i => i.IS_OVERTIME == 0 && i.IS_PUBLISH == 5).Count(), overFinishCount = group.Where(i => i.IS_OVERTIME == 1 && i.IS_PUBLISH == 5).Count() }).ToList(); - foreach (var item in results) + if (results.Any()) { - T_FM_WORK_TICKET_COMPLETION completion = new T_FM_WORK_TICKET_COMPLETION(); - completion.MONTH = i; - completion.MONTHStr = i.Year + "年" + i.Month + "月"; - completion.TOTAL_COUNT = item.totalCount; - completion.FINISH_COUNT = item.finishCount; - completion.OVER_FINISH_COUNT = item.overFinishCount; - completion.WAITTING_COUNT = item.waitingCount; - completion.ONTIME_COUNT = item.onTimeCount; - completion.ORG_ID = filter.GetOrgId(); - completion.START_TIME = i; - completion.END_TIME = monthEnd; - var departInfo = departments.FirstOrDefault(t => t.ID == item.departmetId); - if (departInfo != null) + foreach (var item in results) { - if (departInfo.DEPARTMENT_TYPE == 10|| departInfo.DEPARTMENT_TYPE == 5) - { - completion.DEPARTMENT_ID = item.departmetId; - completion.DEPARTMENT_NAME = departInfo?.NAME; - } - if (departInfo.DEPARTMENT_TYPE == 15) + T_FM_WORK_TICKET_COMPLETION completion = new T_FM_WORK_TICKET_COMPLETION(); + completion.MONTH = i; + completion.MONTHStr = i.Year + "年" + i.Month + "月"; + completion.TOTAL_COUNT = item.totalCount; + completion.FINISH_COUNT = item.finishCount; + completion.OVER_FINISH_COUNT = item.overFinishCount; + completion.WAITTING_COUNT = item.waitingCount; + completion.ONTIME_COUNT = item.onTimeCount; + completion.ORG_ID = filter.GetOrgId(); + completion.START_TIME = i; + completion.END_TIME = monthEnd; + var departInfo = departments.FirstOrDefault(t => t.ID == item.departmetId); + if (departInfo != null) { + //if (departInfo.DEPARTMENT_TYPE == 10 || departInfo.DEPARTMENT_TYPE == 5) + //{ + // completion.DEPARTMENT_ID = item.departmetId; + // completion.DEPARTMENT_NAME = departInfo?.NAME; + //} + //if (departInfo.DEPARTMENT_TYPE == 15) + //{ + // completion.DEPARTMENT_ID = departInfo?.PARENT_ID; + // completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; + // completion.SHOP_DEPARTMENT_ID = item.departmetId; + // completion.SHOP_DEPARTMENT_NAME = departInfo?.NAME; + //} + //if (departInfo.DEPARTMENT_TYPE == 20) + //{ + // completion.DEPARTMENT_ID = departInfo?.Nav_Parent?.PARENT_ID; + // completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.Nav_Parent?.NAME; + // completion.SHOP_DEPARTMENT_ID = departInfo?.PARENT_ID; + // completion.SHOP_DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; + // completion.TEAM_ID = item.departmetId; + // completion.TEAM_NAME = departInfo?.NAME; + //} completion.DEPARTMENT_ID = departInfo?.PARENT_ID; completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; - completion.SHOP_DEPARTMENT_ID = item.departmetId; - completion.SHOP_DEPARTMENT_NAME = departInfo?.NAME; - } - if (departInfo.DEPARTMENT_TYPE == 20) - { - completion.DEPARTMENT_ID = departInfo?.Nav_Parent?.PARENT_ID; - completion.DEPARTMENT_NAME = departInfo?.Nav_Parent?.Nav_Parent?.NAME; - completion.SHOP_DEPARTMENT_ID = departInfo?.PARENT_ID; - completion.SHOP_DEPARTMENT_NAME = departInfo?.Nav_Parent?.NAME; completion.TEAM_ID = item.departmetId; completion.TEAM_NAME = departInfo?.NAME; } - } + completions.Add(completion); + } + } + else + { + T_FM_WORK_TICKET_COMPLETION completion = new T_FM_WORK_TICKET_COMPLETION(); + completion.MONTH = i; + completion.MONTHStr = i.Year + "年" + i.Month + "月"; + completion.TOTAL_COUNT = 0; + completion.FINISH_COUNT = 0; + completion.OVER_FINISH_COUNT = 0; + completion.WAITTING_COUNT =0; + completion.ONTIME_COUNT = 0; + completion.ORG_ID = filter.GetOrgId(); + completion.START_TIME = i; + completion.END_TIME = monthEnd; completions.Add(completion); } } @@ -1477,7 +1692,7 @@ namespace APT.PP.WebApi.Controllers.Api.PP } return true; }); - } + } [HttpPost, Route("UserPersonSync")] public JsonActionResult UserPersonSync([FromBody] KeywordPageFilter pageFilter) { @@ -1488,37 +1703,37 @@ namespace APT.PP.WebApi.Controllers.Api.PP var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value; BaseFilter baseFilter = new BaseFilter(orgId); baseFilter.SelectField = new string[] { "ID","NAME", "USER_ID" }; - var depats = this.GetEntities(t => !t.IS_DELETED && t.ENABLE_STATUS == 0 && t.DEPARTMENT_TYPE == (int)FMDepartmentType.Class, baseFilter).ToList(); - var depatIds = depats.Select(t => t.ID).ToList(); + var depats = this.GetEntities(t => !t.IS_DELETED && t.ENABLE_STATUS == 0 && t.DEPARTMENT_TYPE == (int)FMDepartmentType.Class, baseFilter).ToList(); + var depatIds = depats.Select(t => t.ID).ToList(); baseFilter.SelectField = new string[] { "ID", "DEPARTMENT_ID", "PERSON_ID" }; - var users = this.GetEntities(t => !t.IS_DELETED && t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin") && t.DEPARTMENT_ID != null && depatIds.Contains((Guid)t.DEPARTMENT_ID), baseFilter).ToList(); - List teamInfos = new List(); - List teamPersons = new List(); - if (depats != null && depats.Any()) - { - foreach (var item in depats) - { - T_FM_TEAM team = new T_FM_TEAM(); - team.NAME = item.NAME; - team.CHARGE_PERSON_ID = users.FirstOrDefault(t=>t.ID == item.USER_ID)?.PERSON_ID; - team.DEPARTMENT_ID = item.ID; - team.ORG_ID = orgId; - teamInfos.Add(team); - var teamPersonTemps = users.Where(t => t.DEPARTMENT_ID == item.ID && t.PERSON_ID!=null).Select(m=>m.PERSON_ID).ToList(); - if (teamPersonTemps != null && teamPersonTemps.Any()) - { - foreach (var person in teamPersonTemps) - { - T_FM_TEAM_PERSON teamPerson = new T_FM_TEAM_PERSON(); - teamPerson.PERSON_ID = (Guid)person; - teamPerson.TEAM_ID = team.ID; - teamPerson.ORG_ID = orgId; - teamPersons.Add(teamPerson); - } - } - } - } - + var users = this.GetEntities(t => !t.IS_DELETED && t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin") && t.DEPARTMENT_ID != null && depatIds.Contains((Guid)t.DEPARTMENT_ID), baseFilter).ToList(); + List teamInfos = new List(); + List teamPersons = new List(); + if (depats != null && depats.Any()) + { + foreach (var item in depats) + { + T_FM_TEAM team = new T_FM_TEAM(); + team.NAME = item.NAME; + team.CHARGE_PERSON_ID = users.FirstOrDefault(t=>t.ID == item.USER_ID)?.PERSON_ID; + team.DEPARTMENT_ID = item.ID; + team.ORG_ID = orgId; + teamInfos.Add(team); + var teamPersonTemps = users.Where(t => t.DEPARTMENT_ID == item.ID && t.PERSON_ID!=null).Select(m=>m.PERSON_ID).ToList(); + if (teamPersonTemps != null && teamPersonTemps.Any()) + { + foreach (var person in teamPersonTemps) + { + T_FM_TEAM_PERSON teamPerson = new T_FM_TEAM_PERSON(); + teamPerson.PERSON_ID = (Guid)person; + teamPerson.TEAM_ID = team.ID; + teamPerson.ORG_ID = orgId; + teamPersons.Add(teamPerson); + } + } + } + } + this.UnifiedCommit(() => { if (teamInfos!=null && teamInfos.Any()) @@ -1920,7 +2135,7 @@ namespace APT.PP.WebApi.Controllers.Api.PP { perME = GetRiskReason(2, listYear[j], itemD.ID, Guid.Empty, 2, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象 listResult.Add(perME);//地址引用 应该是支持 - } + } perCount = dtSubmitContent.Where(e => e.STATUS == PFStandardStatus.Archived && e.COMPLETE_DATE <= e.RECITIFY_TIME && e.APPLY_DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患 perME.DEPARTMENT_TYPE = FMDepartmentType.Class; perME.NUMD = depNum; @@ -1936,7 +2151,7 @@ namespace APT.PP.WebApi.Controllers.Api.PP { perME = GetRiskReason(2, listYear[j], itemD.ID, Guid.Empty, 3, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象 listResult.Add(perME);//地址引用 应该是支持 - } + } perCount = dtSubmitContent.Where(e => e.STATUS == PFStandardStatus.Archived && e.COMPLETE_DATE <= e.RECITIFY_TIME && e.APPLY_DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患 perCountNot = 0; if (listCheck != null && listCheck.Any()) @@ -1978,7 +2193,7 @@ namespace APT.PP.WebApi.Controllers.Api.PP { perME = GetRiskReason(itemD.DEPARTMENT_TYPE, listYear[j], itemD.ID, Guid.Empty, 1, filter.OrgId, perVal, listMonth[j], CaculateType);//如果没有 就新建对象 listResult.Add(perME);//地址引用 应该是支持 - } + } perCount = dtSubmitContent.Where(e => e.STATUS == PFStandardStatus.Archived && e.COMPLETE_DATE <= e.RECITIFY_TIME && e.APPLY_DEPARTMENT_ID.Value == itemD.ID && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == listYear[j] && e.CREATE_TIME.Value.Month == listMonth[j]).Count();//某组织 年 月 按时整改隐患 perSubCount = 0;//每次清零 后相加 diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs index 1439864..5d03084 100644 --- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs +++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs @@ -2301,8 +2301,8 @@ namespace APT.PP.WebApi.Controllers.Api.PP /// /// /// - [HttpPost, Route("PremeetingSync")] - public JsonActionResult PremeetingSync([FromBody] KeywordFilter filter) + [HttpPost, Route("PremeetingSyncOld")] + public JsonActionResult PremeetingSyncOld([FromBody] KeywordFilter filter) { return SafeExecute(() => { @@ -2386,6 +2386,97 @@ namespace APT.PP.WebApi.Controllers.Api.PP throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message); } + return true; + }); + } + + /// + /// 更新岗位当班,交接班,班组活动记录超时字段 + /// + /// + /// + [HttpPost, Route("PremeetingSync")] + public JsonActionResult PremeetingSync([FromBody] KeywordFilter filter) + { + return SafeExecute(() => + { + try + { + var startTime = DateTime.Now.AddMonths(-3); + var taskIds=new List(); + var curClass = this.GetEntities(t => t.CREATE_TIME >= startTime && t.SHIFT_STATUS == (int)FOShiftStatusEnum.归档 && t.OVERTIME == FOISOVERTIME.未统计, filter); + var curClassIds = curClass.Select(t => t.ID).ToList(); + taskIds.AddRange(curClassIds); + var changeClass = this.GetEntities(t => t.CREATE_TIME >= startTime && t.SHIFT_STATUS == (int)FOChangeShiftStatusEnum.归档 && t.OVERTIME == FOISOVERTIME.未统计, filter); + var changeClassIds = changeClass.Select(t => t.ID).ToList(); + taskIds.AddRange(changeClassIds); + var actClass = this.GetEntities(t => t.CREATE_TIME >= startTime && t.TA_STATUS == (int)FOTeamActivityState.已归档 && t.OVERTIME == FOISOVERTIME.未统计, filter); + var actClassIds = actClass.Select(t => t.ID).ToList(); + taskIds.AddRange(actClassIds); + var tasks = this.GetEntities(t => t.CREATE_TIME >= startTime && t.SOURCE_DATA_ID != null && taskIds.Contains((Guid)t.SOURCE_DATA_ID), filter); + if (curClass != null && curClass.Any()) + { + foreach (var item in curClass) + { + var taskOver = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID && t.NOTICE_STATUS == 2); + if (taskOver != null) + { + item.OVERTIME = FOISOVERTIME.超时; + } + else + { + item.OVERTIME = FOISOVERTIME.未超时; + } + } + } + if (changeClass != null && changeClass.Any()) + { + foreach (var item in changeClass) + { + var taskOver = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID && t.NOTICE_STATUS == 2); + if (taskOver != null) + { + item.OVERTIME = FOISOVERTIME.超时; + } + else + { + item.OVERTIME = FOISOVERTIME.未超时; + } + } + } + if (actClass != null && actClass.Any()) + { + foreach (var item in actClass) + { + var taskOver = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == item.ID && t.NOTICE_STATUS == 2); + if (taskOver != null) + { + item.OVERTIME = FOISOVERTIME.超时; + } + else + { + item.OVERTIME = FOISOVERTIME.未超时; + } + } + } + UnifiedCommit(() => + { + if (curClass != null && curClass.Any()) + BantchSaveEntityNoCommit(curClass); + if (changeClass != null && changeClass.Any()) + BantchSaveEntityNoCommit(changeClass); + if (actClass != null && actClass.Any()) + BantchSaveEntityNoCommit(actClass); + }); + } + catch (Exception ex) + { + if (!string.IsNullOrEmpty(ex.StackTrace)) + throw new Exception("错误日志:[StackTrace]" + ex.StackTrace); + else + throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message); + } + return true; }); } 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 4db80ac..2cfba0f 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIController.cs @@ -759,13 +759,22 @@ namespace APT.SC.WebApi.Controllers.Api.BI riskFilter.SelectField = new string[] { "EVALUATE_LEVEL", "CREATE_TIME", "PRODUCTION_UNIT_ID", "TYPE_ID", "AREA_ID", "ID" }; IEnumerable allrisk = null; allrisk = GetEntities(t => t.ENABLE_STATUS == 0 && t.PRODUCTION_UNIT_ID != null, riskFilter); + var libTempIds = allrisk.Select(t => t.ID); + var details = GetEntities(t => libTempIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(filter.GetOrgId())); + //var departs = GetEntities(t => libIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(filter.GetOrgId())); + //var depIds = departs.Select(t=>t.DEPARTMENT_ID).Distinct(); + var libDetailIds = allrisk.Select(t => t.ID); + var detailContents = GetEntities(t => libDetailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID), new BaseFilter(filter.GetOrgId())); + var libDetailContentIds = detailContents.Select(t => t.ID); + var detailContentChecks = GetEntities(t => libDetailContentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(filter.GetOrgId())); + var checkIds = detailContentChecks.Select(t => t.CHECK_TYPE_ID).Distinct(); var hazardFilter = new BaseFilter(filter.GetOrgId()); riskPerformanceData riskPerformanceData = new riskPerformanceData(); List item3s = new List(); - var distinctType = GetEntities(t => t.IS_DELETED == false, new BaseFilter(filter.GetOrgId())); + var distinctType = GetEntities(t => checkIds.Contains(t.ID), new BaseFilter(filter.GetOrgId())); var departments = GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.GetOrgId())); var distinctArea = GetEntities(t => t.IS_DELETED == false, new BaseFilter(filter.GetOrgId())); - var distinctTeamDepartment = GetEntities(t => t.DEPARTMENT_TYPE == 20, new BaseFilter(filter.GetOrgId())); + var distinctTeamDepartment = departments.Where(t => t.DEPARTMENT_TYPE == 20); #region 1 PerformanceModel CHARTFXDJ1 = new PerformanceModel(); CHARTFXDJ1.NAME = new List { "重大风险", "较大风险", "一般风险", "低风险" }; 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 901a822..ac95cbd 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIHomeController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIHomeController.cs @@ -9,11 +9,14 @@ using APT.MS.Domain.Entities.BI; using APT.MS.Domain.Entities.HM; using APT.MS.Domain.Entities.SC.BI; using APT.MS.Domain.Entities.SK; +using APT.MS.Domain.Enums; using APT.MS.Domain.Enums.SK; using APT.SC.WebApi.Controllers.Api.BIController; using APT.Utility; using log4net.Core; using Microsoft.AspNetCore.Mvc; +using NPOI.POIFS.Properties; +using NPOI.SS.Formula.Functions; using Org.BouncyCastle.Utilities; using System; using System.Collections.Generic; @@ -1292,10 +1295,10 @@ namespace APT.SC.WebApi.Controllers.Api.BI } //redis获取到了数据 - //if (result != null && (result.ListC != null || result.ListCYear != null || result.ListSafeCheckYearMonth != null)) - //{ - // return result; - //} + if (result != null && (result.ListC != null || result.ListCYear != null || result.ListSafeCheckYearMonth != null)) + { + return result; + } #endregion @@ -1330,7 +1333,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI newFilter.IgnoreDataRule = true; var hiddens = GetEntities(e => e.APPLY_DEPARTMENT_ID.HasValue && e.CREATE_TIME.HasValue && e.CREATE_TIME.Value.Year == dtNow.Year, newFilter); - var startTime = dtNow.AddMonths(-6); + var startTime = dtNow.AddMonths(-5); var currentTime = Convert.ToDateTime(startTime.Year + "-" + startTime.Month + "-01 00:00:00"); //var groupDepart = hiddens.GroupBy(t => t.APPLY_DEPARTMENT_ID); //if (groupDepart.Any()) @@ -1424,7 +1427,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI var val = onTimes.Count() + overTimes.Count(); var count = alls.Count(); HomeCorrect modelC = new HomeCorrect(); - modelC.Val = count == 0 ?"0":((decimal)Math.Round(100.00 * val / count, 2)).ToString(); + modelC.Val = count == 0 ?"100":((decimal)Math.Round(100.00 * val / count, 2)).ToString(); modelC.SOURCENAME = "隐患整改率"; //modelC.DEPARTMENT_ID = (Guid)item.Key; //modelC.DEPARTMENTNAME = listDep.FirstOrDefault(t => t.ID == item.Key)?.NAME; @@ -1435,7 +1438,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI else { HomeCorrect modelC = new HomeCorrect(); - modelC.Val = "0"; + modelC.Val = "100"; modelC.SOURCENAME = "隐患整改率"; //modelC.DEPARTMENT_ID = (Guid)item.Key; //modelC.DEPARTMENTNAME = listDep.FirstOrDefault(t => t.ID == item.Key)?.NAME; @@ -1479,48 +1482,6 @@ namespace APT.SC.WebApi.Controllers.Api.BI #endregion - #region 年度 各下属组织 隐患整改情况 - - List listReasonYearT = BIHomeService.GetHomeCorrectYear(filter.OrgId, listDep).ToList(); - List ListCYear = new List(); - HomeCorrectYear modelCY = null; - int CountYearT = listReasonYearT.Count; - for (int i = 0; i < CountYearT; i++) - { - if (i == 0 || listReasonYearT[i].DEPARTMENT_ID != listReasonYearT[i - 1].DEPARTMENT_ID) - { - modelCY = new HomeCorrectYear(); - modelCY.DEPARTMENTNAME = listReasonYearT[i].DEPARTMENTNAME; - modelCY.DEPARTMENT_ID = listReasonYearT[i].DEPARTMENT_ID; - modelCY.YEAR = listReasonYearT[i].YEAR; - } - - // 按时整改隐患 5 超期整改隐患 10 未整改隐患 15 - if (listReasonYearT[i].SOURCEVAL == 5) - { - modelCY.CountIn += listReasonYearT[i].COUNT; - } - else if (listReasonYearT[i].SOURCEVAL == 10) - { - modelCY.CountOut += listReasonYearT[i].COUNT; - } - else if (listReasonYearT[i].SOURCEVAL == 15) - { - modelCY.CountNot += listReasonYearT[i].COUNT; - } - - if (i == CountYearT - 1 || listReasonYearT[i].DEPARTMENT_ID != listReasonYearT[i + 1].DEPARTMENT_ID) - { - modelCY.Count = modelCY.CountIn + modelCY.CountOut + modelCY.CountNot; - ListCYear.Add(modelCY); - } - } - - result.ListCYear = ListCYear; - - #endregion - - #region 月度 6 个月 安全检查、检查类型 数量 //按生产单元 获取 @@ -1532,11 +1493,11 @@ namespace APT.SC.WebApi.Controllers.Api.BI //filterD.SelectField = new List { "ID", "NAME", "DEPARTMENT_TYPE", "PARENT_ID" }; //var listDep1MineType = GetEntities(t => t.MineType.HasValue && t.MineType == MineType && t.DEPARTMENT_TYPE == 10, filterD, null);//部门就可以了 因为都相向 统计了 - if (listDep != null && listDep.Any()) + //if (listDep != null && listDep.Any()) { List ListSafeCheckYearMonth = new List(); - int befoMonth = 12; - List ListSafeCheckYearMonthT = BIHomeService.GetHomeCheckCountMonth(filter.OrgId, listDep.ToList(), befoMonth).ToList(); + //int befoMonth = 12; + //List ListSafeCheckYearMonthT = BIHomeService.GetHomeCheckCountMonth(filter.OrgId, listDep.ToList(), befoMonth).ToList(); //var listCheckTypeIDT = ListSafeCheckYearMonthT.Select(e => e.SOURCEID).Distinct().ToList(); //var enums = GetEntity(e => e.VALUE == MineType && e.CODE == "BSMineTypeEnum"); @@ -1556,13 +1517,14 @@ namespace APT.SC.WebApi.Controllers.Api.BI // } // } //} - var checkIds = ListSafeCheckYearMonthT.Select(t => t.SOURCEID).Distinct().ToList(); - var loginDepart = this.GetEntity(t => t.ID == APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID); - var listCheckType = GetEntities(e => checkIds.Contains(e.ID), null, null).ToList(); - if (loginDepart != null) - { - listCheckType = listCheckType.Where(t => t.PRODUCTION_UNIT_ID == loginDepart.PRODUCTION_UNIT_ID).ToList(); - } + 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").ToList(); + //if (loginDepart != null) + //{ + // listCheckType = listCheckType.Where(t => t.PRODUCTION_UNIT_ID == loginDepart.PRODUCTION_UNIT_ID).ToList(); + //} List listCheckTypeID = new List(); List listCheckTypeNAME = new List(); @@ -1584,54 +1546,59 @@ namespace APT.SC.WebApi.Controllers.Api.BI //else { listCheckTypeID.Add(listCheckType[i].ID); - listCheckTypeNAME.Add(listCheckType[i].NAME); + listCheckTypeNAME.Add(listCheckType[i].Nav_ProductionUnit?.NAME + listCheckType[i].NAME); } } - int year = DateTime.Now.Year; - int Month = DateTime.Now.Month; - DateTime dtTemp = DateTime.Now; - IEnumerable listPerChearch = null; - IEnumerable listPerChearchPer = null; - - //List listListCount = null; - for (int i = 0; i < befoMonth; i++) - { - dtTemp = dtNow.AddMonths(-1 * i); - year = dtTemp.Year; - Month = dtTemp.Month; - listPerChearch = ListSafeCheckYearMonthT.Where(e => e.YEAR == year && e.MONTH == Month); - HomeSafeCheckCountMonth modelper = new HomeSafeCheckCountMonth(); - modelper.Total = listPerChearch.Count(); - modelper.listSOURCENAME = listCheckTypeNAME; - modelper.YEAR = year; - modelper.MONTH = Month; - List listListCount = new List(); - - for (int j = 0; j < listCheckTypeID.Count; j++) - { - //if (listCheckTypeID[j] != IDZH) + //IEnumerable listPerChearch = null; + //IEnumerable listPerChearchPer = null; + //var beginTime = Convert.ToDateTime(dtNow.Year + "-01-01 00:00:00"); + //var endTime = Convert.ToDateTime(dtNow.Year + "-12-31 23:59:59"); + for (DateTime i = currentTime; i <= dtNow; i = i.AddMonths(1)) { - listPerChearchPer = listPerChearch.Where(e => e.YEAR == year && e.MONTH == Month && e.SOURCEID == listCheckTypeID[j]);//各个检查 - } - //else - //{ - // listPerChearchPer = listPerChearch.Where(e => e.YEAR == year && e.MONTH == Month && listGUID.Contains(e.SOURCEID));//综合检查 - //} + var monthStart = Convert.ToDateTime(i.Year + "-" + i.Month + "-01 00:00:00"); + var monthEnd = Convert.ToDateTime(monthStart.AddMonths(1).AddDays(-1).ToString().Replace("0:00:00", "23:59:59")); + if (i.Date <= startTime.Date) + { + monthStart = startTime; + } + if (i.Date >= dtNow.Date) + { + monthEnd = dtNow; + } + var listPerChearch = checkNotices.Where(t => t.CREATE_TIME >= monthStart && t.CREATE_TIME <= monthEnd); + HomeSafeCheckCountMonth modelper = new HomeSafeCheckCountMonth(); + modelper.Total = listPerChearch.Count(); + modelper.listSOURCENAME = listCheckTypeNAME; + modelper.YEAR = monthStart.Year; + modelper.MONTH = monthStart.Month; + List listListCount = new List(); - if (listPerChearchPer == null || !listPerChearchPer.Any()) - { - listListCount.Add(0); + for (int j = 0; j < listCheckTypeID.Count; j++) + { + //if (listCheckTypeID[j] != IDZH) + //{ + var listPerChearchPer = listPerChearch.Where(e => e.CHECK_TYPE_ID == listCheckTypeID[j]);//各个检查 + //} + //else + //{ + // listPerChearchPer = listPerChearch.Where(e => e.YEAR == year && e.MONTH == Month && listGUID.Contains(e.SOURCEID));//综合检查 + //} + + if (listPerChearchPer == null || !listPerChearchPer.Any()) + { + listListCount.Add(0); + } + else + { + listListCount.Add(listPerChearchPer.Count()); + } + } + modelper.listListCount = listListCount; + ListSafeCheckYearMonth.Add(modelper); } - else - { - listListCount.Add(listPerChearchPer.Sum(e => e.COUNT)); - } - } - modelper.listListCount = listListCount; - ListSafeCheckYearMonth.Add(modelper); - } result.ListSafeCheckYearMonth = ListSafeCheckYearMonth.OrderBy(e => e.YEAR).ThenBy(e => e.MONTH).ToList(); + } } @@ -1641,24 +1608,24 @@ namespace APT.SC.WebApi.Controllers.Api.BI #region 搜索结果 判断存入Redis中 - //if (isRedisConfig) - //{ - // try - // { - // if (listHomeRedis == null) - // listHomeRedis = new List(); + if (isRedisConfig) + { + try + { + if (listHomeRedis == null) + listHomeRedis = new List(); - // listHomeRedis.Add(new HomeResultMineType() - // { - // //MineType = MineType, - // yyyyMMddHH = dtNow.ToString("yyyyMMddHH"), - // result = result - // }); + listHomeRedis.Add(new HomeResultMineType() + { + //MineType = MineType, + yyyyMMddHH = dtNow.ToString("yyyyMMddHH"), + result = result + }); - // CsRedisManager.StringSet>(redisCode, listHomeRedis); - // } - // catch { } - //} + CsRedisManager.StringSet>(redisCode, listHomeRedis); + } + catch { } + } #endregion @@ -1670,8 +1637,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI /// /// 过滤实体 /// - [HttpPost, Route("GetHomeDetailMonthCheckType")] - public JsonActionResult GetHomeDetailMonthCheckType([FromBody] KeywordFilter filter) + [HttpPost, Route("GetHomeDetailMonthCheckTypeOld")] + public JsonActionResult GetHomeDetailMonthCheckTypeOld([FromBody] KeywordFilter filter) { return SafeExecute(() => { @@ -1916,8 +1883,8 @@ namespace APT.SC.WebApi.Controllers.Api.BI /// /// 过滤实体 /// - [HttpPost, Route("GetHomeDetailMonthRisk")] - public JsonActionResult GetHomeDetailMonthRisk([FromBody] KeywordFilter filter) + [HttpPost, Route("GetHomeDetailMonthRiskOld")] + public JsonActionResult GetHomeDetailMonthRiskOld([FromBody] KeywordFilter filter) { return SafeExecute(() => { @@ -2185,193 +2152,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI #endregion - #region 旧版 - - //for (int i = 0; i < listCorrectT.Count; i++) - //{ - // if (i == 0 || listCorrectT[i].DEPARTMENT_ID != listCorrectT[i - 1].DEPARTMENT_ID || listCorrectT[i].SOURCEVAL != listCorrectT[i - 1].SOURCEVAL) - // { - // if (!isNormal && !string.IsNullOrEmpty(Val) && modelC != null) - // { - // modelC.Val = Val + "0"; - // listC.Add(modelC); - // } - - // modelC = new HomeCorrect(); - // modelC.DEPARTMENTNAME = listCorrectT[i].DEPARTMENTNAME; - // modelC.DEPARTMENT_ID = listCorrectT[i].DEPARTMENT_ID; - // modelC.SOURCENAME = listCorrectT[i].SOURCENAME; - // modelC.YEAR = listCorrectT[i].YEAR; - // modelC.NAME = NameMonth; - // Val = ""; - // } - // if (listCorrectT[i].MONTH == 1) - // { - // if (listCorrectT[i].SOURCEVAL == 20) - // { - // modelC.M1 = listCorrectT[i].PERCENT.ToString("0.00"); - // } - // else - // { - // modelC.M1 = listCorrectT[i].COUNT.ToString(); - // } - // Val += modelC.M1 + ","; - // } - - - // if (listCorrectT[i].MONTH == 2) - // { - // if (listCorrectT[i].SOURCEVAL == 20) - // { - // modelC.M2 = listCorrectT[i].PERCENT.ToString("0.00"); - // } - // else - // { - // modelC.M2 = listCorrectT[i].COUNT.ToString(); - // } - // Val += modelC.M2 + ","; - // } - - // if (listCorrectT[i].MONTH == 3) - // { - // if (listCorrectT[i].SOURCEVAL == 20) - // { - // modelC.M3 = listCorrectT[i].PERCENT.ToString("0.00"); - // } - // else - // { - // modelC.M3 = listCorrectT[i].COUNT.ToString(); - // } - // Val += modelC.M3 + ","; - // } - - // if (listCorrectT[i].MONTH == 4) - // { - // if (listCorrectT[i].SOURCEVAL == 20) - // { - // modelC.M4 = listCorrectT[i].PERCENT.ToString("0.00"); - // } - // else - // { - // modelC.M4 = listCorrectT[i].COUNT.ToString(); - // } - // Val += modelC.M4 + ","; - // } - - // if (listCorrectT[i].MONTH == 5) - // { - // if (listCorrectT[i].SOURCEVAL == 20) - // { - // modelC.M5 = listCorrectT[i].PERCENT.ToString("0.00"); - // } - // else - // { - // modelC.M5 = listCorrectT[i].COUNT.ToString(); - // } - // Val += modelC.M5 + ","; - // } - - // if (listCorrectT[i].MONTH == 6) - // { - // if (listCorrectT[i].SOURCEVAL == 20) - // { - // modelC.M6 = listCorrectT[i].PERCENT.ToString("0.00"); - // } - // else - // { - // modelC.M6 = listCorrectT[i].COUNT.ToString(); - // } - // Val += modelC.M6 + ","; - // } - - // if (listCorrectT[i].MONTH == 7) - // { - // if (listCorrectT[i].SOURCEVAL == 20) - // { - // modelC.M7 = listCorrectT[i].PERCENT.ToString("0.00"); - // } - // else - // { - // modelC.M7 = listCorrectT[i].COUNT.ToString(); - // } - // Val += modelC.M7 + ","; - // } - - // if (listCorrectT[i].MONTH == 8) - // { - // if (listCorrectT[i].SOURCEVAL == 20) - // { - // modelC.M8 = listCorrectT[i].PERCENT.ToString("0.00"); - // } - // else - // { - // modelC.M8 = listCorrectT[i].COUNT.ToString(); - // } - // Val += modelC.M8 + ","; - // } - - // if (listCorrectT[i].MONTH == 9) - // { - // if (listCorrectT[i].SOURCEVAL == 20) - // { - // modelC.M9 = listCorrectT[i].PERCENT.ToString("0.00"); - // } - // else - // { - // modelC.M9 = listCorrectT[i].COUNT.ToString(); - // } - // Val += modelC.M9 + ","; - // } - - // if (listCorrectT[i].MONTH == 10) - // { - // if (listCorrectT[i].SOURCEVAL == 20) - // { - // modelC.M10 = listCorrectT[i].PERCENT.ToString("0.00"); - // } - // else - // { - // modelC.M10 = listCorrectT[i].COUNT.ToString(); - // } - // Val += modelC.M10 + ","; - // } - - // if (listCorrectT[i].MONTH == 11) - // { - // if (listCorrectT[i].SOURCEVAL == 20) - // { - // modelC.M11 = listCorrectT[i].PERCENT.ToString("0.00"); - // } - // else - // { - // modelC.M11 = listCorrectT[i].COUNT.ToString(); - // } - // Val += modelC.M11 + ","; - // } - - // if (listCorrectT[i].MONTH == 12) - // { - // if (listCorrectT[i].SOURCEVAL == 20) - // { - // modelC.M12 = listCorrectT[i].PERCENT.ToString("0.00"); - // } - // else - // { - // modelC.M12 = listCorrectT[i].COUNT.ToString(); - // } - // Val += modelC.M12 + ","; - // } - - // if (isNormal && listCorrectT[i].MONTH == dtNow.Month && listCorrectT[i].YEAR == dtNow.Year) - // { - // //有当月数据 是当前月的时候 放入数据 - // modelC.Val = Val.Substring(0, Val.Length - 1); - // listC.Add(modelC); - // } - //} - - #endregion - + #endregion //var listDepID = listDep1MineType.Where(e => e.DEPARTMENT_TYPE == 10).Select(e => e.ID);//部门ID @@ -2383,7 +2164,6 @@ namespace APT.SC.WebApi.Controllers.Api.BI //BSCorrectType List enums = DataHelper.GetEnum("BSCorrectType"); - List listName = new List(); List listVal = new List(); foreach (var item in enums) @@ -2498,6 +2278,706 @@ namespace APT.SC.WebApi.Controllers.Api.BI }); } /// + /// 首页 安全检查次数统计明细(BI054HomeDetail) + /// + /// 过滤实体 + /// + [HttpPost, Route("GetHomeDetailMonthCheckType")] + public JsonActionResult GetHomeDetailMonthCheckType([FromBody] KeywordFilter filter) + { + return SafeExecute(() => + { + //按生产单元 获取数据 + HomeDetailSafeCheckCountMonth result = new HomeDetailSafeCheckCountMonth(); + //if (string.IsNullOrEmpty(filter.Keyword)) + //{ + // return result; + //} + //int MineType = int.Parse(filter.Keyword); + var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId; + BaseFilter filterD = new BaseFilter(orgId); + filterD.SelectField = new List { "ID", "NAME", "DEPARTMENT_TYPE", "PARENT_ID" }; + + + var listDep1MineType = GetEntities(t => t.ENABLE_STATUS == 0, filterD, null); + //FMDepartmentType 部门=0, 车间=1, 班组=2, 公司=3 + if (listDep1MineType == null || !listDep1MineType.Any()) + { + return result; + } + List listDepIDCJ = listDep1MineType.Where(e => e.DEPARTMENT_TYPE == 15).Select(e => e.ID).ToList();//车间ID 用于 统计 每个月各类型的检查数量 + + DateTime dtNow = DateTime.Now; + List listDepCJ = new List(); + List listDepBZ = new List(); + List listDepBM = new List(); + listDepBM = listDep1MineType.Where(e => e.DEPARTMENT_TYPE == 10).OrderBy(e => e.NUM).ToList(); + listDepCJ = listDep1MineType.Where(e => e.DEPARTMENT_TYPE == 15).OrderBy(e => e.NUM).ToList(); + listDepBZ = listDep1MineType.Where(e => e.DEPARTMENT_TYPE == 20).OrderBy(e => e.NUM).ToList(); + //T_FM_ENUMS enums = null; + var loginDepart = this.GetEntity(t => t.ID == APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID); + #region 月度 12 个月 安全检查、检查类型 数量 + + //if (listDepCJ == null || listDepCJ.Count < 1 || listDepBZ == null || listDepBZ.Count < 1) + //{ + // ////深度查找 部门 MineType 只能存一个值 + // //enums = GetEntity(e => e.VALUE == MineType && e.CODE == "BSMineTypeEnum"); + // //if (enums == null) + // //{ + // // throw new Exception("获取生产类型失败"); + // //} + // //var listDepID = GetEntities(e => e.ENUMS_ID == enums.ID, null, null).Select(e => e.DEPARTMENT_ID); + // //if (listDepID != null && listDepID.Any()) + // if (loginDepart != null) + // { + // listDep1MineType = GetEntities(t => t.PRODUCTION_UNIT_ID == loginDepart.PRODUCTION_UNIT_ID && (t.DEPARTMENT_TYPE == 15 || t.DEPARTMENT_TYPE == 20), filterD, null); + // if (listDep1MineType != null && listDep1MineType.Any()) + // { + // listDepCJ = listDep1MineType.Where(e => e.DEPARTMENT_TYPE == 15).ToList(); + // listDepBZ = listDep1MineType.Where(e => e.DEPARTMENT_TYPE == 20).ToList(); + // } + // } + //} + + //if (listDepCJ == null || listDepCJ.Count < 1 || listDepBZ == null || listDepBZ.Count < 1) + //{ + // throw new Exception("获取生产单元组织信息失败!"); + //} + var newFilter = new BaseFilter(orgId); + 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 currentTime = Convert.ToDateTime(startTime.Year + "-" + startTime.Month + "-01 00:00:00"); + List ListSafeCheckYearMonth = new List(); + //int befoMonth = 11;//计算 12 个月 就是提前 11个月 + //List ListSafeCheckYearMonthT = BIHomeService.GetHomeCheckCountMonth(filter.OrgId, listDep1MineType.ToList(), befoMonth).ToList(); + + var listCheckTypeIDT = checkNotices.Select(e => e.CHECK_TYPE_ID).Distinct().ToList(); + //if (enums == null) + //{ + // enums = GetEntity(e => e.VALUE == MineType && e.CODE == "BSMineTypeEnum"); + //} + //if (enums != null) + //{ + // var listTypeMine = GetEntities(e => e.MINETYPE_ENUMS_ID == enums.ID, null, null); + // if (listTypeMine != null && listTypeMine.Any()) + // { + // var listMineCheckTypeID = listTypeMine.Where(e => e.CHECK_TYPE_ID.HasValue).Select(e => e.CHECK_TYPE_ID.Value); + // for (int i = 0; i < listCheckTypeIDT.Count; i++) + // { + // if (!listMineCheckTypeID.Contains(listCheckTypeIDT[i])) + // { + // listCheckTypeIDT.RemoveAt(i); + // i--; + // } + // } + // } + //} + + var listCheckType = GetEntities(e => listCheckTypeIDT.Contains(e.ID), null, "Nav_ProductionUnit").ToList(); + //if (loginDepart != null) + //{ + // listCheckType = listCheckType.Where(t => t.PRODUCTION_UNIT_ID == loginDepart.PRODUCTION_UNIT_ID).ToList(); + //} + //var listCheckType = GetEntities(e => listCheckTypeIDT.Contains(e.ID), null, null).OrderBy(e => e.PARENT_ID).ThenBy(e => e.NUM).ToList(); + + List listCheckTypeID = new List(); + List listCheckTypeNAME = new List(); + //Guid IDZH = Guid.Empty;//综合检查(只有一个) + //List listGUID = new List();//综合检查子集 + for (int i = 0; i < listCheckType.Count; i++) + { + //if (listCheckType[i].PARENT_ID.HasValue) + //{ + // if (IDZH == Guid.Empty) + // { + // IDZH = listCheckType[i].PARENT_ID.Value; + // listCheckTypeID.Add(IDZH); + // var checkTypeP = GetEntity(IDZH); + // listCheckTypeNAME.Add(checkTypeP.NAME); + // } + // listGUID.Add(listCheckType[i].ID); + //} + //else + { + listCheckTypeID.Add(listCheckType[i].ID); + listCheckTypeNAME.Add(listCheckType[i].Nav_ProductionUnit?.NAME+listCheckType[i].NAME); + } + } + + //int year = DateTime.Now.Year; + //int Month = DateTime.Now.Month; + //DateTime dtTemp = DateTime.Now; + //IEnumerable listPerChearch = null; + //IEnumerable listPerChearchPer = null; + + for (DateTime i = currentTime; i <= dtNow; i = i.AddMonths(1)) + { + var monthStart = Convert.ToDateTime(i.Year + "-" + i.Month + "-01 00:00:00"); + var monthEnd = Convert.ToDateTime(monthStart.AddMonths(1).AddDays(-1).ToString().Replace("0:00:00", "23:59:59")); + if (i.Date <= startTime.Date) + { + monthStart = startTime; + } + if (i.Date >= dtNow.Date) + { + monthEnd = dtNow; + } + var listPerChearch = checkNotices.Where(t => t.CREATE_TIME >= monthStart && t.CREATE_TIME <= monthEnd); + HomeSafeCheckCountMonth modelper = new HomeSafeCheckCountMonth(); + modelper.Total = listPerChearch.Count(); + modelper.listSOURCENAME = listCheckTypeNAME; + modelper.YEAR = monthStart.Year; + modelper.MONTH = monthStart.Month; + List listListCount = new List(); + + for (int j = 0; j < listCheckTypeID.Count; j++) + { + //if (listCheckTypeID[j] != IDZH) + //{ + var listPerChearchPer = listPerChearch.Where(e => e.CHECK_TYPE_ID == listCheckTypeID[j]);//各个检查 + //} + //else + //{ + // listPerChearchPer = listPerChearch.Where(e => e.YEAR == year && e.MONTH == Month && listGUID.Contains(e.SOURCEID));//综合检查 + //} + + if (listPerChearchPer == null || !listPerChearchPer.Any()) + { + listListCount.Add(0); + } + else + { + listListCount.Add(listPerChearchPer.Count()); + } + } + modelper.listListCount = listListCount; + ListSafeCheckYearMonth.Add(modelper); + } + + #endregion + + result.ListSafeCheckYearMonth = ListSafeCheckYearMonth.OrderBy(e => e.YEAR).ThenBy(e => e.MONTH).ToList(); + + #region 表数据 + + List listCheckDepCountCJ = new List(); + List listCheckDepCountBZ = new List(); + List listName = new List() { "计划检查次数", "实际检查次数" }; + List listCheckTypeCount = null; + DetailSafeCheckCountDepartment modelCountDep = null; + int checkTypeCount = listCheckTypeID.Count; + //foreach (var item in listDepBM) + //{ + // var parentIds = listDepCJ.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == item.ID).Select(t => t.ID).ToList(); + // var bzIds = listDepBZ.Where(e => e.PARENT_ID.HasValue && parentIds.Contains(e.PARENT_ID.Value)).Select(t => t.ID).ToList(); + // var alls = checkNotices.Where(t => t.APPLY_DEPARTMENT_ID == item.ID || parentIds.Contains((Guid)t.APPLY_DEPARTMENT_ID) || bzIds.Contains((Guid)t.APPLY_DEPARTMENT_ID)).ToList(); + // if (alls.Count() > 0) + // { + // modelCountDep = new DetailSafeCheckCountDepartment(); + // modelCountDep.listName = listName; + // modelCountDep.PARENT_ID = item.PARENT_ID.Value; + // modelCountDep.Department_ID = item.ID; + // modelCountDep.NUM = item.NUM; + // //modelCountDep.RowCount = listDepBZ.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == item.ID).Count(); + // modelCountDep.DepartmentName = item.NAME; + // modelCountDep.DepartmentType = item.DEPARTMENT_TYPE; + // listCheckTypeCount = new List(); + // var count = alls.Count(); + // listCheckTypeCount.Add(count); + // var ids = alls.Select(t => t.ID).ToList(); + // var countAct = checkRecords.Count(t => ids.Contains((Guid)t.SECURITY_INSPECTION_NOTICE_ID)); + // listCheckTypeCount.Add(countAct); + // modelCountDep.listCount = listCheckTypeCount; + // listCheckDepCountCJ.Add(modelCountDep); + // } + + //} + foreach (var item in listDepCJ) + { + var parentIds = listDepBZ.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == item.ID).Select(t => t.ID).ToList(); + var alls = checkNotices.Where(t => t.APPLY_DEPARTMENT_ID == item.ID || parentIds.Contains((Guid)t.APPLY_DEPARTMENT_ID)).ToList(); + if (alls.Count() > 0) + { + modelCountDep = new DetailSafeCheckCountDepartment(); + modelCountDep.listName = listName; + modelCountDep.PARENT_ID = item.PARENT_ID.Value; + modelCountDep.Department_ID = item.ID; + modelCountDep.NUM = item.NUM; + //modelCountDep.RowCount = listDepBZ.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == item.ID).Count(); + modelCountDep.DepartmentName = item.NAME; + modelCountDep.DepartmentType = item.DEPARTMENT_TYPE; + listCheckTypeCount = new List(); + var count = alls.Count(); + listCheckTypeCount.Add(count); + var ids = alls.Select(t => t.ID).ToList(); + var countAct = checkRecords.Count(t => ids.Contains((Guid)t.SECURITY_INSPECTION_NOTICE_ID)); + listCheckTypeCount.Add(countAct); + modelCountDep.listCount = listCheckTypeCount; + listCheckDepCountCJ.Add(modelCountDep); + } + + } + + foreach (var item in listDepBZ) + { + var alls = checkNotices.Where(t => t.APPLY_DEPARTMENT_ID == item.ID).ToList(); + var count = alls.Count(); + if (count > 0) + { + modelCountDep = new DetailSafeCheckCountDepartment(); + modelCountDep.listName = listName; + modelCountDep.PARENT_ID = item.PARENT_ID.Value; + modelCountDep.Department_ID = item.ID; + modelCountDep.NUM = item.NUM; + modelCountDep.RowCount = 1; + modelCountDep.DepartmentName = item.NAME; + modelCountDep.DepartmentType = item.DEPARTMENT_TYPE; + listCheckTypeCount = new List(); + listCheckTypeCount.Add(count); + var ids = alls.Select(t => t.ID).ToList(); + var countAct = checkRecords.Count(t => ids.Contains((Guid)t.SECURITY_INSPECTION_NOTICE_ID)); + listCheckTypeCount.Add(countAct); + modelCountDep.listCount = listCheckTypeCount; + listCheckDepCountBZ.Add(modelCountDep); + } + } + + //result.ListSafeCheckCountDepartmentBZ = listCheckDepCountBZ; + foreach (var item in listCheckDepCountCJ) + { + //if (item.DepartmentType == 10) + //{ + // var cjList = listCheckDepCountCJ.Where(e => e.PARENT_ID == item.Department_ID).OrderBy(e => e.NUM).ToList(); + // var cjIds = listCheckDepCountCJ.Where(e => e.PARENT_ID == item.Department_ID).Select(e => e.Department_ID).ToList(); + // var bzList = listCheckDepCountBZ.Where(e => cjIds.Contains(e.PARENT_ID)).OrderBy(e => e.NUM).ToList(); + // cjList.AddRange(bzList); + // item.listChild = cjList.ToList(); + // item.RowCount = item.listChild.Count(); + //} + //if (item.DepartmentType == 15) + { + item.listChild = listCheckDepCountBZ.Where(e => e.PARENT_ID == item.Department_ID).OrderBy(e => e.NUM).ToList(); + item.RowCount = item.listChild.Count(); + } + } + + #endregion + + //result.ListSafeCheckCountDepartment = listCheckDepCountCJ; + + //取明细 + List ListSafeCheckYearMonthLast = new List(); + int allIndex = 0; + foreach (var item in listCheckDepCountCJ) + { + foreach (var itemC in item.listChild) + { + allIndex++; + itemC.NUM = allIndex; + itemC.Parent = item; + ListSafeCheckYearMonthLast.Add(itemC); + } + } + result.ListSafeCheckCountDepartment = ListSafeCheckYearMonthLast; + + return result; + }); + } + /// + /// 月度隐患整改情况(BI055HomeDetail) + /// + /// 过滤实体 + /// + [HttpPost, Route("GetHomeDetailMonthRisk")] + public JsonActionResult GetHomeDetailMonthRisk([FromBody] KeywordFilter filter) + { + return SafeExecute(() => + { + //按生产单元 获取数据 + HomeDetailRiskCountMonth result = new HomeDetailRiskCountMonth(); + //if (string.IsNullOrEmpty(filter.Keyword)) + //{ + // return result; + //} + //int MineType = int.Parse(filter.Keyword); + var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId; + BaseFilter filterD = new BaseFilter(orgId); + filterD.SelectField = new List { "ID", "NAME", "DEPARTMENT_TYPE", "PARENT_ID" }; + + ///部门 + //var listDep1MineTypeSum = GetEntities(t => t.MineType.HasValue && t.MineType == MineType && t.DEPARTMENT_TYPE == 10, filterD, null); + ///车间 班组 + var listDep1MineType = GetEntities(t => t.ENABLE_STATUS == 0, filterD, null); + + //FMDepartmentType 部门=0, 车间=1, 班组=2, 公司=3 + if (listDep1MineType == null || !listDep1MineType.Any()) + { + return result; + } + + DateTime dtNow = DateTime.Now; + List listDepCJ = new List(); + List listDepBZ = new List(); + + listDepCJ = listDep1MineType.Where(e => e.DEPARTMENT_TYPE == 15).OrderBy(e => e.NUM).ToList(); + listDepBZ = listDep1MineType.Where(e => e.DEPARTMENT_TYPE == 20).OrderBy(e => e.NUM).ToList(); + + + #region //月度 隐患整改情况 + string Val = string.Empty;// 0 ,1,2,3 + //string NameMonth = dtNow.AddMonths(-5).Month.ToString() + "月," + dtNow.AddMonths(-4).Month.ToString() + "月," + dtNow.AddMonths(-3).Month.ToString() + "月," + dtNow.AddMonths(-2).Month.ToString() + "月," + dtNow.AddMonths(-1).Month.ToString() + "月," + dtNow.Month.ToString() + "月"; + string NameMonth = dtNow.AddMonths(-5).ToString("yyyy-MM") + "," + dtNow.AddMonths(-4).ToString("yyyy-MM") + "," + dtNow.AddMonths(-3).ToString("yyyy-MM") + "," + dtNow.AddMonths(-2).ToString("yyyy-MM") + "," + dtNow.AddMonths(-1).ToString("yyyy-MM") + "," + dtNow.ToString("yyyy-MM"); + List listC = new List(); + //HomeCorrect modelC = null; + bool isNormal = true;//数据是否正常 + var newFilter = new BaseFilter(orgId); + newFilter.IgnoreDataRule = true; + var startTime = dtNow.AddMonths(-11); + var hiddens = GetEntities(e => e.APPLY_DEPARTMENT_ID.HasValue && e.CREATE_TIME.HasValue && e.CREATE_TIME >= startTime, newFilter); + + + var currentTime = Convert.ToDateTime(startTime.Year + "-" + startTime.Month + "-01 00:00:00"); + //var groupDepart = hiddens.GroupBy(t => t.APPLY_DEPARTMENT_ID); + //if (groupDepart.Any()) + { + //foreach (var item in groupDepart) + { + for (DateTime i = currentTime; i <= dtNow; i = i.AddMonths(1)) + { + var monthStart = Convert.ToDateTime(i.Year + "-" + i.Month + "-01 00:00:00"); + var monthEnd = Convert.ToDateTime(monthStart.AddMonths(1).AddDays(-1).ToString().Replace("0:00:00", "23:59:59")); + if (i.Date <= startTime.Date) + { + monthStart = startTime; + } + if (i.Date >= dtNow.Date) + { + monthEnd = dtNow; + } + var alls = hiddens.Where(t => t.CREATE_TIME >= monthStart && t.CREATE_TIME <= monthEnd); + var onTimes = alls.Where(t => t.STATUS == BaseData.Domain.Enums.PF.PFStandardStatus.Archived && t.COMPLETE_DATE <= t.RECITIFY_TIME); + if (onTimes.Any()) + { + HomeCorrect modelC = new HomeCorrect(); + modelC.Val = onTimes.Count().ToString(); + modelC.SOURCENAME = "按时整改隐患"; + //modelC.DEPARTMENT_ID = (Guid)item.Key; + //modelC.DEPARTMENTNAME = listDep.FirstOrDefault(t => t.ID == item.Key)?.NAME; + modelC.YEAR = monthStart.Year; + modelC.NAME = monthStart.ToString("yyyy-MM"); + listC.Add(modelC); + } + else + { + HomeCorrect modelC = new HomeCorrect(); + modelC.Val = "0"; + modelC.SOURCENAME = "按时整改隐患"; + //modelC.DEPARTMENT_ID = (Guid)item.Key; + //modelC.DEPARTMENTNAME = listDep.FirstOrDefault(t => t.ID == item.Key)?.NAME; + modelC.YEAR = monthStart.Year; + modelC.NAME = monthStart.ToString("yyyy-MM"); + listC.Add(modelC); + } + var overTimes = alls.Where(t => t.STATUS == BaseData.Domain.Enums.PF.PFStandardStatus.Archived && t.COMPLETE_DATE > t.RECITIFY_TIME); + if (overTimes.Any()) + { + HomeCorrect modelC = new HomeCorrect(); + modelC.Val = overTimes.Count().ToString(); + modelC.SOURCENAME = "超期整改隐患"; + //modelC.DEPARTMENT_ID = (Guid)item.Key; + //modelC.DEPARTMENTNAME = listDep.FirstOrDefault(t => t.ID == item.Key)?.NAME; + modelC.YEAR = monthStart.Year; + modelC.NAME = monthStart.ToString("yyyy-MM"); + listC.Add(modelC); + } + else + { + HomeCorrect modelC = new HomeCorrect(); + modelC.Val = "0"; + modelC.SOURCENAME = "超期整改隐患"; + //modelC.DEPARTMENT_ID = (Guid)item.Key; + //modelC.DEPARTMENTNAME = listDep.FirstOrDefault(t => t.ID == item.Key)?.NAME; + modelC.YEAR = monthStart.Year; + modelC.NAME = monthStart.ToString("yyyy-MM"); + listC.Add(modelC); + } + var noTimes = alls.Where(t => t.STATUS != BaseData.Domain.Enums.PF.PFStandardStatus.Archived); + if (noTimes.Any()) + { + HomeCorrect modelC = new HomeCorrect(); + modelC.Val = noTimes.Count().ToString(); + modelC.SOURCENAME = "未整改隐患"; + //modelC.DEPARTMENT_ID = (Guid)item.Key; + //modelC.DEPARTMENTNAME = listDep.FirstOrDefault(t => t.ID == item.Key)?.NAME; + modelC.YEAR = monthStart.Year; + modelC.NAME = monthStart.ToString("yyyy-MM"); + listC.Add(modelC); + } + else + { + HomeCorrect modelC = new HomeCorrect(); + modelC.Val = "0"; + modelC.SOURCENAME = "未整改隐患"; + //modelC.DEPARTMENT_ID = (Guid)item.Key; + //modelC.DEPARTMENTNAME = listDep.FirstOrDefault(t => t.ID == item.Key)?.NAME; + modelC.YEAR = monthStart.Year; + modelC.NAME = monthStart.ToString("yyyy-MM"); + listC.Add(modelC); + } + if (alls.Any()) + { + var val = onTimes.Count() + overTimes.Count(); + var count = alls.Count(); + HomeCorrect modelC = new HomeCorrect(); + modelC.Val = count == 0 ? "100" : ((decimal)Math.Round(100.00 * val / count, 2)).ToString(); + modelC.SOURCENAME = "隐患整改率"; + //modelC.DEPARTMENT_ID = (Guid)item.Key; + //modelC.DEPARTMENTNAME = listDep.FirstOrDefault(t => t.ID == item.Key)?.NAME; + modelC.YEAR = monthStart.Year; + modelC.NAME = monthStart.ToString("yyyy-MM"); + listC.Add(modelC); + } + else + { + HomeCorrect modelC = new HomeCorrect(); + modelC.Val = "100"; + modelC.SOURCENAME = "隐患整改率"; + //modelC.DEPARTMENT_ID = (Guid)item.Key; + //modelC.DEPARTMENTNAME = listDep.FirstOrDefault(t => t.ID == item.Key)?.NAME; + modelC.YEAR = monthStart.Year; + modelC.NAME = monthStart.ToString("yyyy-MM"); + listC.Add(modelC); + } + } + } + } + List listC2 = new List(); + if (listC.Any()) + { + var groupList = listC.GroupBy(t => new { t.SOURCENAME }); + if (groupList.Any()) + { + foreach (var item in groupList) + { + var vals = listC.Where(t => t.SOURCENAME == item.Key.SOURCENAME).OrderBy(m => m.NAME).Select(n => n.Val).ToList(); + var names = listC.Where(t => t.SOURCENAME == item.Key.SOURCENAME).OrderBy(m => m.NAME).Select(n => n.NAME).ToList(); + HomeCorrect modelC = new HomeCorrect(); + modelC.Val = string.Join(",", vals); + modelC.SOURCENAME = item.Key.SOURCENAME; + //modelC.DEPARTMENT_ID = item.Key.DEPARTMENT_ID; + //modelC.DEPARTMENTNAME = listDep.FirstOrDefault(t => t.ID == item.Key.DEPARTMENT_ID)?.NAME; + modelC.YEAR = dtNow.Year; + modelC.NAME = string.Join(",", names); + listC2.Add(modelC); + } + } + } + + result.ListC = listC2; + + #region 组织合并 + + + #endregion + + + + #endregion + + #region 子表信息 + + //BSCorrectType + //List enums = DataHelper.GetEnum("BSCorrectType"); + + List listName = new List() { "按时整改隐患", "超期整改隐患", "未整改隐患", "隐患整改率" }; + //List listVal = new List(); + //foreach (var item in enums) + //{ + // listVal.Add(item.ID); + // listName.Add(item.NAME); + //} + + List listCheckDepCountCJ = new List(); + List listCheckDepCountBZ = new List(); + + List listCheckTypeCount = null; + DetailSafeCheckCountDepartment modelCountDep = null; + //int checkTypeCount = listVal.Count; + + int Percent = 3;//第4项 是辈分比 + int All = 0; + foreach (var item in listDepCJ) + { + var classIds = listDepBZ.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == item.ID).Select(t => t.ID); + var alls = hiddens.Where(t => t.APPLY_DEPARTMENT_ID == item.ID || classIds.Contains((Guid)t.APPLY_DEPARTMENT_ID)); + if (alls.Count() > 0) + { + modelCountDep = new DetailSafeCheckCountDepartment(); + modelCountDep.listName = listName; + modelCountDep.PARENT_ID = item.PARENT_ID.Value; + modelCountDep.Department_ID = item.ID; + modelCountDep.NUM = item.NUM; + //modelCountDep.RowCount = listDepBZ.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == item.ID).Count(); + modelCountDep.DepartmentName = item.NAME; + modelCountDep.DepartmentType = item.DEPARTMENT_TYPE; + listCheckTypeCount = new List(); + + modelCountDep.TotalCount = alls.Count(); + var onTimes = alls.Where(t => t.STATUS == BaseData.Domain.Enums.PF.PFStandardStatus.Archived && t.COMPLETE_DATE <= t.RECITIFY_TIME); + if (onTimes.Any()) + { + listCheckTypeCount.Add(onTimes.Count()); + } + else + { + listCheckTypeCount.Add(0); + } + modelCountDep.OnCount = onTimes.Count(); + var overTimes = alls.Where(t => t.STATUS == BaseData.Domain.Enums.PF.PFStandardStatus.Archived && t.COMPLETE_DATE > t.RECITIFY_TIME); + if (overTimes.Any()) + { + listCheckTypeCount.Add(overTimes.Count()); + } + else + { + listCheckTypeCount.Add(0); + } + modelCountDep.OverCount = overTimes.Count(); + var noTimes = alls.Where(t => t.STATUS != BaseData.Domain.Enums.PF.PFStandardStatus.Archived); + if (noTimes.Any()) + { + listCheckTypeCount.Add(noTimes.Count()); + } + else + { + listCheckTypeCount.Add(0); + } + modelCountDep.NoCount = noTimes.Count(); + if (alls.Any()) + { + var val = onTimes.Count() + overTimes.Count(); + var count = alls.Count(); + var rate = count == 0 ? 0 : (int)(10000.00 * val / count); + listCheckTypeCount.Add(rate); + } + else + { + listCheckTypeCount.Add(10000); + } + modelCountDep.listCount = listCheckTypeCount; + listCheckDepCountCJ.Add(modelCountDep); + } + + } + //listCheckDepCountCJ = listCheckDepCountCJ.Where(t => t.TotalCount != 0).ToList(); + var departIds = listCheckDepCountCJ.Select(t => t.Department_ID).Distinct().ToList(); + listDepBZ = listDepBZ.Where(t => t.PARENT_ID != null && departIds.Contains((Guid)t.PARENT_ID)).ToList(); + foreach (var item in listDepBZ) + { + var alls = hiddens.Where(t => t.APPLY_DEPARTMENT_ID == item.ID); + if (alls.Count() > 0) + { + modelCountDep = new DetailSafeCheckCountDepartment(); + modelCountDep.listName = listName; + modelCountDep.PARENT_ID = item.PARENT_ID.Value; + modelCountDep.Department_ID = item.ID; + modelCountDep.NUM = item.NUM; + modelCountDep.RowCount = 1; + modelCountDep.DepartmentName = item.NAME; + modelCountDep.DepartmentType = item.DEPARTMENT_TYPE; + listCheckTypeCount = new List(); + + modelCountDep.TotalCount = alls.Count(); + var onTimes = alls.Where(t => t.STATUS == BaseData.Domain.Enums.PF.PFStandardStatus.Archived && t.COMPLETE_DATE <= t.RECITIFY_TIME); + if (onTimes.Any()) + { + listCheckTypeCount.Add(onTimes.Count()); + } + else + { + listCheckTypeCount.Add(0); + } + modelCountDep.OnCount = onTimes.Count(); + var overTimes = alls.Where(t => t.STATUS == BaseData.Domain.Enums.PF.PFStandardStatus.Archived && t.COMPLETE_DATE > t.RECITIFY_TIME); + if (overTimes.Any()) + { + listCheckTypeCount.Add(overTimes.Count()); + } + else + { + listCheckTypeCount.Add(0); + } + modelCountDep.OverCount = overTimes.Count(); + var noTimes = alls.Where(t => t.STATUS != BaseData.Domain.Enums.PF.PFStandardStatus.Archived); + if (noTimes.Any()) + { + listCheckTypeCount.Add(noTimes.Count()); + } + else + { + listCheckTypeCount.Add(0); + } + modelCountDep.NoCount = noTimes.Count(); + if (alls.Any()) + { + var val = onTimes.Count() + overTimes.Count(); + var count = alls.Count(); + var rate = count == 0 ? 0 : (int)(10000.00 * val / count); + listCheckTypeCount.Add(rate); + } + else + { + listCheckTypeCount.Add(10000); + } + modelCountDep.listCount = listCheckTypeCount; + listCheckDepCountBZ.Add(modelCountDep); + } + } + //listCheckDepCountBZ = listCheckDepCountBZ.Where(t => t.TotalCount != 0).ToList(); + foreach (var item in listCheckDepCountCJ) + { + item.listChild = listCheckDepCountBZ.Where(e => e.PARENT_ID == item.Department_ID).OrderBy(e => e.NUM).ToList(); + item.listCount = new List(); + var onTime = item.listChild.Sum(t => t.OnCount) + item.OnCount; + item.listCount.Add(onTime); + var overTime = item.listChild.Sum(t => t.OverCount) + item.OverCount; + item.listCount.Add(overTime); + var noTime = item.listChild.Sum(t => t.NoCount) + item.NoCount; + item.listCount.Add(noTime); + var val = onTime + overTime; + var count = item.TotalCount; + var rate = count == 0 ? 0 : (int)(10000.00 * val / count); + item.listCount.Add(rate); + item.RowCount = item.listChild.Count(); + } + + //result.ListSafeCheckYearMonth = listCheckDepCountCJ; + + //取明细 + List ListSafeCheckYearMonth = new List(); + int allIndex = 0; + foreach (var item in listCheckDepCountCJ) + { + foreach (var itemC in item.listChild) + { + allIndex++; + itemC.NUM = allIndex; + itemC.Parent = item; + ListSafeCheckYearMonth.Add(itemC); + } + } + + result.ListSafeCheckYearMonth = ListSafeCheckYearMonth; + + #endregion + + return result; + }); + } + /// /// 风险等级占比 /// /// 过滤实体 @@ -2888,7 +3368,22 @@ namespace APT.SC.WebApi.Controllers.Api.BI /// 父项 /// public DetailSafeCheckCountDepartment Parent { get; set; } - + /// + /// 总数 + /// + public int TotalCount { get; set; } + /// + /// 总数 + /// + public int OnCount { get; set; } + /// + /// 总数 + /// + public int OverCount { get; set; } + /// + /// 总数 + /// + public int NoCount { 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 1189926..2c6dd06 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs @@ -27,6 +27,7 @@ using APT.MS.Domain.Entities.SC.SC; using APT.MS.Domain.Entities.SE; using APT.MS.Domain.Enums; using APT.MS.Domain.Enums.SK; +using APT.SC.WebApi.Controllers.Api.BI; using APT.Utility; using Castle.Core.Internal; using ICSharpCode.SharpZipLib.Core; @@ -122,7 +123,8 @@ namespace APT.SC.WebApi.Controllers.Api.BIController public int shopDoneCount { get; set; } public int shopOntimeCount { get; set; } public double shopDoneRate { get; set; } - public double shopOverDoneRate { get; set; } + public double shopOverDoneRate { get; set; } + public int shopUndoneCount { get; set; } public Guid? teamId { get; set; } public string teamName { get; set; } public int teamTotalCount { get; set; } @@ -9689,9 +9691,10 @@ namespace APT.SC.WebApi.Controllers.Api.BIController 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 teams = GetEntities(t => !t.IS_DELETED && departmentIds.Contains(t.DEPARTMENT_ID.Value), baseFilter); + //var teamIds = teams.Select(t => t.ID); var completions = GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)).ToList(); + //var teamIds = completions.Select(t => t.TEAM_ID); if (!string.IsNullOrEmpty(filter.Parameter2)) { DateTime startTime = Convert.ToDateTime(filter.Parameter2); @@ -9702,9 +9705,9 @@ namespace APT.SC.WebApi.Controllers.Api.BIController DateTime endTime = Convert.ToDateTime(filter.Parameter3); completions = completions.Where(t => t.MONTH <= endTime).ToList(); } - if (teamIds != null && teamIds.Any()) + //if (teamIds != null && teamIds.Any()) { - completionLists = completions.Where(m => m.TEAM_ID != null && teamIds.Contains(m.TEAM_ID.Value)).GroupBy(t => new { t.TEAM_ID, t.TEAM_NAME }).Select(group => new GroupbyDepartmentId + completionLists = completions.Where(m => m.TEAM_ID != null).GroupBy(t => new { t.TEAM_ID, t.TEAM_NAME }).Select(group => new GroupbyDepartmentId { departmentId = group.Key.TEAM_ID, departmentName = group.Key.TEAM_NAME, @@ -9774,16 +9777,29 @@ 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 departmentInfo = this.GetEntities(t => t.ENABLE_STATUS == 0 && t.CATEGORY == FMCATEGORY.ACTURE, new BaseFilter(orgId)); + var completions = GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)).ToList(); + var deptIds = completions.Where(t => t.DEPARTMENT_ID != null).Select(t => (Guid)t.DEPARTMENT_ID).Distinct().ToList(); + departmentIds.AddRange(deptIds); + var shopIds = completions.Where(t => t.SHOP_DEPARTMENT_ID != null).Select(t => (Guid)t.SHOP_DEPARTMENT_ID).Distinct().ToList(); + departmentIds.AddRange(shopIds); + var classIds = completions.Where(t => t.TEAM_ID != null).Select(t => (Guid)t.TEAM_ID).Distinct().ToList(); + departmentIds.AddRange(classIds); + var departmentInfo = this.GetEntities(t => t.ENABLE_STATUS == 0 && t.CATEGORY == FMCATEGORY.ACTURE, new BaseFilter(orgId), "Nav_Parent"); + if (departmentIds != null && departmentIds.Any()) + { + departmentInfo = departmentInfo.Where(t => departmentIds.Contains(t.ID)).ToList(); + } if (departmentInfo == null || !departmentInfo.Any()) return ret; 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 = GetEntities(t => !t.IS_DELETED && t.TEAM_ID != null && teamIds.Contains(t.TEAM_ID.Value), new BaseFilter(orgId)).ToList(); + departmentIds = departmentInfo.Select(t => t.ID).Distinct().ToList(); + //List listDepBM = new List(); + //List listDepCJ = new List(); + //List listDepBZ = new List(); + //listDepBM = departmentInfo.Where(e => e.DEPARTMENT_TYPE == 10).OrderBy(e => e.NUM).ToList(); + //listDepCJ = departmentInfo.Where(e => e.DEPARTMENT_TYPE == 15).OrderBy(e => e.NUM).ToList(); + //listDepBZ = departmentInfo.Where(e => e.DEPARTMENT_TYPE == 20).OrderBy(e => e.NUM).ToList(); + //var completions = GetEntities(t => !t.IS_DELETED && t.TEAM_ID != null && teamIds.Contains(t.TEAM_ID.Value), new BaseFilter(orgId)).ToList(); if (completions != null && completions.Any()) { completionSorts = completions.GroupBy(t => new { t.MONTH, t.MONTHStr }).Select(group => new T_FM_DEPARTMENT_COMPLETION @@ -9793,62 +9809,155 @@ namespace APT.SC.WebApi.Controllers.Api.BIController FINISH_COUNT = group.Where(i => i.MONTH == group.Key.MONTH).Sum(m => m.FINISH_COUNT), ONTIME_COUNT = group.Where(i => i.MONTH == group.Key.MONTH).Sum(m => m.ONTIME_COUNT), TOTAL_COUNT = group.Where(i => i.MONTH == group.Key.MONTH).Sum(m => m.TOTAL_COUNT), - }).ToList(); - completionLists = completions.GroupBy(t => new { t.TEAM_ID, t.TEAM_NAME, t.SHOP_DEPARTMENT_ID, t.SHOP_DEPARTMENT_NAME }).Select(group => new GroupbyDepartmentCompletion + }).ToList(); + if (completionSorts != null && completionSorts.Any()) + { + foreach (var item in completionSorts) + { + if (item.TOTAL_COUNT == 0) + { + item.FINISH_RATE = 0; + item.NORMAL_FINISH_RATE = 0; + } + else + { + item.FINISH_RATE = Math.Round((double)item.FINISH_COUNT / (double)item.TOTAL_COUNT * 100, 2); + item.NORMAL_FINISH_RATE = Math.Round((double)item.ONTIME_COUNT / (double)item.TOTAL_COUNT * 100, 2); + } + } + ret.rateData = completionSorts.OrderBy(t => t.MONTH).ToList(); + } + completionLists = completions.Where(t=>t.TEAM_ID!=null).GroupBy(t => new { t.TEAM_ID, t.TEAM_NAME }).Select(group => new GroupbyDepartmentCompletion { - shopId = group.Key.SHOP_DEPARTMENT_ID, - shopName = group.Key.SHOP_DEPARTMENT_NAME, + shopId = group.FirstOrDefault(i => i.TEAM_ID == group.Key.TEAM_ID)?.DEPARTMENT_ID, + shopName = group.FirstOrDefault(i => i.TEAM_ID == group.Key.TEAM_ID)?.DEPARTMENT_NAME, teamId = group.Key.TEAM_ID, teamName = group.Key.TEAM_NAME, - teamDoneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.FINISH_COUNT), - teamOntimeCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.ONTIME_COUNT), - teamUndoneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.WAITTING_COUNT), - teamTotalCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.TOTAL_COUNT), - }).ToList(); - } - if (completionSorts != null && completionSorts.Any()) - { - foreach (var item in completionSorts) - { - if (item.TOTAL_COUNT == 0) - { - item.FINISH_RATE = 0; - item.NORMAL_FINISH_RATE = 0; - } - else - { - item.FINISH_RATE = Math.Round((double)item.FINISH_COUNT / (double)item.TOTAL_COUNT * 100, 2); - item.NORMAL_FINISH_RATE = Math.Round((double)item.ONTIME_COUNT / (double)item.TOTAL_COUNT * 100, 2); - } - } - ret.rateData = completionSorts.OrderBy(t => t.MONTH).ToList(); - } + teamDoneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.FINISH_COUNT), + teamOntimeCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.ONTIME_COUNT), + teamUndoneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.WAITTING_COUNT), + teamTotalCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.TOTAL_COUNT), + }).ToList(); + + //completionLists = completions.Where(t => t.TEAM_ID != null).GroupBy(t => new { t.TEAM_ID, t.TEAM_NAME }).Select(group => new GroupbyDepartmentCompletion + //{ + // shopId = group.FirstOrDefault(i => i.TEAM_ID == group.Key.TEAM_ID)?.DEPARTMENT_ID, + // shopName = group.FirstOrDefault(i => i.TEAM_ID == group.Key.TEAM_ID)?.DEPARTMENT_NAME, + // teamId = group.Key.TEAM_ID, + // teamName = group.Key.TEAM_NAME, + // teamDoneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.FINISH_COUNT), + // teamOntimeCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.ONTIME_COUNT), + // teamUndoneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.WAITTING_COUNT), + // teamTotalCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.TOTAL_COUNT), + //}).ToList(); + //var shopCompletionLists = completions.Where(t => t.SHOP_DEPARTMENT_ID != null).GroupBy(t => new { t.SHOP_DEPARTMENT_ID, t.SHOP_DEPARTMENT_NAME }).Select(group => new GroupbyDepartmentCompletion + //{ + + // shopId = group.FirstOrDefault(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID)?.DEPARTMENT_ID, + // shopName = group.FirstOrDefault(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID)?.DEPARTMENT_NAME, + // teamId = group.Key.SHOP_DEPARTMENT_ID, + // teamName = group.Key.SHOP_DEPARTMENT_NAME, + // teamDoneCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID && i.TEAM_ID == null).Sum(m => m.FINISH_COUNT), + // teamOntimeCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID && i.TEAM_ID == null).Sum(m => m.ONTIME_COUNT), + // teamUndoneCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID && i.TEAM_ID == null).Sum(m => m.WAITTING_COUNT), + // teamTotalCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID && i.TEAM_ID == null).Sum(m => m.TOTAL_COUNT), + //}).ToList(); + //completionLists.AddRange(shopCompletionLists); + //var deptCompletionLists = completions.Where(t => t.DEPARTMENT_ID != null).GroupBy(t => new { t.DEPARTMENT_ID, t.DEPARTMENT_NAME }).Select(group => new GroupbyDepartmentCompletion + //{ + // shopId = group.Key.DEPARTMENT_ID, + // shopName = group.Key.DEPARTMENT_NAME, + // teamId = group.Key.DEPARTMENT_ID, + // teamName = group.Key.DEPARTMENT_NAME, + // shopDoneCount = group.Where(i => i.DEPARTMENT_ID == group.Key.DEPARTMENT_ID).Sum(m => m.FINISH_COUNT), + // shopOntimeCount = group.Where(i => i.DEPARTMENT_ID == group.Key.DEPARTMENT_ID).Sum(m => m.ONTIME_COUNT), + // shopTotalCount = group.Where(i => i.DEPARTMENT_ID == group.Key.DEPARTMENT_ID).Sum(m => m.TOTAL_COUNT), + //}).ToList(); + //completionLists.AddRange(deptCompletionLists); + //foreach (var item in listDepBM) + //{ + // var modelCountDep = new GroupbyDepartmentCompletion(); + // modelCountDep.shopId = item.ID; + // modelCountDep.shopName = item.NAME; + // modelCountDep.teamId = item.ID; + // modelCountDep.teamName = item.NAME; + // modelCountDep.shopDoneCount = completions.Where(e => (e.DEPARTMENT_ID.HasValue && e.DEPARTMENT_ID.Value == item.ID) || (e.SHOP_DEPARTMENT_ID.HasValue && e.SHOP_DEPARTMENT_ID == item.ID)).Sum(m=>m.FINISH_COUNT); + // modelCountDep.shopOntimeCount = completions.Where(e => (e.DEPARTMENT_ID.HasValue && e.DEPARTMENT_ID.Value == item.ID) ||(e.SHOP_DEPARTMENT_ID.HasValue && e.SHOP_DEPARTMENT_ID == item.ID)).Sum(m => m.FINISH_COUNT); + // modelCountDep.shopTotalCount = completions.Where(e => (e.DEPARTMENT_ID.HasValue && e.DEPARTMENT_ID.Value == item.ID) || (e.SHOP_DEPARTMENT_ID.HasValue && e.SHOP_DEPARTMENT_ID == item.ID)).Sum(m => m.TOTAL_COUNT); + // if (modelCountDep.shopTotalCount != 0) + // { + // completionLists.Add(modelCountDep); + // } + // completionLists.Add(modelCountDep); + // var cjIds = departmentInfo.Where(e => e.PARENT_ID.HasValue && e.PARENT_ID.Value == item.ID).Select(t => t.ID).ToList(); + // var tempbzIds = departmentInfo.Where(e => e.PARENT_ID.HasValue && cjIds.Contains(e.PARENT_ID.Value)).Select(t => t.ID).ToList(); + // cjIds.AddRange(tempbzIds); + // if (cjIds.Distinct().Any()) + // { + // foreach (var item2 in cjIds) + // { + // var first = departmentInfo.FirstOrDefault(t => t.ID == item2); + // var modelCountDepChild = new GroupbyDepartmentCompletion(); + // modelCountDepChild.shopId = item.ID; + // modelCountDepChild.shopName = item.NAME; + // modelCountDepChild.teamId = item2; + // modelCountDepChild.teamName = first?.NAME; + // if (first.DEPARTMENT_TYPE == 15) + // { + // modelCountDepChild.teamDoneCount = completions.Where(e => e.SHOP_DEPARTMENT_ID.HasValue && e.SHOP_DEPARTMENT_ID.Value == item2).Sum(m => m.FINISH_COUNT); + // modelCountDepChild.teamOntimeCount = completions.Where(e => e.SHOP_DEPARTMENT_ID.HasValue && e.SHOP_DEPARTMENT_ID.Value == item2).Sum(m => m.FINISH_COUNT); + // modelCountDepChild.teamTotalCount = completions.Where(e => e.SHOP_DEPARTMENT_ID.HasValue && e.SHOP_DEPARTMENT_ID.Value == item2).Sum(m => m.TOTAL_COUNT); + // } + // else + // { + // modelCountDepChild.teamDoneCount = completions.Where(e => e.TEAM_ID.HasValue && e.TEAM_ID.Value == item2).Sum(m => m.FINISH_COUNT); + // modelCountDepChild.teamOntimeCount = completions.Where(e => e.TEAM_ID.HasValue && e.TEAM_ID.Value == item2).Sum(m => m.FINISH_COUNT); + // modelCountDepChild.teamTotalCount = completions.Where(e => e.TEAM_ID.HasValue && e.TEAM_ID.Value == item2).Sum(m => m.TOTAL_COUNT); + + // } + // if (modelCountDepChild.teamTotalCount != 0) + // { + // completionLists.Add(modelCountDepChild); + // } + // } + // } + //} + //} + if (completionLists != null && completionLists.Any()) { foreach (var item in completionLists) - { - item.shopDoneCount = completionLists.Where(i => i.shopId == item.shopId).Sum(m => m.teamDoneCount); - item.shopOntimeCount = completionLists.Where(i => i.shopId == item.shopId).Sum(m => m.teamOntimeCount); - item.shopTotalCount = completionLists.Where(i => i.shopId == item.shopId).Sum(m => m.teamTotalCount); - if (item.shopTotalCount == 0) - { - item.shopDoneRate = 0; - item.shopOverDoneRate = 0; - } - else - { - item.shopDoneRate = Math.Round((double)item.shopDoneCount / (double)item.shopTotalCount * 100, 2); - item.shopOverDoneRate = Math.Round((double)item.shopOntimeCount / (double)item.shopTotalCount * 100, 2); - } - if (item.teamTotalCount == 0) - { - item.teamDoneRate = 0; - item.teamOverDoneRate = 0; - } - else - { - item.teamDoneRate = Math.Round((double)item.teamDoneCount / (double)item.teamTotalCount * 100, 2); - item.teamOverDoneRate = Math.Round((double)item.teamOntimeCount / (double)item.teamTotalCount * 100, 2); + //{ + // if (item.shopTotalCount == 0) + // { + + + // } + // else + { + item.shopDoneCount = completionLists.Where(i => i.shopId == item.shopId).Sum(m => m.teamDoneCount); + item.shopOntimeCount = completionLists.Where(i => i.shopId == item.shopId).Sum(m => m.teamOntimeCount); + item.shopTotalCount = completionLists.Where(i => i.shopId == item.shopId).Sum(m => m.teamTotalCount); + if (item.shopTotalCount == 0) + { + item.shopDoneRate = 0; + item.shopOverDoneRate = 0; + } + else + { + item.shopDoneRate = Math.Round((double)item.shopDoneCount / (double)item.shopTotalCount * 100, 2); + item.shopOverDoneRate = Math.Round((double)item.shopOntimeCount / (double)item.shopTotalCount * 100, 2); + } + if (item.teamTotalCount == 0) + { + item.teamDoneRate = 0; + item.teamOverDoneRate = 0; + } + else + { + item.teamDoneRate = Math.Round((double)item.teamDoneCount / (double)item.teamTotalCount * 100, 2); + item.teamOverDoneRate = Math.Round((double)item.teamOntimeCount / (double)item.teamTotalCount * 100, 2); + } } } ret.retData = completionLists.OrderBy(t => t.shopName).ThenByDescending(m => m.teamOverDoneRate).ToList(); @@ -10033,11 +10142,11 @@ namespace APT.SC.WebApi.Controllers.Api.BIController var completions = GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)).ToList(); var deptIds = completions.Where(t => t.DEPARTMENT_ID != null).Select(t => (Guid)t.DEPARTMENT_ID).ToList(); departmentIds.AddRange(deptIds); - var shopIds = completions.Where(t => t.SHOP_DEPARTMENT_ID != null).Select(t => (Guid)t.SHOP_DEPARTMENT_ID).ToList(); - departmentIds.AddRange(shopIds); - var classIds = completions.Where(t => t.TEAM_ID != null).Select(t => (Guid)t.TEAM_ID).ToList(); - departmentIds.AddRange(classIds); - var departmentInfo = this.GetEntities(t => t.ENABLE_STATUS == 0 && t.CATEGORY == FMCATEGORY.ACTURE, new BaseFilter(orgId)); + //var shopIds = completions.Where(t => t.SHOP_DEPARTMENT_ID != null).Select(t => (Guid)t.SHOP_DEPARTMENT_ID).ToList(); + //departmentIds.AddRange(shopIds); + //var classIds = completions.Where(t => t.TEAM_ID != null).Select(t => (Guid)t.TEAM_ID).ToList(); + //departmentIds.AddRange(classIds); + var departmentInfo = this.GetEntities(t => t.ENABLE_STATUS == 0 && ((t.DEPARTMENT_STATUS == 2 && t.DEPARTMENT_TYPE==5)||t.DEPARTMENT_TYPE==10) && t.CATEGORY == FMCATEGORY.ACTURE, new BaseFilter(orgId)); if (departmentIds != null && departmentIds.Any()) { //departmentInfo = departmentInfo.Where(t => t.PRODUCTION_UNIT_ID == loginDepart.PRODUCTION_UNIT_ID).ToList(); @@ -10270,19 +10379,44 @@ namespace APT.SC.WebApi.Controllers.Api.BIController ONTIME_COUNT = group.Where(i => i.MONTH == group.Key.MONTH).Sum(m => m.ONTIME_COUNT), TOTAL_COUNT = group.Where(i => i.MONTH == group.Key.MONTH).Sum(m => m.TOTAL_COUNT), }).ToList(); - completionLists = completions.GroupBy(t => new {t.TEAM_ID, t.TEAM_NAME, t.SHOP_DEPARTMENT_ID, t.SHOP_DEPARTMENT_NAME }).Select(group => new GroupbyDepartmentCompletion + completionLists = completions.Where(t=>t.TEAM_ID!=null).GroupBy(t => new {t.TEAM_ID, t.TEAM_NAME}).Select(group => new GroupbyDepartmentCompletion { - deptId = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).FirstOrDefault().DEPARTMENT_ID, - deptName = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).FirstOrDefault().DEPARTMENT_NAME, - shopId = group.Key.SHOP_DEPARTMENT_ID, - shopName = group.Key.SHOP_DEPARTMENT_NAME, + shopId = group.FirstOrDefault(i => i.TEAM_ID == group.Key.TEAM_ID)?.DEPARTMENT_ID, + shopName = group.FirstOrDefault(i => i.TEAM_ID == group.Key.TEAM_ID)?.DEPARTMENT_NAME, teamId = group.Key.TEAM_ID, - teamName = group.Key.TEAM_NAME, - teamDoneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.FINISH_COUNT), - teamOntimeCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.ONTIME_COUNT), - teamUndoneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.WAITTING_COUNT), - teamTotalCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID && i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID).Sum(m => m.TOTAL_COUNT), - }).ToList(); + teamName = group.Key.TEAM_NAME, + //shopDoneCount = group.Where(i => i.DEPARTMENT_ID == group.Key.DEPARTMENT_ID).Sum(m => m.FINISH_COUNT), + //shopOntimeCount = group.Where(i => i.DEPARTMENT_ID == group.Key.DEPARTMENT_ID).Sum(m => m.ONTIME_COUNT), + //shopTotalCount = group.Where(i => i.DEPARTMENT_ID == group.Key.DEPARTMENT_ID).Sum(m => m.TOTAL_COUNT), + teamDoneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.FINISH_COUNT), + teamOntimeCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.ONTIME_COUNT), + teamUndoneCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.WAITTING_COUNT), + teamTotalCount = group.Where(i => i.TEAM_ID == group.Key.TEAM_ID).Sum(m => m.TOTAL_COUNT), + }).ToList(); + //var shopCompletionLists = completions.Where(t => t.SHOP_DEPARTMENT_ID != null).GroupBy(t => new {t.SHOP_DEPARTMENT_ID, t.SHOP_DEPARTMENT_NAME }).Select(group => new GroupbyDepartmentCompletion + //{ + + // shopId = group.FirstOrDefault(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID)?.DEPARTMENT_ID, + // shopName = group.FirstOrDefault(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID)?.DEPARTMENT_NAME, + // teamId = group.Key.SHOP_DEPARTMENT_ID, + // teamName = group.Key.SHOP_DEPARTMENT_NAME, + // teamDoneCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID && i.TEAM_ID == null).Sum(m => m.FINISH_COUNT), + // teamOntimeCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID && i.TEAM_ID == null).Sum(m => m.ONTIME_COUNT), + // teamUndoneCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID && i.TEAM_ID == null).Sum(m => m.WAITTING_COUNT), + // teamTotalCount = group.Where(i => i.SHOP_DEPARTMENT_ID == group.Key.SHOP_DEPARTMENT_ID && i.TEAM_ID == null).Sum(m => m.TOTAL_COUNT), + //}).ToList(); + //completionLists.AddRange(shopCompletionLists); + //var deptCompletionLists = completions.Where(t => t.DEPARTMENT_ID != null).GroupBy(t => new { t.DEPARTMENT_ID, t.DEPARTMENT_NAME}).Select(group => new GroupbyDepartmentCompletion + //{ + // shopId = group.Key.DEPARTMENT_ID, + // shopName = group.Key.DEPARTMENT_NAME, + // teamId = group.Key.DEPARTMENT_ID, + // teamName = group.Key.DEPARTMENT_NAME, + // shopDoneCount = group.Where(i => i.DEPARTMENT_ID == group.Key.DEPARTMENT_ID).Sum(m => m.FINISH_COUNT), + // shopOntimeCount = group.Where(i => i.DEPARTMENT_ID == group.Key.DEPARTMENT_ID).Sum(m => m.ONTIME_COUNT), + // shopTotalCount = group.Where(i => i.DEPARTMENT_ID == group.Key.DEPARTMENT_ID).Sum(m => m.TOTAL_COUNT), + //}).ToList(); + //completionLists.AddRange(deptCompletionLists); } if (completionSorts != null && completionSorts.Any()) { @@ -10301,56 +10435,65 @@ namespace APT.SC.WebApi.Controllers.Api.BIController } ret.rateData = completionSorts.OrderBy(t => t.MONTH).ToList(); } + List result = new List(); if (completionLists != null && completionLists.Any()) { foreach (var item in completionLists) { - if (string.IsNullOrEmpty(item.shopName)) + //if (string.IsNullOrEmpty(item.teamName) ||(item.teamName == item.shopName && item.teamTotalCount == 0)) { - item.shopName = item.deptName; + + // item.teamId = item.shopId; + // item.teamName = item.shopName; + // item.teamDoneCount = completionLists.Where(i => i.shopId == item.shopId && i.teamId == null).Sum(m => m.shopDoneCount); + // item.teamOntimeCount = completionLists.Where(i => i.shopId == item.shopId && i.teamId == null).Sum(m => m.shopOntimeCount); + // item.teamTotalCount = completionLists.Where(i => i.shopId == item.shopId && i.teamId == null).Sum(m => m.shopTotalCount); } - if (string.IsNullOrEmpty(item.teamName)) + //else { - item.teamName = item.shopName; + //if (string.IsNullOrEmpty(item.teamName)) + //{ + // item.teamName = item.shopName; + //} + item.shopDoneCount = completionLists.Where(i => i.shopId == item.shopId).Sum(m => m.teamDoneCount); + item.shopOntimeCount = completionLists.Where(i => i.shopId == item.shopId).Sum(m => m.teamOntimeCount); + item.shopTotalCount = completionLists.Where(i => i.shopId == item.shopId).Sum(m => m.teamTotalCount); + + //if (item.deptTotalCount == 0) + //{ + // item.deptDoneRate = 0; + // item.deptOverDoneRate = 0; + //} + //else + //{ + // item.deptDoneRate = Math.Round((double)item.deptDoneCount / (double)item.deptTotalCount * 100, 2); + // item.deptOverDoneRate = Math.Round((double)item.deptOntimeCount / (double)item.deptTotalCount * 100, 2); + //} + if (item.shopTotalCount == 0) + { + item.shopDoneRate = 0; + item.shopOverDoneRate = 0; + } + else + { + item.shopDoneRate = Math.Round((double)item.shopDoneCount / (double)item.shopTotalCount * 100, 2); + item.shopOverDoneRate = Math.Round((double)item.shopOntimeCount / (double)item.shopTotalCount * 100, 2); + } + if (item.teamTotalCount == 0) + { + item.teamDoneRate = 0; + item.teamOverDoneRate = 0; + } + else + { + item.teamDoneRate = Math.Round((double)item.teamDoneCount / (double)item.teamTotalCount * 100, 2); + item.teamOverDoneRate = Math.Round((double)item.teamOntimeCount / (double)item.teamTotalCount * 100, 2); + } + result.Add(item); } - //item.deptDoneCount = completionLists.Where(i => i.deptId == item.deptId).Sum(m => m.teamDoneCount); - //item.deptOntimeCount = completionLists.Where(i => i.deptId == item.deptId).Sum(m => m.teamOntimeCount); - //item.deptTotalCount = completionLists.Where(i => i.deptId == item.deptId).Sum(m => m.teamTotalCount); - item.shopDoneCount = completionLists.Where(i => i.shopId == item.shopId).Sum(m => m.teamDoneCount); - item.shopOntimeCount = completionLists.Where(i => i.shopId == item.shopId).Sum(m => m.teamOntimeCount); - item.shopTotalCount = completionLists.Where(i => i.shopId == item.shopId).Sum(m => m.teamTotalCount); - //if (item.deptTotalCount == 0) - //{ - // item.deptDoneRate = 0; - // item.deptOverDoneRate = 0; - //} - //else - //{ - // item.deptDoneRate = Math.Round((double)item.deptDoneCount / (double)item.deptTotalCount * 100, 2); - // item.deptOverDoneRate = Math.Round((double)item.deptOntimeCount / (double)item.deptTotalCount * 100, 2); - //} - if (item.shopTotalCount == 0) - { - item.shopDoneRate = 0; - item.shopOverDoneRate = 0; - } - else - { - item.shopDoneRate = Math.Round((double)item.shopDoneCount / (double)item.shopTotalCount * 100, 2); - item.shopOverDoneRate = Math.Round((double)item.shopOntimeCount / (double)item.shopTotalCount * 100, 2); - } - if (item.teamTotalCount == 0) - { - item.teamDoneRate = 0; - item.teamOverDoneRate = 0; - } - else - { - item.teamDoneRate = Math.Round((double)item.teamDoneCount / (double)item.teamTotalCount * 100, 2); - item.teamOverDoneRate = Math.Round((double)item.teamOntimeCount / (double)item.teamTotalCount * 100, 2); - } + } - ret.retData = completionLists.OrderBy(t => t.shopName).ThenByDescending(m => m.teamOverDoneRate).ToList(); + ret.retData = result.OrderBy(t => t.shopName).ThenByDescending(m => m.teamOverDoneRate).ToList(); } return ret; }); @@ -11376,8 +11519,8 @@ namespace APT.SC.WebApi.Controllers.Api.BIController info.DOING = details.Count(t => t.NOTICE_STATUS == "0" && t.TASK_ENDDT >= DateTime.Now); info.UNFINISH = details.Count(t => t.NOTICE_STATUS == "0"); info.OVER_UNFINISH = details.Count(t => t.NOTICE_STATUS == "0" && t.TASK_ENDDT < DateTime.Now); - info.FINISH_RATE = info.TOTAL_QTY == 0 ? "0" : ((double)(info.NORMAL_FINISH + info.OVER_FINISH) / (info.TOTAL_QTY - info.DOING) * 100).ToString("0.00"); - info.NORMAL_RATE = info.TOTAL_QTY == 0 ? "0" : ((double)info.NORMAL_FINISH / (info.TOTAL_QTY - info.DOING) * 100).ToString("0.00"); + info.FINISH_RATE = info.TOTAL_QTY == 0|| (info.TOTAL_QTY - info.DOING) == 0 ? "0" : ((double)(info.NORMAL_FINISH + info.OVER_FINISH) / (info.TOTAL_QTY - info.DOING) * 100).ToString("0.00"); + info.NORMAL_RATE = info.TOTAL_QTY == 0|| (info.TOTAL_QTY - info.DOING) == 0 ? "0" : ((double)info.NORMAL_FINISH / (info.TOTAL_QTY - info.DOING) * 100).ToString("0.00"); info.details = new List(); if (details != null && details.Any()) { diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/EnterpriseLibraryController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/EnterpriseLibraryController.cs index 9e3dcf9..81002df 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/EnterpriseLibraryController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/EnterpriseLibraryController.cs @@ -747,9 +747,12 @@ namespace APT.SK.WebApi.Controllers.Api if (item2 != null && item2.DEPARTMENT_ID != null) { var first = departs.FirstOrDefault(t => t.ID == item2.DEPARTMENT_ID); - var level = Enum.GetName(typeof(FMDepartmentType), first.DEPARTMENT_TYPE); - levelStr.Add(level); - departIds.Add(first.ID); + if (first != null) + { + var level = Enum.GetName(typeof(FMDepartmentType), first?.DEPARTMENT_TYPE); + levelStr.Add(level); + departIds.Add(first.ID); + } } } } diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerRectifyDelayApplyController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerRectifyDelayApplyController.cs index 0623ec1..9bc6319 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerRectifyDelayApplyController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerRectifyDelayApplyController.cs @@ -44,7 +44,7 @@ namespace APT.SK.WebApi.Controllers.Api entity.ApplyDepartmentName = this.GetEntity(t => t.ID == departId).NAME; entity.ApplyPostName = this.GetEntity(t => t.ID == userId, "Nav_Person.Nav_Post")?.Nav_Person?.Nav_Post?.NAME; T_FM_NOTIFICATION_TASK finishNotice = null; - if (entity.STATUS != PFStandardStatus.Draft) + if (entity.STATUS != PFStandardStatus.Draft && entity.STATUS != PFStandardStatus.Rejected) { var taskId = entity.TaskID; if (taskId == Guid.Empty) @@ -87,6 +87,9 @@ namespace APT.SK.WebApi.Controllers.Api } } entity.STATUS = PFStandardStatus.Approving; + entity.Nav_RectifyRecord = null; + entity.Nav_ApplyUser = null; + entity.Nav_ApplyDepartment = null; //取审批流水码 var sysFilter = new SystemCodeFilter(); sysFilter.CodeType = (int)PFCodeRuleType.审批流编码; diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerRectifyNoticeController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerRectifyNoticeController.cs index 1ac1662..c337a90 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerRectifyNoticeController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/HiddenDangerRectifyNoticeController.cs @@ -622,7 +622,7 @@ namespace APT.SK.WebApi.Controllers.Api record.HIDDEN_PLACE = detail.HIDDEN_PLACE; record.HIDDEN_DESCRIPTION = detail.HIDDEN_DESCRIPTION; record.HIDDEN_LEVEL = detail.HIDDEN_LEVEL; - record.RECTIFICATION_MEASURES = detail.REMARK; + record.RECTIFICATION_MEASURES = detail.RECTIFICATION_MEASURES; record.RECITIFY_TIME = detail.RECITIFY_TIME; record.RECITIFY_USER_ID = detail.RECITIFY_USER_ID; record.ACCEPT_USER_ID = detail.ACCEPT_USER_ID; diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionRecordSummaryController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionRecordSummaryController.cs index d37e849..57f2869 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionRecordSummaryController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionRecordSummaryController.cs @@ -306,7 +306,7 @@ namespace APT.SK.WebApi.Controllers.Api detail.CHECKCONTENT = item.CHECKCONTENT; detail.CHECKPROOF = item.CHECKPROOF; detail.CHECKSTANDARD = item.CHECKSTANDARD; - detail.HIDDEN_DESCRIPTION = string.IsNullOrEmpty(item.HIDDEN_DESCRIPTION) ? item.Nav_Question?.DESCREPTION : item.HIDDEN_DESCRIPTION; + detail.HIDDEN_DESCRIPTION = item.HIDDEN_DESCRIPTION; detail.HIDDEN_LEVEL = item.HIDDEN_LEVEL; detail.HIDDEN_PLACE = item.HIDDEN_PLACE; detail.MARK = item.MARK; @@ -501,7 +501,7 @@ namespace APT.SK.WebApi.Controllers.Api detail.CHECKCONTENT = item.CHECKCONTENT; detail.CHECKPROOF = item.CHECKPROOF; detail.CHECKSTANDARD = item.CHECKSTANDARD; - detail.HIDDEN_DESCRIPTION = string.IsNullOrEmpty(item.HIDDEN_DESCRIPTION) ? item.Nav_Question?.DESCREPTION : item.HIDDEN_DESCRIPTION; + detail.HIDDEN_DESCRIPTION = item.HIDDEN_DESCRIPTION; detail.HIDDEN_LEVEL = item.HIDDEN_LEVEL; detail.HIDDEN_PLACE = item.HIDDEN_PLACE; detail.MARK = item.MARK; @@ -652,7 +652,7 @@ namespace APT.SK.WebApi.Controllers.Api detail.CHECKCONTENT = item.CHECKCONTENT; detail.CHECKPROOF = item.CHECKPROOF; detail.CHECKSTANDARD = item.CHECKSTANDARD; - detail.HIDDEN_DESCRIPTION = string.IsNullOrEmpty(item.HIDDEN_DESCRIPTION) ? item.Nav_Question?.DESCREPTION : item.HIDDEN_DESCRIPTION; + detail.HIDDEN_DESCRIPTION = item.HIDDEN_DESCRIPTION; detail.HIDDEN_LEVEL = item.HIDDEN_LEVEL; detail.HIDDEN_PLACE = item.HIDDEN_PLACE; detail.MARK = item.MARK;