using APT.Infrastructure.Core; using APT.MS.Domain.Entities.FO; using APT.Utility; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; namespace APT.FO.WebApi.Controllers { /// /// 企业信息登记表 /// [Route("api/FO/FOEnterpriseInformationRegistration")] public partial class EnterpriseInformationRegistrationController : AuthorizeApiController { [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_ApplyDepartment", "Nav_ProUnits.Nav_ProUnit", "Nav_WorkFiles.Nav_ImgFile.Nav_File", "Nav_AllowFiles.Nav_ImgFile.Nav_File", "Nav_SafeFiles.Nav_ImgFile.Nav_File", "Nav_Files.Nav_ImgFile.Nav_File"); return entity; }); } /// /// 新增修改 /// /// /// [HttpPost, Route("FullUpdate")] public JsonActionResult FullUpdate([FromBody] T_FO_ENTERPRISE_INFORMATION_REGISTRATION 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; var proUnits = entity.Nav_ProUnits; if (proUnits != null && proUnits.Any()) { proUnits = proUnits.Where(t => !t.IS_DELETED).ToList(); } entity.Nav_ProUnits = null; var proUnitIds = this.GetEntities(t => t.ENTERPRISE_INFORMATION_REGISTRATION_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); var proUnitList = new List(); if (proUnits != null && proUnits.Any()) { foreach (var unit in proUnits) { T_FO_ENTERPRISE_INFORMATION_REGISTRATION_UNIT item = new T_FO_ENTERPRISE_INFORMATION_REGISTRATION_UNIT(); item.ORG_ID = entity.ORG_ID; item.ENTERPRISE_INFORMATION_REGISTRATION_ID = entity.ID; item.PRODUCTION_UNIT_ID = unit.PRODUCTION_UNIT_ID; proUnitList.Add(item); } } var workFiles = entity.Nav_WorkFiles; if (workFiles != null && workFiles.Any()) { workFiles = workFiles.Where(t => !t.IS_DELETED).ToList(); } entity.Nav_WorkFiles = null; var workFileIds = this.GetEntities(t => t.ENTERPRISE_INFORMATION_REGISTRATION_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); var workFileList = new List(); if (workFiles != null && workFiles.Any()) { foreach (var file in workFiles) { T_FO_ENTERPRISE_INFORMATION_REGISTRATION_WORKFILE item = new T_FO_ENTERPRISE_INFORMATION_REGISTRATION_WORKFILE(); item.ORG_ID = entity.ORG_ID; item.ENTERPRISE_INFORMATION_REGISTRATION_ID = entity.ID; item.IMG_FILE_ID = file.IMG_FILE_ID; workFileList.Add(item); } } var allowFiles = entity.Nav_AllowFiles; if (allowFiles != null && allowFiles.Any()) { allowFiles = allowFiles.Where(t => !t.IS_DELETED).ToList(); } entity.Nav_AllowFiles = null; var allowFileIds = this.GetEntities(t => t.ENTERPRISE_INFORMATION_REGISTRATION_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); var allowFileList = new List(); if (allowFiles != null && allowFiles.Any()) { foreach (var file in allowFiles) { T_FO_ENTERPRISE_INFORMATION_REGISTRATION_ALLOWFILE item = new T_FO_ENTERPRISE_INFORMATION_REGISTRATION_ALLOWFILE(); item.ORG_ID = entity.ORG_ID; item.ENTERPRISE_INFORMATION_REGISTRATION_ID = entity.ID; item.IMG_FILE_ID = file.IMG_FILE_ID; allowFileList.Add(item); } } var safeFiles = entity.Nav_SafeFiles; if (safeFiles != null && safeFiles.Any()) { safeFiles = safeFiles.Where(t => !t.IS_DELETED).ToList(); } entity.Nav_SafeFiles = null; var safeFileIds = this.GetEntities(t => t.ENTERPRISE_INFORMATION_REGISTRATION_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); var safeFileList = new List(); if (safeFiles != null && safeFiles.Any()) { foreach (var file in safeFiles) { T_FO_ENTERPRISE_INFORMATION_REGISTRATION_SAFEFILE item = new T_FO_ENTERPRISE_INFORMATION_REGISTRATION_SAFEFILE(); item.ORG_ID = entity.ORG_ID; item.ENTERPRISE_INFORMATION_REGISTRATION_ID = entity.ID; item.IMG_FILE_ID = file.IMG_FILE_ID; safeFileList.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.ENTERPRISE_INFORMATION_REGISTRATION_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); var fileList = new List(); if (files != null && files.Any()) { foreach (var file in files) { T_FO_ENTERPRISE_INFORMATION_REGISTRATION_FILE item = new T_FO_ENTERPRISE_INFORMATION_REGISTRATION_FILE(); item.ORG_ID = entity.ORG_ID; item.ENTERPRISE_INFORMATION_REGISTRATION_ID = entity.ID; item.IMG_FILE_ID = file.IMG_FILE_ID; fileList.Add(item); } } this.UnifiedCommit(() => { if (proUnitIds != null && proUnitIds.Any()) this.BantchDeleteEntityNoCommit(proUnitIds); if (workFileIds != null && workFileIds.Any()) this.BantchDeleteEntityNoCommit(workFileIds); if (allowFileIds != null && allowFileIds.Any()) this.BantchDeleteEntityNoCommit(allowFileIds); if (safeFileIds != null && safeFileIds.Any()) this.BantchDeleteEntityNoCommit(safeFileIds); if (fileIds != null && fileIds.Any()) this.BantchDeleteEntityNoCommit(fileIds); if (entity != null) UpdateEntityNoCommit(entity); if (proUnitList != null && proUnitList.Any()) this.BantchSaveEntityNoCommit(proUnitList); if (workFileList != null && workFileList.Any()) this.BantchSaveEntityNoCommit(workFileList); if (allowFileList != null && allowFileList.Any()) this.BantchSaveEntityNoCommit(allowFileList); if (safeFileList != null && safeFileList.Any()) this.BantchSaveEntityNoCommit(safeFileList); if (fileList != null && fileList.Any()) this.BantchSaveEntityNoCommit(fileList); }); return true; }); } } }