using APT.BaseData.Domain.Entities; using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.Enums; using APT.BaseData.Domain.IServices; using APT.BaseData.Domain.IServices.FM; using APT.BaseData.Services.DomainServices; using APT.BaseData.Services.Services.FM; using APT.Infrastructure.Core; using APT.MS.Domain.Entities.FO; using APT.MS.Domain.Entities.OG; using APT.MS.Domain.Enums; using APT.Utility; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; namespace APT.FO.WebApi.Controllers { /// /// 动火作业 /// [Route("api/FO/FOFireJobWb")] public partial class FireJobWbController : AuthorizeApiController { IFMFlowPermitService MFlowPermitService { get; set; } IPFCodeRuleService CodeRuleService { get; set; } IPFApproveCallBackService ApproveCallBackService { get; set; } IFMNotificationTaskService NotificationTaskService { get; set; } /// /// FOPreOperSch /// /// public FireJobWbController(IPFCodeRuleService codeRuleService, IFMFlowPermitService mFlowPermitService, IPFApproveCallBackService approveCallBackService, IFMNotificationTaskService notificationTaskService) { CodeRuleService = codeRuleService; MFlowPermitService = mFlowPermitService; ApproveCallBackService = approveCallBackService; NotificationTaskService = notificationTaskService; } [HttpPost, Route("GetEdit")] public JsonActionResult GetEdit([FromBody] KeywordFilter filter) { return SafeExecute(() => { var id = filter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "ID").Value.ToString(); if (string.IsNullOrEmpty(id)) this.ThrowError("060010"); var entity = this.GetEntity(id, "Nav_ApplyUser", "Nav_Company", "Nav_ApplyDepartment", "Nav_Related", "Nav_OperationStep", "Nav_ProductionUnit", "Nav_FireUser.Nav_ImgFile", "Nav_SafeUser.Nav_ImgFile", "Nav_Area", "Nav_Type", "Nav_MonitorUser.Nav_UserSignFiles.Nav_ImgFile", "Nav_Risks", "Nav_Files.Nav_ImgFile", "Nav_Users.Nav_UserType", "Nav_Users.Nav_UserFiles.Nav_ImgFile", "Nav_Users.Nav_Signs.Nav_ImgFile", "Nav_Users.Nav_User", "Nav_DispatchUser.Nav_UserSignFiles.Nav_ImgFile", "Nav_FireFiles.Nav_ImgFile", "Nav_MonitorFiles.Nav_ImgFile"); if (entity != null) { var details = this.GetEntities(t => t.FIRE_JOB_WB_ID == entity.ID, new BaseFilter(entity.ORG_ID), "Nav_DetailFiles.Nav_ImgFile.Nav_File").ToList(); entity.Nav_Details = details.OrderBy(t => t.JOB_STEP).ThenBy(m=>m.NUM).ToList(); } return entity; }); } /// /// 新增修改 /// /// /// [HttpPost, Route("FullUpdate")] public JsonActionResult FullUpdate([FromBody] T_FO_FIRE_JOB_WB entity) { return SafeExecute(() => { var loginUserId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; var departmentId = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; entity.APPLY_USER_ID = loginUserId; entity.APPLY_DEPARTMENT_ID = departmentId; if (entity.COMPANY_ID == null) { entity.COMPANY_ID = this.GetEntity(t => t.PARENT_ID == null)?.ID; } if (entity.PRODUCTION_UNIT_ID == null) { entity.PRODUCTION_UNIT_ID = this.GetEntity(t => t.ID == entity.APPLY_DEPARTMENT_ID)?.PRODUCTION_UNIT_ID; } if (string.IsNullOrEmpty(entity.CODE)) { entity.CODE = "DHWB" + DateTime.Now.ToShortDateString().Replace("/", "") + new Random().Next(1, 999); } if (entity.RELATED_ID == null) { throw new Exception("请选择相关方"); } var fireUser = new List(); var safeUser = new List(); var detailUser = new List(); var deleteFireUserIds = new List(); var deleteSafeUserIds = new List(); var deleteUserSignIds = new List(); var details = entity.Nav_Details; if (details != null && details.Any()) { details = details.Where(t => !t.IS_DELETED).ToList(); } entity.Nav_Details = null; var detailIds = this.GetEntities(t => t.FIRE_JOB_WB_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); var detailFileIds = this.GetEntities(t => detailIds.Contains(t.FIRE_JOB_WB_DETAIL_ID), new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); var detailList = new List(); var detailFileList = new List(); if (details != null && details.Any()) { foreach (var item in details) { if (item.Nav_DetailFiles != null && item.Nav_DetailFiles.Any()) { foreach (var item2 in item.Nav_DetailFiles) { item2.ORG_ID = entity.ORG_ID; item2.FIRE_JOB_WB_DETAIL_ID = item.ID; item2.Nav_ImgFile = null; detailFileList.Add(item2); } } item.ORG_ID = entity.ORG_ID; item.FIRE_JOB_WB_ID = entity.ID; item.Nav_DetailFiles = null; detailList.Add(item); } } var files = entity.Nav_Files; if (files != null && files.Any()) { files = files.Where(t => !t.IS_DELETED).ToList(); } entity.Nav_Files = null; var fileIds = this.GetEntities(t => t.FIRE_JOB_WB_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); var fileList = new List(); if (files != null && files.Any()) { foreach (var item in files) { item.ORG_ID = entity.ORG_ID; item.FIRE_JOB_WB_ID = entity.ID; item.Nav_ImgFile = null; fileList.Add(item); } } var risks = entity.Nav_Risks; if (risks != null && risks.Any()) { risks = risks.Where(t => !t.IS_DELETED).ToList(); } entity.Nav_Risks = null; var riskIds = this.GetEntities(t => t.FIRE_JOB_WB_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); var riskList = new List(); if (risks != null && risks.Any()) { foreach (var item in risks) { item.ORG_ID = entity.ORG_ID; item.FIRE_JOB_WB_ID = entity.ID; riskList.Add(item); } } var users = entity.Nav_Users; if (users != null && users.Any()) { users = users.Where(t => !t.IS_DELETED).ToList(); } entity.Nav_Users = null; var userIds = this.GetEntities(t => t.FIRE_JOB_WB_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); var userFileIds = this.GetEntities(t => userIds.Contains(t.FIRE_JOB_WB_USER_ID), new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); var userFileList = new List(); var userList = new List(); if (users != null && users.Any()) { var userTypes = this.GetEntities(t => t.NAME == "动火操作人员" || t.NAME == "瓦检员" || t.NAME == "喷水人员", new BaseFilter(entity.ORG_ID)); var userTypeIds = userTypes.Select(m => m.ID).ToList(); var dhUser = userTypes.FirstOrDefault(t => t.NAME == "动火操作人员"); if (dhUser == null) { throw new Exception("人员类别未维护动火操作人员,请到系统管理添加名称为动火操作人员的人员类别"); } else { var dhUserHas = users.FirstOrDefault(t => t.USER_TYPE_ID == dhUser.ID); if (dhUserHas == null) { throw new Exception("作业人员必须要有动火操作人员"); } } var dhCers = users.FirstOrDefault(t => t.USER_TYPE_ID == dhUser.ID && t.CERTIFICATE_CODE == null); if (dhCers != null) { throw new Exception("动火操作人员必须填写证书编号"); } var dhfiles = users.FirstOrDefault(t => t.USER_TYPE_ID == dhUser.ID &&(t.Nav_UserFiles == null || !t.Nav_UserFiles.Any())); if (dhfiles != null) { throw new Exception("动火操作人员必须上传附件"); } var wjUser = userTypes.FirstOrDefault(t => t.NAME == "瓦检员"); if (wjUser == null) { throw new Exception("人员类别未维护瓦检员,请到系统管理添加名称为瓦检员的人员类别"); } else { var wjUserHas = users.FirstOrDefault(t => t.USER_TYPE_ID == wjUser.ID); if (wjUserHas == null) { throw new Exception("作业人员必须要有瓦检员"); } } var psUser = userTypes.FirstOrDefault(t => t.NAME == "喷水人员"); if (psUser == null) { throw new Exception("人员类别未维护喷水人员,请到系统管理添加名称为喷水人员的人员类别"); } else { var psUserHas = users.FirstOrDefault(t => t.USER_TYPE_ID == psUser.ID); if (psUserHas == null) { throw new Exception("作业人员必须要有喷水人员"); } } foreach (var item in users) { item.ORG_ID = entity.ORG_ID; item.FIRE_JOB_WB_ID = entity.ID; item.Nav_User = null; item.Nav_UserType = null; if (item.Nav_UserFiles != null && item.Nav_UserFiles.Any()) { foreach (var userFile in item.Nav_UserFiles) { T_FO_FIRE_JOB_WB_USER_FILE item2 = new T_FO_FIRE_JOB_WB_USER_FILE(); item2.ORG_ID = entity.ORG_ID; item2.FIRE_JOB_WB_USER_ID = item.ID; item2.Nav_ImgFile = null; item2.IMG_FILE_ID = userFile.IMG_FILE_ID; userFileList.Add(item2); } } item.Nav_UserFiles = null; userList.Add(item); } } else { throw new Exception("作业人员不能为空"); } var fireFiles = entity.Nav_FireFiles; if (fireFiles != null && fireFiles.Any()) { fireFiles = fireFiles.Where(t => !t.IS_DELETED).ToList(); } entity.Nav_FireFiles = null; var fireFileIds = this.GetEntities(t => t.FIRE_JOB_WB_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); var fireFileList = new List(); if (fireFiles != null && fireFiles.Any()) { foreach (var item in fireFiles) { item.ORG_ID = entity.ORG_ID; item.FIRE_JOB_WB_ID = entity.ID; item.Nav_ImgFile = null; fireFileList.Add(item); } } var monitorFiles = entity.Nav_MonitorFiles; if (monitorFiles != null && monitorFiles.Any()) { monitorFiles = monitorFiles.Where(t => !t.IS_DELETED).ToList(); } entity.Nav_MonitorFiles = null; var monitorFileIds = this.GetEntities(t => t.FIRE_JOB_WB_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); var monitorFileList = new List(); if (monitorFiles != null && monitorFiles.Any()) { foreach (var item in monitorFiles) { item.ORG_ID = entity.ORG_ID; item.FIRE_JOB_WB_ID = entity.ID; item.Nav_ImgFile = null; monitorFileList.Add(item); } } List notices = new List(); if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify")) { //监护人员填写 if (entity.FIRE_STATUS == FOFireStatus.Monitor) { if (string.IsNullOrEmpty(entity.COMPLETED_CONTENT)) throw new Exception("动火作业完工验收情况必须填写"); if (entity.IS_LEAVE == null) throw new Exception("是否撤离必须填写"); if (entity.IS_LEAVE == FOYesOrNoEnum.No) throw new Exception("不可撤离请稍后再进行验收"); if (entity.ACT_END_DATE == null) throw new Exception("动火实际结束时间必须填写"); if (entity.LEAVE_DATE == null) throw new Exception("离开现场时间必须填写"); if (monitorFileList == null || !monitorFileList.Any()) throw new Exception("必须上传完工验收附件"); var detailNeed = detailList.FirstOrDefault(t => (t.JOB_STEP == FOJobStepEnum.Ing && t.IS_CONFIRM_NEW == false) || (t.JOB_STEP == FOJobStepEnum.After && t.IS_CONFIRM_NEW == false)); if (detailNeed != null) throw new Exception("作业中或作业后未全部确认!"); //外部施工单位,安全员自动置为已审阅 entity.USER_DEAL_FINISH_STATUS = FOUserShiftStatusEnum.已处理; entity.SAFE_DEAL_FINISH_STATUS = FOUserShiftStatusEnum.已处理; //直接归档 entity.FIRE_STATUS = FOFireStatus.Archived; } //发起人填写 else if (entity.FIRE_STATUS == FOFireStatus.Sign) { if (string.IsNullOrEmpty(entity.COMPLETED_CONDITION)) throw new Exception("动火作业现场条件验收情况必须填写"); if (entity.IS_FIRE == null) throw new Exception("是否可以动火必须填写"); if (entity.IS_FIRE == FOYesOrNoEnum.No) throw new Exception("不可动火请稍后再进行验收"); if (entity.ACT_DATE == null) throw new Exception("动火实际开始时间必须填写"); if (fireFileList == null || !fireFileList.Any()) throw new Exception("必须上传现场条件验收附件"); var detailNeed = detailList.FirstOrDefault(t => t.JOB_STEP == FOJobStepEnum.Pre && t.IS_CONFIRM_NEW == false); if (detailNeed != null) throw new Exception("作业前未全部确认!"); //外部施工单位,安全员自动置为已审阅 entity.USER_DEAL_STATUS = FOUserShiftStatusEnum.已处理; entity.SAFE_DEAL_STATUS = FOUserShiftStatusEnum.已处理; //签名 var ogRelated = this.GetEntity(t => t.ID == entity.RELATED_ID, "Nav_FireUser", "Nav_SafeUser"); if (ogRelated != null && ogRelated.Nav_FireUser != null && ogRelated.Nav_FireUser.Any()) { foreach (var item in ogRelated.Nav_FireUser) { T_FO_FIRE_JOB_WB_FIRE_USER user = new T_FO_FIRE_JOB_WB_FIRE_USER(); user.FIRE_JOB_WB_ID = entity.ID; user.ORG_ID = entity.ORG_ID; user.IMG_FILE_ID = item.IMG_FILE_ID; fireUser.Add(user); } deleteFireUserIds = this.GetEntities(t => t.FIRE_JOB_WB_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); } if (ogRelated != null && ogRelated.Nav_SafeUser != null && ogRelated.Nav_SafeUser.Any()) { foreach (var item in ogRelated.Nav_SafeUser) { T_FO_FIRE_JOB_WB_SAFE_USER user = new T_FO_FIRE_JOB_WB_SAFE_USER(); user.FIRE_JOB_WB_ID = entity.ID; user.ORG_ID = entity.ORG_ID; user.IMG_FILE_ID = item.IMG_FILE_ID; safeUser.Add(user); } deleteFireUserIds = this.GetEntities(t => t.FIRE_JOB_WB_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); } //触发给矿调度人员审阅 if (entity.DISPATCH_USER_ID != null) { var monitorUser = this.GetEntity(t => t.ID == entity.DISPATCH_USER_ID); if (monitorUser != null) { entity.FIRE_STATUS = FOFireStatus.Reading; notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("动火作业现场条件验收审阅(外包)", entity.ID, entity.ORG_ID, monitorUser.ID, monitorUser.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "FO045_SHOWPRINT")); } } else { //触发给监护人员 entity.FIRE_STATUS = FOFireStatus.Monitor; //触发给监护人填写 var monitorUser = this.GetEntity(t => t.ID == entity.MONITOR_USER_ID); if (monitorUser != null) { entity.FIRE_STATUS = FOFireStatus.Monitor; notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("动火作业全程监护(外包)", entity.ID, entity.ORG_ID, monitorUser.ID, monitorUser.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "FO045")); } else { throw new Exception("监护人不能为空,请联系管理员补充填写"); } } } else { //签名 var ogRelated = this.GetEntity(t => t.ID == entity.RELATED_ID, "Nav_Users.Nav_Signs"); if (ogRelated != null && ogRelated.Nav_Users != null && ogRelated.Nav_Users.Any()) { var userSignIds = new List(); if (users != null && users.Any()) { foreach (var item in users) { var first = ogRelated.Nav_Users.FirstOrDefault(t => t.NAME == item.USER_NAME && t.TYPE_ID == item.USER_TYPE_ID); if (first != null && first.Nav_Signs != null && first.Nav_Signs.Any()) { foreach (var itemSign in first.Nav_Signs) { T_FO_FIRE_JOB_WB_USER_SIGN sign = new T_FO_FIRE_JOB_WB_USER_SIGN(); sign.ORG_ID = itemSign.ORG_ID; sign.FIRE_JOB_WB_USER_ID = item.ID; sign.IMG_FILE_ID = itemSign.IMG_FILE_ID; detailUser.Add(sign); userSignIds.Add(item.ID); } } } } deleteUserSignIds = this.GetEntities(t => userSignIds.Contains(t.FIRE_JOB_WB_USER_ID), new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); } //触发审批 entity.STATUS = BaseData.Domain.Enums.PF.PFStandardStatus.Approving; entity.FIRE_STATUS = FOFireStatus.Approving; //取审批流水码 var sysFilter = new SystemCodeFilter(); sysFilter.CodeType = (int)PFCodeRuleType.审批流编码; sysFilter.Count = 1; sysFilter.OrgId = entity.ORG_ID; var codes = CodeRuleService.NewGenSerial(sysFilter); var serialCode = codes.Split(new char[] { ',' }); var department = this.GetEntity(t => t.ID == departmentId); var param = Enum.GetName(typeof(FMDepartmentType), department.DEPARTMENT_TYPE); if (department.DEPARTMENT_STATUS == 2) { param = "公司"; } MFlowPermitService.InsertApprove(serialCode[0], "FO045", param, entity.ID, "FO045_SHOWPRINT", entity.TaskID, true, () => { if (deleteUserSignIds != null && deleteUserSignIds.Any()) { this.BantchDeleteEntityNoCommit(deleteUserSignIds); } if (deleteFireUserIds != null && deleteFireUserIds.Any()) { this.BantchDeleteEntityNoCommit(deleteFireUserIds); } if (deleteSafeUserIds != null && deleteSafeUserIds.Any()) { this.BantchDeleteEntityNoCommit(deleteSafeUserIds); } if (detailFileIds != null && detailFileIds.Any()) this.BantchDeleteEntityNoCommit(detailFileIds); if (detailIds != null && detailIds.Any()) this.BantchDeleteEntityNoCommit(detailIds); if (userFileIds != null && userFileIds.Any()) this.BantchDeleteEntityNoCommit(userFileIds); if (userIds != null && userIds.Any()) this.BantchDeleteEntityNoCommit(userIds); if (fileIds != null && fileIds.Any()) this.BantchDeleteEntityNoCommit(fileIds); if (fireFileIds != null && fireFileIds.Any()) this.BantchDeleteEntityNoCommit(fireFileIds); if (monitorFileIds != null && monitorFileIds.Any()) this.BantchDeleteEntityNoCommit(monitorFileIds); if (riskIds != null && riskIds.Any()) this.BantchDeleteEntityNoCommit(riskIds); if (entity != null) UpdateEntityNoCommit(entity); if (detailList != null && detailList.Any()) this.BantchSaveEntityNoCommit(detailList); if (detailFileList != null && detailFileList.Any()) this.BantchSaveEntityNoCommit(detailFileList); if (userList != null && userList.Any()) this.BantchSaveEntityNoCommit(userList); if (userFileList != null && userFileList.Any()) this.BantchSaveEntityNoCommit(userFileList); if (riskList != null && riskList.Any()) this.BantchSaveEntityNoCommit(riskList); if (monitorFileList != null && monitorFileList.Any()) this.BantchSaveEntityNoCommit(monitorFileList); if (fireFileList != null && fireFileList.Any()) this.BantchSaveEntityNoCommit(fireFileList); if (fileList != null && fileList.Any()) this.BantchSaveEntityNoCommit(fileList); if (safeUser != null && safeUser.Any()) this.BantchSaveEntityNoCommit(safeUser); if (fireUser != null && fireUser.Any()) this.BantchSaveEntityNoCommit(fireUser); if (detailUser != null && detailUser.Any()) this.BantchSaveEntityNoCommit(detailUser); }, null, null, null, null, null, "FO045_SHOWPRINT", null, null, FMTASKTYPE.JobSite); return true; } } T_FM_NOTIFICATION_TASK task = null; if (entity.TaskID != Guid.Empty) { task = NotificationTaskService.GetTaskFinishModel(entity.TaskID); task.SOURCE_FORMCODE = "FO045_SHOWPRINT"; } this.UnifiedCommit(() => { if (deleteUserSignIds != null && deleteUserSignIds.Any()) { this.BantchDeleteEntityNoCommit(deleteUserSignIds); } if (deleteFireUserIds != null && deleteFireUserIds.Any()) { this.BantchDeleteEntityNoCommit(deleteFireUserIds); } if (deleteSafeUserIds != null && deleteSafeUserIds.Any()) { this.BantchDeleteEntityNoCommit(deleteSafeUserIds); } if (detailFileIds != null && detailFileIds.Any()) this.BantchDeleteEntityNoCommit(detailFileIds); if (detailIds != null && detailIds.Any()) this.BantchDeleteEntityNoCommit(detailIds); if (userFileIds != null && userFileIds.Any()) this.BantchDeleteEntityNoCommit(userFileIds); if (userIds != null && userIds.Any()) this.BantchDeleteEntityNoCommit(userIds); if (fileIds != null && fileIds.Any()) this.BantchDeleteEntityNoCommit(fileIds); if (fireFileIds != null && fireFileIds.Any()) this.BantchDeleteEntityNoCommit(fireFileIds); if (monitorFileIds != null && monitorFileIds.Any()) this.BantchDeleteEntityNoCommit(monitorFileIds); if (riskIds != null && riskIds.Any()) this.BantchDeleteEntityNoCommit(riskIds); if (entity != null) UpdateEntityNoCommit(entity); if (detailList != null && detailList.Any()) this.BantchSaveEntityNoCommit(detailList); if (detailFileList != null && detailFileList.Any()) this.BantchSaveEntityNoCommit(detailFileList); if (userList != null && userList.Any()) this.BantchSaveEntityNoCommit(userList); if (userFileList != null && userFileList.Any()) this.BantchSaveEntityNoCommit(userFileList); if (riskList != null && riskList.Any()) this.BantchSaveEntityNoCommit(riskList); if (monitorFileList != null && monitorFileList.Any()) this.BantchSaveEntityNoCommit(monitorFileList); if (fireFileList != null && fireFileList.Any()) this.BantchSaveEntityNoCommit(fireFileList); if (fileList != null && fileList.Any()) this.BantchSaveEntityNoCommit(fileList); if (safeUser != null && safeUser.Any()) this.BantchSaveEntityNoCommit(safeUser); if (fireUser != null && fireUser.Any()) this.BantchSaveEntityNoCommit(fireUser); if (detailUser != null && detailUser.Any()) this.BantchSaveEntityNoCommit(detailUser); if (notices != null && notices.Any()) this.BantchSaveEntityNoCommit(notices); if (task != null) UpdateEntityNoCommit(task); }); return true; }); } /// /// 矿调度人员审阅 /// /// /// [HttpPost, Route("IdentityUpdate")] public JsonActionResult IdentityUpdate([FromBody] T_FO_FIRE_JOB_WB entity) { return SafeExecute(() => { var fire = this.GetEntity(entity.ID); var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; if (entity.TaskID != Guid.Empty) { var currTask = GetEntity(t => t.ID == entity.TaskID); if (currTask != null) { userId = currTask.USER_ID; } } if (fire == null) { throw new Exception("未获取到动火作业工作票数据,请联系管理员确认"); } T_FM_NOTIFICATION_TASK notice = null; if (fire.FIRE_STATUS == FOFireStatus.Reading) { if (fire.DISPATCH_USER_ID == userId) { fire.DISPATCH_DEAL_STATUS = FOUserShiftStatusEnum.已处理; } //触发给监护人填写 var monitorUser = this.GetEntity(t => t.ID == fire.MONITOR_USER_ID); if (monitorUser != null) { fire.FIRE_STATUS = FOFireStatus.Monitor; notice = NotificationTaskService.InsertUserNoticeTaskModel("动火作业全程监护(外包)", fire.ID, fire.ORG_ID, monitorUser.ID, monitorUser.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "FO045"); } else { throw new Exception("监护人不能为空,请联系管理员补充填写"); } } else { throw new Exception("当前非审阅状态,请联系管理员排查"); } T_FM_NOTIFICATION_TASK task = null; if (entity.TaskID != Guid.Empty) { task = NotificationTaskService.GetTaskFinishModel(entity.TaskID); task.SOURCE_FORMCODE = "FO045_SHOWPRINT"; } UnifiedCommit(() => { if (fire != null) this.UpdateEntityNoCommit(fire); if (task != null) this.UpdateEntityNoCommit(task); if (notice != null) this.UpdateEntityNoCommit(notice); }); return true; }); } /// /// 回调函数 /// /// /// [HttpPost, Route("BackUpdateNew")] public JsonActionResult BackUpdateNew([FromBody] T_PF_APPROVE entity) { return SafeExecute(() => { return ApproveCallBackService.CallBackNew("FO/FOFireJobWb/BackUpdateNew", entity); }); } /// /// 驳回 /// /// /// [HttpPost, Route("RejectUpdate")] public JsonActionResult RejectUpdate([FromBody] T_PF_APPROVE model) { return SafeExecute(() => { //公共 获取审批流信息 T_PF_APPROVE modelApp = null; List listAppDetail = null; T_FM_NOTIFICATION_TASK taskFinish = null; string Msg = string.Empty; bool ResultGetInfo = ApproveCallBackService.GetApproject(model, ref modelApp, ref listAppDetail, ref taskFinish, ref Msg); if (!ResultGetInfo) throw new Exception("驳回失败!"); if (modelApp == null || listAppDetail == null) throw new Exception("获取驳回信息失败!"); var entity = this.GetEntity(model.DATA_ID, new string[] { "Nav_ApplyUser" }); entity.STATUS = BaseData.Domain.Enums.PF.PFStandardStatus.Rejected; var persons = this.GetEntities(t => t.FIRE_JOB_WB_ID == model.DATA_ID, new BaseFilter(entity.ORG_ID)); if (persons.Any()) persons.ForEach(t => { t.DEAL_STATUS = 0; t.Nav_User = null; }); //直接驳回给申请人 T_FM_NOTIFICATION_TASK notice = NotificationTaskService.InsertUserNoticeTaskModel("动火作业工作票已被驳回", entity.ID, entity.ORG_ID, (Guid)entity.APPLY_USER_ID, entity.Nav_ApplyUser.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "FO045"); //当前节点其他审核人待办消除 var taskOtherIds = this.GetEntities(t => t.SOURCE_DATA_ID == model.ID && t.NOTICE_STATUS == 0, new BaseFilter(entity.ORG_ID)).Select(t => t.ID).ToList(); UnifiedCommit(() => { if (entity != null) this.UpdateEntityNoCommit(entity); if (notice != null) this.UpdateEntityNoCommit(notice); if (modelApp != null) UpdateEntityNoCommit(modelApp); if (listAppDetail != null && listAppDetail.Count > 0) BantchUpdateEntityNoCommit(listAppDetail); if (persons != null && persons.Any()) BantchUpdateEntityNoCommit(persons); if (taskOtherIds != null && taskOtherIds.Any()) BantchDeleteEntityNoCommit(taskOtherIds); if (taskFinish != null) UpdateEntityNoCommit(taskFinish); }); return true; }); } } }