using APT.BaseData.Domain.Entities; using APT.BaseData.Domain.Entities.BD; using APT.BaseData.Domain.Enums; using APT.BaseData.Domain.IServices.BD; using APT.BaseData.Domain.IServices.FM; using APT.Infrastructure.Core; using APT.Utility; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; namespace APT.BD.WebApi.Controllers.Api { /// /// 国标行业信息 /// [Route("api/BD/Picture")] public partial class PictuerController : AuthorizeApiController { /// /// 更新 /// /// /// [HttpPost, Route("FullUpdate")] public JsonActionResult FullUpdate([FromBody] T_BD_PICTURE entity) { return SafeExecute(() => { var files = entity.Nav_PictureFiles; entity.Nav_PictureFiles = null; var after = this.GetEntity(x => x.ID == entity.ID, "Nav_PictureFiles"); if (after == null) { this.AddEntity(entity); if (files != null && files.Any()) this.BantchAddEntity(files); } else { UpdateEntity(entity); if (after.Nav_PictureFiles != null) BantchDeleteEntity(after.Nav_PictureFiles.Select(x => x.ID).ToList()); if (files != null && files.Any()) BantchAddEntity(files); } return true; }); } /// /// 文件更新 /// /// /// [HttpPost, Route("FileFullUpdate")] public JsonActionResult FileFullUpdate([FromBody] T_BD_PICTURE entity) { return SafeExecute(() => { entity.DATA_TYPE = (int)FMFileType.文件; var files = entity.Nav_PictureFiles; entity.Nav_PictureFiles = null; var after = this.GetEntity(x => x.ID == entity.ID, "Nav_PictureFiles"); if (after == null) { this.AddEntity(entity); if (files != null && files.Any()) this.BantchAddEntity(files); } else { UpdateEntity(entity); if (after.Nav_PictureFiles != null) BantchDeleteEntity(after.Nav_PictureFiles.Select(x => x.ID).ToList()); BantchAddEntity(files); } return true; }); } /// /// 更新 /// /// /// [HttpPost, Route("UpdateAndSendFolw")] public JsonActionResult UpdateAndSendFolw([FromBody] T_BD_PICTURE entity) { return SafeExecute(() => { var files = entity.Nav_PictureFiles; entity.Nav_PictureFiles = null; var after = this.GetEntity(x => x.ID == entity.ID, "Nav_PictureFiles"); var flowService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService(); //图片审批 flowService.SendFlowAndCommit(entity, (int)PFCodeRuleType.审批流编码, "1592907699376", () => { if (after == null) { this.AddEntityNoCommit(entity); if (files != null && files.Any()) this.BantchAddEntityNoCommit(files); } else { UpdateEntityNoCommit(entity); if (after.Nav_PictureFiles != null) BantchDeleteEntityNoCommit(after.Nav_PictureFiles.Select(x => x.ID).ToList()); if (files != null && files.Any()) BantchAddEntityNoCommit(files); } }); return true; }); } /// /// 批量删除数据 /// /// id字符串(id用逗号分隔) /// [HttpGet, Route("FullBatchDelete")] public JsonActionResult FullBatchDelete(string ids) { return SafeExecute(() => { var arrIds = ids.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries) .Select(i => new Guid(i)); var filter = new BaseFilter { IgnoreOrgRule = true, SelectField = new string[] {"ID", "Nav_PictureFiles.ID", "Nav_PictureFiles.Nav_ImgFile.ID", "Nav_PictureFiles.Nav_ImgFile.Nav_Details.ID", "Nav_PictureFiles.Nav_ImgFile.Nav_Details.Nav_File.ID", "Nav_PictureFiles.Nav_ImgFile.Nav_File.ID"} }; var pictures = this.GetEntities(i => arrIds.Contains(i.ID), filter, "Nav_PictureFiles.Nav_ImgFile.Nav_Details.Nav_File"); var pictureIds = pictures.Select(i => i.ID).ToList(); var pictureFileId = pictures.SelectMany(i => i.Nav_PictureFiles.Select(i => i.ID)).ToList(); var imgFileId = pictures.SelectMany(i => i.Nav_PictureFiles.Select(i => i.Nav_ImgFile.ID)).ToList(); //var pfFileId= pictures.SelectMany(i => i.Nav_PictureFiles.Select(i => i.Nav_ImgFile.Nav_File.ID)).ToList(); var detailId = pictures.SelectMany(i => i.Nav_PictureFiles.SelectMany(i => i.Nav_ImgFile.Nav_Details.Select(x => x.ID))).ToList(); var fileId = pictures.SelectMany(i => i.Nav_PictureFiles.SelectMany(i => i.Nav_ImgFile.Nav_Details.Select(x => x.Nav_File.ID))).ToList(); this.BantchDeleteEntity(detailId); this.BantchDeleteEntity(pictureFileId); this.BantchDeleteEntity(imgFileId); this.BantchDeleteEntity(fileId); this.BantchDeleteEntity(pictureIds); return true; }); } /// /// 批量删除数据 /// /// id字符串(id用逗号分隔) /// [HttpGet, Route("FullDelete")] public JsonActionResult FullDelete(string id) { return this.FullBatchDelete(id); } } }