From 07b47b5399c831433827c2c1b89f870bc04aa407 Mon Sep 17 00:00:00 2001 From: wyw <571921741@qq.com> Date: Thu, 23 May 2024 13:49:45 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=90=8C=E6=AD=A5=20SPS?= =?UTF-8?q?=3D>SMS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IServices/FM/IFMFlowPermitService.cs | 4 +- .../Services/FM/FMFlowPermitService.cs | 302 ++++++++++++++---- .../Services/PF/PFApproveCallBackService.cs | 270 +++++++++++++++- APT.MS.Data/Mapping/T4/T4Map.cs | 3 +- .../Entities/BS/T_BS_CHECK_CONTENTS.cs | 7 + APT.MS.Domain/Entities/BS/T_BS_OPERATE_LOG.cs | 4 +- APT.MS.Domain/Enums/BS/BSEnums.cs | 72 ++++- .../IServices/BS/IBSOperateLogService.cs | 4 +- .../Services/BS/BSOperateLogService.cs | 220 ++++++++----- .../Api/BSCheckContentsController.cs | 46 ++- .../Controllers/Api/BSCheckMainController.cs | 25 +- .../Controllers/Api/BSRiskSubmitController.cs | 95 +++++- .../Api/BSRiskSubmitNoticePersonController.cs | 14 +- .../Controllers/Api/BSSafeCheckController.cs | 70 +++- 14 files changed, 935 insertions(+), 201 deletions(-) diff --git a/APT.BaseData.Domain/IServices/FM/IFMFlowPermitService.cs b/APT.BaseData.Domain/IServices/FM/IFMFlowPermitService.cs index b07e2f5..18f78a7 100644 --- a/APT.BaseData.Domain/IServices/FM/IFMFlowPermitService.cs +++ b/APT.BaseData.Domain/IServices/FM/IFMFlowPermitService.cs @@ -52,7 +52,7 @@ namespace APT.BaseData.Domain.IServices.FM /// 自定义审批流程人员部门信息 /// 审批流名称 /// - void InsertApprove(string serialCode, string fromCode, string param, Guid id, string approveCode, Guid? finishNoticeId, bool sendMessage, Action action, Guid? approveId = null, Guid? approveUserId = null, Dictionary dicApproveUser = null, Dictionary dicApproveDepartMentID = null, string NoticeCode = "", string taskSourceFormCode = "", Guid? operaterID = null, string approveTaskName = "", Enums.FMTASKTYPE? TASK_TYPE = null, int? FREQUENCYE = null, DateTime? DateTimeLastest = null, int? BSOperateEnum = null); + void InsertApprove(string serialCode, string fromCode, string param, Guid id, string approveCode, Guid? finishNoticeId, bool sendMessage, Action action, Guid? approveId = null, Guid? approveUserId = null, Dictionary dicApproveUser = null, Dictionary dicApproveDepartMentID = null, string NoticeCode = "", string taskSourceFormCode = "", Guid? operaterID = null, string approveTaskName = "", Enums.FMTASKTYPE? TASK_TYPE = null, int? FREQUENCYE = null, DateTime? DateTimeLastest = null, int? BSOperateEnum = null, Guid? DATA_ID_LOG = null, Guid? DATA_ID_SUB = null); /// /// 发布审批流 @@ -84,7 +84,7 @@ namespace APT.BaseData.Domain.IServices.FM /// 审批流ID(主表如果有存传值进来 ) /// 审批用户(主表如果有存传值进来 ) /// - void InsertApproveRisk(List listSerialCode, string fromCode, List listID, string approveCode, Guid? finishNoticeId, bool isSendMessage, Action action, List listParam = null, List listApproveId = null, Guid? approveUserId = null, string taskSourceFormCode = "", Guid? operaterID = null, List ListDepIDNone = null, Enums.FMTASKTYPE? TASK_TYPE = null, int? FREQUENCYE = null, DateTime? DateTimeLastest = null); + void InsertApproveRisk(List listSerialCode, string fromCode, List listID, string approveCode, Guid? finishNoticeId, bool isSendMessage, Action action, List listParam = null, List listApproveId = null, Guid? approveUserId = null, string taskSourceFormCode = "", Guid? operaterID = null, List ListDepIDNone = null, Enums.FMTASKTYPE? TASK_TYPE = null, int? FREQUENCYE = null, DateTime? DateTimeLastest = null, int? iBSOperateEnum = null, Guid? RiskID = null, List listLevel = null, Dictionary> dicLevelSubID = null); /// /// 获取流水码 /// diff --git a/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs b/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs index afb2752..1d89105 100644 --- a/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs +++ b/APT.BaseData.Services/Services/FM/FMFlowPermitService.cs @@ -316,7 +316,7 @@ namespace APT.BaseData.Services.Services.FM /// /// 审批流名称 /// - public void InsertApprove(string serialCode, string fromCode, string param, Guid id, string approveCode, Guid? finishNoticeId, bool sendMessage, Action action, Guid? approveId = null, Guid? approveUserId = null, Dictionary dicApproveUser = null, Dictionary dicApproveDepartMentID = null, string NoticeCode = "", string taskSourceFormCode = "", Guid? operaterID = null, string approveTaskName = "", FMTASKTYPE? TASK_TYPE = null, int? FREQUENCYE = null, DateTime? DateTimeLastest = null, int? iBSOperateEnum = null) + public void InsertApprove(string serialCode, string fromCode, string param, Guid id, string approveCode, Guid? finishNoticeId, bool sendMessage, Action action, Guid? approveId = null, Guid? approveUserId = null, Dictionary dicApproveUser = null, Dictionary dicApproveDepartMentID = null, string NoticeCode = "", string taskSourceFormCode = "", Guid? operaterID = null, string approveTaskName = "", FMTASKTYPE? TASK_TYPE = null, int? FREQUENCYE = null, DateTime? DateTimeLastest = null, int? iBSOperateEnum = null, Guid? DATA_ID_LOG = null, Guid? DATA_ID_SUB = null) { T_PF_APPROVE approve = null; //上个消息 @@ -564,33 +564,14 @@ namespace APT.BaseData.Services.Services.FM }); } - if (iBSOperateEnum.HasValue && appdetails != null && appdetails.Any()) + if (iBSOperateEnum == 200 || iBSOperateEnum == 20 || iBSOperateEnum == 60) { - try - { - OPERATEPOINT_Enums OPERATEPOINT = (OPERATEPOINT_Enums)iBSOperateEnum; - - List ListUserID = new List(); - List ListUserName = new List(); - foreach (var item in appdetails) - { - if (item.APPROVE_USER_ID.HasValue) - { - ListUserID.Add(item.APPROVE_USER_ID.Value); - } - } - if (ListUserID.Count > 0) - { - var listUser = GetEntities(e => ListUserID.Contains(e.ID)); - for (int i = 0; i < ListUserID.Count; i++) - { - ListUserName.Add(listUser.FirstOrDefault(e => e.ID == ListUserID[i])?.NAME); - } - } - - listBSLog = GetListOperateLog(OPERATEPOINT, id, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, ListUserID, ListUserName, approve.ORG_ID, null, null); - } - catch { } + listBSLog = GetOperateLogInfo(DATA_ID_LOG, approve.ORG_ID, appdetails, iBSOperateEnum, finishNotice, DATA_ID_SUB);//验收人确认整改 + } + else + { + //修改参数到 if (iBSOperateEnum == 200) + listBSLog = GetOperateLogInfo(id, approve.ORG_ID, appdetails, iBSOperateEnum, finishNotice, approve.DATA_ID); } } this.UnifiedCommit(() => @@ -608,9 +589,6 @@ namespace APT.BaseData.Services.Services.FM if (listBSLog != null && listBSLog.Any()) BantchSaveEntityNoCommit(listBSLog);//有修改和新增 }); - - //如果 审批流需要执行默认审批 调用 回调方法 - //回调方法写在之后 不然之前数据都没有保存到数据库 原有的方法不能使用 if (!string.IsNullOrEmpty(CALLBACK_INTERFACE)) { if (CALLBACK_INTERFACE.EndsWith("New")) @@ -1088,7 +1066,7 @@ namespace APT.BaseData.Services.Services.FM /// 发起者 用户ID 如未传参 默认当前登陆者 如果审批流包含此人 默认审批流从他开始 他所在节点默认审批通过 /// 审批流未找到审批人默认组织安全员 /// - public void InsertApproveRisk(List listSerialCode, string fromCode, List listID, string approveCode, Guid? finishNoticeId, bool isSendMessage, Action action, List listParam = null, List listApproveId = null, Guid? approveUserId = null, string taskSourceFormCode = "", Guid? operaterID = null, List ListDepIDNone = null, FMTASKTYPE? TASK_TYPE = null, int? FREQUENCYE = null, DateTime? DateTimeLastest = null) + public void InsertApproveRisk(List listSerialCode, string fromCode, List listID, string approveCode, Guid? finishNoticeId, bool isSendMessage, Action action, List listParam = null, List listApproveId = null, Guid? approveUserId = null, string taskSourceFormCode = "", Guid? operaterID = null, List ListDepIDNone = null, FMTASKTYPE? TASK_TYPE = null, int? FREQUENCYE = null, DateTime? DateTimeLastest = null, int? iBSOperateEnum = null, Guid? RiskID = null, List listLevel = null, Dictionary> dicLevelSubID = null) //List listDataID_Sub { #region 参数判断 @@ -1111,6 +1089,7 @@ namespace APT.BaseData.Services.Services.FM #endregion List listApprove = new List(); + List listBSLog = new List(); List appdetails = new List(); List appdetailsTemp = null; IEnumerable iEnumApprovalRole = null; @@ -1349,6 +1328,24 @@ namespace APT.BaseData.Services.Services.FM } appdetails.AddRange(appdetailsTemp); listApprove.Add(approve); + + + List listLevelSubID = null; + if (dicLevelSubID != null) + { + if (dicLevelSubID.ContainsKey(listLevel[i])) + { + listLevelSubID = dicLevelSubID[listLevel[i]]; + } + if (listLevelSubID != null && listLevelSubID.Any()) + { + listBSLog.AddRange(GetOperateLogInfo(RiskID, approve.ORG_ID, appdetailsTemp, iBSOperateEnum, finishNotice, listLevelSubID)); + } + else + { + listBSLog.AddRange(GetOperateLogInfo(RiskID, approve.ORG_ID, appdetailsTemp, iBSOperateEnum, finishNotice, approve.DATA_ID)); + } + } } else { @@ -1458,6 +1455,22 @@ namespace APT.BaseData.Services.Services.FM } } listApprove.Add(approve); + + List listLevelSubID = null; + if (dicLevelSubID.ContainsKey(listLevel[0])) + { + listLevelSubID = dicLevelSubID[listLevel[0]]; + } + if (listLevelSubID != null && listLevelSubID.Any()) + { + listBSLog = GetOperateLogInfo(RiskID, approve.ORG_ID, appdetailsTemp, iBSOperateEnum, finishNotice, listLevelSubID); + } + else + { + listBSLog = GetOperateLogInfo(RiskID, approve.ORG_ID, appdetailsTemp, iBSOperateEnum, finishNotice, approve.DATA_ID); + } + + //listBSLog = GetOperateLogInfo(RiskID, approve.ORG_ID, appdetailsTemp, iBSOperateEnum, finishNotice, ((listDataID_Sub != null && listDataID_Sub.Any()) ? listDataID_Sub[0] : approve.DATA_ID)); } else { @@ -1471,6 +1484,8 @@ namespace APT.BaseData.Services.Services.FM throw new Exception("方法不知以什么方式来添加多个审批流!"); } + + this.UnifiedCommit(() => { if (action != null) @@ -1479,6 +1494,8 @@ namespace APT.BaseData.Services.Services.FM BantchAddEntityNoCommit(listApprove); if (appdetails != null && appdetails.Any()) BantchAddEntityNoCommit(appdetails); + if (listBSLog != null && listBSLog.Any()) + BantchSaveEntityNoCommit(listBSLog); if (finishNotice != null) UpdateEntityNoCommit(finishNotice, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); if (listNotice.Count > 0) @@ -1659,6 +1676,7 @@ namespace APT.BaseData.Services.Services.FM } return approveId; } + /// /// 根据部门树查找审核人 /// @@ -1985,10 +2003,120 @@ namespace APT.BaseData.Services.Services.FM //#endregion + private List GetOperateLogInfo(Guid? dataId, Guid? ORG_ID, List appdetails, int? iBSOperateEnum, T_FM_NOTIFICATION_TASK finishNotice, Guid? DATA_ID_SUB = null) + { + List listOperateLog = null; + if (iBSOperateEnum.HasValue && dataId.HasValue) + { + List ListUserIDDone = new List(); + try + { + OPERATEPOINT_Enums OPERATEPOINT = (OPERATEPOINT_Enums)iBSOperateEnum; + List ListUserID = new List(); + List ListUserName = new List(); + if (appdetails != null && appdetails.Any()) + { + foreach (var item in appdetails) + { + if (item.APPROVE_USER_ID.HasValue) + { + ListUserID.Add(item.APPROVE_USER_ID.Value); + if (item.NODE_APPROVE_STATUS == 10) + ListUserIDDone.Add(item.APPROVE_USER_ID.Value); + } + } + if (ListUserID.Count > 0) + { + var listUser = GetEntities(e => ListUserID.Contains(e.ID)); + for (int i = 0; i < ListUserID.Count; i++) + { + ListUserName.Add(listUser.FirstOrDefault(e => e.ID == ListUserID[i])?.NAME); + } + } + } + + DateTime? taskEnd = null; + if (finishNotice != null) + taskEnd = finishNotice.TASK_ENDDT; + listOperateLog = GetListOperateLog(OPERATEPOINT, dataId.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, ListUserID, ListUserName, ORG_ID, DATA_ID_SUB, ListUserIDDone, false, taskEnd); + } + catch { } + } + return listOperateLog; + } + + /// + /// 更新某个 日志 并且添加多组带操作日志 + /// + /// + /// + /// + /// + /// + /// + /// + private List GetOperateLogInfo(Guid? dataId, Guid? ORG_ID, List appdetails, int? iBSOperateEnum, T_FM_NOTIFICATION_TASK finishNotice, List ListDATA_ID_SUB) + { + List listOperateLog = null; + if (iBSOperateEnum.HasValue && dataId.HasValue) + { + List ListUserIDDone = new List(); + try + { + OPERATEPOINT_Enums OPERATEPOINT = (OPERATEPOINT_Enums)iBSOperateEnum; + List ListUserID = new List(); + List ListUserName = new List(); + if (appdetails != null && appdetails.Any()) + { + foreach (var item in appdetails) + { + if (item.APPROVE_USER_ID.HasValue) + { + ListUserID.Add(item.APPROVE_USER_ID.Value); + if (item.NODE_APPROVE_STATUS == 10) + ListUserIDDone.Add(item.APPROVE_USER_ID.Value); + } + } + if (ListUserID.Count > 0) + { + var listUser = GetEntities(e => ListUserID.Contains(e.ID)); + for (int i = 0; i < ListUserID.Count; i++) + { + ListUserName.Add(listUser.FirstOrDefault(e => e.ID == ListUserID[i])?.NAME); + } + } + } + var LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value; + DateTime? taskEnd = null; + if (finishNotice != null) + taskEnd = finishNotice.TASK_ENDDT; + listOperateLog = new List(); + + //OPERATEPOINT_Enums.CheckResultAudit => //(int)OPERATEPOINT_Enums.RiskGet + if (OPERATEPOINT == OPERATEPOINT_Enums.RiskInfoCompleteSD) + { + //手动隐患上报 + listOperateLog.Add(GetUpdateDeal(OPERATEPOINT, dataId.Value, LoginID, ListDATA_ID_SUB[0], taskEnd)); + } + else + { + //看看 是不是可以改到上面方法 + listOperateLog.Add(GetUpdateDeal(OPERATEPOINT, dataId.Value, LoginID, null, taskEnd)); + } + foreach (var item in ListDATA_ID_SUB) + { + for (int i = 0; i < ListUserID.Count; i++) + listOperateLog.Add(AddModel(OPERATEPOINT_Enums.RiskSendAudit, dataId.Value, ListUserID[i], ListUserName[i], ORG_ID, i, false, item)); + } + } + catch { } + } + return listOperateLog; + } #region 方法重复写 如有修改 需同步修改 BSOperateLogService 对应方法 - public List GetListOperateLog(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserIDLogin, List ListDATA_ID, List ListUserID, List ListUserName, Guid? ORG_ID, Guid? DATA_ID_SUB = null, List ListUserIDDone = null, bool isEnd = true) + public List GetListOperateLog(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserIDLogin, List ListDATA_ID, List ListUserID, List ListUserName, Guid? ORG_ID, Guid? DATA_ID_SUB = null, List ListUserIDDone = null, bool isEnd = false, DateTime? TASK_ENDDT = null) { List listResult = new List(); T_BS_OPERATE_LOG modelLogUpdate = null; @@ -1996,56 +2124,66 @@ namespace APT.BaseData.Services.Services.FM { case OPERATEPOINT_Enums.GotCheck: //系统触发 只是新增 - if (ListUserID != null && ListUserName != null) + if (ListUserID != null && ListUserName != null && ListUserID.Any()) for (int i = 0; i < ListUserID.Count; i++) - listResult.Add(AddModel(OPERATEPOINT, ListDATA_ID[i], ListUserID[i], ListUserName[i], ORG_ID, i)); + listResult.Add(AddModel(OPERATEPOINT, ListDATA_ID[i], ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); break; case OPERATEPOINT_Enums.CheckForm: //BS032保存并发送 到审批流 - modelLogUpdate = GetUpdateDeal(OPERATEPOINT_Enums.GotCheck, DATA_ID, UserIDLogin); + modelLogUpdate = GetUpdateDeal(OPERATEPOINT_Enums.GotCheck, DATA_ID, UserIDLogin, null, TASK_ENDDT); if (modelLogUpdate != null) listResult.Add(modelLogUpdate); - if (ListUserID != null && ListUserName != null) + if (ListUserID != null && ListUserName != null && ListUserID.Any()) for (int i = 0; i < ListUserID.Count; i++) - listResult.Add(AddModel(OPERATEPOINT, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i)); + listResult.Add(AddModel(OPERATEPOINT_Enums.CheckAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB));//OPERATEPOINT => OPERATEPOINT_Enums.CheckAudit break; case OPERATEPOINT_Enums.CheckAudit: - modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin);//处理自己的待办日志 + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT); if (modelLogUpdate != null) listResult.Add(modelLogUpdate); - if (ListUserID != null && ListUserName != null) + if (ListUserID != null && ListUserName != null && ListUserID.Any()) for (int i = 0; i < ListUserID.Count; i++)//最后一个审批人 添加 通知 - listResult.Add(AddModel(OPERATEPOINT_Enums.CheckerCheck, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i)); + listResult.Add(AddModel(OPERATEPOINT_Enums.CheckerCheck, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); break; case OPERATEPOINT_Enums.CheckerCheck: - modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin);//处理自己的 + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的 if (modelLogUpdate != null) listResult.Add(modelLogUpdate); break; case OPERATEPOINT_Enums.CheckRegister: //检查登记 - modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin);//处理自己的 + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的 if (modelLogUpdate != null) listResult.Add(modelLogUpdate); - if (ListUserID != null && ListUserName != null) + if (ListUserID != null && ListUserName != null && ListUserID.Any()) for (int i = 0; i < ListUserID.Count; i++) //发起检查结果确认 - listResult.Add(AddModel(OPERATEPOINT_Enums.CheckAgree, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i)); + listResult.Add(AddModel(OPERATEPOINT_Enums.CheckAgree, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); break; case OPERATEPOINT_Enums.CheckAgree: - modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin);//处理自己的 + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的 if (modelLogUpdate != null) listResult.Add(modelLogUpdate); - if (ListUserID != null && ListUserName != null) + if (ListUserID != null && ListUserName != null && ListUserID.Any()) for (int i = 0; i < ListUserID.Count; i++) //检查结果确认完 直接到审批 - listResult.Add(AddModel(OPERATEPOINT_Enums.CheckResultAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i)); + listResult.Add(AddModel(OPERATEPOINT_Enums.CheckResultAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); break; case OPERATEPOINT_Enums.CheckResultAudit: - modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin);//处理自己的 + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的 if (modelLogUpdate != null) listResult.Add(modelLogUpdate); if (isEnd) //最后一个审批就归档 { - listResult.Add(AddModel(OPERATEPOINT_Enums.CheckEnd, DATA_ID, UserIDLogin, APT.Infrastructure.Api.AppContext.CurrentSession.UserName, ORG_ID)); + var logEnd = AddModel(OPERATEPOINT_Enums.CheckEnd, DATA_ID, UserIDLogin, APT.Infrastructure.Api.AppContext.CurrentSession.UserName, ORG_ID); + logEnd.OPERTETIME = DateTime.Now; + if (modelLogUpdate != null) + logEnd.ISINTTIME = modelLogUpdate.ISINTTIME; + listResult.Add(logEnd); + } + else if (DATA_ID_SUB != null) + { + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) + listResult.Add(AddModel(OPERATEPOINT_Enums.RiskGet, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); } break; case OPERATEPOINT_Enums.CheckEnd: @@ -2058,16 +2196,55 @@ namespace APT.BaseData.Services.Services.FM case OPERATEPOINT_Enums.RiskInfoCompleteSD: break; case OPERATEPOINT_Enums.RiskGet: - //审批结束后 如果有隐患 - if (ListUserID != null && ListUserName != null) + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + if (ListUserID != null && ListUserName != null && ListUserID.Any()) for (int i = 0; i < ListUserID.Count; i++) - listResult.Add(AddModel(OPERATEPOINT, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i)); + listResult.Add(AddModel(OPERATEPOINT_Enums.RiskSendAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); break; - case OPERATEPOINT_Enums.RiskSend: + //case OPERATEPOINT_Enums.RiskSend: + // modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的 + // if (modelLogUpdate != null) + // listResult.Add(modelLogUpdate); + // if (ListUserID != null && ListUserName != null && ListUserID.Any()) + // for (int i = 0; i < ListUserID.Count; i++) + // listResult.Add(AddModel(OPERATEPOINT_Enums.RiskSendAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + // break; + case OPERATEPOINT_Enums.RiskSendAudit: + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) + listResult.Add(AddModel(OPERATEPOINT_Enums.RiskAssignActure, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + break; + case OPERATEPOINT_Enums.RiskAssignActure: + break; + case OPERATEPOINT_Enums.RiskNoticeCheckerCheck: + break; + case OPERATEPOINT_Enums.RiskNoticeActureCheck: + break; + case OPERATEPOINT_Enums.RiskDeal: + break; + case OPERATEPOINT_Enums.RiskDealDealCheck: + break; + case OPERATEPOINT_Enums.RiskDealCheckerCheck: + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, DATA_ID_SUB, TASK_ENDDT);//处理自己的 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) + listResult.Add(AddModel(OPERATEPOINT_Enums.RiskDealAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + break; + case OPERATEPOINT_Enums.RiskDealAudit: + break; + case OPERATEPOINT_Enums.RiskEnd: break; default: break; } + if (ListUserIDDone != null && ListUserIDDone.Count > 0) { //除了登陆者 需要默认操作的 @@ -2090,7 +2267,7 @@ namespace APT.BaseData.Services.Services.FM /// /// /// - private T_BS_OPERATE_LOG AddModel(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserID, string UserName, Guid? ORG_ID, int ORDERNO = 0) + private T_BS_OPERATE_LOG AddModel(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserID, string UserName, Guid? ORG_ID, int ORDERNO = 0, bool isAddLog = false, Guid? DATA_ID_SUB = null) { T_BS_OPERATE_LOG ModelAdd = new T_BS_OPERATE_LOG() { @@ -2098,17 +2275,17 @@ namespace APT.BaseData.Services.Services.FM ORG_ID = ORG_ID, LOGTYPE = ((int)OPERATEPOINT) > 80 ? LOGTYPE_Enums.RiskSubmit : LOGTYPE_Enums.SafeCheck, DATA_ID = DATA_ID, - //DATA_ID_SUB = null, + DATA_ID_SUB = DATA_ID_SUB, OPERATEPOINT = OPERATEPOINT, USER_ID = UserID, USRTNAME = UserName, ORDERNO = ORDERNO, //OPERTETIME = null, - ISINTTIME = false, + //ISINTTIME = false, CREATE_TIME = DateTime.Now, CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID }; - if (APT.Infrastructure.Api.AppContext.CurrentSession.UserID.HasValue && APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value == UserID) + if (isAddLog || (APT.Infrastructure.Api.AppContext.CurrentSession.UserID.HasValue && APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value == UserID)) { ModelAdd.OPERTETIME = DateTime.Now;//默认通过 } @@ -2122,15 +2299,24 @@ namespace APT.BaseData.Services.Services.FM /// /// /// + /// /// - private T_BS_OPERATE_LOG GetUpdateDeal(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserID, Guid? DATA_ID_SUB = null) + private T_BS_OPERATE_LOG GetUpdateDeal(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserID, Guid? DATA_ID_SUB = null, DateTime? TASK_ENDDT = null) { + if (UserID == Guid.Empty) + { + return null; + } Expression> expression = e => e.DATA_ID == DATA_ID && e.OPERATEPOINT == OPERATEPOINT && e.USER_ID == UserID; if (DATA_ID_SUB.HasValue) expression = expression.And(e => e.DATA_ID_SUB.HasValue && e.DATA_ID_SUB == DATA_ID_SUB); var model = GetEntity(expression); if (model != null) + { model.OPERTETIME = DateTime.Now; + if (TASK_ENDDT != null) + model.ISINTTIME = (model.OPERTETIME > TASK_ENDDT.Value ? false : true); + } return model; } #endregion diff --git a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs index df4d446..b65d647 100644 --- a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs +++ b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs @@ -23,6 +23,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; +using System.Linq.Expressions; using System.Reflection; using System.Security.Cryptography; @@ -6352,6 +6353,14 @@ namespace APT.BaseData.Services.DomainServices } + #region 修改操作日志 添加 下一步待操作日志 + DateTime? dtTaskEnd = null; + dtTaskEnd = taskFinish?.TASK_ENDDT; + + var listOperateLog = GetListOperateLog(OPERATEPOINT_Enums.CheckAudit, entity.ID, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, listUserId, listUserName, entity.ORG_ID, null, listUserIDDone, false, dtTaskEnd); + + #endregion + //BS034_SHOWPRINT=> BS032_SHOWPRINT NotificationTaskService.SendNotificationTask((entity.NAME + "-确认"), entity.ID, orgId, listUserId, listUserName, DateTime.Now, dtTimeOut, 0, "BS032_SHOWPRINT", () => { @@ -6371,7 +6380,8 @@ namespace APT.BaseData.Services.DomainServices UpdateEntityNoCommit(taskFinish); if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点 BantchSaveEntityNoCommit(listTaskNext); - + if (listOperateLog != null && listOperateLog.Count > 0)//操作记录 + BantchSaveEntityNoCommit(listOperateLog); }, "", listUserIDDone); } @@ -6692,9 +6702,15 @@ namespace APT.BaseData.Services.DomainServices #endregion } entity.STATECHECK = STATECHECK.Archived; + + DateTime? dtTaskEnd = null; + dtTaskEnd = taskFinish?.TASK_ENDDT; + + //给制表人发送待办 if (entity.RISKSTATE == 10 && entity.USERID_DOPLAN.HasValue) { + //结束 + 上报 #region 隐患上报信息 发隐患上报信息 出去 流程各时间也对应 @@ -6801,6 +6817,15 @@ namespace APT.BaseData.Services.DomainServices // }); // entity.ID 被 modelSub.ID 替换 + + + + var listOperateLog = GetListOperateLog(OPERATEPOINT_Enums.CheckResultAudit, entity.ID, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, new List() { entity.USERID_DOPLAN.Value }, new List() { entity.Nav_User.NAME }, entity.ORG_ID, modelSub.ID, null, false, dtTaskEnd); + + //modelSubOPERATEPOINT_Enums.RiskGet + //var listOperateLogRisk = GetListOperateLog(OPERATEPOINT_Enums.RiskGet, modelSub.ID, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, new List() { entity.USERID_DOPLAN.Value }, new List() { entity.Nav_User.NAME }, entity.ORG_ID, null, null, false, dtTaskEnd); + + NotificationTaskService.SendNotificationTask("隐患待上报:" + entity.NAME.Replace("安全检查:", ""), modelSub.ID, entity.ORG_ID, entity.USERID_DOPLAN.Value, entity.Nav_User.NAME, DateTime.Now, dtTimeOut, 0, "BS006", () => { if (modelApp != null) @@ -6827,11 +6852,15 @@ namespace APT.BaseData.Services.DomainServices BantchSaveEntityNoCommit(Nav_Files); if (ListRiskSubmitContent != null && ListRiskSubmitContent.Any()) BantchSaveEntityNoCommit(ListRiskSubmitContent); + if (listOperateLog != null && listOperateLog.Any()) + BantchSaveEntityNoCommit(listOperateLog);//安全检查操作记录//隐患待上报操作记录 }); } else { + var listOperateLog = GetListOperateLog(OPERATEPOINT_Enums.CheckResultAudit, entity.ID, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, null, null, entity.ORG_ID, null, null, true, dtTaskEnd); + //直接结束 entity.ISNEEDTOUP = true; //检查没问题 直接结束 安全检查 this.UnifiedCommit(() => @@ -6856,6 +6885,8 @@ namespace APT.BaseData.Services.DomainServices BantchUpdateEntityNoCommit(listCheckDetail); if (listUpdateMain != null && listUpdateMain.Any())//安全检查库修改不可用 BantchUpdateEntityNoCommit(listUpdateMain); + if (listOperateLog != null && listOperateLog.Any())//操作记录 + BantchSaveEntityNoCommit(listOperateLog); }); } } @@ -6864,6 +6895,7 @@ namespace APT.BaseData.Services.DomainServices + /// /// 隐患上报 审核通过 给每个通知负责人发送通知 /// @@ -7356,15 +7388,28 @@ namespace APT.BaseData.Services.DomainServices //} #endregion } - + List listOperateLog = new List(); //更新日期 //给隐患上报隐患通知责任人 发送待办 if (isNoticeCheck) { - //listNotice = NotificationTaskService.InsertUserNoticeTaskModels(codeList, listName, listDataID, entity.ORG_ID, listUserID, listUserName, DateTime.Now, listEndTime, (int)FMNoticeTypeEnum.消息, "BS042_SHOWPRINT"); //整改责任人 指定 整改落实人 listNotice = NotificationTaskService.InsertUserNoticeTaskModels(codeList, listName, listDataID, entity.ORG_ID, listUserID, listUserName, DateTime.Now, listEndTime, (int)FMNoticeTypeEnum.消息, "BS074"); + //整改责任人指定落实人:车间级巡回检查D级隐患 + + foreach (var item in listContent) + { + for (int j = 0; j < listUserID.Count; j++) + { + if (item.DEAL_USER_ID.HasValue && item.DEAL_USER_ID.Value == listUserID[j]) + { + //给每个检查内容 发送 整改责任人确认 操作明细 + listOperateLog.AddRange(GetListOperateLog(OPERATEPOINT_Enums.RiskSendAudit, entity.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, new List() { listUserID[j] }, new List() { listUserName[j] }, entity.ORG_ID, item.ID, null, false, taskFinish?.TASK_ENDDT)); + break; + } + } + } } else { @@ -7403,12 +7448,17 @@ namespace APT.BaseData.Services.DomainServices BantchSaveEntityNoCommit(listMainConbinQuestionAdd); if (listSafecheckDetail.Count > 0)//确定检查问题 添加安全检查记录 BantchUpdateEntityNoCommit(listSafecheckDetail); + + if (listOperateLog != null && listOperateLog.Any())//操作记录 + BantchSaveEntityNoCommit(listOperateLog); }); } return true; } + + /// /// 隐患上报 完成 修改各种状态 完善隐患库 /// @@ -7722,9 +7772,10 @@ namespace APT.BaseData.Services.DomainServices modelCheck.CHECKOBJECT = (int)deal.Nav_Submit.CHECKOBJECT.Value; } + var listOperateLog = GetListOperateLog(OPERATEPOINT_Enums.RiskDealAudit, deal.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, null, null, deal.ORG_ID, deal.RISK_SUBMIT_CONTENT_ID, null, true, taskFinish?.TASK_ENDDT); + UnifiedCommit(() => { - if (modelApp != null) UpdateEntityNoCommit(modelApp); //保存主表 if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库 @@ -7744,6 +7795,8 @@ namespace APT.BaseData.Services.DomainServices UpdateEntityNoCommit(modelCheck); if (mainDep != null) UpdateEntityNoCommit(mainDep); + if (listOperateLog != null && listOperateLog.Any())//操作记录 + BantchSaveEntityNoCommit(listOperateLog); }); } return true; @@ -8062,5 +8115,214 @@ namespace APT.BaseData.Services.DomainServices //} //#endregion + + #region 方法重复写 如有修改 需同步修改 BSOperateLogService 对应方法 + + public List GetListOperateLog(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserIDLogin, List ListDATA_ID, List ListUserID, List ListUserName, Guid? ORG_ID, Guid? DATA_ID_SUB = null, List ListUserIDDone = null, bool isEnd = false, DateTime? TASK_ENDDT = null) + { + List listResult = new List(); + T_BS_OPERATE_LOG modelLogUpdate = null; + switch (OPERATEPOINT) + { + case OPERATEPOINT_Enums.GotCheck: + //系统触发 只是新增 + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) + listResult.Add(AddModel(OPERATEPOINT, ListDATA_ID[i], ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + break; + case OPERATEPOINT_Enums.CheckForm: + //BS032保存并发送 到审批流 + modelLogUpdate = GetUpdateDeal(OPERATEPOINT_Enums.GotCheck, DATA_ID, UserIDLogin, null, TASK_ENDDT); + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) + listResult.Add(AddModel(OPERATEPOINT_Enums.CheckAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB));// OPERATEPOINT => OPERATEPOINT_Enums.CheckAudit + break; + case OPERATEPOINT_Enums.CheckAudit: + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的待办日志 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++)//最后一个审批人 添加 通知 + listResult.Add(AddModel(OPERATEPOINT_Enums.CheckerCheck, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + break; + case OPERATEPOINT_Enums.CheckerCheck: + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + break; + case OPERATEPOINT_Enums.CheckRegister: + //检查登记 + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) //发起检查结果确认 + listResult.Add(AddModel(OPERATEPOINT_Enums.CheckAgree, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + break; + case OPERATEPOINT_Enums.CheckAgree: + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) //检查结果确认完 直接到审批 + listResult.Add(AddModel(OPERATEPOINT_Enums.CheckResultAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + break; + case OPERATEPOINT_Enums.CheckResultAudit: + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + if (isEnd) //最后一个审批就归档 + { + var logEnd = AddModel(OPERATEPOINT_Enums.CheckEnd, DATA_ID, UserIDLogin, APT.Infrastructure.Api.AppContext.CurrentSession.UserName, ORG_ID); + logEnd.OPERTETIME = DateTime.Now; + if (modelLogUpdate != null) + logEnd.ISINTTIME = modelLogUpdate.ISINTTIME; + listResult.Add(logEnd); + } + else if (DATA_ID_SUB != null) + { + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) + //listResult.Add(AddModel(OPERATEPOINT_Enums.RiskGet, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + listResult.Add(AddModel(OPERATEPOINT_Enums.RiskGet, DATA_ID_SUB.Value, ListUserID[i], ListUserName[i], ORG_ID, i, false, null));//注意 入参把 隐患上报ID 传给参数 DATA_ID_SUB + } + break; + case OPERATEPOINT_Enums.CheckEnd: + //此处没操作 + break; + case OPERATEPOINT_Enums.RiskNoticeSD: + break; + case OPERATEPOINT_Enums.RiskUpSD: + break; + case OPERATEPOINT_Enums.RiskInfoCompleteSD: + break; + case OPERATEPOINT_Enums.RiskGet: + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//隐患待上报 不需要传递 子表ID + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) + listResult.Add(AddModel(OPERATEPOINT_Enums.RiskSendAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB));//子表拆分记录 + break; + //case OPERATEPOINT_Enums.RiskSend: + // modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT); + // if (modelLogUpdate != null) + // listResult.Add(modelLogUpdate); + // if (ListUserID != null && ListUserName != null && ListUserID.Any()) + // for (int i = 0; i < ListUserID.Count; i++) + // listResult.Add(AddModel(OPERATEPOINT_Enums.RiskSendAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + // break; + case OPERATEPOINT_Enums.RiskSendAudit: + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, DATA_ID_SUB, TASK_ENDDT);//分子表处理 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) + listResult.Add(AddModel(OPERATEPOINT_Enums.RiskAssignActure, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + break; + case OPERATEPOINT_Enums.RiskAssignActure: + break; + case OPERATEPOINT_Enums.RiskNoticeCheckerCheck: + break; + case OPERATEPOINT_Enums.RiskNoticeActureCheck: + break; + case OPERATEPOINT_Enums.RiskDeal: + break; + case OPERATEPOINT_Enums.RiskDealDealCheck: + break; + case OPERATEPOINT_Enums.RiskDealCheckerCheck: + break; + case OPERATEPOINT_Enums.RiskDealAudit: + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, DATA_ID_SUB, TASK_ENDDT);//处理自己的 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + var logEndRisk = AddModel(OPERATEPOINT_Enums.RiskEnd, DATA_ID, UserIDLogin, APT.Infrastructure.Api.AppContext.CurrentSession.UserName, ORG_ID); + logEndRisk.OPERTETIME = DateTime.Now; + if (modelLogUpdate != null) + logEndRisk.ISINTTIME = modelLogUpdate.ISINTTIME; + listResult.Add(logEndRisk); + break; + case OPERATEPOINT_Enums.RiskEnd: + break; + default: + break; + } + if (ListUserIDDone != null && ListUserIDDone.Count > 0) + { + //除了登陆者 需要默认操作的 + listResult.ForEach(e => + { + if (ListUserIDDone.Contains(e.USER_ID)) + e.OPERTETIME = DateTime.Now; + }); + } + return listResult; + } + + + /// + /// 获取新记录 + /// + /// + /// + /// + /// + /// + /// + private T_BS_OPERATE_LOG AddModel(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserID, string UserName, Guid? ORG_ID, int ORDERNO = 0, bool isAddLog = false, Guid? DATA_ID_SUB = null) + { + T_BS_OPERATE_LOG ModelAdd = new T_BS_OPERATE_LOG() + { + ID = Guid.NewGuid(), + ORG_ID = ORG_ID, + LOGTYPE = ((int)OPERATEPOINT) > 80 ? LOGTYPE_Enums.RiskSubmit : LOGTYPE_Enums.SafeCheck, + DATA_ID = DATA_ID, + DATA_ID_SUB = DATA_ID_SUB, + OPERATEPOINT = OPERATEPOINT, + USER_ID = UserID, + USRTNAME = UserName, + ORDERNO = ORDERNO, + //OPERTETIME = null, + //ISINTTIME = false, + CREATE_TIME = DateTime.Now, + CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID + }; + if (isAddLog || (APT.Infrastructure.Api.AppContext.CurrentSession.UserID.HasValue && APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value == UserID)) + { + ModelAdd.OPERTETIME = DateTime.Now;//默认通过 + } + return ModelAdd; + } + + /// + /// 获取需要修改的Model + /// + /// 操作节点 + /// + /// + /// + /// + /// + private T_BS_OPERATE_LOG GetUpdateDeal(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserID, Guid? DATA_ID_SUB = null, DateTime? TASK_ENDDT = null) + { + if (UserID == Guid.Empty) + { + return null; + } + Expression> expression = e => e.DATA_ID == DATA_ID && e.OPERATEPOINT == OPERATEPOINT && e.USER_ID == UserID; + if (DATA_ID_SUB.HasValue) + expression = expression.And(e => e.DATA_ID_SUB.HasValue && e.DATA_ID_SUB == DATA_ID_SUB); + var model = GetEntity(expression); + if (model != null) + { + model.OPERTETIME = DateTime.Now; + if (TASK_ENDDT != null) + model.ISINTTIME = (model.OPERTETIME > TASK_ENDDT.Value ? false : true); + } + return model; + } + #endregion } } diff --git a/APT.MS.Data/Mapping/T4/T4Map.cs b/APT.MS.Data/Mapping/T4/T4Map.cs index 6e47d8b..8b4340a 100644 --- a/APT.MS.Data/Mapping/T4/T4Map.cs +++ b/APT.MS.Data/Mapping/T4/T4Map.cs @@ -49,7 +49,8 @@ builder.HasOne(t => t.Nav_CheckProject).WithMany().HasForeignKey(t => t.CHECK_PR public override void Configure(EntityTypeBuilder builder) { base.Configure(builder); - builder.Property(t => t.CHECKCONTENT).HasMaxLength(500); + builder.Ignore(t => t.StrCheckObject); +builder.Property(t => t.CHECKCONTENT).HasMaxLength(500); } } #endregion diff --git a/APT.MS.Domain/Entities/BS/T_BS_CHECK_CONTENTS.cs b/APT.MS.Domain/Entities/BS/T_BS_CHECK_CONTENTS.cs index 89f24f9..f400a2a 100644 --- a/APT.MS.Domain/Entities/BS/T_BS_CHECK_CONTENTS.cs +++ b/APT.MS.Domain/Entities/BS/T_BS_CHECK_CONTENTS.cs @@ -21,6 +21,13 @@ namespace APT.MS.Domain.Entities.BS [FormFieldEdit] public BSMineTypeEnum CHECKOBJECT { get; set; } + /// + /// 检查对象 + /// + [Description("检查对象")] + [DataFieldIngore] + public virtual string StrCheckObject { get; set; } + /// /// 检查内容 /// diff --git a/APT.MS.Domain/Entities/BS/T_BS_OPERATE_LOG.cs b/APT.MS.Domain/Entities/BS/T_BS_OPERATE_LOG.cs index 350181f..5122ab6 100644 --- a/APT.MS.Domain/Entities/BS/T_BS_OPERATE_LOG.cs +++ b/APT.MS.Domain/Entities/BS/T_BS_OPERATE_LOG.cs @@ -63,9 +63,9 @@ namespace APT.MS.Domain.Entities.BS public DateTime? OPERTETIME { get; set; } /// - /// 是否超时 + /// 是否按时 /// - [Description("是否超时")] + [Description("是否按时")] public bool? ISINTTIME { get; set; } } } \ No newline at end of file diff --git a/APT.MS.Domain/Enums/BS/BSEnums.cs b/APT.MS.Domain/Enums/BS/BSEnums.cs index 4163887..952bb7d 100644 --- a/APT.MS.Domain/Enums/BS/BSEnums.cs +++ b/APT.MS.Domain/Enums/BS/BSEnums.cs @@ -134,19 +134,19 @@ namespace APT.MS.Domain.Enums /// /// 选矿 /// - [Description("选矿")] + [Description("选矿厂")] MineChoose = 10, /// /// 尾矿 /// - [Description("尾矿")] + [Description("尾矿库")] Minelast = 20, /// /// 矿山 /// - [Description("矿山")] + [Description("露天矿")] Mine = 30, /// @@ -1425,6 +1425,12 @@ namespace APT.MS.Domain.Enums [Description("检查任务确认")] CheckerCheck = 40, + /// + /// 跑批检查登记 48 + /// + [Description("跑批检查登记")] + CheckRegisterRun = 48, + /// /// 检查登记 50 /// @@ -1472,12 +1478,66 @@ namespace APT.MS.Domain.Enums [Description("隐患待上报")] RiskGet = 120, + ///// + ///// 隐患上报 130 (弃用) + ///// + //[Description("隐患上报")] + //RiskSend = 130, + /// - /// 隐患上报 130 + /// 隐患上报审批 130 /// - [Description("隐患上报")] - RiskSend =130, + [Description("隐患上报审批")] + RiskSendAudit = 130, + /// + /// 整改责任人指定落实人 140 + /// + [Description("指定落实人")] + RiskAssignActure = 140, + /// + /// 验收人确认 150 + /// + [Description("验收人确认")] + RiskNoticeCheckerCheck = 150, + + /// + /// 整改落实人确认 160 + /// + [Description("整改落实人确认")] + RiskNoticeActureCheck = 160, + + //延期申请 + + /// + /// 整改落实人确认 180 + /// + [Description("整改落实人整改")] + RiskDeal = 180, + + /// + /// 整改责任人确认 190 + /// + [Description("整改责任人确认")] + RiskDealDealCheck = 190, + + /// + /// 整改验收人确认 200 + /// + [Description("整改验收人确认")] + RiskDealCheckerCheck = 200, + + /// + /// 整改审批 210 + /// + [Description("整改审批")] + RiskDealAudit = 210, + + /// + /// 整改结束 220 + /// + [Description("整改结束")] + RiskEnd = 220, } } \ No newline at end of file diff --git a/APT.MS.Domain/IServices/BS/IBSOperateLogService.cs b/APT.MS.Domain/IServices/BS/IBSOperateLogService.cs index e25767e..cb8e54c 100644 --- a/APT.MS.Domain/IServices/BS/IBSOperateLogService.cs +++ b/APT.MS.Domain/IServices/BS/IBSOperateLogService.cs @@ -6,7 +6,7 @@ using System.Collections.Generic; namespace APT.BaseData.Domain.IServices { - public interface IBSOperateLogService + public interface IBSOperateLogService { /// /// 直接添加多个操作 @@ -23,6 +23,6 @@ namespace APT.BaseData.Domain.IServices /// 默认操作通过的 /// /// - List GetListOperateLog(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserIDLogin, List ListDATA_ID, List ListUserID, List ListUserName, Guid? ORG_ID, Guid? DATA_ID_SUB = null, List ListUserIDDone = null, bool isEnd = true); + List GetListOperateLog(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserIDLogin, List ListDATA_ID, List ListUserID, List ListUserName, Guid? ORG_ID, Guid? DATA_ID_SUB = null, List ListUserIDDone = null, bool isEnd = false, DateTime? TASK_ENDDT = null); } } diff --git a/APT.MS.Services/Services/BS/BSOperateLogService.cs b/APT.MS.Services/Services/BS/BSOperateLogService.cs index 2ca3dea..abdd457 100644 --- a/APT.MS.Services/Services/BS/BSOperateLogService.cs +++ b/APT.MS.Services/Services/BS/BSOperateLogService.cs @@ -35,14 +35,14 @@ namespace APT.BaseData.Services.DomainServices /// SafeCheckID RiskSubmitID /// 登入人ID /// 可为null与 DATA_ID 只有一个 - /// 可为null - /// 可为null + /// 可为null 需要添加下一个节点的人员ID + /// 可为null需要添加下一个节点的人员姓名 /// /// /// 默认操作通过的 /// /// - public List GetListOperateLog(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserIDLogin, List ListDATA_ID, List ListUserID, List ListUserName, Guid? ORG_ID, Guid? DATA_ID_SUB = null, List ListUserIDDone = null, bool isEnd = true) + public List GetListOperateLog(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserIDLogin, List ListDATA_ID, List ListUserID, List ListUserName, Guid? ORG_ID, Guid? DATA_ID_SUB = null, List ListUserIDDone = null, bool isEnd = false, DateTime? TASK_ENDDT = null) { List listResult = new List(); T_BS_OPERATE_LOG modelLogUpdate = null; @@ -50,56 +50,72 @@ namespace APT.BaseData.Services.DomainServices { case OPERATEPOINT_Enums.GotCheck: //系统触发 只是新增 - if (ListUserID != null && ListUserName != null) + if (ListUserID != null && ListUserName != null && ListUserID.Any()) for (int i = 0; i < ListUserID.Count; i++) - listResult.Add(AddModel(OPERATEPOINT, ListDATA_ID[i], ListUserID[i], ListUserName[i], ORG_ID, i)); + listResult.Add(AddModel(OPERATEPOINT, ListDATA_ID[i], ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); break; case OPERATEPOINT_Enums.CheckForm: //BS032保存并发送 到审批流 - modelLogUpdate = GetUpdateDeal(OPERATEPOINT_Enums.GotCheck, DATA_ID, UserIDLogin); + modelLogUpdate = GetUpdateDeal(OPERATEPOINT_Enums.GotCheck, DATA_ID, UserIDLogin, null, TASK_ENDDT); if (modelLogUpdate != null) listResult.Add(modelLogUpdate); - if (ListUserID != null && ListUserName != null) + if (ListUserID != null && ListUserName != null && ListUserID.Any()) for (int i = 0; i < ListUserID.Count; i++) - listResult.Add(AddModel(OPERATEPOINT, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i)); + listResult.Add(AddModel(OPERATEPOINT, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); break; case OPERATEPOINT_Enums.CheckAudit: - modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin);//处理自己的待办日志 + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的待办日志 if (modelLogUpdate != null) listResult.Add(modelLogUpdate); - if (ListUserID != null && ListUserName != null) + if (ListUserID != null && ListUserName != null && ListUserID.Any()) for (int i = 0; i < ListUserID.Count; i++)//最后一个审批人 添加 通知 - listResult.Add(AddModel(OPERATEPOINT_Enums.CheckerCheck, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i)); + listResult.Add(AddModel(OPERATEPOINT_Enums.CheckerCheck, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); break; case OPERATEPOINT_Enums.CheckerCheck: - modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin);//处理自己的 + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的 if (modelLogUpdate != null) listResult.Add(modelLogUpdate); break; + case OPERATEPOINT_Enums.CheckRegisterRun: + //检查登记 + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) //发起检查登记 + listResult.Add(AddModel(OPERATEPOINT_Enums.CheckRegister, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + break; case OPERATEPOINT_Enums.CheckRegister: //检查登记 - modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin);//处理自己的 + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的 if (modelLogUpdate != null) listResult.Add(modelLogUpdate); - if (ListUserID != null && ListUserName != null) + if (ListUserID != null && ListUserName != null && ListUserID.Any()) for (int i = 0; i < ListUserID.Count; i++) //发起检查结果确认 - listResult.Add(AddModel(OPERATEPOINT_Enums.CheckAgree, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i)); + listResult.Add(AddModel(OPERATEPOINT_Enums.CheckAgree, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); break; case OPERATEPOINT_Enums.CheckAgree: - modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin);//处理自己的 + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的 if (modelLogUpdate != null) listResult.Add(modelLogUpdate); - if (ListUserID != null && ListUserName != null) + if (ListUserID != null && ListUserName != null && ListUserID.Any()) for (int i = 0; i < ListUserID.Count; i++) //检查结果确认完 直接到审批 - listResult.Add(AddModel(OPERATEPOINT_Enums.CheckResultAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i)); + listResult.Add(AddModel(OPERATEPOINT_Enums.CheckResultAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); break; case OPERATEPOINT_Enums.CheckResultAudit: - modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin);//处理自己的 + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的 if (modelLogUpdate != null) listResult.Add(modelLogUpdate); if (isEnd) //最后一个审批就归档 { - listResult.Add(AddModel(OPERATEPOINT_Enums.CheckEnd, DATA_ID, UserIDLogin, APT.Infrastructure.Api.AppContext.CurrentSession.UserName, ORG_ID)); + var logEnd = AddModel(OPERATEPOINT_Enums.CheckEnd, DATA_ID, UserIDLogin, APT.Infrastructure.Api.AppContext.CurrentSession.UserName, ORG_ID); + logEnd.OPERTETIME = DateTime.Now; + if (modelLogUpdate != null) + logEnd.ISINTTIME = modelLogUpdate.ISINTTIME; + listResult.Add(logEnd); + } + else if (DATA_ID_SUB != null) + { + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) + listResult.Add(AddModel(OPERATEPOINT_Enums.RiskGet, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); } break; case OPERATEPOINT_Enums.CheckEnd: @@ -108,16 +124,99 @@ namespace APT.BaseData.Services.DomainServices case OPERATEPOINT_Enums.RiskNoticeSD: break; case OPERATEPOINT_Enums.RiskUpSD: + //有用 + listResult.Add(AddModel(OPERATEPOINT_Enums.RiskUpSD, DATA_ID, UserIDLogin, APT.Infrastructure.Api.AppContext.CurrentSession.UserName, ORG_ID, 1, true, DATA_ID_SUB)); + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) + listResult.Add(AddModel(OPERATEPOINT_Enums.RiskInfoCompleteSD, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); break; case OPERATEPOINT_Enums.RiskInfoCompleteSD: break; case OPERATEPOINT_Enums.RiskGet: - //审批结束后 如果有隐患 - if (ListUserID != null && ListUserName != null) + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + if (ListUserID != null && ListUserName != null && ListUserID.Any()) for (int i = 0; i < ListUserID.Count; i++) - listResult.Add(AddModel(OPERATEPOINT, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i)); + listResult.Add(AddModel(OPERATEPOINT_Enums.RiskSendAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); break; - case OPERATEPOINT_Enums.RiskSend: + //case OPERATEPOINT_Enums.RiskSend: + // modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的 + // if (modelLogUpdate != null) + // listResult.Add(modelLogUpdate); + // if (ListUserID != null && ListUserName != null && ListUserID.Any()) + // for (int i = 0; i < ListUserID.Count; i++) + // listResult.Add(AddModel(OPERATEPOINT_Enums.RiskSendAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + // break; + case OPERATEPOINT_Enums.RiskSendAudit: + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) + listResult.Add(AddModel(OPERATEPOINT_Enums.RiskAssignActure, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + break; + case OPERATEPOINT_Enums.RiskAssignActure: + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, DATA_ID_SUB, TASK_ENDDT);//处理自己的 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) + listResult.Add(AddModel(OPERATEPOINT_Enums.RiskNoticeCheckerCheck, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + break; + case OPERATEPOINT_Enums.RiskNoticeCheckerCheck: + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, DATA_ID_SUB, TASK_ENDDT);//处理自己的 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) + listResult.Add(AddModel(OPERATEPOINT_Enums.RiskNoticeActureCheck, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + break; + case OPERATEPOINT_Enums.RiskNoticeActureCheck: + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, DATA_ID_SUB, TASK_ENDDT);//处理自己的 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) + listResult.Add(AddModel(OPERATEPOINT_Enums.RiskDeal, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + break; + case OPERATEPOINT_Enums.RiskDeal: + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, DATA_ID_SUB, TASK_ENDDT);//处理自己的 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) + listResult.Add(AddModel(OPERATEPOINT_Enums.RiskDealDealCheck, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + break; + case OPERATEPOINT_Enums.RiskDealDealCheck: + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, DATA_ID_SUB, TASK_ENDDT);//处理自己的 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) + listResult.Add(AddModel(OPERATEPOINT_Enums.RiskDealCheckerCheck, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + break; + case OPERATEPOINT_Enums.RiskDealCheckerCheck: + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, DATA_ID_SUB, TASK_ENDDT);//处理自己的 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + if (ListUserID != null && ListUserName != null && ListUserID.Any()) + for (int i = 0; i < ListUserID.Count; i++) + listResult.Add(AddModel(OPERATEPOINT_Enums.RiskDealAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB)); + break; + case OPERATEPOINT_Enums.RiskDealAudit: + modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, DATA_ID_SUB, TASK_ENDDT);//处理自己的 + if (modelLogUpdate != null) + listResult.Add(modelLogUpdate); + + var logEndRisk = AddModel(OPERATEPOINT_Enums.RiskEnd, DATA_ID, UserIDLogin, APT.Infrastructure.Api.AppContext.CurrentSession.UserName, ORG_ID); + logEndRisk.OPERTETIME = DateTime.Now; + if (modelLogUpdate != null) + logEndRisk.ISINTTIME = modelLogUpdate.ISINTTIME; + listResult.Add(logEndRisk); + + break; + case OPERATEPOINT_Enums.RiskEnd: break; default: break; @@ -144,8 +243,10 @@ namespace APT.BaseData.Services.DomainServices /// /// /// + /// + /// 是否添加记录 比如没找到记录 直接添加记录 /// - private T_BS_OPERATE_LOG AddModel(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserID, string UserName, Guid? ORG_ID, int ORDERNO = 0) + private T_BS_OPERATE_LOG AddModel(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserID, string UserName, Guid? ORG_ID, int ORDERNO = 0, bool isAddLog = false, Guid? DATA_ID_SUB = null) { T_BS_OPERATE_LOG ModelAdd = new T_BS_OPERATE_LOG() { @@ -153,17 +254,17 @@ namespace APT.BaseData.Services.DomainServices ORG_ID = ORG_ID, LOGTYPE = ((int)OPERATEPOINT) > 80 ? LOGTYPE_Enums.RiskSubmit : LOGTYPE_Enums.SafeCheck, DATA_ID = DATA_ID, - //DATA_ID_SUB = null, + DATA_ID_SUB = DATA_ID_SUB, OPERATEPOINT = OPERATEPOINT, USER_ID = UserID, USRTNAME = UserName, ORDERNO = ORDERNO, //OPERTETIME = null, - ISINTTIME = false, + //ISINTTIME = false, CREATE_TIME = DateTime.Now, CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID }; - if (APT.Infrastructure.Api.AppContext.CurrentSession.UserID.HasValue && APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value == UserID) + if (isAddLog || (APT.Infrastructure.Api.AppContext.CurrentSession.UserID.HasValue && APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value == UserID)) { ModelAdd.OPERTETIME = DateTime.Now;//默认通过 } @@ -178,69 +279,24 @@ namespace APT.BaseData.Services.DomainServices /// /// /// - private T_BS_OPERATE_LOG GetUpdateDeal(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserID, Guid? DATA_ID_SUB = null) + private T_BS_OPERATE_LOG GetUpdateDeal(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserID, Guid? DATA_ID_SUB = null, DateTime? TASK_ENDDT = null) { + if (UserID == Guid.Empty) + { + return null; + } Expression> expression = e => e.DATA_ID == DATA_ID && e.OPERATEPOINT == OPERATEPOINT && e.USER_ID == UserID; if (DATA_ID_SUB.HasValue) expression = expression.And(e => e.DATA_ID_SUB.HasValue && e.DATA_ID_SUB == DATA_ID_SUB); var model = GetEntity(expression); if (model != null) + { model.OPERTETIME = DateTime.Now; + if (TASK_ENDDT != null) + model.ISINTTIME = (model.OPERTETIME > TASK_ENDDT.Value ? false : true); + } return model; } - - ///// - ///// 关闭上一个操作,添加新的操作 - ///// - ///// 当前操作节点 - ///// - ///// - ///// - ///// - //public List GetOperateLog(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserID, string UserName, Guid? ORG_ID, Guid? DATA_ID_SUB, bool isNext = true) - //{ - // T_BS_OPERATE_LOG modelLogUpdate = null; - // T_BS_OPERATE_LOG modelLogAdd = null; - // switch (OPERATEPOINT) - // { - // case OPERATEPOINT_Enums.GotCheck: - // //系统触发 只是新增 - // modelLogAdd = AddModel(OPERATEPOINT, DATA_ID, UserID, UserName, ORG_ID); - // break; - // case OPERATEPOINT_Enums.CheckForm: - // modelLogUpdate = GetUpdate(OPERATEPOINT_Enums.GotCheck, DATA_ID, UserID, DATA_ID_SUB); - // modelLogAdd = AddModel(OPERATEPOINT, DATA_ID, UserID, UserName, ORG_ID); - - // break; - // case OPERATEPOINT_Enums.CheckAudit: - // break; - // case OPERATEPOINT_Enums.CheckerCheck: - // break; - // case OPERATEPOINT_Enums.CheckRegister: - // break; - // case OPERATEPOINT_Enums.CheckAgree: - // break; - // case OPERATEPOINT_Enums.CheckResultAudit: - // break; - // case OPERATEPOINT_Enums.CheckEnd: - // break; - // case OPERATEPOINT_Enums.RiskNotice: - // break; - // case OPERATEPOINT_Enums.RiskUp: - // break; - // case OPERATEPOINT_Enums.RiskInfoComplete: - // break; - // case OPERATEPOINT_Enums.RiskGet: - // break; - // case OPERATEPOINT_Enums.RiskSend: - // break; - // default: - // break; - // } - - // return new List() { modelLogAdd ?? modelLogAdd, modelLogUpdate ?? modelLogUpdate }; - //} - } } \ No newline at end of file diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSCheckContentsController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSCheckContentsController.cs index 52cad85..9b8f3ab 100644 --- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSCheckContentsController.cs +++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSCheckContentsController.cs @@ -173,15 +173,49 @@ namespace APT.BS.WebApi.Controllers.Api { return SafeExecute(() => { + if (entity.Nav_ListCheckQuestion == null || !entity.Nav_ListCheckQuestion.Any()) + { + throw new Exception("检查问题不能为空!"); + } var listQuestions = entity.Nav_ListCheckQuestion; entity.Nav_ListCheckQuestion = null; - this.UnifiedCommit(() => + if (!string.IsNullOrEmpty(entity.StrCheckObject)) { - if (entity != null) - UpdateEntityNoCommit(entity); - if (listQuestions != null && listQuestions.Any()) - BantchSaveEntityNoCommit(listQuestions); - }); + List list = entity.StrCheckObject.Split('_', StringSplitOptions.RemoveEmptyEntries).ToList(); + for (int i = 0; i < list.Count; i++) + { + try + { + entity.CHECKOBJECT = (BSMineTypeEnum)int.Parse(list[i]); + if (i > 0) + { + entity.ID = Guid.NewGuid(); + foreach (var item in listQuestions) + { + item.CHECK_CONTENTS_ID = entity.ID; + } + } + this.UnifiedCommit(() => + { + if (entity != null) + UpdateEntityNoCommit(entity); + if (listQuestions != null && listQuestions.Any()) + BantchSaveEntityNoCommit(listQuestions); + }); + } + catch { } + } + } + else + { + this.UnifiedCommit(() => + { + if (entity != null) + UpdateEntityNoCommit(entity); + if (listQuestions != null && listQuestions.Any()) + BantchSaveEntityNoCommit(listQuestions); + }); + } return true; }); } diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSCheckMainController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSCheckMainController.cs index 2e6c37d..bb88bec 100644 --- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSCheckMainController.cs +++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSCheckMainController.cs @@ -252,6 +252,8 @@ namespace APT.BS.WebApi.Controllers.Api //第一行是标题 跳过 int rowAll = dtSource.Rows.Count; + List list = DataHelper.GetEnum("BSMineTypeEnum"); + EnumsResult? enumCheck = null; for (int i = 0; i < rowAll; i++) { #region 不能为空 @@ -280,26 +282,13 @@ namespace APT.BS.WebApi.Controllers.Api strCheckObject = dtSource.Rows[i][0].ToString().Trim(); ICheckObject = 0; - switch (strCheckObject) + + enumCheck = list.FirstOrDefault(e => e.NAME == strCheckObject); + if (enumCheck != null) { - case "全公司": - ICheckObject = 0; - break; - case "选矿": - ICheckObject = 10; - break; - case "尾矿": - ICheckObject = 20; - break; - case "矿山": - ICheckObject = 30; - break; - case "地下矿": - ICheckObject = 40; - break; - default: - break; + ICheckObject = enumCheck.ID; } + #endregion #region 检查区域 1 diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitController.cs index bac1665..ee08ae9 100644 --- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitController.cs +++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitController.cs @@ -30,6 +30,7 @@ namespace APT.BS.WebApi.Controllers.Api IPFCodeRuleService CodeRuleService { get; set; } IPFSysLogService SysLogService { get; set; } IFMDepartmentService DepartmentService { get; set; } + IBSOperateLogService OperateLogService { get; set; } ///// ///// 回调 @@ -38,7 +39,7 @@ namespace APT.BS.WebApi.Controllers.Api ///// //public delegate void DelegateCallBack(string CALLBACK_INTERFACE, string DATA_ID); - public BSRiskSubmitController(IFMNotificationTaskService notificationTaskService, IFMFlowPermitService mFlowPermitService, IPFCodeRuleService codeRuleService, IPFSysLogService sysLogService, IPFApproveCallBackService approveCallBackService, IFMDepartmentService departmentService) + public BSRiskSubmitController(IFMNotificationTaskService notificationTaskService, IFMFlowPermitService mFlowPermitService, IPFCodeRuleService codeRuleService, IPFSysLogService sysLogService, IPFApproveCallBackService approveCallBackService, IFMDepartmentService departmentService, IBSOperateLogService operateLogService) { NotificationTaskService = notificationTaskService; MFlowPermitService = mFlowPermitService; @@ -46,6 +47,7 @@ namespace APT.BS.WebApi.Controllers.Api SysLogService = sysLogService; ApproveCallBackService = approveCallBackService; DepartmentService = departmentService; + OperateLogService = operateLogService; //DelegateCallBack callBack = new DelegateCallBack(CallBACK); //callBack += CallBACK; } @@ -106,8 +108,14 @@ namespace APT.BS.WebApi.Controllers.Api modelSub = new T_BS_RISK_SUBMIT(); modelSub.ID = Guid.NewGuid(); modelSub.CODE = entity.CODE;//替换成同一个 - - + if (entity.CHECKOBJECT.HasValue) + { + try + { + modelSub.CHECKOBJECT = (BSMineTypeEnum)entity.CHECKOBJECT; + } + catch { } + } modelSub.NAME = entity.Nav_CheckTypeLevel.Nav_Enums.NAME + entity.Nav_CheckType.NAME; modelSub.Nav_Check = entity; modelSub.Nav_CheckType = entity.Nav_CheckType; @@ -2966,13 +2974,21 @@ namespace APT.BS.WebApi.Controllers.Api listUser = GetEntities(e => listUserID.Contains(e.ID), null); } } - + DateTime? TASK_ENDDT = null; + if (task != null) + { + TASK_ENDDT = task.TASK_ENDDT; + } + List listLog = new List(); foreach (var item in entityDeal) { var entity = item.Nav_SubmitContent; listContents.Add(entity); entity.RiskContentState = (int)RiskContentState.ActualDealCheck; listTask.Add(NotificationTaskService.InsertUserNoticeTaskModel("隐患整改单:" + entity.NAME.Replace("隐患整改通知:", ""), item.ID, entity.ORG_ID, entity.ACTUAL_DEAL_USER_ID.Value, listUser.FirstOrDefault(e => e.ID == entity.ACTUAL_DEAL_USER_ID.Value)?.NAME, DateTime.Now, item.Nav_SubmitContent.LastDateUser.Value, (int)FMNoticeTypeEnum.消息, "BS044")); + + + listLog.AddRange(OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.RiskNoticeActureCheck, entity.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, new List() { entity.ACTUAL_DEAL_USER_ID.Value }, new List() { listUser.FirstOrDefault(e => e.ID == entity.ACTUAL_DEAL_USER_ID.Value)?.NAME }, entity.ORG_ID, item.RISK_SUBMIT_CONTENT_ID, null, false, TASK_ENDDT)); } this.UnifiedCommit(() => @@ -2982,6 +2998,8 @@ namespace APT.BS.WebApi.Controllers.Api BantchSaveEntityNoCommit(listContents); if (listTask != null && listTask.Any()) BantchSaveEntityNoCommit(listTask); + if (listLog != null && listLog.Any()) + BantchSaveEntityNoCommit(listLog); if (task != null)//代办消息 清除 UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); }); @@ -3174,6 +3192,12 @@ namespace APT.BS.WebApi.Controllers.Api T_FM_NOTIFICATION_TASK task = null; GetEntityTask(entity.TaskID, ref task, "BS044_SHOWPRINT"); + DateTime? TASK_ENDDT = null; + if (task != null) + { + TASK_ENDDT = task.TASK_ENDDT; + } + var listLog = OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.RiskDeal, entity.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, new List() { entity.DEAL_USER_ID.Value }, new List() { userDealName }, entity.ORG_ID, entity.RISK_SUBMIT_CONTENT_ID, null, false, TASK_ENDDT); //修改 model UnifiedCommit(() => @@ -3188,6 +3212,8 @@ namespace APT.BS.WebApi.Controllers.Api BantchSaveEntityNoCommit(files); if (filesAfter != null && filesAfter.Any())//检查后附件 BantchSaveEntityNoCommit(filesAfter); + if (listLog != null && listLog.Any())//日志 + BantchSaveEntityNoCommit(listLog); //if (signDeal != null && signDeal.Any())//整改人签名 // BantchSaveEntityNoCommit(signDeal); }); @@ -3821,13 +3847,15 @@ namespace APT.BS.WebApi.Controllers.Api // throw new Exception("改整改记录验收人已验收,操作失败!"); //} } + DateTime? TASK_ENDDT = null; + if (task != null) + TASK_ENDDT = task.TASK_ENDDT; if (entity.DEALSITUATION == (int)DealSituation.OK) { //通过 if (content.RiskContentState == (int)RiskContentState.DealSend)//整改落实人 提交整改记录 整改责任人 验收 { - #region 整改责任人验收通过 给验收人发送审核待办 content.RiskContentState = (int)RiskContentState.DealSign;//整改责任人已经签名 @@ -3836,6 +3864,8 @@ namespace APT.BS.WebApi.Controllers.Api DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_Checker_Check, entity.ORG_ID.Value, DateTime.Now, null, content.LastDateUser); var notice = NotificationTaskService.InsertUserNoticeTaskModel("验收人确认整改:" + entity.NAME, entity.ID, entity.ORG_ID, entity.CHECK_USER_ID.Value, entity.Nav_UserCheck.NAME, DateTime.Now, dtEnd, (int)FMNoticeTypeEnum.消息, "BS044_CHECK");//隐患整改验收单 + var listLog = OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.RiskDealDealCheck, entity.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, new List() { entity.CHECK_USER_ID.Value }, new List() { entity.Nav_UserCheck.NAME }, entity.ORG_ID, content.ID, null, false, TASK_ENDDT); + this.UnifiedCommit(() => { UpdateEntityNoCommit(entity);//审核信息 验收状态修改 审批意见 完成情况 @@ -3843,6 +3873,8 @@ namespace APT.BS.WebApi.Controllers.Api UpdateEntityNoCommit(notice);//给验收人发送整改单通知 if (task != null)//代办消息 清除 UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); + if (listLog != null && listLog.Any()) + BantchSaveEntityNoCommit(listLog); }); #endregion @@ -3898,7 +3930,7 @@ namespace APT.BS.WebApi.Controllers.Api UpdateEntityNoCommit(entity); //保存主表 NoCommit //BantchSaveEntityNoCommit(sign); //验收人签名 UpdateEntityNoCommit(content);//上报明细 修改状态 - }, entity.APPROVE_ID, approveUserId, null, null, listCode[1], "", null, "", FMTASKTYPE.BS_RiskUp_DealAudit); + }, entity.APPROVE_ID, approveUserId, null, null, listCode[1], "", null, "", FMTASKTYPE.BS_RiskUp_DealAudit, null, null, (int)OPERATEPOINT_Enums.RiskDealCheckerCheck, content.RISK_SUBMIT_ID, content.ID); #endregion } @@ -5629,12 +5661,15 @@ namespace APT.BS.WebApi.Controllers.Api List listSubmitContentReason = new List(); List listApproveId = new List(); List listId = new List(); + List listDataID_Sub = new List(); List listParam = new List(); List ListDepIDNone = new List(); //责任部门ID //通知表单 List listSubmitNotice = new List(); int rowIndex = 0; + Dictionary> dicLevelSubID = new Dictionary>(); + List listLevel = new List(); if (listRiskSubminContentl.Any() && listRiskSubminContentl.Count > 0) { foreach (var item in listRiskSubminContentl) @@ -5688,15 +5723,25 @@ namespace APT.BS.WebApi.Controllers.Api item.RISK_SUBMIT_NOTICE_ID = modelNotice.ID; listId.Add(modelNotice.ID); + //listDataID_Sub.Add(item.ID); + listLevel.Add(item.QUESTION_LEVEL); listParam.Add(modelNotice.QUESTION_LEVEL.ToString()); listApproveId.Add(modelNotice.APPROVE_ID.Value); + dicLevelSubID.Add(item.QUESTION_LEVEL, new List() { item.ID }); } else { item.APPROVE_ID = subTemp.APPROVE_ID; item.RISK_SUBMIT_NOTICE_ID = subTemp.ID; + + var subIDs = dicLevelSubID[item.QUESTION_LEVEL]; + subIDs.Add(item.ID); + //回头看看是否正常 } + //listDataID_Sub.Add(item.ID);//每条明细都要添加记录 + + //if (!listParam.Contains(item.QUESTION_LEVEL.ToString()) && !item.RISK_SUBMIT_NOTICE_ID.HasValue)//&& !item.RISK_SUBMIT_NOTICE_ID.HasValue 通知不能重复 2023-04-26(概率发生 看反馈 没得验证) //{ // #region 不包含此等级 添加通知 @@ -5905,7 +5950,7 @@ namespace APT.BS.WebApi.Controllers.Api BantchSaveEntityNoCommit(listRiskSubminContentl); if (listSubmitContentReason.Any()) BantchSaveEntityNoCommit(listSubmitContentReason); - }, listParam, listApproveId, ApproveIDDependUserID, "BS006_VIEW", null, ListDepIDNone, FMTASKTYPE.BS_RiskUp_Audit);// null =>ApproveIDDependUserID + }, listParam, listApproveId, ApproveIDDependUserID, "BS006_VIEW", null, ListDepIDNone, FMTASKTYPE.BS_RiskUp_Audit, null, null, (int)OPERATEPOINT_Enums.RiskGet, entity.ID, listLevel, dicLevelSubID);// null =>ApproveIDDependUserID } return true; }); @@ -6008,7 +6053,7 @@ namespace APT.BS.WebApi.Controllers.Api } T_FM_NOTIFICATION_TASK taskMaster = null; T_FM_NOTIFICATION_TASK taskEnd = null; - + List listLog = null; //手动上报 保存并发送 通知安全员 if (risk.SUBMIT_STATUS == (int)BSSubmitStatusEnum.Temp) { @@ -6083,6 +6128,7 @@ namespace APT.BS.WebApi.Controllers.Api { taskEnd = NotificationTaskService.GetEntityTask(entity.TaskID, "BS072_SHOWPRINT"); } + listLog = OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.RiskUpSD, risk.ID, risk.USER_ID.Value, null, new List() { UserId }, new List() { userName }, risk.ORG_ID, entity.ID); } entity.RiskContentState = null; @@ -6098,6 +6144,8 @@ namespace APT.BS.WebApi.Controllers.Api UpdateEntityNoCommit(taskMaster); if (taskEnd != null) UpdateEntityNoCommit(taskEnd); + if (listLog != null && listLog.Any()) + BantchSaveEntityNoCommit(listLog); }); return true; @@ -6243,12 +6291,15 @@ namespace APT.BS.WebApi.Controllers.Api var entity = entityContent.Nav_Submit; if (entity == null) { + //页面传值过来是null entity = GetEntity(entityContent.RISK_SUBMIT_ID.Value); entity.SUBMIT_STATUS = entityContent.SUBMIT_STATUS; if (entityContent.CHECK_TYPE_ID.HasValue) entity.CHECK_TYPE_ID = entityContent.CHECK_TYPE_ID; if (entityContent.CHECK_TYPE_LEVEL_ID.HasValue) entity.CHECK_TYPE_LEVEL_ID = entityContent.CHECK_TYPE_LEVEL_ID; + if (entityContent.CHECKOBJECT.HasValue) + entity.CHECKOBJECT = entityContent.CHECKOBJECT; } var files = entityContent.Nav_Files; entityContent.Nav_Files = null; @@ -6260,6 +6311,8 @@ namespace APT.BS.WebApi.Controllers.Api if (entity.SUBMIT_STATUS != (int)BSSubmitStatusEnum.Temp) { //手动上报 + if (!entity.CHECKOBJECT.HasValue) + throw new Exception("请选择检查区域!"); if (!entity.CHECK_TYPE_ID.HasValue) throw new Exception("请选择检查类型!"); if (!entity.CHECK_TYPE_LEVEL_ID.HasValue) @@ -6529,7 +6582,9 @@ namespace APT.BS.WebApi.Controllers.Api //如果是手动隐患上报 根据明细的 整改责任人 来走审批流 20240118 Guid? ApproveIDDependUserID = entityContent.DEAL_USER_ID; - + List listLevel = new List() { entityContent.QUESTION_LEVEL }; + Dictionary> dic = new Dictionary>(); + dic.Add(entityContent.QUESTION_LEVEL, new List() { entityContent.ID }); //?????? ////给通知责任人 发送通知 ////通知责任人 确定 后 走审批流 @@ -6547,7 +6602,7 @@ namespace APT.BS.WebApi.Controllers.Api BantchSaveEntityNoCommit(files); if (listRiskQuestionReason != null && listRiskQuestionReason.Any()) BantchSaveEntityNoCommit(listRiskQuestionReason); - }, listParam, listApproveId, ApproveIDDependUserID, "BS073_SHOWPRINT", null, ListDepIDNone, FMTASKTYPE.BS_RiskUp_Audit);// null =>ApproveIDDependUserID + }, listParam, listApproveId, ApproveIDDependUserID, "BS073_SHOWPRINT", null, ListDepIDNone, FMTASKTYPE.BS_RiskUp_Audit, null, null, ((int)OPERATEPOINT_Enums.RiskInfoCompleteSD), entity.ID, listLevel, dic);// null =>ApproveIDDependUserID } return true; }); @@ -6593,7 +6648,7 @@ namespace APT.BS.WebApi.Controllers.Api List listDealF = new List(); List listNoticeDeal = new List(); T_BS_RISK_SUBMIT_CONTENT_DEAL dealTemp = null; - + List listLog = new List(); listRiskSubminContentl.ForEach(item => { if (item.CHECK_USER_ID == LoginID) @@ -6607,7 +6662,13 @@ namespace APT.BS.WebApi.Controllers.Api } }); - + T_FM_NOTIFICATION_TASK task = null; + GetEntityTask(TaskID, ref task); + DateTime? TASK_ENDDT = null; + if (task != null) + { + TASK_ENDDT = task.TASK_ENDDT; + } //给验收人 发送通知 DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_ActualDealNotice, entity.ORG_ID.Value, DateTime.Now, null, null); foreach (var item in listRiskSubminContentl) @@ -6674,11 +6735,12 @@ namespace APT.BS.WebApi.Controllers.Api notice.CREATE_TIME = dtNow; listNoticeDeal.Add(notice); + + + listLog.AddRange(OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.RiskNoticeCheckerCheck, entity.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, new List() { dealTemp.ACTUAL_DEAL_USER_ID.Value }, new List() { item.Nav_UserActualDeal.NAME }, entity.ORG_ID, item.ID, null, false, TASK_ENDDT)); } } - T_FM_NOTIFICATION_TASK task = null; - GetEntityTask(TaskID, ref task); /// 整改落实人 确认整改通知单 系统发送整改单给整改落实人 //UpdateActualDealRecord @@ -6701,6 +6763,9 @@ namespace APT.BS.WebApi.Controllers.Api } + //OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.RiskAssignActure, entity.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, ListNoticeAll, ListNoticeAllNAME, entity.ORG_ID, item.ID, null, false, TASK_ENDDT); + + this.UnifiedCommit(() => { UpdateEntityNoCommit(entity);//保存状态 @@ -6712,6 +6777,8 @@ namespace APT.BS.WebApi.Controllers.Api BantchSaveEntity(listRiskSubminContentl); //保存子表 if (listNoticeDeal != null && listNoticeDeal.Any())//整改责任人 按条数 收到整改单 BantchSaveEntity(listNoticeDeal); + if (listLog != null && listLog.Any())//操作日志 + BantchSaveEntity(listLog); if (task != null)//代办消息 清除 UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); }); diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitNoticePersonController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitNoticePersonController.cs index 9ce94a6..7aaad49 100644 --- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitNoticePersonController.cs +++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSRiskSubmitNoticePersonController.cs @@ -26,13 +26,15 @@ namespace APT.BS.WebApi.Controllers.Api IPFCodeRuleService CodeRuleService { get; set; } IPFApproveCallBackService ApproveCallBackService { get; set; } IFMDepartmentService DepartmentService { get; set; } - public BSRiskSubmitNoticePersonController(IFMNotificationTaskService notificationTaskService, IFMFlowPermitService mFlowPermitService, IPFCodeRuleService codeRuleService, IPFApproveCallBackService approveCallBackService, IFMDepartmentService departmentService) + IBSOperateLogService OperateLogService { get; set; } + public BSRiskSubmitNoticePersonController(IFMNotificationTaskService notificationTaskService, IFMFlowPermitService mFlowPermitService, IPFCodeRuleService codeRuleService, IPFApproveCallBackService approveCallBackService, IFMDepartmentService departmentService, IBSOperateLogService operateLogService) { NotificationTaskService = notificationTaskService; MFlowPermitService = mFlowPermitService; CodeRuleService = codeRuleService; ApproveCallBackService = approveCallBackService; DepartmentService = departmentService; + OperateLogService = operateLogService; } @@ -169,6 +171,7 @@ namespace APT.BS.WebApi.Controllers.Api // throw new Exception("您不是此单的整改责任人,不能处理此单据!"); //} T_FM_NOTIFICATION_TASK task = null; + DateTime? TASK_ENDDT = null; if (entity.OPERATETYPE == OperateType.Save) { List listIndex = new List(); @@ -194,6 +197,8 @@ namespace APT.BS.WebApi.Controllers.Api } task = NotificationTaskService.GetEntityTask(entity.TaskID, "BS074_SHOWPRINT"); + if (task != null) + TASK_ENDDT = task.TASK_ENDDT; } //审核人 同意 @@ -202,7 +207,9 @@ namespace APT.BS.WebApi.Controllers.Api //entity.Nav_ListRiskSubmitContent = null;//不能有 不然 对应外键 会被清空 List ListNoticeAll = new List(); List ListNoticeAllNAME = new List(); + List listOperateLog = new List(); DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_Deal, entity.ORG_ID.Value, DateTime.Now, null, null); + listRiskSubminContentl.ForEach(item => { //item.ACTUAL_DEAL_USER_ID = item.DEAL_USER_ID;//整改落实人默认 整改责任人 @@ -219,10 +226,11 @@ namespace APT.BS.WebApi.Controllers.Api //给责任人 发送通知 listNoticeDeal.AddRange(NotificationTaskService.InsertUserNoticeTaskModels("验收人确认:" + entity.NAME.Replace("隐患整改通知:", ""), entity.ID, entity.ORG_ID, ListNoticeAll, ListNoticeAllNAME, DateTime.Now, ((item.LastDateUser.HasValue && item.LastDateUser.Value < dtEnd) ? item.LastDateUser.Value : dtEnd), (int)FMNoticeTypeEnum.消息, "BS042_SHOWPRINT"));//HM001_SHOWPRINT "整改责任人确认:" + entity.NAME.Replace("隐患整改通知:", "") + + listOperateLog.AddRange(OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.RiskAssignActure, entity.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, ListNoticeAll, ListNoticeAllNAME, entity.ORG_ID, item.ID, null, false, TASK_ENDDT)); } }); - this.UnifiedCommit(() => { UpdateEntityNoCommit(entity);//保存状态 @@ -230,6 +238,8 @@ namespace APT.BS.WebApi.Controllers.Api BantchSaveEntity(listRiskSubminContentl); //保存子表 if (listNoticeDeal != null && listNoticeDeal.Any())//整改责任人 按条数 收到整改单 BantchSaveEntity(listNoticeDeal); + if (listOperateLog != null && listOperateLog.Any())//日志 + BantchSaveEntity(listOperateLog); if (task != null)//代办消息 清除 UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); }); diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckController.cs index 4a79776..8aae82a 100644 --- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckController.cs +++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckController.cs @@ -33,7 +33,8 @@ namespace APT.BS.WebApi.Controllers.Api IFMDepartmentService DepartmentService { get; set; } IPFSysLogService SysLogService { get; set; } IFMUserService UserService { get; set; } - public BSSafeCheckController(IFMNotificationTaskService notificationTaskService, IFMFlowPermitService mFlowPermitService, IPFCodeRuleService codeRuleService, IPFApproveCallBackService approveCallBackService, IFMDepartmentService departmentService, IPFSysLogService sysLogService, IFMUserService userService) + IBSOperateLogService OperateLogService { get; set; } + public BSSafeCheckController(IFMNotificationTaskService notificationTaskService, IFMFlowPermitService mFlowPermitService, IPFCodeRuleService codeRuleService, IPFApproveCallBackService approveCallBackService, IFMDepartmentService departmentService, IPFSysLogService sysLogService, IFMUserService userService, IBSOperateLogService operateLogService) { NotificationTaskService = notificationTaskService; MFlowPermitService = mFlowPermitService; @@ -42,6 +43,7 @@ namespace APT.BS.WebApi.Controllers.Api DepartmentService = departmentService; SysLogService = sysLogService; UserService = userService; + OperateLogService = operateLogService; } #region 安全检查表单设计 @@ -1268,7 +1270,7 @@ namespace APT.BS.WebApi.Controllers.Api #region 数据验证 表单数据处理 listDetail listUser //string FORM_CODE = ""; - if (entity.Nav_ListSafeCheckDetail == null || entity.Nav_ListSafeCheckDetail.Count < 1) + if (entity.Nav_ListSafeCheckDetail == null || !entity.Nav_ListSafeCheckDetail.Any()) { this.ThrowError("010001", "检查明细不能为空【选择检查项目分类,系统会自动带出检查明细】!"); } @@ -2099,7 +2101,7 @@ namespace APT.BS.WebApi.Controllers.Api BantchDeleteEntityNoCommit(listDelCategoryID); if (listDelUserIDs != null) BantchDeleteEntityNoCommit(listDelUserIDs); - }, entity.APPROVE_ID, null, null, null, null, "BS032_SHOWPRINT", appOperaterID, approveTaskName, FMTASKTYPE.BS_SafeCheck_Make_Audit, null, entity.CHECKTIME, (int)OPERATEPOINT_Enums.CheckForm);//, entity.LIMITDATETIME + }, entity.APPROVE_ID, null, null, null, null, "BS032_SHOWPRINT", appOperaterID, approveTaskName, FMTASKTYPE.BS_SafeCheck_Make_Audit, null, entity.CHECKTIME, (int)OPERATEPOINT_Enums.CheckForm, entity.ID);//, entity.LIMITDATETIME #endregion } @@ -2206,6 +2208,8 @@ namespace APT.BS.WebApi.Controllers.Api } catch { } } + var listOperateLog = OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.CheckerCheck, entity.ID, LoginID, null, null, null, entity.ORG_ID, null, null, false, task.TASK_ENDDT); + if (isLast) { //最后一个检查 给检查主要负责人 发送待办 @@ -2220,6 +2224,8 @@ namespace APT.BS.WebApi.Controllers.Api BantchSaveEntityNoCommit(listDetailUser); if (task != null)//代办消息 清除 UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); + if (listOperateLog != null && listOperateLog.Any()) + BantchSaveEntityNoCommit(listOperateLog); }); //List listUserID = new List(); @@ -2267,6 +2273,8 @@ namespace APT.BS.WebApi.Controllers.Api { if (listDetailUser.Count > 0) BantchSaveEntityNoCommit(listDetailUser); + if (listOperateLog != null && listOperateLog.Any()) + BantchSaveEntityNoCommit(listOperateLog); if (task != null)//代办消息 清除 UpdateEntityNoCommit(task, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID"); }); @@ -4375,6 +4383,37 @@ namespace APT.BS.WebApi.Controllers.Api } else { + List listUserIDLog = new List(); + List listUserNameLog = new List(); + foreach (var item in listDetail) + { + IEnumerable listUserLogID = null; + Func predicate = e => e.USER_ID != UserID && !listUserIDLog.Contains(e.USER_ID); + if (!isSign) + { + //别人 且不是登记人 + listUserLogID = item.Nav_ListCheckDetailUser.Where(e => e.USER_ID != UserID && !listUserIDLog.Contains(e.USER_ID) && !e.ISMAINCHECK).Select(e => e.USER_ID); + } + else + { + //别人 + listUserLogID = item.Nav_ListCheckDetailUser.Where(e => e.USER_ID != UserID && !listUserIDLog.Contains(e.USER_ID)).Select(e => e.USER_ID); + } + + if (listUserLogID != null && listUserLogID.Any()) + { + listUserIDLog.AddRange(listUserLogID); + } + } + if (listUserIDLog != null && listUserIDLog.Any()) + { + var listUserLog = GetEntities(e => listUserIDLog.Contains(e.ID), null, null); + foreach (var item in listUserIDLog) + { + listUserNameLog.Add(listUserLog.FirstOrDefault(e => e.ID == item)?.NAME); + } + } + string FORM_CODE = "BS034"; //代办 T_FM_NOTIFICATION_TASK task = null; @@ -4384,6 +4423,7 @@ namespace APT.BS.WebApi.Controllers.Api task = NotificationTaskService.GetTaskFinishModel(entity.TaskID, "BS034_VIEW"); } + List listOpLog = null; //检查确认记录 T_BS_SAFE_CHECK_RECORD Record = null; if (!isSign) @@ -4415,6 +4455,8 @@ namespace APT.BS.WebApi.Controllers.Api { taskCheck.NOTICE_STATUS = 2; } + + listOpLog = OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.CheckerCheck, entity.ID, UserID, null, listUserIDLog, listUserNameLog, entity.ORG_ID, null, null, false, taskCheck.TASK_ENDDT);//检查记录确认 默认 处理 检查通知确认 } } @@ -4432,11 +4474,23 @@ namespace APT.BS.WebApi.Controllers.Api // FORM_CODE = "BS034"; //} + + #region 查看是否都审批完成 新版 (如果中途添加审批流 可能直接就是审批人 会默认过(其实多组人填单,还有人没填就走了一个审批流) 最后一个确认人 还是给第一个审批人 发送待办) var UserUnSignCheck = this.GetEntities(e => e.SAFE_CHECK_ID == entity.ID && e.USER_ID != UserID && e.SAFECHECKSTATE.HasValue && e.SAFECHECKSTATE != 80, null, null);//&& !e.ISCHECK = > ISSAMEMAINCHECKOK && !e.ISCHECK if (UserUnSignCheck != null && UserUnSignCheck.Count() > 0) { + listOpLog = new List(); + if (isSign) + { + listOpLog.AddRange(OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.CheckRegister, entity.ID, UserID, null, listUserIDLog, listUserNameLog, entity.ORG_ID, null, null, false, (task != null ? task.TASK_ENDDT : null)));//操作记录 + } + else + { + listOpLog.AddRange(OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.CheckAgree, entity.ID, UserID, null, listUserIDLog, listUserNameLog, entity.ORG_ID, null, null, false, (task != null ? task.TASK_ENDDT : null)));//操作记录 + } + //如果还有人没有填单或者确认 //如果是主要检查人 判断 给次要检查人 添加 待办 @@ -4588,10 +4642,16 @@ namespace APT.BS.WebApi.Controllers.Api BantchSaveEntityNoCommit(listCheckRecordDetail);//确认 明细 if (Record != null) UpdateEntityNoCommit(Record); //保存主表 + if (listOpLog != null && listOpLog.Any()) + BantchSaveEntityNoCommit(listOpLog);//日志 }); } else { + ////最后一个人确认 、 发送审批流 + //listOpLog = OperateLogService.GetListOperateLog(OPERATEPOINT_Enums.CheckAgree, entity.ID, UserID, null, listUserIDLog, listUserNameLog, entity.ORG_ID, null, null, false, (task != null ? task.TASK_ENDDT : null));//操作记录 + + if (entity.STATECHECK == STATECHECK.Approving && entity.APPROVE_CHECKAUDIT_ID.HasValue) { if (entity.TaskID != Guid.Empty) @@ -4772,7 +4832,9 @@ namespace APT.BS.WebApi.Controllers.Api // BantchDeleteEntityNoCommit(listIDDel); if (Record != null)//检查记录 UpdateEntityNoCommit(Record); - }, entity.APPROVE_CHECKAUDIT_ID, entity.USERID_DOPLAN, null, null, null, "BS034_VIEW", null, entity.NAME.Replace("任务表", "记录表") + "-审批", FMTASKTYPE.BS_SafeCheck_Audit, null, entity.LIMITDATETIME); + if (listOpLog != null && listOpLog.Count > 0) + BantchSaveEntityNoCommit(listOpLog);//日志 + }, entity.APPROVE_CHECKAUDIT_ID, entity.USERID_DOPLAN, null, null, null, "BS034_VIEW", null, entity.NAME.Replace("任务表", "记录表") + "-审批", FMTASKTYPE.BS_SafeCheck_Audit, null, entity.LIMITDATETIME, ((int)OPERATEPOINT_Enums.CheckAgree), entity.ID); #endregion From 76147cc052d0b81eb18e720a9d30c08e736bbc04 Mon Sep 17 00:00:00 2001 From: wyw <571921741@qq.com> Date: Thu, 23 May 2024 16:55:54 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=A3=80=E6=9F=A5=E9=80=80=E5=9B=9E?= =?UTF-8?q?=E6=9F=A5=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Api/BSSafeCheckDetailRejectController.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckDetailRejectController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckDetailRejectController.cs index fd6c6a5..d909b15 100644 --- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckDetailRejectController.cs +++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckDetailRejectController.cs @@ -187,8 +187,11 @@ namespace APT.BS.WebApi.Controllers.Api } modelResult.Nav_Reject = modelReject; - T_FM_USER modelUser = GetEntity(modelResult.USERID_REJECT.Value);//.CREATER_ID APP显示退回人 修改 riskSumbitDetailBack - modelReject.Nav_User = modelUser; + if (modelResult.USERID_REJECT.HasValue) + { + T_FM_USER modelUser = GetEntity(modelResult.USERID_REJECT.Value);//.CREATER_ID APP显示退回人 修改 riskSumbitDetailBack + modelReject.Nav_User = modelUser; + } if (DataHelper.GetRequestType(Request.Headers) == 2 && modelResult.Nav_ListCheckDetailQuestion != null && modelResult.Nav_ListCheckDetailQuestion.Any()) { modelResult.Nav_ListCheckDetailQuestion.ForEach(e => From 95a5fb394191d12831359c1f46e45f025c47df03 Mon Sep 17 00:00:00 2001 From: wyw <571921741@qq.com> Date: Thu, 23 May 2024 17:28:22 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E9=80=80=E5=9B=9E=E4=BA=BA=20=E5=8F=96?= =?UTF-8?q?=E5=80=BC=E4=BF=AE=E5=99=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Api/BSSafeCheckDetailRejectController.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckDetailRejectController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckDetailRejectController.cs index d909b15..a646655 100644 --- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckDetailRejectController.cs +++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckDetailRejectController.cs @@ -187,9 +187,12 @@ namespace APT.BS.WebApi.Controllers.Api } modelResult.Nav_Reject = modelReject; - if (modelResult.USERID_REJECT.HasValue) + var userID = modelReject.CREATER_ID; + if (userID == null) + userID = modelResult.USERID_REJECT; + if (userID.HasValue) { - T_FM_USER modelUser = GetEntity(modelResult.USERID_REJECT.Value);//.CREATER_ID APP显示退回人 修改 riskSumbitDetailBack + T_FM_USER modelUser = GetEntity(userID.Value);//.CREATER_ID APP显示退回人 修改 riskSumbitDetailBack modelReject.Nav_User = modelUser; } if (DataHelper.GetRequestType(Request.Headers) == 2 && modelResult.Nav_ListCheckDetailQuestion != null && modelResult.Nav_ListCheckDetailQuestion.Any()) From 1eaa5cecd7a9b3ea60149fffecb6cb2c6c59a8b4 Mon Sep 17 00:00:00 2001 From: wyw <571921741@qq.com> Date: Thu, 23 May 2024 17:32:20 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=A3=80=E6=9F=A5=E7=99=BB=E8=AE=B0=20?= =?UTF-8?q?=E9=80=80=E5=9B=9E=20title?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Api/BSSafeCheckDetailRejectController.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckDetailRejectController.cs b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckDetailRejectController.cs index a646655..764648c 100644 --- a/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckDetailRejectController.cs +++ b/APT.MicroApi/APT.BS.WebApi/Controllers/Api/BSSafeCheckDetailRejectController.cs @@ -312,12 +312,13 @@ namespace APT.BS.WebApi.Controllers.Api //检查明细 IS_REJECTING false USERID_REJECT 置空 //如果有修改 修改之前的检查详情 修改之前的检查明细问题 List listTaskToday = new List(); + var safeCheck = GetEntity(entity.SAFE_CHECK_ID); if (Reject.RESULT == RejectResult.ResultSame) { //相同 var UserReject = GetEntity(entity.USERID_REJECT.Value); - listTaskToday.Add(NotificationTaskService.InsertUserNoticeTaskModel("检查退回结果保持不变", entity.ID, entity.ORG_ID, UserReject.ID, UserReject.NAME, DateTime.Now, 2, "", FMTASKTYPE.Default)); + listTaskToday.Add(NotificationTaskService.InsertUserNoticeTaskModel("检查退回结果保持不变【编号:" + safeCheck.CODE + ",序号:" + entity.ROW_NO + "】", entity.ID, entity.ORG_ID, UserReject.ID, UserReject.NAME, DateTime.Now, 2, "", FMTASKTYPE.Default)); } else @@ -339,7 +340,6 @@ namespace APT.BS.WebApi.Controllers.Api } }); - var safeCheck = GetEntity(entity.SAFE_CHECK_ID); listTaskToday.AddRange(NotificationTaskService.InsertUserNoticeTaskModels("检查明细结果修改【编号:" + safeCheck.CODE + ",序号:" + entity.ROW_NO + "】", entity.ID, entity.ORG_ID, listUserID, listUserName, DateTime.Now, 2, "", FMTASKTYPE.Default)); } }