diff --git a/APT.BaseData.Domain/IServices/FM/IFMNotificationTaskService.cs b/APT.BaseData.Domain/IServices/FM/IFMNotificationTaskService.cs index 4f81a10..cc2e58a 100644 --- a/APT.BaseData.Domain/IServices/FM/IFMNotificationTaskService.cs +++ b/APT.BaseData.Domain/IServices/FM/IFMNotificationTaskService.cs @@ -308,7 +308,13 @@ namespace APT.BaseData.Domain.IServices.FM /// 审批明细 /// 下一个审批待办 /// 上一个审批待办 - void TaskToHead(IEnumerable appdetails, T_FM_NOTIFICATION_TASK taskNext, List listModelNext, T_FM_NOTIFICATION_TASK taskLast); - + void TaskToHead(IEnumerable appdetails, T_FM_NOTIFICATION_TASK taskNext, List listModelNext, T_FM_NOTIFICATION_TASK taskLast); + /// + /// 审批流 待办处理 判断到总部数据 + /// + /// 审批明细 + /// 下一个审批待办 + /// 上一个审批待办 + void TaskToHeads(IEnumerable appdetails, List taskNexts, List listModelNext, T_FM_NOTIFICATION_TASK taskLast); } } diff --git a/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs b/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs index d04bccb..a12a5ff 100644 --- a/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs +++ b/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs @@ -321,9 +321,9 @@ namespace APT.BaseData.Services.Services.FM { T_PF_APPROVE approve = null; //上个消息 - T_FM_NOTIFICATION_TASK finishNotice = null; - //发消息 - T_FM_NOTIFICATION_TASK notice = null; + T_FM_NOTIFICATION_TASK finishNotice = null; + //发消息 + List notices = new List(); T_FM_NOTIFICATION_TASK curentTask = null; //细表 List appdetails = new List(); @@ -464,7 +464,7 @@ namespace APT.BaseData.Services.Services.FM if (detail.APPROVE_USER_ID != null) appdetails.Add(detail); }); - appdetails = appdetails.OrderBy(t => t.NUM).GroupBy(m=>m.APPROVE_USER_ID).Select(n=>n.LastOrDefault()).ToList(); + //appdetails = appdetails.OrderBy(t => t.NUM).GroupBy(m=>m.APPROVE_USER_ID).Select(n=>n.LastOrDefault()).ToList(); //var loginUser = users.FirstOrDefault(t => t.ID == loginUserId); //var departUser = this.GetEntity(t => (t.USER_ID == loginUserId || t.CHARGEUSER_ID == loginUserId) && (t.NAME.Contains("安全环保") || t.NAME.Contains("安环部"))); //if (departUser != null || (loginUser.Nav_ApproveRole != null && loginUser.Nav_ApproveRole.NAME.Contains("安环部负责人")) || (loginUser.Nav_ApproveRole != null && loginUser.Nav_ApproveRole.NAME.Contains("安环部安全员"))) @@ -482,7 +482,7 @@ namespace APT.BaseData.Services.Services.FM // appdetails.Remove(tempCharge); // } //} - appdetails.ForEach(i => i.Nav_ApproveRole = null); + appdetails.OrderBy(t => t.NUM).ForEach(i => i.Nav_ApproveRole = null); appdetails.Where(i => i.NUM == appdetails.Min(x => x.NUM)).ForEach(i => i.IS_CURRENT = true); //当前节点 @@ -511,18 +511,18 @@ namespace APT.BaseData.Services.Services.FM LogApproveDetailReduce(approve, loginUserId.Value, JsonApproveDetail, appdetails); } - var sendUserId = appdetails.Where(i => i.NUM == curentApprove.NUM).Select(t => (Guid)t.APPROVE_USER_ID).FirstOrDefault(); + var sendUserIds = appdetails.Where(i => i.NUM == curentApprove.NUM).Select(t => (Guid)t.APPROVE_USER_ID).ToList(); //var sendUserName = users.Where(i => i.ID == sendUserId).FirstOrDefault().NAME; - var ue = users.Where(i => i.ID == sendUserId).FirstOrDefault(); - string sendUserName = string.Empty; - if (ue != null) - { - sendUserName = users.Where(i => i.ID == sendUserId).FirstOrDefault().NAME; - } - else - { - sendUserName = GetEntity(t => t.ID == sendUserId && t.ENABLE_STATUS == 0)?.NAME; - } + //var ue = users.Where(i => i.ID == sendUserId).FirstOrDefault(); + //string sendUserName = string.Empty; + //if (ue != null) + //{ + // sendUserName = users.Where(i => i.ID == sendUserId).FirstOrDefault().NAME; + //} + //else + //{ + // sendUserName = GetEntity(t => t.ID == sendUserId && t.ENABLE_STATUS == 0)?.NAME; + //} string taskName = approveTaskName; if (string.IsNullOrEmpty(taskName)) @@ -563,11 +563,20 @@ namespace APT.BaseData.Services.Services.FM default: break; } } - - //发消息 - notice = NotificationTaskService.InsertUserNoticeTaskModel(taskName, approve.ID, approve.ORG_ID, (Guid)sendUserId, sendUserName, startTime, - endTime, (int)FMNoticeTypeEnum.审批, "PF119"); - + if (sendUserIds != null && sendUserIds.Any()) + { + foreach (var sendUserId in sendUserIds) + { + if (sendUserId != null) + { + var sendUserName = users.FirstOrDefault(i => i.ID == sendUserId)?.NAME; + //发消息 + var notice = NotificationTaskService.InsertUserNoticeTaskModel(taskName, approve.ID, approve.ORG_ID, (Guid)sendUserId, sendUserName, startTime, + endTime, (int)FMNoticeTypeEnum.审批, "PF119"); + notices.Add(notice); + } + } + } } } } @@ -621,9 +630,11 @@ namespace APT.BaseData.Services.Services.FM if (appdetails != null && appdetails.Any()) BantchAddEntityNoCommit(appdetails); if (finishNotice != null && finishNotice.ID != Guid.Empty) - UpdateEntityNoCommit(finishNotice, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); - if (notice != null) - AddEntityNoCommit(notice); + UpdateEntityNoCommit(finishNotice, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); + if (notices != null && notices.Any()) + BantchAddEntityNoCommit(notices); + //if (notice != null) + // AddEntityNoCommit(notice); if (curentTask != null) AddEntityNoCommit(curentTask); if (listBSLog != null && listBSLog.Any()) @@ -632,7 +643,7 @@ namespace APT.BaseData.Services.Services.FM #region //涉及到总部的人员 待办 直接把数据传到总部去 //待办同步 - NotificationTaskService.TaskToHead(appdetails, notice, null, finishNotice); + NotificationTaskService.TaskToHeads(appdetails, notices, null, finishNotice); #endregion diff --git a/APT.BaseData.Services/Services/FM/FMNotificationTaskService.cs b/APT.BaseData.Services/Services/FM/FMNotificationTaskService.cs index 6bc4fa4..9c19432 100644 --- a/APT.BaseData.Services/Services/FM/FMNotificationTaskService.cs +++ b/APT.BaseData.Services/Services/FM/FMNotificationTaskService.cs @@ -1562,6 +1562,76 @@ namespace APT.BaseData.Services.Services.FM catch (Exception ex) { } } } + } + + #endregion + #region 总部待办处理 + + /// + /// 审批流 待办处理 判断到总部数据 + /// + /// 审批明细 + /// 下一个审批待办 + /// 下一个审批待办 + /// 上一个审批待办 + public void TaskToHeads(IEnumerable appdetails, List taskNexts, List listModelNext, T_FM_NOTIFICATION_TASK taskLast) + { + if (appdetails != null) + { + var checkAdd = appdetails.FirstOrDefault(e => e.ISHEAD && e.IS_CURRENT); + if (checkAdd == null) + { + //审批的最后一步 IS_CURRENT =false + if ((taskNexts == null || taskNexts.Count() < 1) && (listModelNext == null || listModelNext.Count() < 1) && taskLast != null) + { + checkAdd = appdetails.FirstOrDefault(e => e.APPROVE_USER_ID.HasValue && e.ISHEAD && e.APPROVE_USER_ID.Value == taskLast.USER_ID); + if (checkAdd != null) + { + if (checkAdd.NUM != appdetails.Max(e => e.NUM)) + { + checkAdd = null; + } + } + } + } + if (checkAdd != null) + { + var isLastDeal = false;//上一个是审批相关 + if (taskLast != null) + { + var checkLast = appdetails.FirstOrDefault(e => e.ISHEAD && e.APPROVE_USER_ID.HasValue && e.APPROVE_USER_ID.Value == taskLast.USER_ID); + if (checkLast != null) + isLastDeal = true; + } + + try + { + IEnumerable listSync = null; + if (listModelNext != null && listModelNext.Any()) + { + var userids = appdetails.Where(e => e.ISHEAD && e.IS_CURRENT && e.APPROVE_USER_ID.HasValue).Select(e => e.APPROVE_USER_ID.Value); + if (userids != null && userids.Any()) + { + listSync = listModelNext.Where(e => userids.Contains(e.USER_ID)); + } + } + + if (isLastDeal && taskLast != null) + { + this.UpdateEntityByTenant(taskLast, HeadHelper.HeadtelnetCode); + } + if (taskNexts != null && taskNexts.Any()) + { + this.AddEntitiesByTenant(taskNexts, HeadHelper.HeadtelnetCode); + } + if (listSync != null && listSync.Count() > 0) + { + this.AddEntitiesByTenant(listSync, HeadHelper.HeadtelnetCode); + } + } + catch (Exception ex) { } + } + } } #endregion diff --git a/APT.MicroApi/APT.HM.WebApi/Controllers/Api/OperationLinkController.cs b/APT.MicroApi/APT.HM.WebApi/Controllers/Api/OperationLinkController.cs index 45cddcc..df13e23 100644 --- a/APT.MicroApi/APT.HM.WebApi/Controllers/Api/OperationLinkController.cs +++ b/APT.MicroApi/APT.HM.WebApi/Controllers/Api/OperationLinkController.cs @@ -321,9 +321,9 @@ namespace APT.HM.WebApi.Controllers.Api if (string.IsNullOrEmpty(dtSource.Rows[i][0].ToString().Trim()) || string.IsNullOrEmpty(dtSource.Rows[i][1].ToString().Trim()) || string.IsNullOrEmpty(dtSource.Rows[i][2].ToString().Trim()) || string.IsNullOrEmpty(dtSource.Rows[i][3].ToString().Trim()) || string.IsNullOrEmpty(dtSource.Rows[i][4].ToString().Trim()) || string.IsNullOrEmpty(dtSource.Rows[i][5].ToString().Trim()) - || string.IsNullOrEmpty(dtSource.Rows[i][6].ToString().Trim()) || string.IsNullOrEmpty(dtSource.Rows[i][7].ToString().Trim())) + || string.IsNullOrEmpty(dtSource.Rows[i][7].ToString().Trim())) { - Msg = Msg + "第" + (i + 3) + "行生产单元,作业环节,任务类型,是否关键作业,作业周期,作业许可审批层级,作业许可类别,作业等级存在空数据,请先检查所有字段内容;"; + Msg = Msg + "第" + (i + 3) + "行生产单元,作业环节,任务类型,是否关键作业,作业周期,作业许可审批层级,作业等级存在空数据,请先检查所有字段内容;"; } } if (!string.IsNullOrEmpty(Msg)) @@ -343,7 +343,7 @@ namespace APT.HM.WebApi.Controllers.Api var stepFirst = steps.FirstOrDefault(t => t.NAME == step); if (stepFirst == null) { - Msg = Msg + "第" + (i + 3) + "行作业环节" + step + "不存在,请先到系统管理维护;"; + //Msg = Msg + "第" + (i + 3) + "行作业环节" + step + "不存在,请先到系统管理维护;"; } else { @@ -374,12 +374,12 @@ namespace APT.HM.WebApi.Controllers.Api { Msg = Msg + "第" + (i + 3) + "行作业审批层级只能填写无审批层级、一级审批、二级审批、三级审批、四级审批、特级审批、临时用电,请修改" + approveLevel + ";"; } - var workType = dtSource.Rows[i][6].ToString().Trim(); - var workTypeFirst = workTypes.FirstOrDefault(t => t.NAME == workType); - if (workTypeFirst == null) - { - Msg = Msg + "第" + (i + 3) + "行作业许可类别"+ workType + "不存在,请先到系统管理维护;"; - } + //var workType = dtSource.Rows[i][6].ToString().Trim(); + //var workTypeFirst = workTypes.FirstOrDefault(t => t.NAME == workType); + //if (workTypeFirst == null) + //{ + // Msg = Msg + "第" + (i + 3) + "行作业许可类别"+ workType + "不存在,请先到系统管理维护;"; + //} var workLevel = dtSource.Rows[i][7].ToString().Trim(); if (workLevel != "重大风险" && workLevel != "较大风险" && workLevel != "一般风险" && workLevel != "低风险") { @@ -415,6 +415,8 @@ namespace APT.HM.WebApi.Controllers.Api throw new Exception(Msg); } //导入 + List stepList = new List(); + List typeList = new List(); List linkList = new List(); List linkPostList = new List(); List linkConList = new List(); @@ -426,25 +428,61 @@ namespace APT.HM.WebApi.Controllers.Api var proUnitFirst = proUnits.FirstOrDefault(t => t.NAME == proUnit); var step = dtSource.Rows[i][1].ToString().Trim(); var stepFirst = steps.FirstOrDefault(t => t.NAME == step); + var stepTemp = stepFirst; var taskType = dtSource.Rows[i][2].ToString().Trim(); var isNeed = dtSource.Rows[i][3].ToString().Trim(); var workCycle = dtSource.Rows[i][4].ToString().Trim(); var approveLevel = dtSource.Rows[i][5].ToString().Trim(); var workType = dtSource.Rows[i][6].ToString().Trim(); var workTypeFirst = workTypes.FirstOrDefault(t => t.NAME == workType); + var typeTemp = workTypeFirst; var workLevel = dtSource.Rows[i][7].ToString().Trim(); var status = dtSource.Rows[i][8].ToString().Trim(); var postList = dtSource.Rows[i][9].ToString().Trim(); var conList = dtSource.Rows[i][10].ToString().Trim(); var mesList = dtSource.Rows[i][11].ToString().Trim(); var delList = dtSource.Rows[i][12].ToString().Trim(); + if (stepFirst == null) + { + var steList = stepList.FirstOrDefault(t => t.NAME == step); + if (steList == null) + { + T_HM_OPERATION_STEP stepNew = new T_HM_OPERATION_STEP(); + stepNew.ORG_ID = orgId; + stepNew.CODE = step; + stepNew.NAME = step; + stepList.Add(stepNew); + stepTemp = stepNew; + } + else + { + stepTemp = steList; + } + } + if (!string.IsNullOrEmpty(workType) && workTypeFirst == null) + { + var steList = typeList.FirstOrDefault(t => t.NAME == workType); + if (steList == null) + { + T_HM_WORK_PERMIT_TYPE typeNew = new T_HM_WORK_PERMIT_TYPE(); + typeNew.ORG_ID = orgId; + typeNew.CODE = workType; + typeNew.NAME = workType; + typeList.Add(typeNew); + typeTemp = typeNew; + } + else + { + typeTemp = steList; + } + } T_HM_OPERATION_LINK link = new T_HM_OPERATION_LINK(); link.ORG_ID = orgId; link.UNIT_ID = proUnitFirst.ID; - link.OPERATION_STEP_ID = stepFirst.ID; - link.WORK_PERMIT_TYPE_ID = workTypeFirst.ID; + link.OPERATION_STEP_ID = stepTemp.ID; + link.WORK_PERMIT_TYPE_ID = typeTemp?.ID; link.CODE = DateTime.Now.ToString("yyyyMMddHH") + i.ToString().PadLeft(4, '0'); - link.NAME = stepFirst.NAME; + link.NAME = stepTemp.NAME; link.MODIFY_TYPE = HMModifyEnum.导入; link.IS_RUN = DisableStatusEnum.否; switch (taskType) @@ -649,7 +687,11 @@ namespace APT.HM.WebApi.Controllers.Api } } UnifiedCommit(() => - { + { + if (stepList != null && stepList.Any()) + BantchAddEntityNoCommit(stepList); + if (typeList != null && typeList.Any()) + BantchAddEntityNoCommit(typeList); if (linkList != null && linkList.Any()) BantchAddEntityNoCommit(linkList); if (linkPostList != null && linkPostList.Any()) diff --git a/APT.MicroApi/APT.PF.WebApi/Controllers/Api/ApproveController.cs b/APT.MicroApi/APT.PF.WebApi/Controllers/Api/ApproveController.cs index 7f888a4..81eaa0a 100644 --- a/APT.MicroApi/APT.PF.WebApi/Controllers/Api/ApproveController.cs +++ b/APT.MicroApi/APT.PF.WebApi/Controllers/Api/ApproveController.cs @@ -961,7 +961,7 @@ baseFilter.IgnoreDataRule = true; baseFilter.IgnoreOrgRule = true; baseFilter.OrgId = null; - var dbApprove = this.GetEntities(expression, baseFilter, new string[] { "Nav_ApproveDetails.Nav_ApproveUser" }).OrderByDescending(t => t.CREATE_TIME).ToList(); + var dbApprove = this.GetEntities(expression, baseFilter, new string[] { "Nav_ApproveDetails.Nav_ApproveUser", "Nav_ApproveDetails.Nav_ApproveRole" }).OrderByDescending(t => t.CREATE_TIME).ToList(); if (!dbApprove.Any()) return null; return dbApprove; diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs index c25ec21..2c7b389 100644 --- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs +++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs @@ -579,8 +579,9 @@ namespace APT.PP.WebApi.Controllers.Api if (filter.Parameter1 != null) { dtNow = DateTime.Parse(filter.Parameter1); - } - //filter.IgnoreDataRule = false; + } + //filter.IgnoreDataRule = false; + List updateNotices = new List(); List tasks = new List(); List noticeTasks = new List(); List records = new List(); @@ -598,7 +599,7 @@ namespace APT.PP.WebApi.Controllers.Api baseFilter.SelectField = new string[] { "ID", "PRODUCTION_UNIT_ID","NOTICE_CODE", "CHECK_TYPE_ID","APPLY_DEPARTMENT_ID","APPLY_USER_ID","PLANCHECKFREQUENCY","DEPARTMENT_TYPE","CHECK_TIME","CHECK_PERSON", "Nav_CheckNoticeDetails.RISK_AREA_ID","Nav_CheckNoticeDetails.CHECK_CONTENTS_ID","Nav_CheckNoticeDetails.CHECKCONTENT","Nav_CheckNoticeDetails.CHECKPROOF","Nav_CheckNoticeDetails.CHECKSTANDARD", "Nav_CheckNoticeFiles.IMG_FILE_ID", "Nav_CheckNoticeDetails.Nav_CheckNoticeDetailUsers.USER_ID", "Nav_CheckNoticeDetails.Nav_CheckNoticeDetailBasics.LAW_ID" }; //指定字段,包括导航属性 - Expression> expression = i => i.IS_DELETED == false && i.CHECK_TIME != null && i.CHECK_TIME.Value.Date == DateTime.Now.Date && i.CHECK_TIME.Value.Hour == dtNow.Hour && i.STATUS == PFStandardStatus.Archived; + Expression> expression = i => i.IS_DELETED == false && i.CHECK_TIME != null && i.CHECK_TIME.Value.Date == dtNow.Date && i.CHECK_TIME <= dtNow && (i.STATUS == PFStandardStatus.Archived || i.STATUS == PFStandardStatus.Sign); List notices = this.GetOrderEntities(expression, baseFilter).ToList(); var noticeExsisIds = notices.Select(t => t.ID).ToList(); baseFilter.SelectField = new string[] { "ID", "SECURITY_INSPECTION_NOTICE_ID" }; //指定字段,包括导航属性 @@ -720,16 +721,29 @@ namespace APT.PP.WebApi.Controllers.Api var noticeIds = notices.Select(i => i.ID).ToList(); tasks = this.GetEntities(t => noticeIds.Contains((Guid)t.SOURCE_DATA_ID) && t.NOTICE_STATUS == 0, new BaseFilter(filter.OrgId)).ToList(); tasks.ForEach(t => t.NOTICE_STATUS = 4); - var sourceIds = tasks.Select(i => i.SOURCE_DATA_ID).ToList(); - notices.ForEach(m => { - m.Nav_CheckNoticeDetails = null; - m.Nav_CheckNoticeFiles = null; - }); + var newFilter = new BaseFilter(filter.GetOrgId()); + newFilter.IgnoreDataRule = true; + updateNotices = this.GetEntities(t => noticeIds.Contains(t.ID) && t.STATUS == PFStandardStatus.Sign, newFilter).ToList(); + updateNotices.ForEach(t => t.STATUS = PFStandardStatus.Close); + //var sourceIds = tasks.Select(i => i.SOURCE_DATA_ID).ToList(); + //notices.ForEach(m => { + // m.Nav_CheckNoticeDetails = null; + // m.Nav_CheckNoticeFiles = null; + //}); //notices.Where(t => sourceIds.Contains(t.ID)).ForEach(m => m.STATUS = PFStandardStatus.Close); //notices.Where(t => !sourceIds.Contains(t.ID)).ForEach(m => m.STATUS = PFStandardStatus.Archived); } + else + { + var newFilter = new BaseFilter(filter.GetOrgId()); + newFilter.IgnoreDataRule = true; + updateNotices = this.GetEntities(t => recordExsisIds.Contains(t.ID) && t.STATUS == PFStandardStatus.Sign, newFilter).ToList(); + updateNotices.ForEach(t => t.STATUS = PFStandardStatus.Close); + } UnifiedCommit(() => - { + { + if (updateNotices != null && updateNotices.Any()) + BantchSaveEntityNoCommit(updateNotices); //if (notices != null && notices.Any()) // BantchSaveEntityNoCommit(notices); if (tasks != null && tasks.Any()) @@ -828,6 +842,7 @@ namespace APT.PP.WebApi.Controllers.Api sum.ORG_ID = noticeFirst.ORG_ID; sum.SECURITY_INSPECTION_NOTICE_ID = id; sum.APPLY_DEPARTMENT_ID = noticeFirst.APPLY_DEPARTMENT_ID; + sum.PRODUCTION_UNIT_ID = noticeFirst.PRODUCTION_UNIT_ID; sum.APPLY_USER_ID = noticeFirst.APPLY_USER_ID; sum.CHECK_PERSON = noticeFirst.CHECK_PERSON; sum.CHECK_TIME = noticeFirst.CHECK_TIME; diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/BasicLibraryController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/BasicLibraryController.cs index 5aa3a00..872d44b 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/BasicLibraryController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/BasicLibraryController.cs @@ -970,8 +970,9 @@ namespace APT.SK.WebApi.Controllers pageFilter.Include.Add("Nav_ProductionUnit"); pageFilter.SelectField.Add("Nav_Details.NUM"); pageFilter.SelectField.Add("Nav_Details.MEASURES_NAME"); + pageFilter.SelectField.Add("Nav_Details.Nav_DetailContents.NUM"); pageFilter.SelectField.Add("Nav_Details.Nav_DetailContents.Nav_Contents.CHECKCONTENT"); - var result = WitOrderPaged(null, pageFilter); + var result = GetOrderPageEntities(null, pageFilter); if (result != null && result.Data != null && result.Data.Any()) { foreach (var item in result.Data) @@ -984,7 +985,7 @@ namespace APT.SK.WebApi.Controllers { if (item2 != null && !string.IsNullOrEmpty(item2.MEASURES_NAME)) { - var temp = item2.NUM + "、" + item2.MEASURES_NAME + "。"; + var temp = item2.NUM + "*" + item2.MEASURES_NAME + "。"; item.MINE_NAME = item.MINE_NAME + temp; item.MEASURE = item.MEASURE + temp; var conListTemp = ""; @@ -2184,10 +2185,12 @@ namespace APT.SK.WebApi.Controllers { if (string.IsNullOrEmpty(dtSource.Rows[i][0].ToString().Trim()) || string.IsNullOrEmpty(dtSource.Rows[i][1].ToString().Trim()) || string.IsNullOrEmpty(dtSource.Rows[i][2].ToString().Trim()) || string.IsNullOrEmpty(dtSource.Rows[i][3].ToString().Trim()) - || string.IsNullOrEmpty(dtSource.Rows[i][7].ToString().Trim()) || string.IsNullOrEmpty(dtSource.Rows[i][8].ToString().Trim()) + || string.IsNullOrEmpty(dtSource.Rows[i][4].ToString().Trim()) + || string.IsNullOrEmpty(dtSource.Rows[i][5].ToString().Trim()) + || string.IsNullOrEmpty(dtSource.Rows[i][6].ToString().Trim()) ) { - Msg = Msg + "第" + (i + 3) + "行生产单元,风险名称,风险描述,风险类别,风险评价L,风险评价E,风险评价C,风险等级,管控层级不能为空,请先检查所有字段内容;"; + Msg = Msg + "第" + (i + 3) + "行生产单元,风险名称,风险描述,风险类别,风险评价L,风险评价E,风险评价C不能为空,请先检查所有字段内容;"; } } if (!string.IsNullOrEmpty(Msg)) @@ -2246,22 +2249,39 @@ namespace APT.SK.WebApi.Controllers Msg = Msg + "第" + (i + 3) + "行风险评价C" + libC + "不存在,请先到系统管理维护;"; } } - var riskLevel = dtSource.Rows[i][7].ToString().Trim(); - if (riskLevel != "重大风险" && riskLevel != "较大风险" && riskLevel != "一般风险" && riskLevel != "低风险") - { - Msg = Msg + "第" + (i + 3) + "行风险等级只能填写重大风险、较大风险、一般风险、低风险,请修改" + riskLevel + ";"; - } - var controlLevel = dtSource.Rows[i][8].ToString().Trim(); - if (controlLevel != "_5_" && controlLevel != "_10_" && controlLevel != "_15_" && controlLevel != "_20_" - && controlLevel != "_5_10_" && controlLevel != "_10_15_" && controlLevel != "_15_20_" && controlLevel != "_5_10_15_" - && controlLevel != "_10_15_20_" && controlLevel != "_5_10_15_20_") - { - Msg = Msg + "第" + (i + 3) + "行管控层级格式不确,请修改" + controlLevel + ";"; - } + //var riskLevel = dtSource.Rows[i][8].ToString().Trim(); + //if (riskLevel != "重大风险" && riskLevel != "较大风险" && riskLevel != "一般风险" && riskLevel != "低风险") + //{ + // Msg = Msg + "第" + (i + 3) + "行风险等级只能填写重大风险、较大风险、一般风险、低风险,请修改" + riskLevel + ";"; + //} + //var controlLevel = dtSource.Rows[i][9].ToString().Trim(); + //if (controlLevel != "_5_" && controlLevel != "_10_" && controlLevel != "_15_" && controlLevel != "_20_" + // && controlLevel != "_5_10_" && controlLevel != "_10_15_" && controlLevel != "_15_20_" && controlLevel != "_5_10_15_" + // && controlLevel != "_10_15_20_" && controlLevel != "_5_10_15_20_") + //{ + // Msg = Msg + "第" + (i + 3) + "行管控层级格式不确,请修改" + controlLevel + ";"; + //} if (!string.IsNullOrEmpty(dtSource.Rows[i][11].ToString().Trim())) { var lists = dtSource.Rows[i][11].ToString().Trim().Split("。").ToList(); if (lists != null && lists.Any()) + { + foreach (var item in lists) + { + if (!string.IsNullOrEmpty(item)) + { + if (!item.Contains("*")) + { + Msg = Msg + "第" + (i + 3) + "行管控措施" + item + "格式不正确,请检查修改;"; + } + } + } + } + } + if (!string.IsNullOrEmpty(dtSource.Rows[i][12].ToString().Trim())) + { + var lists = dtSource.Rows[i][12].ToString().Trim().Split("?").ToList(); + if (lists != null && lists.Any()) { foreach (var item in lists) { @@ -2285,11 +2305,7 @@ namespace APT.SK.WebApi.Controllers } else { - var conFirst = checkCons.FirstOrDefault(t => t.CHECKCONTENT == con); - if (conFirst == null) - { - Msg = Msg + "第" + (i + 3) + "行检查内容" + con + "不存在,请先到系统管理维护;"; - } + Msg = Msg + "第" + (i + 3) + "行检查内容" + con + "格式不正确,请检查修改;"; } } } @@ -2324,11 +2340,11 @@ namespace APT.SK.WebApi.Controllers var libEFirst = string.IsNullOrEmpty(libE) ? null:libEs.FirstOrDefault(t => t.SCORE == decimal.Parse(libE)); var libC = dtSource.Rows[i][6].ToString().Trim(); var libCFirst = string.IsNullOrEmpty(libC) ? null : libCs.FirstOrDefault(t => t.SCORE == decimal.Parse(libC)); - var riskLevel = dtSource.Rows[i][7].ToString().Trim(); - var controlLevel = dtSource.Rows[i][8].ToString().Trim(); - var emerg = dtSource.Rows[i][9].ToString().Trim(); - var mesList = dtSource.Rows[i][10].ToString().Trim(); - var conList = dtSource.Rows[i][11].ToString().Trim(); + //var riskLevel = dtSource.Rows[i][8].ToString().Trim(); + //var controlLevel = dtSource.Rows[i][9].ToString().Trim(); + var emerg = dtSource.Rows[i][10].ToString().Trim(); + var mesList = dtSource.Rows[i][11].ToString().Trim(); + var conList = dtSource.Rows[i][12].ToString().Trim(); T_SK_BASIC_LIBRARY lib = new T_SK_BASIC_LIBRARY(); lib.ORG_ID = orgId; lib.PRODUCTION_UNIT_ID = proUnitFirst.ID; @@ -2339,27 +2355,47 @@ namespace APT.SK.WebApi.Controllers lib.SCOREE_ID = libEFirst?.ID; lib.SCOREC_ID = libCFirst?.ID; lib.EVALUATE_SCORE = (lib.SCOREL_ID!=null && lib.SCOREE_ID!=null && lib.SCOREC_ID!=null)? Math.Round(libLFirst.SCORE * libEFirst.SCORE* libCFirst.SCORE,2):0; - lib.DEPARTMENT_TYPE = controlLevel; lib.CODE = DateTime.Now.ToString("yyyyMMddHH") + i.ToString().PadLeft(4, '0'); lib.EMERGENCY = emerg; lib.ENABLE_STATUS = FMEnableStatusEnum.启用; - switch (riskLevel) + if (lib.EVALUATE_SCORE > 320) { - case "重大风险": - lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.重大风险; - break; - case "较大风险": - lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.较大风险; - break; - case "一般风险": - lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.一般风险; - break; - case "低风险": - lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.低风险; - break; - default: break; + lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.重大风险; + lib.DEPARTMENT_TYPE = "_5_10_15_20_"; } + else if (lib.EVALUATE_SCORE >= 160 && lib.EVALUATE_SCORE < 320) + { + lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.较大风险; + lib.DEPARTMENT_TYPE = "_10_15_20_"; + } + else if (lib.EVALUATE_SCORE >= 70 && lib.EVALUATE_SCORE < 160) + { + lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.一般风险; + lib.DEPARTMENT_TYPE = "_15_20_"; + } + else + { + lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.低风险; + lib.DEPARTMENT_TYPE = "_20_"; + } + //switch (riskLevel) + //{ + // case "重大风险": + // lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.重大风险; + // break; + // case "较大风险": + // lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.较大风险; + // break; + // case "一般风险": + // lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.一般风险; + // break; + // case "低风险": + // lib.EVALUATE_LEVEL = SKEvaluateLevelEnum.低风险; + // break; + // default: break; + //} libList.Add(lib); + List libDetTemp = new List(); if (!string.IsNullOrEmpty(mesList)) { var lists = mesList.Split("。").ToList(); @@ -2379,15 +2415,16 @@ namespace APT.SK.WebApi.Controllers con.NUM = string.IsNullOrEmpty(num) ? null : int.Parse(num); con.MEASURES_NAME = name; libDetList.Add(con); + libDetTemp.Add(con); } - else - { - T_SK_BASIC_LIBRARY_DETAIL con = new T_SK_BASIC_LIBRARY_DETAIL(); - con.ORG_ID = orgId; - con.BASIC_LIBRARY_ID = lib.ID; - con.MEASURES_NAME = item; - libDetList.Add(con); - } + //else + //{ + // T_SK_BASIC_LIBRARY_DETAIL con = new T_SK_BASIC_LIBRARY_DETAIL(); + // con.ORG_ID = orgId; + // con.BASIC_LIBRARY_ID = lib.ID; + // con.MEASURES_NAME = item; + // libDetList.Add(con); + //} } } } @@ -2408,14 +2445,14 @@ namespace APT.SK.WebApi.Controllers if (num.Contains(".")) { var numTemp = int.Parse(num.Split(".")[0]); - var detFirst = libDetList.FirstOrDefault(t => t.NUM != null && t.NUM == numTemp); + var detFirst = libDetTemp.FirstOrDefault(t => t.NUM != null && t.NUM == numTemp); var conFirst = checkCons.FirstOrDefault(t => t.CHECKCONTENT == name); if (detFirst != null && conFirst != null) { T_SK_BASIC_LIBRARY_DETAIL_CONTENT con = new T_SK_BASIC_LIBRARY_DETAIL_CONTENT(); con.ORG_ID = orgId; con.BASIC_LIBRARY_DETAIL_ID = detFirst.ID; - con.NUM = numTemp; + con.NUM = int.Parse(num.Split(".")[1]); con.CHECK_CONTENT = name; con.CHECK_CONTENTS_ID = conFirst.ID; con.CHECK_STANDARD = conFirst.CHECK_STANDARD; @@ -2444,6 +2481,7 @@ namespace APT.SK.WebApi.Controllers hi.CHECK_QUESTION_ID = hid.ID; hi.HIDDEN_LEVEL = hid.QUESTION_LEVEL; hi.RECTIFICATION_MEASURES = hid.DEMAND; + hi.NUM = hid.NUM; libHidList.Add(hi); } } diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckContentsController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckContentsController.cs index 4161863..13be413 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckContentsController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/CheckContentsController.cs @@ -195,7 +195,7 @@ namespace APT.SK.WebApi.Controllers.Api startRowIndexs.Add(0, 1);//根据Excel格式数据赋值 var dataTables = FileUtils.ReadExcelByOledb(filePath, startRowIndexs); string Msg = string.Empty; - isOK = InsertModel3(dataTables.Tables[0], orgId, ref Msg); + isOK = InsertModel2(dataTables.Tables[0], orgId, ref Msg); try { diff --git a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionNoticeController.cs b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionNoticeController.cs index 9bad54b..bd5fe3c 100644 --- a/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionNoticeController.cs +++ b/APT.MicroApi/APT.SK.WebApi/Controllers/Api/SecurityInspectionNoticeController.cs @@ -1925,7 +1925,7 @@ namespace APT.SK.WebApi.Controllers.Api OperateLogList start = new OperateLogList(); start.ID = safeNoticeId; start.CODE = "SK006_SHOWPRINT"; - start.USER_NAME = temp1.USER_NAME; + start.USER_NAME = checkUser.NAME; start.NAME = "安全检查通知归档"; start.DEAL_DATE = check.MODIFY_TIME; start.CREATE_TIME = check.CREATE_TIME; @@ -1976,13 +1976,14 @@ namespace APT.SK.WebApi.Controllers.Api var record = safeRecords.FirstOrDefault(t => t.ID == temp1.SOURCE_DATA_ID); if (record != null) { + var recordUser = users.FirstOrDefault(t => t.ID == record.APPLY_USER_ID); //归档 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.USER_NAME = recordUser.NAME; start1.NAME = "安全检查记录归档"; start1.DEAL_DATE = record.MODIFY_TIME; start1.CREATE_TIME = record.CREATE_TIME; @@ -1995,7 +1996,7 @@ namespace APT.SK.WebApi.Controllers.Api OperateLogList start1 = new OperateLogList(); start1.ID = temp1.SOURCE_DATA_ID; start1.CODE = "SK010_SHOWPRINT"; - start1.USER_NAME = temp1.USER_NAME; + start1.USER_NAME = recordUser.NAME; start1.NAME = "安全检查记录归档"; start1.DEAL_DATE = record.MODIFY_TIME; start1.CREATE_TIME = record.CREATE_TIME; @@ -2022,13 +2023,14 @@ namespace APT.SK.WebApi.Controllers.Api var record = safeRecords.FirstOrDefault(t => t.ID == temp1.SOURCE_DATA_ID); if (record != null) { + var recordUser = users.FirstOrDefault(t => t.ID == record.APPLY_USER_ID); //归档 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.USER_NAME = recordUser.NAME; start1.NAME = "安全检查记录归档"; start1.DEAL_DATE = record.MODIFY_TIME; start1.CREATE_TIME = record.CREATE_TIME; @@ -2041,7 +2043,7 @@ namespace APT.SK.WebApi.Controllers.Api OperateLogList start1 = new OperateLogList(); start1.ID = temp1.SOURCE_DATA_ID; start1.CODE = "SK010_SHOWPRINT"; - start1.USER_NAME = temp1.USER_NAME; + start1.USER_NAME = recordUser.NAME; start1.NAME = "安全检查记录归档"; start1.DEAL_DATE = record.MODIFY_TIME; start1.CREATE_TIME = record.CREATE_TIME; @@ -2104,6 +2106,7 @@ namespace APT.SK.WebApi.Controllers.Api recordSumLog.logList = new List(); if (safeRecordSumId != null) { + var recordSumUser = users.FirstOrDefault(t => t.ID == recordSum.APPLY_USER_ID); //发起 var temp1 = tasks.FirstOrDefault(t => t.SOURCE_DATA_ID == safeRecordSumId && !t.NOTICE_TITLE.Contains("确认")); OperateLogList start = new OperateLogList(); @@ -2139,7 +2142,7 @@ namespace APT.SK.WebApi.Controllers.Api OperateLogList start2 = new OperateLogList(); start2.ID = safeRecordSumId; start2.CODE = "SK012_SHOWPRINT"; - start2.USER_NAME = item.USER_NAME; + start2.USER_NAME = recordSumUser.NAME; start2.NAME = "安全检查记录汇总归档"; start2.DEAL_DATE = recordSum.MODIFY_TIME; start2.CREATE_TIME = recordSum.CREATE_TIME; @@ -2152,7 +2155,7 @@ namespace APT.SK.WebApi.Controllers.Api OperateLogList start2 = new OperateLogList(); start2.ID = safeRecordSumId; start2.CODE = "SK012_SHOWPRINT"; - start2.USER_NAME = item.USER_NAME; + start2.USER_NAME = recordSumUser.NAME; start2.NAME = "安全检查记录汇总归档"; start2.DEAL_DATE = recordSum.MODIFY_TIME; start2.CREATE_TIME = recordSum.CREATE_TIME; @@ -2181,7 +2184,7 @@ namespace APT.SK.WebApi.Controllers.Api OperateLogList start2 = new OperateLogList(); start2.ID = safeRecordSumId; start2.CODE = "SK012_SHOWPRINT"; - start2.USER_NAME = item.USER_NAME; + start2.USER_NAME = recordSumUser.NAME; start2.NAME = "安全检查记录汇总归档"; start2.DEAL_DATE = recordSum.MODIFY_TIME; start2.CREATE_TIME = recordSum.CREATE_TIME; @@ -2193,7 +2196,7 @@ namespace APT.SK.WebApi.Controllers.Api OperateLogList start2 = new OperateLogList(); start2.ID = safeRecordSumId; start2.CODE = "SK012_SHOWPRINT"; - start2.USER_NAME = item.USER_NAME; + start2.USER_NAME = recordSumUser.NAME; start2.NAME = "安全检查记录汇总归档"; start2.DEAL_DATE = recordSum.MODIFY_TIME; start2.CREATE_TIME = recordSum.CREATE_TIME; @@ -2407,13 +2410,14 @@ namespace APT.SK.WebApi.Controllers.Api start3.STATUS = 0; hiddenReportLog.logList.Add(start3); } + var dangerReportUser = users.FirstOrDefault(t => t.ID == dangerReport.APPLY_USER_ID); //归档 if (dangerReport.STATUS == PFStandardStatus.Archived) { OperateLogList start3 = new OperateLogList(); start3.ID = null; start3.CODE = "SK014_SHOWPRINT"; - start3.USER_NAME = "整改责任人"; + start3.USER_NAME = dangerReportUser.NAME; start3.NAME = "隐患上报归档"; start3.DEAL_DATE = dangerReport.MODIFY_TIME; start3.CREATE_TIME = dangerReport.CREATE_TIME; @@ -2425,7 +2429,7 @@ namespace APT.SK.WebApi.Controllers.Api OperateLogList start3 = new OperateLogList(); start3.ID = null; start3.CODE = "SK014_SHOWPRINT"; - start3.USER_NAME = "整改责任人"; + start3.USER_NAME = dangerReportUser.NAME; start3.NAME = "隐患上报归档"; start3.DEAL_DATE = dangerReport.MODIFY_TIME; start3.CREATE_TIME = dangerReport.CREATE_TIME; @@ -2621,11 +2625,12 @@ namespace APT.SK.WebApi.Controllers.Api start2.STATUS = 0; confirmLog.logList.Add(start2); } + var confirmUser = users.FirstOrDefault(t => t.ID == confirm.APPLY_USER_ID); //归档 OperateLogList start4 = new OperateLogList(); start4.ID = null; start4.CODE = "SK018_SHOWPRINT"; - start4.USER_NAME = "整改责任人"; + start4.USER_NAME = confirmUser.NAME; start4.NAME = "隐患确认单归档"; start4.DEAL_DATE = confirm.MODIFY_TIME; start4.CREATE_TIME = confirm.CREATE_TIME; @@ -2746,12 +2751,13 @@ namespace APT.SK.WebApi.Controllers.Api } //归档 var rectifyNotice = rectifyNotices.FirstOrDefault(t => t.ID == temp1.SOURCE_DATA_ID); + var rectifyNoticeUser = users.FirstOrDefault(t => t.ID == rectifyNotice.APPLY_USER_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.USER_NAME = rectifyNoticeUser.NAME; start2.NAME = "隐患整改通知归档"; start2.DEAL_DATE = rectifyNotice.MODIFY_TIME; start2.CREATE_TIME = rectifyNotice.CREATE_TIME; @@ -2763,7 +2769,7 @@ namespace APT.SK.WebApi.Controllers.Api OperateLogList start2 = new OperateLogList(); start2.ID = temp1.SOURCE_DATA_ID; start2.CODE = "SK020_SHOWPRINT"; - start2.USER_NAME = temp1.USER_NAME; + start2.USER_NAME = rectifyNoticeUser.NAME; start2.NAME = "隐患整改通知归档"; start2.DEAL_DATE = rectifyNotice.MODIFY_TIME; start2.CREATE_TIME = rectifyNotice.CREATE_TIME; @@ -2948,12 +2954,13 @@ namespace APT.SK.WebApi.Controllers.Api } //归档 var rectifyRecord= rectifyRecords.FirstOrDefault(t => t.ID == temp1.SOURCE_DATA_ID); + var rectifyRecordUser = users.FirstOrDefault(t => t.ID == rectifyRecord.APPLY_USER_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.USER_NAME = rectifyRecordUser.NAME; start1.NAME = "隐患整改记录归档"; start1.DEAL_DATE = rectifyRecord.MODIFY_TIME; start1.CREATE_TIME = rectifyRecord.CREATE_TIME; @@ -2965,7 +2972,7 @@ namespace APT.SK.WebApi.Controllers.Api OperateLogList start1 = new OperateLogList(); start1.ID = temp1.SOURCE_DATA_ID; start1.CODE = "SK022_SHOWPRINT"; - start1.USER_NAME = temp1.USER_NAME; + start1.USER_NAME = rectifyRecordUser.NAME; start1.NAME = "隐患整改记录归档"; start1.DEAL_DATE = rectifyRecord.MODIFY_TIME; start1.CREATE_TIME = rectifyRecord.CREATE_TIME;