diff --git a/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs b/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs index a7231f0..d04bccb 100644 --- a/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs +++ b/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs @@ -324,6 +324,7 @@ namespace APT.BaseData.Services.Services.FM T_FM_NOTIFICATION_TASK finishNotice = null; //发消息 T_FM_NOTIFICATION_TASK notice = null; + T_FM_NOTIFICATION_TASK curentTask = null; //细表 List appdetails = new List(); if (operaterID == null) @@ -486,10 +487,11 @@ namespace APT.BaseData.Services.Services.FM //当前节点 T_PF_APPROVE_DETAIL curentApprove = null; + string JsonApproveDetail = string.Empty; GetApproveNodes(appdetails, ref curentApprove, ref JsonApproveDetail); - DealOperateApproveDetail(ref sendMessage, operaterID, ref appdetails, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove);//整理操作者审批流相关信息 wyw + DealOperateApproveDetail(ref sendMessage, operaterID, ref appdetails, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove,ref curentTask);//整理操作者审批流相关信息 wyw if (sendMessage) { @@ -621,7 +623,9 @@ namespace APT.BaseData.Services.Services.FM if (finishNotice != null && finishNotice.ID != Guid.Empty) UpdateEntityNoCommit(finishNotice, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); if (notice != null) - AddEntityNoCommit(notice); + AddEntityNoCommit(notice); + if (curentTask != null) + AddEntityNoCommit(curentTask); if (listBSLog != null && listBSLog.Any()) BantchSaveEntityNoCommit(listBSLog);//有修改和新增 }); @@ -806,6 +810,7 @@ namespace APT.BaseData.Services.Services.FM } List listApproveTemp = approveTemplist.ToList(); T_FM_USER userTemp = null; + T_FM_NOTIFICATION_TASK curentTask = null; if (listParam != null && listParam.Count > 0) { #region 根据参数获取审批模板 @@ -871,12 +876,13 @@ namespace APT.BaseData.Services.Services.FM //当前节点 - T_PF_APPROVE_DETAIL curentApprove = null; + T_PF_APPROVE_DETAIL curentApprove = null; + string JsonApproveDetail = string.Empty; GetApproveNodes(appdetailsTemp, ref curentApprove, ref JsonApproveDetail);// GetApproveNodes(appdetails, ref curentApprove); bool isSendMessagePer = isSendMessage;//当前是否发送待办 - DealOperateApproveDetail(ref isSendMessagePer, operaterID, ref appdetailsTemp, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove);//整理操作者审批流相关信息 + DealOperateApproveDetail(ref isSendMessagePer, operaterID, ref appdetailsTemp, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove, ref curentTask);//整理操作者审批流相关信息 if (isSendMessagePer) { @@ -1001,7 +1007,7 @@ namespace APT.BaseData.Services.Services.FM string JsonApproveDetail = string.Empty; GetApproveNodes(appdetails, ref curentApprove, ref JsonApproveDetail); - DealOperateApproveDetail(ref isSendMessage, operaterID, ref appdetails, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove);//整理操作者审批流相关信息 + DealOperateApproveDetail(ref isSendMessage, operaterID, ref appdetails, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove,ref curentTask);//整理操作者审批流相关信息 if (isSendMessage) { @@ -1056,7 +1062,9 @@ namespace APT.BaseData.Services.Services.FM if (finishNotice != null) UpdateEntityNoCommit(finishNotice, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); if (listNotice.Count > 0) - BantchAddEntityNoCommit(listNotice); + BantchAddEntityNoCommit(listNotice); + if (curentTask!=null) + AddEntityNoCommit(curentTask); }); //如果 审批流需要执行默认审批 调用 回调方法 @@ -1135,7 +1143,8 @@ namespace APT.BaseData.Services.Services.FM List listApprove = new List(); List listBSLog = new List(); List appdetails = new List(); - List appdetailsTemp = null; + List appdetailsTemp = null; + T_FM_NOTIFICATION_TASK curentTask = null; IEnumerable iEnumApprovalRole = null; //上个消息 T_FM_NOTIFICATION_TASK finishNotice = null; @@ -1326,7 +1335,7 @@ namespace APT.BaseData.Services.Services.FM GetApproveNodes(appdetailsTemp, ref curentApprove, ref JsonApproveDetail);// GetApproveNodes(appdetails, ref curentApprove); bool isSendMessagePer = isSendMessage;//当前是否发送待办 - DealOperateApproveDetail(ref isSendMessagePer, operaterID, ref appdetailsTemp, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove);//整理操作者审批流相关信息 + DealOperateApproveDetail(ref isSendMessagePer, operaterID, ref appdetailsTemp, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove, ref curentTask);//整理操作者审批流相关信息 if (isSendMessagePer) { @@ -1469,7 +1478,7 @@ namespace APT.BaseData.Services.Services.FM string JsonApproveDetail = string.Empty; GetApproveNodes(appdetails, ref curentApprove, ref JsonApproveDetail); - DealOperateApproveDetail(ref isSendMessage, operaterID, ref appdetails, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove);//整理操作者审批流相关信息 + DealOperateApproveDetail(ref isSendMessage, operaterID, ref appdetails, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove,ref curentTask);//整理操作者审批流相关信息 if (isSendMessage) { @@ -1543,7 +1552,9 @@ namespace APT.BaseData.Services.Services.FM if (finishNotice != null) UpdateEntityNoCommit(finishNotice, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); if (listNotice.Count > 0) - BantchAddEntityNoCommit(listNotice); + BantchAddEntityNoCommit(listNotice); + if (curentTask != null) + AddEntityNoCommit(curentTask); }); //如果 审批流需要执行默认审批 调用 回调方法 @@ -2075,7 +2086,7 @@ namespace APT.BaseData.Services.Services.FM /// /// /// - private static void DealOperateApproveDetail(ref bool isSendMessage, Guid? operaterID, ref List appdetails, ref string CALLBACK_INTERFACE, List listDATA_ID, T_PF_APPROVE approve, ref T_PF_APPROVE_DETAIL curentApprove) + private static void DealOperateApproveDetail(ref bool isSendMessage, Guid? operaterID, ref List appdetails, ref string CALLBACK_INTERFACE, List listDATA_ID, T_PF_APPROVE approve, ref T_PF_APPROVE_DETAIL curentApprove,ref T_FM_NOTIFICATION_TASK curentTask) { if (appdetails != null && appdetails.Count > 0) { @@ -2083,6 +2094,20 @@ namespace APT.BaseData.Services.Services.FM var approveOperater = appdetails.FirstOrDefault(e => e.APPROVE_USER_ID == operaterID); if (approveOperater != null) { + //本人默认审批,存入一条已办 + curentTask = new T_FM_NOTIFICATION_TASK(); + curentTask.CODE = DateTime.Now.ToString("yyyyMMddHHmmss"); + curentTask.NOTICE_TITLE = approve.NAME + "审批"; + curentTask.SOURCE_DATA_ID = approve.ID; + curentTask.ORG_ID = approve.ORG_ID; + curentTask.ID = Guid.NewGuid(); + curentTask.TASK_STARTDT = DateTime.Now; + curentTask.TASK_ENDDT = DateTime.Now.AddHours(24); + curentTask.NOTICE_TYPE = (int)FMNoticeTypeEnum.消息; + curentTask.NOTICE_STATUS = (int)FMNoticeStatusEnum.正常已办; + curentTask.USER_ID = (Guid)operaterID; + curentTask.USER_NAME = approveOperater.Nav_ApproveUser?.NAME; + curentTask.SOURCE_FORMCODE = approve.APPROVE_CODE; //设置为已审批 approveOperater.IS_CURRENT = false; approveOperater.NODE_APPROVE_STATUS = (int)NodeApproveStatus.Done; @@ -2817,9 +2842,10 @@ namespace APT.BaseData.Services.Services.FM finishTask = NotificationTaskService.GetTaskFinishModel(finishTaskId.Value, taskEndSourceFormCode);//wyw 之前方法 巡回安全检查填写会报错 } - T_PF_APPROVE_DETAIL curentApprove = null; + T_PF_APPROVE_DETAIL curentApprove = null; + T_FM_NOTIFICATION_TASK curentTask = null; bool isMsg = false; - DealOperateApproveDetail(ref isMsg, LoginID, ref appdetails, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove);//整理操作者审批流相关信息 wyw + DealOperateApproveDetail(ref isMsg, LoginID, ref appdetails, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove,ref curentTask);//整理操作者审批流相关信息 wyw if (curentApprove == null) { //Msg = "获取审批流当前节点信息失败"; diff --git a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs index 7b57d37..4b10f25 100644 --- a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs +++ b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs @@ -11423,7 +11423,22 @@ namespace APT.BaseData.Services.DomainServices { t.ISCHECK = true; t.CHECKTIME = DateTime.Now; - }); + }); + //存入一条已办 + T_FM_NOTIFICATION_TASK notice = new T_FM_NOTIFICATION_TASK(); + notice.CODE = DateTime.Now.ToString("yyyyMMddHHmmss"); + notice.NOTICE_TITLE = entity.DEPARTMENT_TYPE.GetDescription() + "安全检查通知" + DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0') + entity.Nav_CheckType?.NAME + "-确认"; + notice.SOURCE_DATA_ID = entity.ID; + notice.ORG_ID = entity.ORG_ID; + notice.ID = Guid.NewGuid(); + notice.TASK_STARTDT = DateTime.Now; + notice.TASK_ENDDT = DateTime.Now.AddHours(24); + notice.NOTICE_TYPE = (int)FMNoticeTypeEnum.消息; + notice.NOTICE_STATUS = (int)FMNoticeStatusEnum.正常已办; + notice.USER_ID = (Guid)entity.APPLY_USER_ID; + notice.USER_NAME = entity.Nav_ApplyUser?.NAME; + notice.SOURCE_FORMCODE = "SK006_SHOWPRINT"; + sendNotices.Add(notice); } userIds = userIds.Distinct().ToList(); if (userIds != null && userIds.Any()) @@ -11438,8 +11453,8 @@ namespace APT.BaseData.Services.DomainServices } var date = DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0'); //发消息 - sendNotices = NotificationTaskService.InsertUserNoticeTaskModels(entity.DEPARTMENT_TYPE.GetDescription() + "安全检查通知" + date + entity.Nav_CheckType?.NAME + "-确认", entity.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now, - DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK006_SHOWPRINT"); + sendNotices.AddRange(NotificationTaskService.InsertUserNoticeTaskModels(entity.DEPARTMENT_TYPE.GetDescription() + "安全检查通知" + date + entity.Nav_CheckType?.NAME + "-确认", entity.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now, + DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK006_SHOWPRINT")); } else { diff --git a/APT.MicroApi/APT.FM.WebApi/Controllers/Api/UserController.cs b/APT.MicroApi/APT.FM.WebApi/Controllers/Api/UserController.cs index 9560e0e..a967942 100644 --- a/APT.MicroApi/APT.FM.WebApi/Controllers/Api/UserController.cs +++ b/APT.MicroApi/APT.FM.WebApi/Controllers/Api/UserController.cs @@ -530,7 +530,7 @@ namespace APT.FM.WebApi.Controllers.Api.FM { return SafeExecute(() => { - //var allUsers = this.GetEntities(t => t.IS_DELETED == false, null, "Nav_ApproveRole"); + var allUsers = this.GetEntities(t => t.IS_DELETED == false, null, "Nav_ApproveRole"); var isAdd = this.GetEntity(entity.ID.ToString(), "Nav_ApproveRole", "Nav_BelongRoles"); string dbRuleStr = string.Empty; var userList = new List(); @@ -793,25 +793,28 @@ namespace APT.FM.WebApi.Controllers.Api.FM if (isExist != null) this.ThrowError("070001"); } - //删除旧的排班,在新的排班里面加入 - deleteDepartScheIds = this.GetEntities(t =>t.Nav_DepartmentScheduling!=null && t.Nav_DepartmentScheduling.DATE_TIME >= DateTime.Now.Date && t.Nav_DepartmentScheduling.START_TIME >= DateTime.Now && t.PERSON_ID == entity.PERSON_ID,new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); - if (departScheIds != null && departScheIds.Any()) + var oldUser = allUsers.FirstOrDefault(t => t.ID == entity.ID); + if (oldUser != null && oldUser.DEPARTMENT_ID != entity.DEPARTMENT_ID) { - var departScheDetailTemps = this.GetEntities(t => departScheIds.Contains(t.DEPARTMENT_SCHEDULING_ID) && t.PERSON_ID == entity.PERSON_ID, new BaseFilter(entity.ORG_ID)).ToList(); - foreach (var id in departScheIds) + //删除旧的排班,在新的排班里面加入 + deleteDepartScheIds = this.GetEntities(t => t.Nav_DepartmentScheduling != null && t.Nav_DepartmentScheduling.DATE_TIME >= DateTime.Now.Date && t.Nav_DepartmentScheduling.START_TIME >= DateTime.Now && t.PERSON_ID == entity.PERSON_ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); + if (departScheIds != null && departScheIds.Any()) { - var detail = departScheDetailTemps.FirstOrDefault(t => t.DEPARTMENT_SCHEDULING_ID == id); - if (detail == null) + var departScheDetailTemps = this.GetEntities(t => departScheIds.Contains(t.DEPARTMENT_SCHEDULING_ID) && t.PERSON_ID == entity.PERSON_ID, new BaseFilter(entity.ORG_ID)).ToList(); + foreach (var id in departScheIds) { - T_FM_DEPARTMENT_SCHEDULING_DETAIL de = new T_FM_DEPARTMENT_SCHEDULING_DETAIL(); - de.ORG_ID = entity.ORG_ID; - de.DEPARTMENT_SCHEDULING_ID = id; - de.PERSON_ID = entity.PERSON_ID.Value; - departScheDetails.Add(de); + var detail = departScheDetailTemps.FirstOrDefault(t => t.DEPARTMENT_SCHEDULING_ID == id); + if (detail == null) + { + T_FM_DEPARTMENT_SCHEDULING_DETAIL de = new T_FM_DEPARTMENT_SCHEDULING_DETAIL(); + de.ORG_ID = entity.ORG_ID; + de.DEPARTMENT_SCHEDULING_ID = id; + de.PERSON_ID = entity.PERSON_ID.Value; + departScheDetails.Add(de); + } } } } - //} if (entity.APPROVE_ROLE_ID != null) diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs index 51a1c60..947f894 100644 --- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs +++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs @@ -74,7 +74,8 @@ namespace APT.PP.WebApi.Controllers.Api public List details { get; set; } } public class CheckListDetail - { + { + public Guid? ID { get; set; } public string RISK_NAME { get; set; } public Guid? RISK_AREA_ID { get; set; } @@ -85,7 +86,10 @@ namespace APT.PP.WebApi.Controllers.Api public string CHECKPROOF { get; set; } - public string CHECKSTANDARD { get; set; } + public string CHECKSTANDARD { get; set; } + public Guid? ENTERPRISE_LIBRARY_DETAIL_ID { get; set; } + public Guid? ENTERPRISE_LIBRARY_ID { get; set; } + public string MEASURES_NAME { get; set; } } [Route("api/PP/SKController")] [TypeFilter(typeof(CustomActionFilterAttribute))] @@ -5938,6 +5942,260 @@ namespace APT.PP.WebApi.Controllers.Api } return true; }); + } + /// + /// 定时更新系统管理下面的检查清单 + /// + /// + /// + [HttpPost, Route("UpdateCheckList")] + public JsonActionResult UpdateCheckList([FromBody] KeywordFilter filter) + { + return SafeExecute(() => + { + try + { + var deleteHidIds = this.GetEntities(t => true, new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList(); + var deleteConIds = this.GetEntities(t => true, new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList(); + var deleteSetIds = this.GetEntities(t => true, new BaseFilter(filter.OrgId)).Select(m => m.ID).ToList(); + List sets = new List(); + List setContents = new List(); + List setConHiddens = new List(); + List list = new List(); + List conDepartlist = new List(); + var departs = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_User"); + var users = this.GetEntities(t => t.ENABLE_STATUS == 0 && t.DEPARTMENT_ID != null && !t.CODE.Contains("admin") && t.Nav_Person != null, new BaseFilter(filter.OrgId), "Nav_Person", "Nav_ApproveRole"); + var productions = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)).ToList(); + //企业库 + var librarys = this.GetEntities(t => !t.IS_DELETED && t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_Area").ToList(); + var libIds = librarys.Select(t => t.ID).ToList(); + //管控层级 + var libraryDeparts = this.GetEntities(t => !t.IS_DELETED && libIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(filter.OrgId)).ToList(); + //管控措施 + var libraryDetails = this.GetEntities(t => !t.IS_DELETED && libIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(filter.OrgId)).ToList(); + var libDetailIds = libraryDetails.Select(t => t.ID).ToList(); + //检查内容 + var contents = this.GetEntities(t => !t.IS_DELETED && libDetailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID), new BaseFilter(filter.OrgId), "Nav_Contents").ToList(); + var libContentIds = libraryDetails.Select(t => t.ID).ToList(); + //检查层级 + var contentDeparts = this.GetEntities(t => !t.IS_DELETED && libContentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(filter.OrgId), "Nav_CheckType", "Nav_Department").ToList(); + //隐患描述 + //var contentHiddens = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)).ToList(); + //辨识岗位 + var posts = this.GetEntities(t => !t.IS_DELETED && libIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(filter.OrgId), "Nav_PostDetails.Nav_Post").ToList(); + //岗位排查 + var checkTypeIds = this.GetEntities(t => t.NAME == "岗位排查", new BaseFilter(filter.OrgId)).Select(x => x.ID).ToList(); + //检查清单(生产单元+检查层级+检查类型+检查周期+检查部门:取辨识部门+检查对象:取辨识岗位) + if (contentDeparts != null && contentDeparts.Any()) + { + foreach (var item in contentDeparts) + { + var conFirst = contents.FirstOrDefault(t => t.ID == item.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID); + var detailFirst = libraryDetails.FirstOrDefault(t => t.ID == conFirst?.ENTERPRISE_LIBRARY_DETAIL_ID); + var libFirst = librarys.FirstOrDefault(t => t.ID == detailFirst?.ENTERPRISE_LIBRARY_ID); + if (item.CHECK_TYPE_ID != null && checkTypeIds.Contains((Guid)item.CHECK_TYPE_ID)) + { + var postFirst = posts.FirstOrDefault(t => t.ENTERPRISE_LIBRARY_ID == libFirst?.ID && t.DEPARTMENT_ID == item.DEPARTMENT_ID); + if (postFirst != null && postFirst.Nav_PostDetails != null && postFirst.Nav_PostDetails.Any()) + { + foreach (var item2 in postFirst.Nav_PostDetails) + { + //去除有审批角色的人 + var userCharge = users.FirstOrDefault(t => t.Nav_Person != null && t.Nav_Person.POST_ID == item2.POST_ID && t.APPROVE_ROLE_ID != null); + if (userCharge == null) + { + T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); + de.MineType = libFirst != null ? libFirst.MineType : SKProductionUnit.All; + de.PRODUCTION_UNIT_ID = libFirst != null ? libFirst.PRODUCTION_UNIT_ID : null; + de.CHECK_TYPE_ID = item.CHECK_TYPE_ID; + de.TYPE_NAME = item.Nav_CheckType?.NAME; + de.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = item.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID; + de.CHECK_CYCLE = item.CHECK_CYCLE; + de.CHECK_TYPE = item.CHECK_TYPE; + de.DEPARTMENT_ID = item.DEPARTMENT_ID; + de.DEPART_NAME = item.Nav_Department?.NAME; + de.POST_ID = item2.POST_ID; + de.POST_NAME = item2.Nav_Post?.NAME; + conDepartlist.Add(de); + } + } + } + } + else + { + if (item.CHECK_TYPE == SKDepartmentTypeEnum.班组级) + { + item.POST_NAME = "班组负责人"; + } + else if (item.CHECK_TYPE == SKDepartmentTypeEnum.车间级) + { + item.POST_NAME = "车间安全员"; + } + else if (item.CHECK_TYPE == SKDepartmentTypeEnum.部门级) + { + item.POST_NAME = "部门安全员"; + } + else + { + item.POST_NAME = "安环部安全员"; + } + var userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.DEPARTMENT_ID && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.POST_NAME); + if (userInfo == null) + { + var depart = departs.FirstOrDefault(t => t.ID == item.DEPARTMENT_ID); + if (depart != null && depart.USER_ID != null) + { + userInfo = users.FirstOrDefault(t => t.ID == depart.USER_ID); + } + } + T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART de = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART(); + de.MineType = libFirst != null ? libFirst.MineType : SKProductionUnit.All; + de.PRODUCTION_UNIT_ID = libFirst != null ? libFirst.PRODUCTION_UNIT_ID : null; + de.CHECK_TYPE_ID = item.CHECK_TYPE_ID; + de.TYPE_NAME = item.Nav_CheckType?.NAME; + de.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = item.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID; + de.CHECK_CYCLE = item.CHECK_CYCLE; + de.CHECK_TYPE = item.CHECK_TYPE; + de.DEPARTMENT_ID = item.DEPARTMENT_ID; + de.DEPART_NAME = item.Nav_Department?.NAME; + de.POST_ID = userInfo?.Nav_Person?.POST_ID; + de.POST_NAME = item.POST_NAME; + conDepartlist.Add(de); + } + } + } + if (conDepartlist != null && conDepartlist.Any()) + { + var group = conDepartlist.GroupBy(t => new { t.PRODUCTION_UNIT_ID, t.CHECK_TYPE, t.CHECK_CYCLE, t.DEPART_NAME, t.DEPARTMENT_ID, t.CHECK_TYPE_ID, t.TYPE_NAME, t.POST_NAME, t.POST_ID }).ToList(); + foreach (var item in group) + { + CheckListNew listNew = new CheckListNew(); + listNew.PRODUCTION_UNIT_ID = item.Key.PRODUCTION_UNIT_ID; + listNew.Cycle = item.Key.CHECK_CYCLE; + listNew.DepartType = item.Key.CHECK_TYPE; + listNew.MineType = productions.FirstOrDefault(t => t.ID == item.Key.PRODUCTION_UNIT_ID)?.NAME; + listNew.CheckType = item.Key.TYPE_NAME; + listNew.CheckCycle = item.Key.CHECK_CYCLE.GetDescription(); + listNew.CheckLevel = item.Key.CHECK_TYPE.GetDescription(); + listNew.Num = (int)item.Key.CHECK_TYPE; + listNew.CheckDepart = item.Key.DEPART_NAME; + listNew.CheckPostId = item.Key.POST_ID; + listNew.CheckPost = item.Key.POST_NAME; + listNew.CheckDepartId = item.Key.DEPARTMENT_ID; + listNew.CheckTypeId = item.Key.CHECK_TYPE_ID; + var depathaveIds = conDepartlist.Where(t => t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.CHECK_TYPE == item.Key.CHECK_TYPE && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.PRODUCTION_UNIT_ID == item.Key.PRODUCTION_UNIT_ID && t.POST_NAME == item.Key.POST_NAME && t.POST_ID == item.Key.POST_ID).Select(m => m.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID).Distinct().ToList(); + var temps = contents.Where(t => depathaveIds.Contains(t.ID)).Distinct().ToList(); + if (temps != null && temps.Any()) + { + List listDetail = new List(); + foreach (var tem in temps) + { + var detailFirst = libraryDetails.FirstOrDefault(t => t.ID == tem.ENTERPRISE_LIBRARY_DETAIL_ID); + var libFirst = librarys.FirstOrDefault(t => t.ID == detailFirst?.ENTERPRISE_LIBRARY_ID); + CheckListDetail checkListDetail = new CheckListDetail(); + checkListDetail.ID = tem.ID; + checkListDetail.CHECK_CONTENTS_ID = tem.CHECK_CONTENTS_ID; + checkListDetail.CHECK_CONTENTS_NAME = tem.Nav_Contents?.CHECKCONTENT; + checkListDetail.RISK_NAME = libFirst?.RISK_NAME; + checkListDetail.ENTERPRISE_LIBRARY_ID = libFirst?.ID; + checkListDetail.RISK_AREA_ID = libFirst?.AREA_ID; + checkListDetail.RISK_AREA_NAME = libFirst?.Nav_Area?.NAME; + checkListDetail.CHECKPROOF = tem.CHECK_BASIC; + checkListDetail.CHECKSTANDARD = tem.CHECK_STANDARD; + checkListDetail.ENTERPRISE_LIBRARY_DETAIL_ID = detailFirst?.ID; + checkListDetail.MEASURES_NAME = detailFirst?.MEASURES_NAME; + listDetail.Add(checkListDetail); + } + listNew.details = listDetail.GroupBy(n => new { n.RISK_AREA_ID, n.RISK_NAME, n.CHECK_CONTENTS_ID }).Select(g => g.FirstOrDefault()).OrderBy(t => t.RISK_AREA_NAME).ThenBy(m => m.RISK_NAME).ToList(); + } + list.Add(listNew); + } + list = list.OrderBy(y => y.PRODUCTION_UNIT_ID).ThenBy(x => x.Num).ThenBy(n => n.CheckDepart).ToList(); + } + if (list != null && list.Any()) + { + foreach (var item in list) + { + T_SK_CHECK_SET set = new T_SK_CHECK_SET(); + set.ORG_ID = filter.OrgId; + set.DEPARTMENT_ID = item.CheckDepartId; + set.POST_ID = item.CheckPostId; + set.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID; + set.CHECK_TYPE_ID = item.CheckTypeId; + set.CHECK_CYCLE = item.Cycle; + set.CHECK_TYPE = item.DepartType; + set.POST_NAME = item.CheckPost; + sets.Add(set); + if (item.details != null && item.details.Any()) + { + var i = 1; + foreach (var item2 in item.details) + { + if (item2 != null && item2.CHECK_CONTENTS_ID != null && item2.ID != null) + { + T_SK_CHECK_SET_CONTENTS detail = new T_SK_CHECK_SET_CONTENTS(); + detail.ORG_ID = filter.OrgId; + detail.CHECK_SET_ID = set.ID; + detail.CHECK_CONTENTS_ID = item2.CHECK_CONTENTS_ID; + detail.CHECK_CONTENT = item2.CHECK_CONTENTS_NAME; + detail.CHECK_STANDARD = item2.CHECKSTANDARD; + detail.NUM = i; + detail.AREA_ID = item2.RISK_AREA_ID; + detail.RISK_NAME = item2.RISK_NAME; + detail.ENTERPRISE_LIBRARY_ID = item2.ENTERPRISE_LIBRARY_ID; + detail.ENTERPRISE_LIBRARY_DETAIL_ID = item2.ENTERPRISE_LIBRARY_DETAIL_ID; + detail.MEASURES_NAME = item2.MEASURES_NAME; + setContents.Add(detail); + i++; + //var hiddens = contentHiddens.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID == item2.ID).ToList(); + //if (hiddens != null && hiddens.Any()) + //{ + // foreach (var item3 in hiddens) + // { + // if (item3 != null && item3.CHECK_QUESTION_ID!=null && item3.HIDDEN_LEVEL !=null) + // { + // T_SK_CHECK_SET_CONTENTS_HIDDEN hid = new T_SK_CHECK_SET_CONTENTS_HIDDEN(); + // hid.ORG_ID = filter.OrgId; + // hid.CHECK_CONTENTS_SET_ID = detail.ID; + // hid.CHECK_QUESTION_ID = item3.CHECK_QUESTION_ID; + // hid.NUM = item3.NUM; + // hid.HIDDEN_LEVEL = item3 != null ? (SKHiddenLevel)item3.HIDDEN_LEVEL : SKHiddenLevel.General; + // hid.RECTIFICATION_MEASURES = item3.RECTIFICATION_MEASURES; + // hid.HIDDEN_DESCRIPTION = item3.HIDDEN_DESCRIPTION; + // setConHiddens.Add(hid); + // } + // } + //} + } + } + } + } + } + UnifiedCommit(() => + { + if (deleteHidIds != null && deleteHidIds.Any()) + BantchDeleteEntityNoCommit(deleteHidIds); + if (deleteConIds != null && deleteConIds.Any()) + BantchDeleteEntityNoCommit(deleteConIds); + if (deleteSetIds != null && deleteSetIds.Any()) + BantchDeleteEntityNoCommit(deleteSetIds); + if (sets != null && sets.Any()) + BantchSaveEntityNoCommit(sets); + if (setContents != null && setContents.Any()) + BantchSaveEntityNoCommit(setContents); + //if (setConHiddens != null && setConHiddens.Any()) + // BantchSaveEntityNoCommit(setConHiddens); + }); + } + 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/BIHomeController.cs b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIHomeController.cs index 4ba9649..2161bf2 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIHomeController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIHomeController.cs @@ -1,15 +1,18 @@ -using APT.BaseData.Domain.Entities.FM; -using APT.Infrastructure.Core; -using Microsoft.AspNetCore.Mvc; -using APT.Infrastructure.Api; -using System.Collections.Generic; -using System; -using System.Linq; -using APT.Utility; -using APT.MS.Domain.Entities.BI; +using APT.BaseData.Domain.ApiModel.Platform; +using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.IServices.BI; -using APT.BaseData.Domain.ApiModel.Platform; +using APT.Infrastructure.Api; using APT.Infrastructure.Api.Redis; +using APT.Infrastructure.Core; +using APT.MS.Domain.Entities.BI; +using APT.MS.Domain.Entities.HM; +using APT.MS.Domain.Entities.SK; +using APT.Utility; +using log4net.Core; +using Microsoft.AspNetCore.Mvc; +using System; +using System.Collections.Generic; +using System.Linq; namespace APT.SC.WebApi.Controllers.Api.BI { @@ -2113,6 +2116,36 @@ namespace APT.SC.WebApi.Controllers.Api.BI #endregion + return result; + }); + } + /// + /// 风险等级占比 + /// + /// 过滤实体 + /// + [HttpPost, Route("GetHomeRiskLevel")] + public JsonActionResult> GetHomeRiskLevel([FromBody] KeywordFilter filter) + { + return SafeExecute(() => + { + + List result = new List(); + BaseFilter baseFilter = new BaseFilter(filter.GetOrgId()); + baseFilter.SelectField = new string[] { "EVALUATE_LEVEL" }; + var evaluateRisks = GetEntities(t => t.EVALUATE_LEVEL != null && t.ENABLE_STATUS == 0, baseFilter).OrderBy(i => i.EVALUATE_LEVEL).ToList(); + var distinctLevelTypes = evaluateRisks.GroupBy(m => new { m.EVALUATE_LEVEL }).Select(group => new { group.Key.EVALUATE_LEVEL, count = group.Count() }).ToList(); + int i = 1; + foreach (var item in distinctLevelTypes) + { + T_FM_RISK_LEVEL_PROPORTION riskLevelProportion = new T_FM_RISK_LEVEL_PROPORTION(); + riskLevelProportion.COUNT = item.count; + riskLevelProportion.NUM = i; + riskLevelProportion.RISK_LEVEL = item.EVALUATE_LEVEL.GetDescription(); + riskLevelProportion.ORG_ID = filter.GetOrgId(); + result.Add(riskLevelProportion); + i++; + } return result; }); } diff --git a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIKanBanController.cs b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIKanBanController.cs index 6b428cd..a245f09 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIKanBanController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIKanBanController.cs @@ -415,7 +415,6 @@ namespace APT.SC.WebApi.Controllers.Api.BI } if (result != null && result.Any()) { - var steps = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(orgId)); foreach (var da in result) { var temps = details.Where(t => t.company == da.company).ToList(); @@ -426,7 +425,7 @@ namespace APT.SC.WebApi.Controllers.Api.BI { var JobTodayDetail = new JobTodayDetail(); JobTodayDetail.qty = de.qty; - JobTodayDetail.jobName = steps.FirstOrDefault(t => t.ID == Guid.Parse(de.jobName))?.NAME; + JobTodayDetail.jobName = de.jobName; JobTodayDetail.company = de.company; detailTemps.Add(JobTodayDetail); } 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 3c20e35..fb1ca4a 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs @@ -8,6 +8,7 @@ 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.Api; using APT.Infrastructure.Api.Redis; using APT.Infrastructure.Core; using APT.MS.Domain.Entities.BI; @@ -32,6 +33,7 @@ using InfluxData.Net.Kapacitor.Models; using log4net.Filter; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; +using Microsoft.Data.SqlClient; using MySqlX.XDevAPI.Common; using NPOI.SS.Formula.Functions; using Renci.SshNet.Common; @@ -46,6 +48,7 @@ using System.Linq.Expressions; using System.Net.NetworkInformation; using System.Runtime.CompilerServices; using System.Threading.Tasks; +using static APT.SC.WebApi.Controllers.Api.BI.BIKanBanController; namespace APT.SC.WebApi.Controllers.Api.BIController { @@ -139,6 +142,37 @@ namespace APT.SC.WebApi.Controllers.Api.BIController public string departmentName { get; set; } public int num { get; set; } public List deptInfos { get; set; } + } + public class TaskViewInfo + { + public string MOULD_NAME { get; set; } + public string FORM_NAME { get; set; } + + public string COMPANY_NAME { get; set; } + public int TOTAL_QTY { get; set; } + public int NORMAL_FINISH { get; set; } + public int OVER_FINISH { get; set; } + public int DOING { get; set; } + public int UNFINISH { get; set; } + public int OVER_UNFINISH { get; set; } + public string FINISH_RATE { get; set; } + public string NORMAL_RATE { get; set; } + public List details { get; set; } + } + public class TaskViewInfoDetail + { + public string MOULD_NAME { get; set; } + public string FORM_NAME { get; set; } + + public string COMPANY_NAME { get; set; } + public string NOTICE_TITLE { get; set; } + public DateTime? TASK_STARTDT { get; set; } + + public DateTime? TASK_ENDDT { get; set; } + + public DateTime? TASK_DT { get; set; } + public string NOTICE_STATUS { get; set; } + public string USER_NAME { get; set; } } /// /// @@ -11140,6 +11174,99 @@ namespace APT.SC.WebApi.Controllers.Api.BIController /// 存储信息 /// public List result { get; set; } + } + /// + /// 系统运行情况报表 + /// + /// + /// + [HttpPost, Route("GetTaskViewInfo")] + public JsonActionResult> GetTaskViewInfo([FromBody] KeywordFilter filter) + { + string connhead = ConfigurationManager.ConnectionStrings["head"]; + JsonActionResult> result = new JsonActionResult>(); + result.Data = new List(); + DataTable Table = new DataTable(); + using (SqlConnection connection = new SqlConnection(connhead)) + { + try + { + connection.Open(); + //各公司待办明细 + string sql = "select * from vhome_task_data_form "; + SqlCommand com = new SqlCommand(sql, connection); + SqlDataAdapter Data = new SqlDataAdapter(com); + Data.Fill(Table); + connection.Close(); + } + catch (Exception ex) + { + if (!string.IsNullOrEmpty(ex.StackTrace)) + throw new Exception("错误日志:[StackTrace]" + ex.StackTrace); + else + throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message); + } + if (Table != null && Table.Rows.Count > 0) + { + List listAddNew = new List(); + + foreach (DataRow item in Table.Rows) + { + listAddNew.Add(new TaskViewInfoDetail() + { + COMPANY_NAME = item["db_name"] != null ? item["db_name"].ToString() : null, + MOULD_NAME = item["MODEL_NAME"] != null ? item["MODEL_NAME"].ToString() : null, + FORM_NAME = item["FORM_NAME"] != null ? item["FORM_NAME"].ToString() : null, + NOTICE_TITLE = item["NOTICE_TITLE"] != null ? item["NOTICE_TITLE"].ToString() : null, + NOTICE_STATUS = item["NOTICE_STATUS"] != null ? item["NOTICE_STATUS"].ToString() : null, + TASK_DT = item["TASK_DT"] != null ? Convert.ToDateTime(item["TASK_DT"].ToString()) : null, + TASK_STARTDT = item["TASK_STARTDT"] != null ? Convert.ToDateTime(item["TASK_STARTDT"].ToString()) : null, + TASK_ENDDT = item["TASK_ENDDT"] != null ? Convert.ToDateTime(item["TASK_ENDDT"].ToString()) : null, + USER_NAME = item["USER_NAME"] != null ? item["USER_NAME"].ToString() : null + }); + } + var taskGroup = listAddNew.GroupBy(t => new { t.COMPANY_NAME, t.MOULD_NAME, t.FORM_NAME }).ToList(); + if (taskGroup != null && taskGroup.Any()) + { + foreach (var item in taskGroup) + { + var details = listAddNew.Where(t => t.COMPANY_NAME == item.Key.COMPANY_NAME && t.MOULD_NAME == item.Key.MOULD_NAME && t.FORM_NAME == item.Key.FORM_NAME).ToList(); + TaskViewInfo info = new TaskViewInfo(); + info.COMPANY_NAME = item.Key.COMPANY_NAME; + info.MOULD_NAME = item.Key.MOULD_NAME; + info.FORM_NAME = item.Key.FORM_NAME; + info.TOTAL_QTY = details.Count(); + info.NORMAL_FINISH = details.Count(t => t.NOTICE_STATUS == "1"); + info.OVER_FINISH = details.Count(t => t.NOTICE_STATUS == "2"); + 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 * 100).ToString("0.00"); + info.NORMAL_RATE = info.TOTAL_QTY == 0 ? "0" : ((double)info.NORMAL_FINISH / info.TOTAL_QTY * 100).ToString("0.00"); + if (details != null && details.Any()) + { + info.details = new List(); + foreach (var de in details) + { + TaskViewInfoDetail dd = new TaskViewInfoDetail(); + dd.COMPANY_NAME = de.COMPANY_NAME; + dd.MOULD_NAME = de.MOULD_NAME; + dd.FORM_NAME = de.FORM_NAME; + dd.NOTICE_TITLE = de.NOTICE_TITLE; + dd.NOTICE_STATUS = de.NOTICE_STATUS; + dd.TASK_DT = de.TASK_DT == DateTime.MinValue ? null : de.TASK_DT; + dd.TASK_STARTDT = de.TASK_STARTDT; + dd.TASK_ENDDT = de.TASK_ENDDT; + dd.USER_NAME = de.USER_NAME; + info.details.Add(dd); + } + } + result.Data.Add(info); + } + } + } + } + return result; } } } diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionNoticeController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionNoticeController.cs index 60c07b8..e4bd0c8 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionNoticeController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionNoticeController.cs @@ -1610,7 +1610,7 @@ namespace APT.SK.WebApi.Controllers.Api //throw new Exception("生产单元,检查层级,检查类型,检查周期都不能为空"); } var departId = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; - var checkSet = this.GetEntity(t => t.PRODUCTION_UNIT_ID == entity.PRODUCTION_UNIT_ID && t.CHECK_CYCLE == entity.PLANCHECKFREQUENCY && t.CHECK_TYPE == entity.DEPARTMENT_TYPE && t.DEPARTMENT_ID == Guid.Parse(departId.ToString())); + var checkSet = this.GetEntity(t => t.PRODUCTION_UNIT_ID == entity.PRODUCTION_UNIT_ID && t.CHECK_CYCLE == entity.PLANCHECKFREQUENCY && t.CHECK_TYPE == entity.DEPARTMENT_TYPE && t.DEPARTMENT_ID == Guid.Parse(departId.ToString()) && t.CHECK_TYPE_ID == entity.CHECK_TYPE_ID); if (checkSet == null) { result.ErrorMessage = "未找到对应的检查清单,请手动添加检查内容"; @@ -1676,7 +1676,11 @@ namespace APT.SK.WebApi.Controllers.Api T_SK_HIDDEN_DANGER_REPORT dangerReport = null; T_SK_HIDDEN_DANGER_HAND_REPORT hand = null; T_SK_HIDDEN_DANGER_CONFIRM confirm= null; + T_SK_SECURITY_INSPECTION_RECORD_SUMMARY recordSum = null; + List safeRecords = new List(); + List rectifyNotices = new List(); List rectifyRecords = new List(); + Guid Keyword = new Guid(filter.Keyword); //检查通知 var check = GetEntity(Keyword); @@ -1695,7 +1699,8 @@ namespace APT.SK.WebApi.Controllers.Api { confirmId = confirm.ID; sourceIds.Add(confirm.ID); - rectifyNoticeIds = GetEntities(e => e.HIDDEN_DANGER_CONFIRM_ID != null && e.HIDDEN_DANGER_CONFIRM_ID == confirm.ID, filter).Select(t => t.ID).ToList(); + rectifyNotices = GetEntities(e => e.HIDDEN_DANGER_CONFIRM_ID != null && e.HIDDEN_DANGER_CONFIRM_ID == confirm.ID, filter).ToList(); + rectifyNoticeIds = rectifyNotices.Select(t => t.ID).ToList(); if (rectifyNoticeIds != null && rectifyNoticeIds.Any()) { sourceIds.AddRange(rectifyNoticeIds); @@ -1710,16 +1715,17 @@ namespace APT.SK.WebApi.Controllers.Api sourceIds.AddRange(rectifyRecordIds); } } - GetAutoNext(sourceIds, check, safeNoticeId, hand, handId,confirm, confirmId, safeRecordIds, safeRecordSumId, dangerReportId, dangerReport, rectifyNoticeIds, rectifyRecordIds, rectifyRecords, ref result); + GetAutoNext(sourceIds, check, safeNoticeId, hand, handId, confirm, confirmId, safeRecordIds, safeRecords, safeRecordSumId, recordSum, dangerReportId, dangerReport, rectifyNoticeIds, rectifyNotices, rectifyRecordIds, rectifyRecords, ref result); } } else { safeNoticeId = check.ID; sourceIds.Add(check.ID); - safeRecordIds = GetEntities(e => e.SECURITY_INSPECTION_NOTICE_ID != null && e.SECURITY_INSPECTION_NOTICE_ID == check.ID, filter).Select(m=>m.ID).ToList(); + safeRecords = GetEntities(e => e.SECURITY_INSPECTION_NOTICE_ID != null && e.SECURITY_INSPECTION_NOTICE_ID == check.ID, filter).ToList(); + safeRecordIds = safeRecords.Select(m => m.ID).ToList(); sourceIds.AddRange(safeRecordIds); - var recordSum= GetEntity(e => e.SECURITY_INSPECTION_NOTICE_ID != null && e.SECURITY_INSPECTION_NOTICE_ID == check.ID); + recordSum= GetEntity(e => e.SECURITY_INSPECTION_NOTICE_ID != null && e.SECURITY_INSPECTION_NOTICE_ID == check.ID); if (recordSum != null) { safeRecordSumId = recordSum.ID; @@ -1729,7 +1735,8 @@ namespace APT.SK.WebApi.Controllers.Api { dangerReportId = dangerReport.ID; sourceIds.Add(dangerReport.ID); - rectifyNoticeIds = GetEntities(e => e.HIDDEN_DANGER_REPORT_ID != null && e.HIDDEN_DANGER_REPORT_ID == dangerReport.ID,filter).Select(t=>t.ID).ToList(); + rectifyNotices = GetEntities(e => e.HIDDEN_DANGER_REPORT_ID != null && e.HIDDEN_DANGER_REPORT_ID == dangerReport.ID,filter).ToList(); + rectifyNoticeIds = rectifyNotices.Select(t => t.ID).ToList(); if (rectifyNoticeIds != null && rectifyNoticeIds.Any()) { sourceIds.AddRange(rectifyNoticeIds); @@ -1745,13 +1752,13 @@ namespace APT.SK.WebApi.Controllers.Api } } } - GetAutoNext(sourceIds,check, safeNoticeId,hand, handId, confirm,confirmId, safeRecordIds, safeRecordSumId, dangerReportId, dangerReport, rectifyNoticeIds, rectifyRecordIds, rectifyRecords, ref result); + GetAutoNext(sourceIds,check, safeNoticeId,hand, handId, confirm,confirmId, safeRecordIds, safeRecords,safeRecordSumId, recordSum,dangerReportId, dangerReport, rectifyNoticeIds, rectifyNotices, rectifyRecordIds, rectifyRecords, ref result); } return result; } }); } - private void GetAutoNext(List sourceIds, T_SK_SECURITY_INSPECTION_NOTICE check, Guid? safeNoticeId, T_SK_HIDDEN_DANGER_HAND_REPORT hand,Guid? handId, T_SK_HIDDEN_DANGER_CONFIRM confirm,Guid? confirmId, List safeRecordIds, Guid? safeRecordSumId, Guid? dangerReportId, T_SK_HIDDEN_DANGER_REPORT dangerReport, List rectifyNoticeIds, List rectifyRecordIds, List rectifyRecords, ref List result) + private void GetAutoNext(List sourceIds, T_SK_SECURITY_INSPECTION_NOTICE check, Guid? safeNoticeId, T_SK_HIDDEN_DANGER_HAND_REPORT hand,Guid? handId, T_SK_HIDDEN_DANGER_CONFIRM confirm,Guid? confirmId, List safeRecordIds, List safeRecords, Guid? safeRecordSumId, T_SK_SECURITY_INSPECTION_RECORD_SUMMARY recordSum, Guid? dangerReportId, T_SK_HIDDEN_DANGER_REPORT dangerReport, List rectifyNoticeIds, List rectifyNotices,List rectifyRecordIds, List rectifyRecords, ref List result) { var approveIds = new List(); var approves = new List(); @@ -1908,6 +1915,33 @@ namespace APT.SK.WebApi.Controllers.Api start1.STATUS = 0; noticeLog.logList.Add(start1); } + //归档 + if (check.STATUS == PFStandardStatus.Archived || check.STATUS == PFStandardStatus.Close) + { + OperateLogList start = new OperateLogList(); + start.ID = safeNoticeId; + start.CODE = "SK006_SHOWPRINT"; + start.USER_NAME = temp1.USER_NAME; + start.NAME = "安全检查通知归档"; + start.DEAL_DATE = check.MODIFY_TIME; + start.CREATE_TIME = check.CREATE_TIME; + start.STATUS = 5 ; + noticeLog.logList.Add(start); + + } + else + { + //手动发起的检查通知 + OperateLogList start = new OperateLogList(); + start.ID = check.ID; + start.CODE = "SK006_SHOWPRINT"; + start.USER_NAME = checkUser.NAME; + start.NAME = "安全检查通知归档"; + start.DEAL_DATE = check.MODIFY_TIME; + start.CREATE_TIME = check.CREATE_TIME; + start.STATUS = 0; + noticeLog.logList.Add(start); + } } result.Add(noticeLog); #endregion @@ -1935,6 +1969,36 @@ namespace APT.SK.WebApi.Controllers.Api start.CREATE_TIME = temp1.CREATE_TIME; start.STATUS = temp1.NOTICE_STATUS == 1 ? 5 : temp1.NOTICE_STATUS == 2 ? 10 : temp1.NOTICE_STATUS == 4 ? 15 : (temp1.NOTICE_STATUS == 0 && temp1.TASK_ENDDT >= DateTime.Now) ? 16 : (temp1.TASK_ENDDT < DateTime.Now && temp1.NOTICE_STATUS == 0) ? 20 : 0; recordLog.logList.Add(start); + var record = safeRecords.FirstOrDefault(t => t.ID == temp1.SOURCE_DATA_ID); + if (record != null) + { + //归档 + if (record.STATUS == PFStandardStatus.Archived || record.STATUS == PFStandardStatus.Close) + { + OperateLogList start1 = new OperateLogList(); + start1.ID = temp1.SOURCE_DATA_ID; + start1.CODE = "SK010_SHOWPRINT"; + start1.USER_NAME = temp1.USER_NAME; + start1.NAME = "安全检查记录归档"; + start1.DEAL_DATE = record.MODIFY_TIME; + start1.CREATE_TIME = record.CREATE_TIME; + start1.STATUS = 5; + recordLog.logList.Add(start1); + + } + else + { + OperateLogList start1 = new OperateLogList(); + start1.ID = temp1.SOURCE_DATA_ID; + start1.CODE = "SK010_SHOWPRINT"; + start1.USER_NAME = temp1.USER_NAME; + start1.NAME = "安全检查记录归档"; + start1.DEAL_DATE = record.MODIFY_TIME; + start1.CREATE_TIME = record.CREATE_TIME; + start1.STATUS = 0; + recordLog.logList.Add(start1); + } + } } } var temp3 = itemps.Where(t => t.NOTICE_STATUS != 1).OrderByDescending(n => n.NOTICE_STATUS).ThenBy(m => m.MODIFY_TIME).ToList(); @@ -1951,8 +2015,39 @@ namespace APT.SK.WebApi.Controllers.Api start.CREATE_TIME = temp1.CREATE_TIME; start.STATUS = temp1.NOTICE_STATUS == 1 ? 5 : temp1.NOTICE_STATUS == 2 ? 10 : temp1.NOTICE_STATUS == 4 ? 15 : (temp1.NOTICE_STATUS == 0 && temp1.TASK_ENDDT >= DateTime.Now) ? 16 : (temp1.TASK_ENDDT < DateTime.Now && temp1.NOTICE_STATUS == 0) ? 20 : 0; recordLog.logList.Add(start); + var record = safeRecords.FirstOrDefault(t => t.ID == temp1.SOURCE_DATA_ID); + if (record != null) + { + //归档 + if (record.STATUS == PFStandardStatus.Archived || record.STATUS == PFStandardStatus.Close) + { + OperateLogList start1 = new OperateLogList(); + start1.ID = temp1.SOURCE_DATA_ID; + start1.CODE = "SK010_SHOWPRINT"; + start1.USER_NAME = temp1.USER_NAME; + start1.NAME = "安全检查记录归档"; + start1.DEAL_DATE = record.MODIFY_TIME; + start1.CREATE_TIME = record.CREATE_TIME; + start1.STATUS = 5; + recordLog.logList.Add(start1); + + } + else + { + OperateLogList start1 = new OperateLogList(); + start1.ID = temp1.SOURCE_DATA_ID; + start1.CODE = "SK010_SHOWPRINT"; + start1.USER_NAME = temp1.USER_NAME; + start1.NAME = "安全检查记录归档"; + start1.DEAL_DATE = record.MODIFY_TIME; + start1.CREATE_TIME = record.CREATE_TIME; + start1.STATUS = 0; + recordLog.logList.Add(start1); + } + } } } + } else { @@ -1965,6 +2060,15 @@ namespace APT.SK.WebApi.Controllers.Api start1.CREATE_TIME = null; start1.STATUS = 0; recordLog.logList.Add(start1); + OperateLogList start2 = new OperateLogList(); + start2.ID = null; + start2.CODE = "SK010_SHOWPRINT"; + start2.USER_NAME = "检查人"; + start2.NAME = "安全检查记录归档"; + start2.DEAL_DATE = null; + start2.CREATE_TIME = null; + start2.STATUS = 0; + recordLog.logList.Add(start2); } } else @@ -1978,6 +2082,15 @@ namespace APT.SK.WebApi.Controllers.Api start1.CREATE_TIME = null; start1.STATUS = 0; recordLog.logList.Add(start1); + OperateLogList start2 = new OperateLogList(); + start2.ID = null; + start2.CODE = "SK010_SHOWPRINT"; + start2.USER_NAME = "检查人"; + start2.NAME = "安全检查记录归档"; + start2.DEAL_DATE = null; + start2.CREATE_TIME = null; + start2.STATUS = 0; + recordLog.logList.Add(start2); } result.Add(recordLog); #endregion @@ -2016,6 +2129,32 @@ namespace APT.SK.WebApi.Controllers.Api start1.CREATE_TIME = item.CREATE_TIME; start1.STATUS = item.NOTICE_STATUS == 1 ? 5 : item.NOTICE_STATUS == 2 ? 10 : item.NOTICE_STATUS == 4 ? 15 : (item.NOTICE_STATUS == 0 && item.TASK_ENDDT >= DateTime.Now) ? 16 : (item.TASK_ENDDT < DateTime.Now && item.NOTICE_STATUS == 0) ? 20 : 0; recordSumLog.logList.Add(start1); + //归档 + if (recordSum.STATUS == PFStandardStatus.Archived) + { + OperateLogList start2 = new OperateLogList(); + start2.ID = safeRecordSumId; + start2.CODE = "SK012_SHOWPRINT"; + start2.USER_NAME = item.USER_NAME; + start2.NAME = "安全检查记录汇总归档"; + start2.DEAL_DATE = recordSum.MODIFY_TIME; + start2.CREATE_TIME = recordSum.CREATE_TIME; + start2.STATUS = 5; + recordSumLog.logList.Add(start2); + + } + else + { + OperateLogList start2 = new OperateLogList(); + start2.ID = safeRecordSumId; + start2.CODE = "SK012_SHOWPRINT"; + start2.USER_NAME = item.USER_NAME; + start2.NAME = "安全检查记录汇总归档"; + start2.DEAL_DATE = recordSum.MODIFY_TIME; + start2.CREATE_TIME = recordSum.CREATE_TIME; + start2.STATUS = 0; + recordSumLog.logList.Add(start2); + } } } var temp4 = temp2.Where(t => t.NOTICE_STATUS != 1).OrderByDescending(n => n.NOTICE_STATUS).ThenBy(m => m.MODIFY_TIME).ToList(); @@ -2032,6 +2171,31 @@ namespace APT.SK.WebApi.Controllers.Api start1.CREATE_TIME = item.CREATE_TIME; start1.STATUS = item.NOTICE_STATUS == 1 ? 5 : item.NOTICE_STATUS == 2 ? 10 : item.NOTICE_STATUS == 4 ? 15 : (item.NOTICE_STATUS == 0 && item.TASK_ENDDT >= DateTime.Now) ? 16 : (item.TASK_ENDDT < DateTime.Now && item.NOTICE_STATUS == 0) ? 20 : 0; recordSumLog.logList.Add(start1); + //归档 + if (recordSum.STATUS == PFStandardStatus.Archived) + { + OperateLogList start2 = new OperateLogList(); + start2.ID = safeRecordSumId; + start2.CODE = "SK012_SHOWPRINT"; + start2.USER_NAME = item.USER_NAME; + start2.NAME = "安全检查记录汇总归档"; + start2.DEAL_DATE = recordSum.MODIFY_TIME; + start2.CREATE_TIME = recordSum.CREATE_TIME; + start2.STATUS = 5; + recordSumLog.logList.Add(start2); + } + else + { + OperateLogList start2 = new OperateLogList(); + start2.ID = safeRecordSumId; + start2.CODE = "SK012_SHOWPRINT"; + start2.USER_NAME = item.USER_NAME; + start2.NAME = "安全检查记录汇总归档"; + start2.DEAL_DATE = recordSum.MODIFY_TIME; + start2.CREATE_TIME = recordSum.CREATE_TIME; + start2.STATUS = 0; + recordSumLog.logList.Add(start2); + } } } } @@ -2046,6 +2210,15 @@ namespace APT.SK.WebApi.Controllers.Api start1.CREATE_TIME = null; start1.STATUS = 0; recordSumLog.logList.Add(start1); + OperateLogList start2 = new OperateLogList(); + start2.ID = null; + start2.CODE = "SK012_SHOWPRINT"; + start2.USER_NAME = "检查人"; + start2.NAME = "安全检查记录汇总归档"; + start2.DEAL_DATE = null; + start2.CREATE_TIME = null; + start2.STATUS = 0; + recordSumLog.logList.Add(start2); } } else @@ -2068,6 +2241,15 @@ namespace APT.SK.WebApi.Controllers.Api start1.CREATE_TIME = null; start1.STATUS = 0; recordSumLog.logList.Add(start1); + OperateLogList start2 = new OperateLogList(); + start2.ID = null; + start2.CODE = "SK012_SHOWPRINT"; + start2.USER_NAME = "检查人"; + start2.NAME = "安全检查记录汇总归档"; + start2.DEAL_DATE = null; + start2.CREATE_TIME = null; + start2.STATUS = 0; + recordSumLog.logList.Add(start2); } result.Add(recordSumLog); #endregion @@ -2211,6 +2393,40 @@ namespace APT.SK.WebApi.Controllers.Api start1.CREATE_TIME = null; start1.STATUS = 0; hiddenReportLog.logList.Add(start1); + OperateLogList start3 = new OperateLogList(); + start3.ID = null; + start3.CODE = "SK014_SHOWPRINT"; + start3.USER_NAME = "整改责任人"; + start3.NAME = "隐患上报归档"; + start3.DEAL_DATE = null; + start3.CREATE_TIME = null; + start3.STATUS = 0; + hiddenReportLog.logList.Add(start3); + } + //归档 + if (dangerReport.STATUS == PFStandardStatus.Archived) + { + OperateLogList start3 = new OperateLogList(); + start3.ID = null; + start3.CODE = "SK014_SHOWPRINT"; + start3.USER_NAME = "整改责任人"; + start3.NAME = "隐患上报归档"; + start3.DEAL_DATE = dangerReport.MODIFY_TIME; + start3.CREATE_TIME = dangerReport.CREATE_TIME; + start3.STATUS = 5; + hiddenReportLog.logList.Add(start3); + } + else + { + OperateLogList start3 = new OperateLogList(); + start3.ID = null; + start3.CODE = "SK014_SHOWPRINT"; + start3.USER_NAME = "整改责任人"; + start3.NAME = "隐患上报归档"; + start3.DEAL_DATE = dangerReport.MODIFY_TIME; + start3.CREATE_TIME = dangerReport.CREATE_TIME; + start3.STATUS = 0; + hiddenReportLog.logList.Add(start3); } } else @@ -2242,6 +2458,15 @@ namespace APT.SK.WebApi.Controllers.Api start1.CREATE_TIME = null; start1.STATUS = 0; hiddenReportLog.logList.Add(start1); + OperateLogList start3 = new OperateLogList(); + start3.ID = null; + start3.CODE = "SK014_SHOWPRINT"; + start3.USER_NAME = "整改责任人"; + start3.NAME = "隐患上报归档"; + start3.DEAL_DATE = null; + start3.CREATE_TIME = null; + start3.STATUS = 0; + hiddenReportLog.logList.Add(start3); } result.Add(hiddenReportLog); #endregion @@ -2259,9 +2484,19 @@ namespace APT.SK.WebApi.Controllers.Api start.USER_NAME = handUser.NAME; start.NAME = "手动隐患上报"; start.DEAL_DATE = hand.STATUS == PFStandardStatus.Draft ? null : hand.MODIFY_TIME; - start.CREATE_TIME = check.CREATE_TIME; + start.CREATE_TIME = hand.CREATE_TIME; start.STATUS = hand.STATUS == PFStandardStatus.Draft ? 16 : 5; handLog.logList.Add(start); + //归档 + OperateLogList startA = new OperateLogList(); + startA.ID = handId; + startA.CODE = "SK016_SHOWPRINT"; + startA.USER_NAME = handUser.NAME; + startA.NAME = "手动隐患上报归档"; + startA.DEAL_DATE = hand.STATUS == PFStandardStatus.Draft ? null : hand.MODIFY_TIME; + startA.CREATE_TIME = hand.CREATE_TIME; + startA.STATUS = hand.STATUS == PFStandardStatus.Archived ? 5 : 0; + handLog.logList.Add(startA); #endregion #region 隐患确认单 OperateLog confirmLog = new OperateLog(); @@ -2382,6 +2617,16 @@ namespace APT.SK.WebApi.Controllers.Api start2.STATUS = 0; confirmLog.logList.Add(start2); } + //归档 + OperateLogList start4 = new OperateLogList(); + start4.ID = null; + start4.CODE = "SK018_SHOWPRINT"; + start4.USER_NAME = "整改责任人"; + start4.NAME = "隐患确认单归档"; + start4.DEAL_DATE = confirm.MODIFY_TIME; + start4.CREATE_TIME = confirm.CREATE_TIME; + start4.STATUS = confirm.STATUS == PFStandardStatus.Archived ? 5:0; + confirmLog.logList.Add(start4); } else { @@ -2412,6 +2657,15 @@ namespace APT.SK.WebApi.Controllers.Api start3.CREATE_TIME = null; start3.STATUS = 0; confirmLog.logList.Add(start3); + OperateLogList start4 = new OperateLogList(); + start4.ID = null; + start4.CODE = "SK018_SHOWPRINT"; + start4.USER_NAME = "整改责任人"; + start4.NAME = "隐患确认单归档"; + start4.DEAL_DATE = null; + start4.CREATE_TIME = null; + start4.STATUS = 0; + confirmLog.logList.Add(start4); } #endregion } @@ -2486,6 +2740,32 @@ namespace APT.SK.WebApi.Controllers.Api start1.STATUS = 0; rectifyNoticeLog.logList.Add(start1); } + //归档 + var rectifyNotice = rectifyNotices.FirstOrDefault(t => t.ID == temp1.SOURCE_DATA_ID); + if (rectifyNotice != null && rectifyNotice.STATUS == PFStandardStatus.Archived) + { + OperateLogList start2 = new OperateLogList(); + start2.ID = temp1.SOURCE_DATA_ID; + start2.CODE = "SK020_SHOWPRINT"; + start2.USER_NAME = temp1.USER_NAME; + start2.NAME = "隐患整改通知归档"; + start2.DEAL_DATE = rectifyNotice.MODIFY_TIME; + start2.CREATE_TIME = rectifyNotice.CREATE_TIME; + start2.STATUS = 5; + rectifyNoticeLog.logList.Add(start2); + } + else + { + OperateLogList start2 = new OperateLogList(); + start2.ID = temp1.SOURCE_DATA_ID; + start2.CODE = "SK020_SHOWPRINT"; + start2.USER_NAME = temp1.USER_NAME; + start2.NAME = "隐患整改通知归档"; + start2.DEAL_DATE = rectifyNotice.MODIFY_TIME; + start2.CREATE_TIME = rectifyNotice.CREATE_TIME; + start2.STATUS = 0; + rectifyNoticeLog.logList.Add(start2); + } result.Add(rectifyNoticeLog); } } @@ -2512,6 +2792,15 @@ namespace APT.SK.WebApi.Controllers.Api start1.CREATE_TIME = null; start1.STATUS = 0; rectifyNoticeLog.logList.Add(start1); + OperateLogList start2 = new OperateLogList(); + start2.ID = null; + start2.CODE = "SK020_SHOWPRINT"; + start2.USER_NAME = "整改责任人"; + start2.NAME = "隐患整改通知归档"; + start2.DEAL_DATE = null; + start2.CREATE_TIME = null; + start2.STATUS = 0; + rectifyNoticeLog.logList.Add(start2); result.Add(rectifyNoticeLog); } } @@ -2538,6 +2827,15 @@ namespace APT.SK.WebApi.Controllers.Api start1.CREATE_TIME = null; start1.STATUS = 0; rectifyNoticeLog.logList.Add(start1); + OperateLogList start2 = new OperateLogList(); + start2.ID = null; + start2.CODE = "SK020_SHOWPRINT"; + start2.USER_NAME = "整改责任人"; + start2.NAME = "隐患整改通知归档"; + start2.DEAL_DATE = null; + start2.CREATE_TIME = null; + start2.STATUS = 0; + rectifyNoticeLog.logList.Add(start2); result.Add(rectifyNoticeLog); } #endregion @@ -2644,13 +2942,39 @@ namespace APT.SK.WebApi.Controllers.Api } } } + //归档 + var rectifyRecord= rectifyRecords.FirstOrDefault(t => t.ID == temp1.SOURCE_DATA_ID); + if (rectifyRecord != null && rectifyRecord.STATUS == PFStandardStatus.Archived) + { + OperateLogList start1 = new OperateLogList(); + start1.ID = temp1.SOURCE_DATA_ID; + start1.CODE = "SK022_SHOWPRINT"; + start1.USER_NAME = temp1.USER_NAME; + start1.NAME = "隐患整改记录归档"; + start1.DEAL_DATE = rectifyRecord.MODIFY_TIME; + start1.CREATE_TIME = rectifyRecord.CREATE_TIME; + start1.STATUS = 5; + refRecordLog.logList.Add(start1); + } + else + { + OperateLogList start1 = new OperateLogList(); + start1.ID = temp1.SOURCE_DATA_ID; + start1.CODE = "SK022_SHOWPRINT"; + start1.USER_NAME = temp1.USER_NAME; + start1.NAME = "隐患整改记录归档"; + start1.DEAL_DATE = rectifyRecord.MODIFY_TIME; + start1.CREATE_TIME = rectifyRecord.CREATE_TIME; + start1.STATUS = 0; + refRecordLog.logList.Add(start1); + } result.Add(refRecordLog); } } else { OperateLog refRecordLog = new OperateLog(); - refRecordLog.FORM_NAME = "隐患整改通知"; + refRecordLog.FORM_NAME = "隐患整改记录"; refRecordLog.logList = new List(); OperateLogList start = new OperateLogList(); start.ID = null; @@ -2679,6 +3003,15 @@ namespace APT.SK.WebApi.Controllers.Api start2.CREATE_TIME = null; start2.STATUS = 0; refRecordLog.logList.Add(start2); + OperateLogList start3 = new OperateLogList(); + start3.ID = null; + start3.CODE = "SK022_SHOWPRINT"; + start3.USER_NAME = "审批人"; + start3.NAME = "隐患整改记录归档"; + start3.DEAL_DATE = null; + start3.CREATE_TIME = null; + start3.STATUS = 0; + refRecordLog.logList.Add(start3); result.Add(refRecordLog); } } @@ -2714,6 +3047,15 @@ namespace APT.SK.WebApi.Controllers.Api start2.CREATE_TIME = null; start2.STATUS = 0; refRecordLog.logList.Add(start2); + OperateLogList start3 = new OperateLogList(); + start3.ID = null; + start3.CODE = "SK022_SHOWPRINT"; + start3.USER_NAME = "审批人"; + start3.NAME = "隐患整改记录归档"; + start3.DEAL_DATE = null; + start3.CREATE_TIME = null; + start3.STATUS = 0; + refRecordLog.logList.Add(start3); result.Add(refRecordLog); } #endregion diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionRecordSummaryController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionRecordSummaryController.cs index 3ccc508..8a2b5e6 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionRecordSummaryController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionRecordSummaryController.cs @@ -17,7 +17,14 @@ using System.Linq.Expressions; using System.Threading.Tasks; namespace APT.SK.WebApi.Controllers.Api -{ +{ + public class GetAll + { + public T_SK_SECURITY_INSPECTION_RECORD_SUMMARY data1 { get; set; } + public T_SK_HIDDEN_DANGER_REPORT data2 { get; set; } + public List data3 { get; set; } + public List data4 { get; set; } + } [Route("api/SK/SKSecurityInspectionRecordSummary")] public partial class SecurityInspectionRecordSummaryController : AuthorizeApiController { @@ -949,7 +956,80 @@ namespace APT.SK.WebApi.Controllers.Api } return result; }); + } + /// + /// 获得检查汇总,隐患上报,整改通知,整改记录 + /// + /// 过滤实体 + /// + [HttpPost, Route("SKGetAll")] + public JsonActionResult SKGetAll([FromBody] KeywordFilter filter) + { + + var id = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "ID").Value.ToString(); + if (string.IsNullOrEmpty(id)) + this.ThrowError("060010"); + filter.IgnoreDataRule = true; + var newfilter = new BaseFilter(filter.OrgId); + newfilter.IgnoreDataRule = true; + var result = new JsonActionResult(); + result.Data = new GetAll(); + var ids = new List(); + result.Data.data1 = this.GetEntity(id, new string[] { "Nav_ApplyUser", "Nav_ApplyDepartment","Nav_CheckType","Nav_ProductionUnit", + "Nav_CheckRecordFiles.Nav_ImgFile"}); + if (result.Data.data1 != null) + { + var details = this.GetEntities(t => t.SECURITY_INSPECTION_RECORD_SUMMARY_ID == Guid.Parse(id), new BaseFilter(filter.OrgId), "Nav_RiskArea", "Nav_Contents", "Nav_Question", "Nav_CheckRecordDetailBasics.Nav_Law", "Nav_CheckRecordDetailFiles.Nav_ImgFile"); + if (details.Any()) + { + var detailIds = details.Select(t => t.ID).ToList(); + var users = this.GetEntities(t => detailIds.Contains(t.SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_ID), new BaseFilter(filter.OrgId), "Nav_User.Nav_UserSignFiles.Nav_ImgFile"); + foreach (var detail in details) + { + var userTemps = users.Where(t => t.SECURITY_INSPECTION_RECORD_SUMMARY_DETAIL_ID == detail.ID).ToList(); + detail.Nav_CheckRecordDetailUsers = userTemps.OrderByDescending(t => t.ISMAINCHECK).ToList(); + } + } + //有隐患的排前面 + var tempsYes = details.Where(t => t.CHECK_RESULT == SKCheckResultEnum.Yes).OrderBy(m => m.RISK_AREA_ID).ToList(); + var tempsNo = details.Where(t => t.CHECK_RESULT != SKCheckResultEnum.Yes).OrderBy(m => m.RISK_AREA_ID).ToList(); + tempsYes.AddRange(tempsNo); + result.Data.data1.Nav_CheckRecordDetails = tempsYes.OrderByDescending(n => (int)n.MARK).ToList(); + //隐患上报 + result.Data.data2 = this.GetEntity(t => t.SECURITY_INSPECTION_RECORD_SUMMARY_ID == Guid.Parse(id), new string[] { "Nav_ApplyUser", "Nav_ApplyDepartment","Nav_CheckType","Nav_ProductionUnit", + "Nav_ReportFiles.Nav_ImgFile"}); + if (result.Data.data2 != null) + { + result.Data.data4 = new List(); + var detail2s = this.GetEntities(t => t.HIDDEN_DANGER_REPORT_ID == result.Data.data2.ID, new BaseFilter(filter.OrgId), "Nav_RiskArea", "Nav_Contents", "Nav_Question", "Nav_RecitifyUser.Nav_UserSignFiles", "Nav_ReportDetailBasics.Nav_Law", "Nav_ReportDetailFiles.Nav_ImgFile"); + result.Data.data2.Nav_ReportDetails = detail2s.OrderBy(m => m.RISK_AREA_ID).ToList(); + //整改通知 + result.Data.data3 = this.GetEntities(t => t.HIDDEN_DANGER_REPORT_ID == result.Data.data2.ID, newfilter, new string[] { "Nav_ApplyUser", "Nav_ApplyDepartment","Nav_CheckType","Nav_ProductionUnit", + "Nav_RectifyFiles.Nav_ImgFile"}).ToList(); + if (result.Data.data3 != null && result.Data.data3.Any()) + { + var data3Ids = result.Data.data3.Select(t => t.ID).ToList(); + ids.AddRange(data3Ids); + var detail3s = this.GetEntities(t => data3Ids.Contains(t.HIDDEN_DANGER_RECTIFY_NOTICE_ID), new BaseFilter(filter.OrgId), "Nav_RiskArea", "Nav_Contents", "Nav_Question", "Nav_RecitifyUser", "Nav_ImplementUser", "Nav_AcceptUser", "Nav_RectifyDetailFiles.Nav_ImgFile", "Nav_RectifyDetailBasics.Nav_Law"); + foreach (var de in result.Data.data3) + { + de.Nav_RectifyDetails = detail3s.Where(t => t.HIDDEN_DANGER_RECTIFY_NOTICE_ID == de.ID).OrderBy(m => m.RISK_AREA_ID).ToList(); + } + if (ids.Any()) + { + var data4 = this.GetEntities(t => ids.Contains((Guid)t.HIDDEN_DANGER_RECTIFY_NOTICE_ID) && t.HIDDEN_DANGER_RECTIFY_NOTICE_ID != null, newfilter, new string[] { "Nav_ApplyUser", "Nav_ApplyDepartment","Nav_CheckType","Nav_RiskArea","Nav_Contents","Nav_Question","Nav_ProductionUnit", + "Nav_RecitifyUser.Nav_Department","Nav_RecitifyUser.Nav_UserSignFiles.Nav_ImgFile","Nav_ImplementUser.Nav_UserSignFiles.Nav_ImgFile","Nav_AcceptUser.Nav_UserSignFiles","Nav_AcceptUser","Nav_RectifyPhotoas.Nav_ImgFile","Nav_RectifyPhotobs.Nav_ImgFile","Nav_RectifyFiles.Nav_ImgFile","Nav_RectifyBasics.Nav_Law"}).ToList(); + result.Data.data4.AddRange(data4); + } + } + + var data4Temp = this.GetEntities(t => t.HIDDEN_DANGER_REPORT_ID == result.Data.data2.ID, newfilter, new string[] { "Nav_ApplyUser", "Nav_ApplyDepartment","Nav_CheckType","Nav_RiskArea","Nav_Contents","Nav_Question","Nav_ProductionUnit", + "Nav_RecitifyUser.Nav_Department","Nav_RecitifyUser.Nav_UserSignFiles.Nav_ImgFile","Nav_ImplementUser.Nav_UserSignFiles.Nav_ImgFile","Nav_AcceptUser.Nav_UserSignFiles","Nav_AcceptUser","Nav_RectifyPhotoas.Nav_ImgFile","Nav_RectifyPhotobs.Nav_ImgFile","Nav_RectifyFiles.Nav_ImgFile","Nav_RectifyBasics.Nav_Law"}).ToList(); + result.Data.data4.AddRange(data4Temp); + + } + } + return result; } - } }