using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.Entities; using APT.BaseData.Domain.Enums.PF; using APT.BaseData.Domain.Enums; using APT.BaseData.Services.DomainServices; using APT.BaseData.Services.Services.FM; using APT.Infrastructure.Core; using APT.MS.Domain.Entities.SK; using APT.MS.Domain.Enums.SK; using APT.MS.Domain.Enums; using APT.Utility; using Microsoft.AspNetCore.Mvc; using APT.BaseData.Domain.IServices.FM; using APT.BaseData.Domain.IServices; using System.Linq; using System.Collections.Generic; using System; namespace APT.SK.WebApi.Controllers.Api { /// /// 手动隐患上报表 /// [Route("api/SK/SKHiddenDangerHandReport")] public partial class HiddenDangerHandReportController : AuthorizeApiController { IPFApproveCallBackService ApproveCallBackService { get; set; } IFMNotificationTaskService NotificationTaskService { get; set; } IPFCodeRuleService CodeRuleService { get; set; } IFMFlowPermitService MFlowPermitService { get; set; } public HiddenDangerHandReportController(IFMNotificationTaskService notificationTaskService, IFMFlowPermitService mFlowPermitService, IPFCodeRuleService codeRuleService, IPFApproveCallBackService approveCallBackService) { NotificationTaskService = notificationTaskService; MFlowPermitService = mFlowPermitService; CodeRuleService = codeRuleService; ApproveCallBackService = approveCallBackService; } [HttpPost, Route("FullUpdate")] public JsonActionResult FullUpdate([FromBody] T_SK_HIDDEN_DANGER_HAND_REPORT entity) { return SafeExecute(() => { var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; var departId = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId; if(entity.ID == null) entity.ID = Guid.NewGuid(); if (entity.APPLY_USER_ID == null) entity.APPLY_USER_ID = userId; if (entity.APPLY_DEPARTMENT_ID == null) entity.APPLY_DEPARTMENT_ID = departId; if (entity.ORG_ID == null) entity.ORG_ID = orgId; var files = entity.Nav_ReportFiles; entity.Nav_ReportFiles = null; entity.Nav_RiskArea = null; if (files != null && files.Any()) { foreach (var item in files) { item.ORG_ID = entity.ORG_ID; item.HIDDEN_DANGER_HAND_REPORT_ID = entity.ID; item.Nav_ImgFile = null; } } List notices = new List(); T_SK_HIDDEN_DANGER_CONFIRM confirm = null; List photoList = new List(); if (entity.PUBLISH != null && entity.PUBLISH.Equals("SaveAndNotify")) { if (entity.APPLY_USER_ID != null) { var sendUser = entity.APPLY_USER_ID; var depart = this.GetEntity(t => t.ID == entity.APPLY_DEPARTMENT_ID && t.ENABLE_STATUS == 0); entity.STATUS = PFStandardStatus.Archived; if (depart != null && depart.DEPARTMENT_TYPE == 2 && depart.USER_ID != null) { sendUser = depart.USER_ID; } var userName = this.GetEntity(t => t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用 && sendUser == t.ID)?.NAME; confirm = new T_SK_HIDDEN_DANGER_CONFIRM(); confirm.HIDDEN_DANGER_HAND_REPORT_ID = entity.ID; confirm.ORG_ID = entity.ORG_ID; confirm.MineType = entity.MineType; confirm.APPLY_USER_ID = entity.APPLY_USER_ID; confirm.APPLY_DEPARTMENT_ID = entity.APPLY_DEPARTMENT_ID; confirm.RISK_AREA_ID = entity.RISK_AREA_ID; confirm.HIDDEN_PLACE = entity.HIDDEN_PLACE; confirm.HIDDEN_DESCRIPTION = entity.HIDDEN_DESCRIPTION; if (files != null && files.Any()) { foreach (var file in files) { T_SK_HIDDEN_DANGER_CONFIRM_PHOTO photo = new T_SK_HIDDEN_DANGER_CONFIRM_PHOTO(); photo.ORG_ID = file.ORG_ID; photo.IMG_FILE_ID = file.IMG_FILE_ID; photo.HIDDEN_DANGER_CONFIRM_ID = confirm.ID; photoList.Add(photo); } } //发消息 var notice = NotificationTaskService.InsertUserNoticeTaskModel("隐患确认单(" + depart?.NAME + DateTime.Now.ToShortDateString().Replace("/", "") + ")", confirm.ID, entity.ORG_ID, (Guid)sendUser, userName, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK018"); notices.Add(notice); } else { entity.STATUS = PFStandardStatus.Archived; } } this.UnifiedCommit(() => { if (entity != null) UpdateEntityNoCommit(entity); if (files != null && files.Any()) BantchSaveEntityNoCommit(files); if (confirm != null) UpdateEntityNoCommit(confirm); if (photoList != null && photoList.Any()) BantchSaveEntityNoCommit(photoList); if (notices != null && notices.Any()) BantchSaveEntityNoCommit(notices); }); return true; }); } } }