using APT.BaseData.Domain.Entities; using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.Enums; using APT.BaseData.Domain.Enums.PF; using APT.BaseData.Domain.IServices; using APT.BaseData.Domain.IServices.FM; using APT.BaseData.Services.DomainServices; using APT.BaseData.Services.Services.FM; using APT.Infrastructure.Core; using APT.MS.Domain.Entities.BS; using APT.MS.Domain.Entities.SC.PE; using APT.MS.Domain.Entities.SK; using APT.MS.Domain.Enums; using APT.MS.Domain.Enums.SK; using APT.Utility; using Castle.Core.Internal; using InfluxData.Net.InfluxDb.Models.Responses; using Microsoft.AspNetCore.Mvc; using NPOI.SS.Formula.Functions; using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; namespace APT.SK.WebApi.Controllers.Api { public class OperateLogDto { /// /// 操作类型 安全检查/隐患上报(对应的 DATA_ID 不一样) /// [Description("操作类型")] public SKLOGTYPE_Enums LOGTYPE { get; set; } /// /// 表单ID /// [Description("表单ID")] public Guid DATA_ID { get; set; } /// /// 表单明细ID /// [Description("表单明细ID")] public Guid? DATA_ID_SUB { get; set; } /// /// 操作节点 /// [Description("操作节点")] public SKOPERATEPOINT_Enums OPERATEPOINT { get; set; } /// /// 操作人(需要操作的人) /// [Description("操作人")] public Guid USER_ID { get; set; } /// /// 操作人 /// [Description("操作人")] public string USRTNAME { get; set; } /// /// 排序 比如审批 可能多节点 /// [Description("排序")] public int ORDERNO { get; set; } /// /// 操作时间 /// [Description("操作时间")] public DateTime? OPERTETIME { get; set; } [Description("排序时间")] public DateTime? ORDERTIME { get; set; } /// /// 是否按时 /// [Description("是否按时")] public bool? ISINTTIME { get; set; } } /// /// 安全检查通知 /// [Route("api/SK/SKSecurityInspectionNotice")] public partial class SecurityInspectionNoticeController : AuthorizeApiController { IPFApproveCallBackService ApproveCallBackService { get; set; } IFMNotificationTaskService NotificationTaskService { get; set; } IPFCodeRuleService CodeRuleService { get; set; } IFMFlowPermitService MFlowPermitService { get; set; } /// /// 安全检查通知 /// /// /// /// /// public SecurityInspectionNoticeController(IFMNotificationTaskService notificationTaskService, IPFApproveCallBackService approveCallBackService, IFMFlowPermitService mFlowPermitService, IPFCodeRuleService codeRuleService) { NotificationTaskService = notificationTaskService; ApproveCallBackService = approveCallBackService; MFlowPermitService = mFlowPermitService; CodeRuleService = codeRuleService; } /// /// 保存 /// /// /// [HttpPost, Route("FullUpdate")] public JsonActionResult FullUpdate([FromBody] T_SK_SECURITY_INSPECTION_NOTICE entity) { return SafeExecute(() => { var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; var departId = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; if (entity.APPLY_USER_ID == null) entity.APPLY_USER_ID = userId; if (entity.APPLY_DEPARTMENT_ID == null) entity.APPLY_DEPARTMENT_ID = departId; if (entity.CHECK_TYPE_ID == null) throw new Exception("检查类型不能为空"); if (entity.CHECK_TIME == null || entity.CHECK_TIME == DateTime.MinValue) throw new Exception("检查时间必须填写"); var details = entity.Nav_CheckNoticeDetails; entity.Nav_CheckNoticeDetails = null; var files = entity.Nav_CheckNoticeFiles; entity.Nav_CheckNoticeFiles = null; List userIds = new List(); List deleteUserIds = new List(); List deleteBasicIds = new List(); List deleteDetailIds = new List(); List userList = new List(); List basicList = new List(); if (details != null && details.Any()) { var evaluationIsExist = this.GetEntity(t => t.ID == entity.ID, new string[] { "Nav_CheckNoticeDetails", "Nav_CheckNoticeDetails.Nav_CheckNoticeDetailUsers", "Nav_CheckNoticeDetails.Nav_CheckNoticeDetailBasics" }); if (evaluationIsExist != null && evaluationIsExist.Nav_CheckNoticeDetails != null && evaluationIsExist.Nav_CheckNoticeDetails.Any()) { evaluationIsExist.Nav_CheckNoticeDetails.ForEach(t => { if (t.Nav_CheckNoticeDetailUsers != null && t.Nav_CheckNoticeDetailUsers.Any()) { var tempIds = t.Nav_CheckNoticeDetailUsers.Select(m => m.ID).ToList(); deleteUserIds.AddRange(tempIds); } if (t.Nav_CheckNoticeDetailBasics != null && t.Nav_CheckNoticeDetailBasics.Any()) { var tempIds = t.Nav_CheckNoticeDetailBasics.Select(m => m.ID).ToList(); deleteBasicIds.AddRange(tempIds); } deleteDetailIds.Add(t.ID); }); } foreach (var item in details) { if (item.Nav_CheckNoticeDetailUsers != null && item.Nav_CheckNoticeDetailUsers.Any()) { item.Nav_CheckNoticeDetailUsers = item.Nav_CheckNoticeDetailUsers.OrderByDescending(t => t.Nav_User?.Nav_ApproveRole?.CODE).ToList(); var i = 1; foreach (var item2 in item.Nav_CheckNoticeDetailUsers) { item2.ORG_ID = entity.ORG_ID; item2.SECURITY_INSPECTION_NOTICE_DETAIL_ID = item.ID; item2.Nav_User = null; item2.ISMAINCHECK = i == 1 ? true : false; if (item2.USER_ID != null) { userIds.Add((Guid)item2.USER_ID); } userList.Add(item2); i++; } } if (item.Nav_CheckNoticeDetailBasics != null && item.Nav_CheckNoticeDetailBasics.Any()) { foreach (var item2 in item.Nav_CheckNoticeDetailBasics) { if (item2 != null) { item2.ORG_ID = entity.ORG_ID; item2.SECURITY_INSPECTION_NOTICE_DETAIL_ID = item.ID; item2.Nav_CheckNoticeDetail = null; item2.Nav_Law = null; basicList.Add(item2); } } } item.ORG_ID = entity.ORG_ID; item.SECURITY_INSPECTION_NOTICE_ID = entity.ID; item.Nav_CheckNoticeDetailUsers = null; item.Nav_CheckNoticeDetailBasics = null; item.Nav_Contents = null; } } if (files != null && files.Any()) { foreach (var item in files) { item.ORG_ID = entity.ORG_ID; item.SECURITY_INSPECTION_NOTICE_ID = entity.ID; item.Nav_ImgFile = null; } } if (string.IsNullOrEmpty(entity.CHECK_PERSON)) { var detailUserIds = userList.Where(m => !m.IS_DELETED).Select(t => t.USER_ID).Distinct().ToList(); var userNames = this.GetEntities(t => t.ENABLE_STATUS == 0 && detailUserIds.Contains(t.ID), new BaseFilter(entity.ORG_ID)).Select(m => m.NAME).ToList(); entity.CHECK_PERSON = string.Join(",", userNames); } T_FM_NOTIFICATION_TASK task = null; List notices = new List(); if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify")) { var param = "公司级"; var department = this.GetEntity(t => t.ID == entity.APPLY_DEPARTMENT_ID && t.ENABLE_STATUS == 0); if (department != null) { param = Enum.GetName(typeof(SKDepartmentTypeEnum), department.DEPARTMENT_TYPE); } var date = DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0'); entity.STATUS = PFStandardStatus.Approving; //取审批流水码 var sysFilter = new SystemCodeFilter(); sysFilter.CodeType = (int)PFCodeRuleType.审批流编码; sysFilter.Count = 1; sysFilter.OrgId = entity.ORG_ID; var codes = CodeRuleService.NewGenSerial(sysFilter); var serialCode = codes.Split(new char[] { ',' }); MFlowPermitService.InsertApprove(serialCode[0], "SK006", param, entity.ID, "SK006_SHOWPRINT", entity.TaskID, true, () => { if (task != null) UpdateEntityNoCommit(task); if (entity != null) UpdateEntityNoCommit(entity); if (deleteUserIds != null && deleteUserIds.Any()) this.BantchDeleteEntityNoCommit(deleteUserIds); if (deleteBasicIds != null && deleteBasicIds.Any()) this.BantchDeleteEntityNoCommit(deleteBasicIds); if (deleteDetailIds != null && deleteDetailIds.Any()) this.BantchDeleteEntityNoCommit(deleteDetailIds); if (details != null && details.Any()) BantchSaveEntityNoCommit(details); if (userList != null && userList.Any()) BantchSaveEntityNoCommit(userList); if (basicList != null && basicList.Any()) BantchSaveEntityNoCommit(basicList); if (files != null && files.Any()) BantchSaveEntityNoCommit(files); if (notices != null && notices.Any()) BantchSaveEntityNoCommit(notices); }, null, null, null, null, null, "SK006_SHOWPRINT", null, entity.DEPARTMENT_TYPE.GetDescription() + "安全检查通知" + date + entity.Nav_CheckType?.NAME + "待审批"); return true; } this.UnifiedCommit(() => { if (task != null) UpdateEntityNoCommit(task); if (entity != null) UpdateEntityNoCommit(entity); if (deleteUserIds != null && deleteUserIds.Any()) this.BantchDeleteEntityNoCommit(deleteUserIds); if (deleteBasicIds != null && deleteBasicIds.Any()) this.BantchDeleteEntityNoCommit(deleteBasicIds); if (deleteDetailIds != null && deleteDetailIds.Any()) this.BantchDeleteEntityNoCommit(deleteDetailIds); if (details != null && details.Any()) BantchSaveEntityNoCommit(details); if (userList != null && userList.Any()) BantchSaveEntityNoCommit(userList); if (basicList != null && basicList.Any()) BantchSaveEntityNoCommit(basicList); if (files != null && files.Any()) BantchSaveEntityNoCommit(files); if (notices != null && notices.Any()) BantchSaveEntityNoCommit(notices); }); return true; }); } /// /// 签字人员获取 /// /// /// [HttpPost, Route("GetIdentityUserEdit")] public JsonActionResult GetIdentityUserEdit([FromBody] KeywordFilter filter) { return SafeExecute(() => { var id = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "ID").Value.ToString(); if (string.IsNullOrEmpty(id)) this.ThrowError("030017"); var loginUserId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; filter.IgnoreDataRule = true; var result = this.GetEntity(id, new string[] {"Nav_ApplyUser","Nav_ApplyDepartment","Nav_CheckType", "Nav_CheckNoticeDetails","Nav_CheckNoticeDetails.Nav_RiskArea","Nav_CheckNoticeDetails.Nav_Contents","Nav_CheckNoticeDetails.Nav_CheckNoticeDetailBasics.Nav_Law", "Nav_CheckNoticeDetails.Nav_CheckNoticeDetailUsers.Nav_User","Nav_CheckNoticeFiles","Nav_CheckNoticeFiles.Nav_ImgFile"}); //var taskId = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "TASK_ID").Value; if (result != null && result.Nav_CheckNoticeDetails != null && result.Nav_CheckNoticeDetails.Any())// && taskId!=null { foreach (var detail in result.Nav_CheckNoticeDetails) { detail.Nav_CheckNoticeDetailUsers = detail.Nav_CheckNoticeDetailUsers.OrderByDescending(t => t.ISMAINCHECK).ToList(); } result.Nav_CheckNoticeDetails = result.Nav_CheckNoticeDetails.OrderBy(t => t.RISK_AREA_ID).ThenBy(m => m.NUM).ToList();//.Where(c => c.Nav_CheckNoticeDetailUsers != null && c.Nav_CheckNoticeDetailUsers.FirstOrDefault(m => m.USER_ID == loginUserId)?.USER_ID == loginUserId).OrderBy(m=>m.RISK_AREA_ID).ToList(); } return result; }); } /// /// 签字人员获取 /// /// /// [HttpPost, Route("GetIdentityUserEditApp")] public JsonActionResult GetIdentityUserEditApp([FromBody] KeywordFilter filter) { return SafeExecute(() => { var id = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "ID").Value.ToString(); if (string.IsNullOrEmpty(id)) this.ThrowError("030017"); var loginUserId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; filter.IgnoreDataRule = true; var result = this.GetEntity(id, new string[] {"Nav_ApplyUser","Nav_ApplyDepartment","Nav_CheckType", "Nav_CheckNoticeDetails","Nav_CheckNoticeDetails.Nav_RiskArea","Nav_CheckNoticeDetails.Nav_Contents","Nav_CheckNoticeDetails.Nav_CheckNoticeDetailBasics.Nav_Law", "Nav_CheckNoticeDetails.Nav_CheckNoticeDetailUsers.Nav_User","Nav_CheckNoticeFiles","Nav_CheckNoticeFiles.Nav_ImgFile"}); //var taskId = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "TASK_ID").Value; if (result != null && result.Nav_CheckNoticeDetails != null && result.Nav_CheckNoticeDetails.Any())// && taskId != null { result.CHECK_PERSON = string.IsNullOrEmpty(result.CHECK_PERSON) ? "" : result.CHECK_PERSON; var detailTemps = result.Nav_CheckNoticeDetails.ToList();//.Where(c => c.Nav_CheckNoticeDetailUsers != null && c.Nav_CheckNoticeDetailUsers.FirstOrDefault(m => m.USER_ID == loginUserId)?.USER_ID == loginUserId).ToList(); result.Nav_CheckNoticeDetails = detailTemps.GroupBy(t => t.RISK_AREA_ID).Select(g => g.First()).ToList(); if (result.Nav_CheckNoticeDetails != null && result.Nav_CheckNoticeDetails.Any()) { foreach (var item in result.Nav_CheckNoticeDetails.OrderBy(t => t.RISK_AREA_ID).ThenBy(m => m.NUM)) { item.Nav_DetailContents = new List(); var userTemps = new List(); var safeCheck1 = detailTemps.Where(t => t.RISK_AREA_ID == item.RISK_AREA_ID).ToList(); if (safeCheck1 != null && safeCheck1.Any()) { safeCheck1 = safeCheck1.OrderBy(t => t.RISK_AREA_ID).ThenBy(m => m.NUM).ToList(); foreach (var item2 in safeCheck1) { var lawTemps = new List(); T_SK_SECURITY_INSPECTION_NOTICE_DETAIL ddd = new T_SK_SECURITY_INSPECTION_NOTICE_DETAIL(); ddd.CHECK_CONTENTS_ID = item2.CHECK_CONTENTS_ID; ddd.Nav_Contents = item2.Nav_Contents; ddd.CHECKCONTENT = item2.Nav_Contents != null ? item2.Nav_Contents.CHECKCONTENT : item2.CHECKCONTENT; ddd.CHECKPROOF = item2.CHECKPROOF; ddd.CHECKSTANDARD = item2.CHECKSTANDARD; if (item2.Nav_CheckNoticeDetailBasics != null && item2.Nav_CheckNoticeDetailBasics.Any()) { foreach (var item3 in item2.Nav_CheckNoticeDetailBasics) { T_SK_SECURITY_INSPECTION_NOTICE_DETAIL_BASIC uuu = new T_SK_SECURITY_INSPECTION_NOTICE_DETAIL_BASIC(); uuu.LAW_ID = item3.LAW_ID; uuu.Nav_Law = item3.Nav_Law; lawTemps.Add(uuu); } } ddd.Nav_CheckNoticeDetailBasics = lawTemps; item.Nav_DetailContents.Add(ddd); if (item2.Nav_CheckNoticeDetailUsers != null && item2.Nav_CheckNoticeDetailUsers.Any()) { foreach (var item3 in item2.Nav_CheckNoticeDetailUsers.OrderByDescending(m => m.ISMAINCHECK)) { T_SK_SECURITY_INSPECTION_NOTICE_DETAIL_USER uuu = new T_SK_SECURITY_INSPECTION_NOTICE_DETAIL_USER(); uuu.USER_ID = item3.USER_ID; uuu.Nav_User = item3.Nav_User; var isExsist = userTemps.FirstOrDefault(t => t.USER_ID == item3.USER_ID); if (isExsist == null) { userTemps.Add(uuu); } } } } } item.Nav_CheckNoticeDetailUsers = userTemps; } } } return result; }); } /// /// 识别人确认 /// /// /// [HttpPost, Route("IdentityUpdate")] public JsonActionResult IdentityUpdate([FromBody] T_SK_SECURITY_INSPECTION_NOTICE entity) { return SafeExecute(() => { T_FM_NOTIFICATION_TASK task = null; var record = this.GetEntity(entity.ID, "Nav_CheckNoticeDetails", "Nav_CheckNoticeDetails.Nav_CheckNoticeDetailUsers.Nav_User"); var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; if (entity.TaskID != Guid.Empty) { var currTask = GetEntity(t => t.ID == entity.TaskID); if (currTask != null) { userId = currTask.USER_ID; } } var detailIds = record.Nav_CheckNoticeDetails.Select(t => t.ID).ToList(); var users = this.GetEntities(t => detailIds.Contains(t.SECURITY_INSPECTION_NOTICE_DETAIL_ID) && t.USER_ID == userId, new BaseFilter(record.ORG_ID)).ToList(); users.ForEach(t => { t.ISCHECK = true; t.CHECKTIME = DateTime.Now; }); var todoCount = this.GetCount(t => detailIds.Contains(t.SECURITY_INSPECTION_NOTICE_DETAIL_ID) && t.USER_ID != userId && t.ISCHECK == false, new BaseFilter(record.ORG_ID)); if (todoCount == 0) { record.STATUS = PFStandardStatus.Archived; } if (entity.TaskID != Guid.Empty) { task = NotificationTaskService.GetTaskFinishModel(entity.TaskID); task.SOURCE_FORMCODE = "SK006_SHOWPRINT"; } UnifiedCommit(() => { if (record != null) this.UpdateEntityNoCommit(record); if (users != null && users.Any()) this.BantchSaveEntityNoCommit(users); if (task != null) this.UpdateEntityNoCommit(task); }); return true; }); } /// /// 获得单条实体数据 /// /// 过滤实体 /// [HttpPost, Route("SKGet")] public JsonActionResult SKGet([FromBody] KeywordFilter filter) { return SafeExecute(() => { var id = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "ID").Value.ToString(); if (string.IsNullOrEmpty(id)) this.ThrowError("060010"); filter.IgnoreDataRule = true; var result = this.GetEntity(id, new string[] { "Nav_ApplyUser", "Nav_ApplyDepartment","Nav_CheckType", "Nav_CheckNoticeFiles.Nav_ImgFile"}); if (result != null) { var details = this.GetEntities(t => t.SECURITY_INSPECTION_NOTICE_ID == result.ID, new BaseFilter(filter.OrgId), "Nav_RiskArea", "Nav_Contents", "Nav_CheckNoticeDetailBasics.Nav_Law"); if (details.Any()) { var detailIds = details.Select(t => t.ID).ToList(); var users = this.GetEntities(t => detailIds.Contains(t.SECURITY_INSPECTION_NOTICE_DETAIL_ID), new BaseFilter(filter.OrgId), "Nav_User"); foreach (var detail in details) { var userTemps = users.Where(t => t.SECURITY_INSPECTION_NOTICE_DETAIL_ID == detail.ID).ToList(); detail.Nav_CheckNoticeDetailUsers = userTemps.OrderByDescending(t => t.ISMAINCHECK).ToList(); } } result.Nav_CheckNoticeDetails = details.OrderBy(t => t.RISK_AREA_ID).ThenBy(m => m.NUM).ToList(); if (result.STATUS == PFStandardStatus.Rejected) { result.CONTEXT = ApproveCallBackService.RejectContent(result.ID); } } return result; }); } /// /// 根据检查类型,检查层级,当前人所在生产单元及其岗位自动带出所有区域下的检查内容 /// /// /// [HttpPost, Route("GetCheckContentPCs")] public JsonActionResult> GetCheckContentPCs([FromBody] KeywordFilter filter) { var result = new JsonActionResult>(); var dataList = new List(); if (!string.IsNullOrEmpty(filter.Parameter1) && !string.IsNullOrEmpty(filter.Parameter2) && !string.IsNullOrEmpty(filter.Parameter3)) { var loginUserId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; var personId = this.GetEntity(t => t.ID == loginUserId && t.ENABLE_STATUS == 0)?.PERSON_ID; if (personId == null) throw new Exception("用户数据异常,请联系管理员排查"); var postId = this.GetEntity(t => t.ID == personId)?.POST_ID; if (postId == null) throw new Exception("请先维护登陆人岗位"); var mineType = FMProductionUnit.Mine; if (filter.Parameter1 == "30") { mineType = FMProductionUnit.Mine; } else if (filter.Parameter1 == "10") { mineType = FMProductionUnit.MineChoose; } else if (filter.Parameter1 == "20") { mineType = FMProductionUnit.Minelast; } else if (filter.Parameter1 == "0") { mineType = FMProductionUnit.All; } else { throw new Exception("生产单元错误"); } var departType = SKDepartmentTypeEnum.部门级; if (filter.Parameter3 == "0") { departType = SKDepartmentTypeEnum.部门级; } else if (filter.Parameter3 == "1") { departType = SKDepartmentTypeEnum.车间级; } else if (filter.Parameter3 == "2") { departType = SKDepartmentTypeEnum.班组级; } else if (filter.Parameter3 == "3") { departType = SKDepartmentTypeEnum.公司级; } else if (filter.Parameter3 == "4") { departType = SKDepartmentTypeEnum.班组级; } else { throw new Exception("检查层级错误"); } var posts = this.GetEntities(t => t.POST_ID == postId, new BaseFilter(filter.OrgId)); var departIds = posts.Select(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID).ToList(); var departs = this.GetEntities(t => departIds.Contains(t.ID) && t.CHECK_TYPE_ID == Guid.Parse(filter.Parameter2) && t.CHECK_TYPE == departType, new BaseFilter(filter.OrgId)); var contentIds = departs.Select(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).ToList(); var libraryContents = this.GetEntities(t => contentIds.Contains(t.ID), new BaseFilter(filter.OrgId), new string[] {"Nav_Contents","Nav_LibraryDetail", "Nav_LibraryDetail.Nav_Library.Nav_Area"}); if (libraryContents != null && libraryContents.Any()) { foreach (var item in libraryContents) { T_SK_SECURITY_INSPECTION_NOTICE_DETAIL detail = new T_SK_SECURITY_INSPECTION_NOTICE_DETAIL(); detail.ORG_ID = filter.OrgId; detail.RISK_AREA_ID = item.Nav_LibraryDetail?.Nav_Library?.AREA_ID; detail.Nav_RiskArea = item.Nav_LibraryDetail?.Nav_Library?.Nav_Area; detail.CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID; detail.Nav_Contents = item.Nav_Contents; detail.CHECKCONTENT = item.CHECK_CONTENT; detail.CHECKPROOF = item.CHECK_BASIC; detail.CHECKSTANDARD = item.CHECK_STANDARD; detail.Nav_CheckNoticeDetailUsers = null; dataList.Add(detail); } if (dataList != null && dataList.Any()) { result.Data = dataList.OrderBy(t => t.RISK_AREA_ID).ToList(); } } } return result; } /// /// 根据检查类型,检查层级,当前人所在生产单元及其岗位自动带出所有区域下的检查内容 /// /// /// [HttpPost, Route("GetCheckContents")] public JsonActionResult> GetCheckContents([FromBody] KeywordFilter filter) { var result = new JsonActionResult>(); var dataList = new List(); if (!string.IsNullOrEmpty(filter.Parameter1) && !string.IsNullOrEmpty(filter.Parameter2) && !string.IsNullOrEmpty(filter.Parameter3)) { var loginUserId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; var personId = this.GetEntity(t => t.ID == loginUserId && t.ENABLE_STATUS == 0)?.PERSON_ID; if (personId == null) throw new Exception("用户数据异常,请联系管理员排查"); var postId = this.GetEntity(t => t.ID == personId)?.POST_ID; if (postId == null) throw new Exception("请先维护登陆人岗位"); //var mineType = SKProductionUnit.Mine; //if (filter.Parameter1 == "30") //{ // mineType = SKProductionUnit.Mine; //} //else if (filter.Parameter1 == "10") //{ // mineType = SKProductionUnit.MineChoose; //} //else if (filter.Parameter1 == "20") //{ // mineType = SKProductionUnit.Minelast; //} //else if (filter.Parameter1 == "0") //{ // mineType = SKProductionUnit.All; //} //else if (filter.Parameter1 == "40") //{ // mineType = SKProductionUnit.MineUnderGround; //} //else if (filter.Parameter1 == "31") //{ // mineType = SKProductionUnit.Department; //} //else if (filter.Parameter1 == "32") //{ // mineType = SKProductionUnit.Nonmetallic; //} //else //{ // throw new Exception("生产单元错误"); //} var departType = SKDepartmentTypeEnum.部门级; if (filter.Parameter3 == "0") { departType = SKDepartmentTypeEnum.部门级; } else if (filter.Parameter3 == "1") { departType = SKDepartmentTypeEnum.车间级; } else if (filter.Parameter3 == "2") { departType = SKDepartmentTypeEnum.班组级; } else if (filter.Parameter3 == "3") { departType = SKDepartmentTypeEnum.公司级; } else if (filter.Parameter3 == "4") { departType = SKDepartmentTypeEnum.班组级; } else { throw new Exception("检查层级错误"); } var posts = this.GetEntities(t => t.POST_ID == postId, new BaseFilter(filter.OrgId)); var departIds = posts.Select(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID).ToList(); var departs = this.GetEntities(t => departIds.Contains(t.ID) && t.CHECK_TYPE_ID == Guid.Parse(filter.Parameter2) && t.CHECK_TYPE == departType, new BaseFilter(filter.OrgId)); var contentIds = departs.Select(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).ToList(); var libraryContents = this.GetEntities(t => contentIds.Contains(t.ID), new BaseFilter(filter.OrgId), new string[] {"Nav_Contents","Nav_LibraryDetail", "Nav_LibraryDetail.Nav_Library.Nav_Area"}); if (libraryContents != null && libraryContents.Any()) { foreach (var item in libraryContents) { T_SK_SECURITY_INSPECTION_NOTICE_DETAIL detail = new T_SK_SECURITY_INSPECTION_NOTICE_DETAIL(); detail.ORG_ID = filter.OrgId; detail.RISK_AREA_ID = item.Nav_LibraryDetail?.Nav_Library?.AREA_ID; detail.Nav_RiskArea = item.Nav_LibraryDetail?.Nav_Library?.Nav_Area; detail.CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID; detail.Nav_Contents = item.Nav_Contents; detail.CHECKCONTENT = item.CHECK_CONTENT; detail.CHECKPROOF = item.CHECK_BASIC; detail.CHECKSTANDARD = item.CHECK_STANDARD; detail.Nav_CheckNoticeDetailUsers = null; dataList.Add(detail); } if (dataList != null && dataList.Any()) { var newList = new List(); var tempIds = dataList.Select(x => x.RISK_AREA_ID).Distinct().ToList(); foreach (var temp in tempIds) { var mmm = dataList.FirstOrDefault(t => t.RISK_AREA_ID == temp); T_SK_SECURITY_INSPECTION_NOTICE_DETAIL detail = new T_SK_SECURITY_INSPECTION_NOTICE_DETAIL(); detail.ORG_ID = filter.OrgId; detail.RISK_AREA_ID = temp; detail.Nav_RiskArea = mmm?.Nav_RiskArea; detail.Nav_CheckNoticeDetailUsers = null; var ttt = dataList.Where(t => t.RISK_AREA_ID == temp).ToList(); if (ttt.Any()) { List contents = new List(); foreach (var hh in ttt) { T_SK_SECURITY_INSPECTION_NOTICE_DETAIL content = new T_SK_SECURITY_INSPECTION_NOTICE_DETAIL(); content.ORG_ID = filter.OrgId; content.CHECK_CONTENTS_ID = hh.CHECK_CONTENTS_ID; content.CHECKCONTENT = hh.CHECKCONTENT; content.CHECKPROOF = hh.CHECKPROOF; content.CHECKSTANDARD = hh.CHECKSTANDARD; contents.Add(content); } detail.Nav_DetailContents = contents; } newList.Add(detail); } result.Data = newList.OrderBy(t => t.RISK_AREA_ID).ToList(); } } } return result; } /// /// 回调函数 /// /// /// [HttpPost, Route("BackUpdateNew")] public JsonActionResult BackUpdateNew([FromBody] T_PF_APPROVE entity) { return SafeExecute(() => { return ApproveCallBackService.CallBackNew("SK/SKSecurityInspectionNotice/BackUpdateNew", entity); }); } /// /// 驳回 /// /// /// [HttpPost, Route("RejectUpdate")] public JsonActionResult RejectUpdate([FromBody] T_PF_APPROVE model) { return SafeExecute(() => { //公共 获取审批流信息 T_PF_APPROVE modelApp = null; List listAppDetail = null; T_FM_NOTIFICATION_TASK taskFinish = null; string Msg = string.Empty; bool ResultGetInfo = ApproveCallBackService.GetApproject(model, ref modelApp, ref listAppDetail, ref taskFinish, ref Msg); if (!ResultGetInfo) throw new Exception("驳回失败!"); if (modelApp == null || listAppDetail == null) throw new Exception("获取驳回信息失败!"); var entity = this.GetEntity(model.DATA_ID, new string[] { "Nav_ApplyUser" }); entity.STATUS = PFStandardStatus.Rejected; T_FM_NOTIFICATION_TASK notice = new T_FM_NOTIFICATION_TASK(); if (entity.APPLY_USER_ID != null) { //发消息 notice = NotificationTaskService.InsertUserNoticeTaskModel("安全检查通知表被驳回", entity.ID, entity.ORG_ID, (Guid)entity.APPLY_USER_ID, entity.Nav_ApplyUser?.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK006"); } UnifiedCommit(() => { if (entity != null) this.UpdateEntityNoCommit(entity); if (notice != null) this.UpdateEntityNoCommit(notice); if (modelApp != null) UpdateEntityNoCommit(modelApp); if (listAppDetail != null && listAppDetail.Count > 0) BantchUpdateEntityNoCommit(listAppDetail); if (taskFinish != null) UpdateEntityNoCommit(taskFinish); }); return true; //return ApproveCallBackService.CallReject("HM/HMLicenseAnalysis/RejectUpdate", id); }); } /// /// 排序查询所有数据 /// /// 过滤实体 /// [HttpPost, Route("SKOrderEntities")] public JsonActionResult>> SKOrderEntities([FromBody] KeywordFilter filter) { return SafeExecute>>(() => { if (string.IsNullOrEmpty(filter.Keyword)) { return new List>(); } else { Guid Keyword = new Guid(filter.Keyword); Guid? NoticeID = null; Guid? RecordID = null; Guid? RecordSummaryID = null; Guid? ReportID = null; Guid? RectifyNoticeID = null; Guid? RectifyRecordID = null; Guid? ConfirmID = null; List sourceIds = new List(); var check = GetEntity(Keyword); T_SK_SECURITY_INSPECTION_RECORD record = null; T_SK_HIDDEN_DANGER_HAND_REPORT risk = null; if (check != null) { NoticeID = check.ID; sourceIds.Add(check.ID); var recordTemp = GetEntity(e => e.SECURITY_INSPECTION_NOTICE_ID != null && e.SECURITY_INSPECTION_NOTICE_ID == NoticeID.Value); if (recordTemp != null) { RecordID = recordTemp.ID; sourceIds.Add(recordTemp.ID); var recordSummaryTemp = GetEntity(e => e.SECURITY_INSPECTION_RECORD_ID != null && e.SECURITY_INSPECTION_RECORD_ID == recordTemp.ID); if (recordSummaryTemp != null) { RecordSummaryID = recordSummaryTemp.ID; sourceIds.Add(recordSummaryTemp.ID); var hiddenReport = GetEntity(e => e.SECURITY_INSPECTION_RECORD_SUMMARY_ID != null && e.SECURITY_INSPECTION_RECORD_SUMMARY_ID == recordSummaryTemp.ID); if (hiddenReport != null) { ReportID = hiddenReport.ID; sourceIds.Add(hiddenReport.ID); var rectifyNotice = GetEntity(e => e.HIDDEN_DANGER_REPORT_ID != null && e.HIDDEN_DANGER_REPORT_ID == hiddenReport.ID); if (rectifyNotice != null) { RectifyNoticeID = rectifyNotice.ID; sourceIds.Add(rectifyNotice.ID); var rectifyRecord = GetEntity(e => e.HIDDEN_DANGER_RECTIFY_NOTICE_ID != null && e.HIDDEN_DANGER_RECTIFY_NOTICE_ID == rectifyNotice.ID); if (rectifyRecord != null) { RectifyRecordID = rectifyRecord.ID; sourceIds.Add(rectifyRecord.ID); } else { rectifyRecord = GetEntity(e => e.HIDDEN_DANGER_REPORT_ID != null && e.HIDDEN_DANGER_REPORT_ID == hiddenReport.ID); if (rectifyRecord != null) { RectifyRecordID = rectifyRecord.ID; sourceIds.Add(rectifyRecord.ID); } } } else { var rectifyRecord = GetEntity(e => e.HIDDEN_DANGER_REPORT_ID != null && e.HIDDEN_DANGER_REPORT_ID == hiddenReport.ID); if (rectifyRecord != null) { RectifyRecordID = rectifyRecord.ID; sourceIds.Add(rectifyRecord.ID); } } } } } } else { record = GetEntity(Keyword); if (record != null) { RecordID = record.ID; sourceIds.Add(record.ID); var recordSummaryTemp = GetEntity(e => e.SECURITY_INSPECTION_RECORD_ID != null && e.SECURITY_INSPECTION_RECORD_ID == record.ID); if (recordSummaryTemp != null) { RecordSummaryID = recordSummaryTemp.ID; sourceIds.Add(recordSummaryTemp.ID); var hiddenReport = GetEntity(e => e.SECURITY_INSPECTION_RECORD_SUMMARY_ID != null && e.SECURITY_INSPECTION_RECORD_SUMMARY_ID == recordSummaryTemp.ID); if (hiddenReport != null) { ReportID = hiddenReport.ID; sourceIds.Add(hiddenReport.ID); var rectifyNotice = GetEntity(e => e.HIDDEN_DANGER_REPORT_ID != null && e.HIDDEN_DANGER_REPORT_ID == hiddenReport.ID); if (rectifyNotice != null) { RectifyNoticeID = rectifyNotice.ID; sourceIds.Add(rectifyNotice.ID); var rectifyRecord = GetEntity(e => e.HIDDEN_DANGER_RECTIFY_NOTICE_ID != null && e.HIDDEN_DANGER_RECTIFY_NOTICE_ID == rectifyNotice.ID); if (rectifyRecord != null) { RectifyRecordID = rectifyRecord.ID; sourceIds.Add(rectifyRecord.ID); } else { rectifyRecord = GetEntity(e => e.HIDDEN_DANGER_REPORT_ID != null && e.HIDDEN_DANGER_REPORT_ID == hiddenReport.ID); if (rectifyRecord != null) { RectifyRecordID = rectifyRecord.ID; sourceIds.Add(rectifyRecord.ID); } } } else { var rectifyRecord = GetEntity(e => e.HIDDEN_DANGER_REPORT_ID != null && e.HIDDEN_DANGER_REPORT_ID == hiddenReport.ID); if (rectifyRecord != null) { RectifyRecordID = rectifyRecord.ID; sourceIds.Add(rectifyRecord.ID); } } } } } else { risk = GetEntity(Keyword); if (risk != null) { ReportID = risk.ID; sourceIds.Add(risk.ID); var confirm = GetEntity(e => e.HIDDEN_DANGER_HAND_REPORT_ID != null && e.HIDDEN_DANGER_HAND_REPORT_ID == risk.ID); if (confirm != null) { ConfirmID = confirm.ID; sourceIds.Add(confirm.ID); var rectifyNotice = GetEntity(e => e.HIDDEN_DANGER_CONFIRM_ID != null && e.HIDDEN_DANGER_CONFIRM_ID == confirm.ID); if (rectifyNotice != null) { RectifyNoticeID = rectifyNotice.ID; sourceIds.Add(rectifyNotice.ID); var rectifyRecord = GetEntity(e => e.HIDDEN_DANGER_RECTIFY_NOTICE_ID != null && e.HIDDEN_DANGER_RECTIFY_NOTICE_ID == rectifyNotice.ID); if (rectifyRecord != null) { RectifyRecordID = rectifyRecord.ID; sourceIds.Add(rectifyRecord.ID); } } else { var rectifyRecord = GetEntity(e => e.HIDDEN_DANGER_CONFIRM_ID != null && e.HIDDEN_DANGER_CONFIRM_ID == confirm.ID); if (rectifyRecord != null) { RectifyRecordID = rectifyRecord.ID; sourceIds.Add(rectifyRecord.ID); } } } } } } List> result = new List>(); if (NoticeID == null && RecordID == null && ReportID == null) { return result; } var approves = new List(); var approveIds = new List(); if (sourceIds != null && sourceIds.Any()) { approves = GetEntities(e => sourceIds.Contains(e.DATA_ID), null, null).ToList(); approveIds = approves.Select(m => m.ID).ToList(); } var approveDetails = new List(); if (approveIds != null && approveIds.Any()) { approveDetails = GetEntities(e => approveIds.Contains(e.APPROVE_ID), null, null).ToList(); } var tasks = GetEntities(e => e.SOURCE_DATA_ID != null && (sourceIds.Contains(e.SOURCE_DATA_ID.Value) || approveIds.Contains(e.SOURCE_DATA_ID.Value)), null, null).OrderBy(t => t.CREATE_TIME).ToList(); List resultCheck1 = new List();//检查任务 List resultCheck2 = new List();//检查记录 List resultCheck3 = new List();//检查记录汇总 List resultRisk1 = new List();//隐患上报 List resultRisk2 = new List();//隐患确认单 List resultRiskDeal = new List();//隐患整改通知 List resultRiskEnd = new List();//隐患整改记录 var users = GetEntities(e => e.ENABLE_STATUS == 0, null, null); #region 安全检查通知 if (NoticeID != null) { var tempIds = approves.Where(t => t.DATA_ID == NoticeID).OrderBy(m => m.CREATE_TIME).Select(x => x.ID).ToList(); var temp1 = tasks.Where(t => t.SOURCE_DATA_ID == NoticeID || tempIds.Contains(t.SOURCE_DATA_ID.Value)).OrderBy(t => t.CREATE_TIME).ToList(); if (temp1.Any()) { foreach (var item in temp1) { OperateLogDto start = new OperateLogDto(); start.LOGTYPE = SKLOGTYPE_Enums.SafeCheck; start.DATA_ID = NoticeID.Value; if (tempIds.Contains(item.SOURCE_DATA_ID.Value)) { if (item.NOTICE_TITLE.Contains("驳回")) { start.OPERATEPOINT = SKOPERATEPOINT_Enums.NoticeReject; } else { start.OPERATEPOINT = SKOPERATEPOINT_Enums.NoticeAudit; } } else { if (item.NOTICE_TITLE.Contains("确认")) { start.OPERATEPOINT = SKOPERATEPOINT_Enums.NoticeCheck; } else { start.OPERATEPOINT = SKOPERATEPOINT_Enums.GotNotice; } } if (item.NOTICE_STATUS == 4) { start.OPERATEPOINT = SKOPERATEPOINT_Enums.CloseNotice; } start.USER_ID = item.USER_ID; start.USRTNAME = item.USER_NAME; start.OPERTETIME = item.TASK_DT; start.ORDERTIME = item.CREATE_TIME; start.ISINTTIME = (item.NOTICE_STATUS == 4 || item.NOTICE_STATUS == 2) ? false : item.NOTICE_STATUS == 1 ? true : DateTime.Now > item.TASK_ENDDT ? false : true; resultCheck1.Add(start); } } var taskApprove = tasks.FirstOrDefault(t => tempIds.Contains(t.SOURCE_DATA_ID.Value)); if (tempIds.Any() && taskApprove == null) { var approveTemp = approves.FirstOrDefault(t => t.DATA_ID == NoticeID); if (approveTemp != null) { var approveDetailTemp = approveDetails.FirstOrDefault(t => t.APPROVE_ID == approveTemp.ID); if (approveDetailTemp != null) { OperateLogDto start = new OperateLogDto(); start.LOGTYPE = SKLOGTYPE_Enums.SafeCheck; start.DATA_ID = NoticeID.Value; start.OPERATEPOINT = SKOPERATEPOINT_Enums.NoticeAudit; start.USER_ID = approveDetailTemp.APPROVE_USER_ID.Value; start.USRTNAME = users.FirstOrDefault(t => t.ID == approveDetailTemp.APPROVE_USER_ID)?.NAME; start.OPERTETIME = approveDetailTemp.NODE_APPROVE_TIME; start.ORDERTIME = approveDetailTemp.CREATE_TIME; start.ISINTTIME = true; resultCheck1.Add(start); } } } resultCheck1 = resultCheck1.OrderBy(e => e.ORDERTIME).ThenBy(m => m.OPERTETIME).ThenBy(n => n.OPERATEPOINT).ToList(); if (resultCheck1.Any()) { result.Add(resultCheck1); } } else { result.Add(resultCheck1); } #endregion #region 安全检查记录 if (RecordID != null) { var tempIds = approves.Where(t => t.DATA_ID == RecordID).OrderBy(m => m.CREATE_TIME).Select(x => x.ID).ToList(); var temp1 = tasks.Where(t => t.SOURCE_DATA_ID == RecordID || tempIds.Contains(t.SOURCE_DATA_ID.Value)).OrderBy(t => t.CREATE_TIME).ToList(); if (temp1.Any()) { foreach (var item in temp1) { OperateLogDto start = new OperateLogDto(); start.LOGTYPE = SKLOGTYPE_Enums.SafeRecord; start.DATA_ID = RecordID.Value; if (tempIds.Contains(item.SOURCE_DATA_ID.Value)) { if (item.NOTICE_TITLE.Contains("驳回")) { start.OPERATEPOINT = SKOPERATEPOINT_Enums.RecordReject; } else { start.OPERATEPOINT = SKOPERATEPOINT_Enums.RecordAudit; } } else { if (item.NOTICE_TITLE.Contains("确认")) { start.OPERATEPOINT = SKOPERATEPOINT_Enums.RecordCheck; } else { start.OPERATEPOINT = SKOPERATEPOINT_Enums.GotRecord; } } if (item.NOTICE_STATUS == 4) { start.OPERATEPOINT = SKOPERATEPOINT_Enums.CloseNotice; } start.USER_ID = item.USER_ID; start.USRTNAME = item.USER_NAME; start.OPERTETIME = item.TASK_DT; start.ORDERTIME = item.CREATE_TIME; start.ISINTTIME = (item.NOTICE_STATUS == 4 || item.NOTICE_STATUS == 2) ? false : item.NOTICE_STATUS == 1 ? true : DateTime.Now > item.TASK_ENDDT ? false : true; resultCheck2.Add(start); } } var taskApprove = tasks.FirstOrDefault(t => tempIds.Contains(t.SOURCE_DATA_ID.Value)); if (tempIds.Any() && taskApprove == null) { var approveTemp = approves.FirstOrDefault(t => t.DATA_ID == RecordID); if (approveTemp != null) { var approveDetailTemp = approveDetails.FirstOrDefault(t => t.APPROVE_ID == approveTemp.ID); if (approveDetailTemp != null) { OperateLogDto start = new OperateLogDto(); start.LOGTYPE = SKLOGTYPE_Enums.SafeRecord; start.DATA_ID = RecordID.Value; start.OPERATEPOINT = SKOPERATEPOINT_Enums.NoticeAudit; start.USER_ID = approveDetailTemp.APPROVE_USER_ID.Value; start.USRTNAME = users.FirstOrDefault(t => t.ID == approveDetailTemp.APPROVE_USER_ID)?.NAME; start.OPERTETIME = approveDetailTemp.NODE_APPROVE_TIME; start.ORDERTIME = approveDetailTemp.CREATE_TIME; start.ISINTTIME = true; resultCheck2.Add(start); } } } resultCheck2 = resultCheck2.OrderBy(e => e.ORDERTIME).ThenBy(m => m.OPERTETIME).ThenBy(n => n.OPERATEPOINT).ToList(); if (resultCheck2.Any()) { result.Add(resultCheck2); } } else { result.Add(resultCheck2); } #endregion #region 安全检查记录汇总 if (RecordSummaryID != null) { var tempIds = approves.Where(t => t.DATA_ID == RecordSummaryID).OrderBy(m => m.CREATE_TIME).Select(x => x.ID).ToList(); var temp1 = tasks.Where(t => t.SOURCE_DATA_ID == RecordSummaryID || tempIds.Contains(t.SOURCE_DATA_ID.Value)).OrderBy(t => t.CREATE_TIME).ToList(); if (temp1.Any()) { foreach (var item in temp1) { OperateLogDto start = new OperateLogDto(); start.LOGTYPE = SKLOGTYPE_Enums.SafeRecord; start.DATA_ID = RecordSummaryID.Value; if (tempIds.Contains(item.SOURCE_DATA_ID.Value)) { if (item.NOTICE_TITLE.Contains("驳回")) { start.OPERATEPOINT = SKOPERATEPOINT_Enums.RecordSummaryReject; } else { start.OPERATEPOINT = SKOPERATEPOINT_Enums.RecordSummaryAudit; } } else { if (item.NOTICE_TITLE.Contains("确认")) { start.OPERATEPOINT = SKOPERATEPOINT_Enums.RecordSummaryCheck; } else { start.OPERATEPOINT = SKOPERATEPOINT_Enums.GotRecordSummary; } } start.USER_ID = item.USER_ID; start.USRTNAME = item.USER_NAME; start.OPERTETIME = item.TASK_DT; start.ORDERTIME = item.CREATE_TIME; start.ISINTTIME = (item.NOTICE_STATUS == 4 || item.NOTICE_STATUS == 2) ? false : item.NOTICE_STATUS == 1 ? true : DateTime.Now > item.TASK_ENDDT ? false : true; resultCheck3.Add(start); } } var taskApprove = tasks.FirstOrDefault(t => tempIds.Contains(t.SOURCE_DATA_ID.Value)); if (tempIds.Any() && taskApprove == null) { var approveTemp = approves.FirstOrDefault(t => t.DATA_ID == RecordSummaryID); if (approveTemp != null) { var approveDetailTemp = approveDetails.FirstOrDefault(t => t.APPROVE_ID == approveTemp.ID); if (approveDetailTemp != null) { OperateLogDto start = new OperateLogDto(); start.LOGTYPE = SKLOGTYPE_Enums.SafeRecord; start.DATA_ID = RecordSummaryID.Value; start.OPERATEPOINT = SKOPERATEPOINT_Enums.NoticeAudit; start.USER_ID = approveDetailTemp.APPROVE_USER_ID.Value; start.USRTNAME = users.FirstOrDefault(t => t.ID == approveDetailTemp.APPROVE_USER_ID)?.NAME; start.OPERTETIME = approveDetailTemp.NODE_APPROVE_TIME; start.ORDERTIME = approveDetailTemp.CREATE_TIME; start.ISINTTIME = true; resultCheck3.Add(start); } } } resultCheck3 = resultCheck3.OrderBy(e => e.ORDERTIME).ThenBy(m => m.OPERTETIME).ThenBy(n => n.OPERATEPOINT).ToList(); if (resultCheck3.Any()) { result.Add(resultCheck3); } } else { result.Add(resultCheck3); } #endregion #region 隐患上报 if (ReportID != null) { var tempIds = approves.Where(t => t.DATA_ID == ReportID).OrderBy(m => m.CREATE_TIME).Select(x => x.ID).ToList(); var temp1 = tasks.Where(t => t.SOURCE_DATA_ID == ReportID || tempIds.Contains(t.SOURCE_DATA_ID.Value)).OrderBy(t => t.CREATE_TIME).ToList(); if (temp1.Any()) { foreach (var item in temp1) { OperateLogDto start = new OperateLogDto(); start.LOGTYPE = SKLOGTYPE_Enums.RiskSubmit; start.DATA_ID = ReportID.Value; if (tempIds.Contains(item.SOURCE_DATA_ID.Value)) { if (item.NOTICE_TITLE.Contains("驳回")) { start.OPERATEPOINT = SKOPERATEPOINT_Enums.HiddenReject; } else { start.OPERATEPOINT = SKOPERATEPOINT_Enums.HiddenAudit; } } else { if (item.NOTICE_TITLE.Contains("确认")) { start.OPERATEPOINT = SKOPERATEPOINT_Enums.HiddenCheck; } else { start.OPERATEPOINT = SKOPERATEPOINT_Enums.GotHidden; } } start.USER_ID = item.USER_ID; start.USRTNAME = item.USER_NAME; start.OPERTETIME = item.TASK_DT; start.ORDERTIME = item.CREATE_TIME; start.ISINTTIME = (item.NOTICE_STATUS == 4 || item.NOTICE_STATUS == 2) ? false : item.NOTICE_STATUS == 1 ? true : DateTime.Now > item.TASK_ENDDT ? false : true; resultRisk1.Add(start); } } var taskApprove = tasks.FirstOrDefault(t => tempIds.Contains(t.SOURCE_DATA_ID.Value)); if (tempIds.Any() && taskApprove == null) { var approveTemp = approves.FirstOrDefault(t => t.DATA_ID == ReportID); if (approveTemp != null) { var approveDetailTemp = approveDetails.FirstOrDefault(t => t.APPROVE_ID == approveTemp.ID); if (approveDetailTemp != null) { OperateLogDto start = new OperateLogDto(); start.LOGTYPE = SKLOGTYPE_Enums.RiskSubmit; start.DATA_ID = ReportID.Value; start.OPERATEPOINT = SKOPERATEPOINT_Enums.NoticeAudit; start.USER_ID = approveDetailTemp.APPROVE_USER_ID.Value; start.USRTNAME = users.FirstOrDefault(t => t.ID == approveDetailTemp.APPROVE_USER_ID)?.NAME; start.OPERTETIME = approveDetailTemp.NODE_APPROVE_TIME; start.ORDERTIME = approveDetailTemp.CREATE_TIME; start.ISINTTIME = true; resultRisk1.Add(start); } } } resultRisk1 = resultRisk1.OrderBy(e => e.ORDERTIME).ThenBy(m => m.OPERTETIME).ThenBy(n => n.OPERATEPOINT).ToList(); if (resultRisk1.Any()) { result.Add(resultRisk1); } } else { result.Add(resultRisk1); } #endregion #region 隐患确认单 if (ConfirmID != null) { var tempIds = approves.Where(t => t.DATA_ID == ConfirmID).OrderBy(m => m.CREATE_TIME).Select(x => x.ID).ToList(); var temp1 = tasks.Where(t => t.SOURCE_DATA_ID == ConfirmID || tempIds.Contains(t.SOURCE_DATA_ID.Value)).OrderBy(t => t.CREATE_TIME).ToList(); if (temp1.Any()) { foreach (var item in temp1) { OperateLogDto start = new OperateLogDto(); start.LOGTYPE = SKLOGTYPE_Enums.RiskSubmit; start.DATA_ID = ConfirmID.Value; if (tempIds.Contains(item.SOURCE_DATA_ID.Value)) { if (item.NOTICE_TITLE.Contains("驳回")) { start.OPERATEPOINT = SKOPERATEPOINT_Enums.ConfirmReject; } else { start.OPERATEPOINT = SKOPERATEPOINT_Enums.ConfirmAudit; } } else { if (item.NOTICE_TITLE.Contains("确认")) { start.OPERATEPOINT = SKOPERATEPOINT_Enums.ConfirmCheck; } else { start.OPERATEPOINT = SKOPERATEPOINT_Enums.GotConfirm; } } start.USER_ID = item.USER_ID; start.USRTNAME = item.USER_NAME; start.OPERTETIME = item.TASK_DT; start.ORDERTIME = item.CREATE_TIME; start.ISINTTIME = (item.NOTICE_STATUS == 4 || item.NOTICE_STATUS == 2) ? false : item.NOTICE_STATUS == 1 ? true : DateTime.Now > item.TASK_ENDDT ? false : true; resultRisk2.Add(start); } } var taskApprove = tasks.FirstOrDefault(t => tempIds.Contains(t.SOURCE_DATA_ID.Value)); if (tempIds.Any() && taskApprove == null) { var approveTemp = approves.FirstOrDefault(t => t.DATA_ID == ConfirmID); if (approveTemp != null) { var approveDetailTemp = approveDetails.FirstOrDefault(t => t.APPROVE_ID == approveTemp.ID); if (approveDetailTemp != null) { OperateLogDto start = new OperateLogDto(); start.LOGTYPE = SKLOGTYPE_Enums.RiskSubmit; start.DATA_ID = ConfirmID.Value; start.OPERATEPOINT = SKOPERATEPOINT_Enums.NoticeAudit; start.USER_ID = approveDetailTemp.APPROVE_USER_ID.Value; start.USRTNAME = users.FirstOrDefault(t => t.ID == approveDetailTemp.APPROVE_USER_ID)?.NAME; start.OPERTETIME = approveDetailTemp.NODE_APPROVE_TIME; start.ORDERTIME = approveDetailTemp.CREATE_TIME; start.ISINTTIME = true; resultRisk2.Add(start); } } } resultRisk2 = resultRisk2.OrderBy(e => e.ORDERTIME).ThenBy(m => m.OPERTETIME).ThenBy(n => n.OPERATEPOINT).ToList(); if (resultRisk2.Any()) { result.Add(resultRisk2); } } else { result.Add(resultRisk2); } #endregion #region 隐患整改通知 if (RectifyNoticeID != null) { var tempIds = approves.Where(t => t.DATA_ID == RectifyNoticeID).OrderBy(m => m.CREATE_TIME).Select(x => x.ID).ToList(); var temp1 = tasks.Where(t => t.SOURCE_DATA_ID == RectifyNoticeID || tempIds.Contains(t.SOURCE_DATA_ID.Value)).OrderBy(t => t.CREATE_TIME).ToList(); if (temp1.Any()) { foreach (var item in temp1) { OperateLogDto start = new OperateLogDto(); start.LOGTYPE = SKLOGTYPE_Enums.RiskSubmit; start.DATA_ID = RectifyNoticeID.Value; if (tempIds.Contains(item.SOURCE_DATA_ID.Value)) { if (item.NOTICE_TITLE.Contains("驳回")) { start.OPERATEPOINT = SKOPERATEPOINT_Enums.RecifyReject; } else { start.OPERATEPOINT = SKOPERATEPOINT_Enums.RecifyAudit; } } else { if (item.NOTICE_TITLE.Contains("确认")) { start.OPERATEPOINT = SKOPERATEPOINT_Enums.RecifyCheck; } else if (item.NOTICE_TITLE.Contains("驳回")) { start.OPERATEPOINT = SKOPERATEPOINT_Enums.RecifyRejectR; } else { start.OPERATEPOINT = SKOPERATEPOINT_Enums.GotRecify; } } start.USER_ID = item.USER_ID; start.USRTNAME = item.USER_NAME; start.OPERTETIME = item.TASK_DT; start.ORDERTIME = item.CREATE_TIME; start.ISINTTIME = (item.NOTICE_STATUS == 4 || item.NOTICE_STATUS == 2) ? false : item.NOTICE_STATUS == 1 ? true : DateTime.Now > item.TASK_ENDDT ? false : true; resultRiskDeal.Add(start); } } var taskApprove = tasks.FirstOrDefault(t => tempIds.Contains(t.SOURCE_DATA_ID.Value)); if (tempIds.Any() && taskApprove == null) { var approveTemp = approves.FirstOrDefault(t => t.DATA_ID == RectifyNoticeID); if (approveTemp != null) { var approveDetailTemp = approveDetails.FirstOrDefault(t => t.APPROVE_ID == approveTemp.ID); if (approveDetailTemp != null) { OperateLogDto start = new OperateLogDto(); start.LOGTYPE = SKLOGTYPE_Enums.RiskSubmit; start.DATA_ID = RectifyNoticeID.Value; start.OPERATEPOINT = SKOPERATEPOINT_Enums.RecifyAudit; start.USER_ID = approveDetailTemp.APPROVE_USER_ID.Value; start.USRTNAME = users.FirstOrDefault(t => t.ID == approveDetailTemp.APPROVE_USER_ID)?.NAME; start.OPERTETIME = approveDetailTemp.NODE_APPROVE_TIME; start.ORDERTIME = approveDetailTemp.CREATE_TIME; start.ISINTTIME = true; resultRiskDeal.Add(start); } } } resultRiskDeal = resultRiskDeal.OrderBy(e => e.ORDERTIME).ThenBy(m => m.OPERTETIME).ThenBy(n => n.OPERATEPOINT).ToList(); if (resultRiskDeal.Any()) { result.Add(resultRiskDeal); } } else { result.Add(resultRiskDeal); } #endregion #region 隐患整改记录 if (RectifyRecordID != null) { var tempIds = approves.Where(t => t.DATA_ID == RectifyRecordID).OrderBy(m => m.CREATE_TIME).Select(x => x.ID).ToList(); var temp1 = tasks.Where(t => t.SOURCE_DATA_ID == RectifyRecordID || tempIds.Contains(t.SOURCE_DATA_ID.Value)).OrderBy(t => t.CREATE_TIME).ToList(); if (temp1.Any()) { foreach (var item in temp1) { OperateLogDto start = new OperateLogDto(); start.LOGTYPE = SKLOGTYPE_Enums.RiskSubmit; start.DATA_ID = RectifyRecordID.Value; if (tempIds.Contains(item.SOURCE_DATA_ID.Value)) { if (item.NOTICE_TITLE.Contains("驳回")) { start.OPERATEPOINT = SKOPERATEPOINT_Enums.RecifyRecordAuditR; } else { start.OPERATEPOINT = SKOPERATEPOINT_Enums.RecifyRecordAudit; } } else { if (item.NOTICE_TITLE.Contains("验收")) { start.OPERATEPOINT = SKOPERATEPOINT_Enums.RecifyRecordCheck; } else if (item.NOTICE_TITLE.Contains("驳回")) { start.OPERATEPOINT = SKOPERATEPOINT_Enums.RecifyRecordReject; } else { start.OPERATEPOINT = SKOPERATEPOINT_Enums.GotRecifyRecord; } } start.USER_ID = item.USER_ID; start.USRTNAME = item.USER_NAME; start.OPERTETIME = item.TASK_DT; start.ORDERTIME = item.CREATE_TIME; start.ISINTTIME = (item.NOTICE_STATUS == 4 || item.NOTICE_STATUS == 2) ? false : item.NOTICE_STATUS == 1 ? true : DateTime.Now > item.TASK_ENDDT ? false : true; resultRiskEnd.Add(start); } } var taskApprove = tasks.FirstOrDefault(t => tempIds.Contains(t.SOURCE_DATA_ID.Value)); if (tempIds.Any() && taskApprove == null) { var approveTemp = approves.FirstOrDefault(t => t.DATA_ID == RectifyRecordID); if (approveTemp != null) { var approveDetailTemp = approveDetails.FirstOrDefault(t => t.APPROVE_ID == approveTemp.ID); if (approveDetailTemp != null) { OperateLogDto start = new OperateLogDto(); start.LOGTYPE = SKLOGTYPE_Enums.RiskSubmit; start.DATA_ID = RectifyRecordID.Value; start.OPERATEPOINT = SKOPERATEPOINT_Enums.RecifyRecordAudit; start.USER_ID = approveDetailTemp.APPROVE_USER_ID.Value; start.USRTNAME = users.FirstOrDefault(t => t.ID == approveDetailTemp.APPROVE_USER_ID)?.NAME; start.OPERTETIME = approveDetailTemp.NODE_APPROVE_TIME; start.ORDERTIME = approveDetailTemp.CREATE_TIME; start.ISINTTIME = true; resultRiskEnd.Add(start); } } } resultRiskEnd = resultRiskEnd.OrderBy(e => e.ORDERTIME).ThenBy(m => m.OPERTETIME).ThenBy(n => n.OPERATEPOINT).ToList(); if (resultRiskEnd.Any()) { result.Add(resultRiskEnd); } } else { result.Add(resultRiskEnd); } #endregion return result; } }); } } }