176 lines
7.0 KiB
C#
176 lines
7.0 KiB
C#
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
|
||
{
|
||
/// <summary>
|
||
/// 国标行业信息
|
||
/// </summary>
|
||
[Route("api/BD/Picture")]
|
||
public partial class PictuerController : AuthorizeApiController<T_BD_PICTURE>
|
||
{
|
||
|
||
/// <summary>
|
||
/// 更新
|
||
/// </summary>
|
||
/// <param name="entity"></param>
|
||
/// <returns></returns>
|
||
[HttpPost, Route("FullUpdate")]
|
||
public JsonActionResult<bool> FullUpdate([FromBody] T_BD_PICTURE entity)
|
||
{
|
||
return SafeExecute<bool>(() =>
|
||
{
|
||
var files = entity.Nav_PictureFiles;
|
||
entity.Nav_PictureFiles = null;
|
||
var after = this.GetEntity<T_BD_PICTURE>(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<T_BD_PICTURE_FILE>(after.Nav_PictureFiles.Select(x => x.ID).ToList());
|
||
if (files != null && files.Any())
|
||
BantchAddEntity(files);
|
||
}
|
||
return true;
|
||
});
|
||
}
|
||
/// <summary>
|
||
/// 文件更新
|
||
/// </summary>
|
||
/// <param name="entity"></param>
|
||
/// <returns></returns>
|
||
[HttpPost, Route("FileFullUpdate")]
|
||
public JsonActionResult<bool> FileFullUpdate([FromBody] T_BD_PICTURE entity)
|
||
{
|
||
return SafeExecute<bool>(() =>
|
||
{
|
||
entity.DATA_TYPE = (int)FMFileType.文件;
|
||
var files = entity.Nav_PictureFiles;
|
||
entity.Nav_PictureFiles = null;
|
||
var after = this.GetEntity<T_BD_PICTURE>(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<T_BD_PICTURE_FILE>(after.Nav_PictureFiles.Select(x => x.ID).ToList());
|
||
BantchAddEntity(files);
|
||
}
|
||
return true;
|
||
});
|
||
}
|
||
|
||
/// <summary>
|
||
/// 更新
|
||
/// </summary>
|
||
/// <param name="entity"></param>
|
||
/// <returns></returns>
|
||
[HttpPost, Route("UpdateAndSendFolw")]
|
||
public JsonActionResult<bool> UpdateAndSendFolw([FromBody] T_BD_PICTURE entity)
|
||
{
|
||
return SafeExecute<bool>(() =>
|
||
{
|
||
var files = entity.Nav_PictureFiles;
|
||
entity.Nav_PictureFiles = null;
|
||
var after = this.GetEntity<T_BD_PICTURE>(x => x.ID == entity.ID, "Nav_PictureFiles");
|
||
var flowService = APT.Infrastructure.Api.ServiceLocator.Instance.GetService<IPFFlowService>();
|
||
//图片审批
|
||
flowService.SendFlowAndCommit<T_BD_PICTURE>(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<T_BD_PICTURE_FILE>(after.Nav_PictureFiles.Select(x => x.ID).ToList());
|
||
if (files != null && files.Any())
|
||
BantchAddEntityNoCommit(files);
|
||
}
|
||
});
|
||
return true;
|
||
});
|
||
}
|
||
|
||
/// <summary>
|
||
/// 批量删除数据
|
||
/// </summary>
|
||
/// <param name="ids">id字符串(id用逗号分隔)</param>
|
||
/// <returns></returns>
|
||
[HttpGet, Route("FullBatchDelete")]
|
||
public JsonActionResult<bool> FullBatchDelete(string ids)
|
||
{
|
||
return SafeExecute<bool>(() =>
|
||
{
|
||
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<T_BD_PICTURE>(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<T_PF_IMG_FILE_DETAIL>(detailId);
|
||
this.BantchDeleteEntity<T_BD_PICTURE_FILE>(pictureFileId);
|
||
this.BantchDeleteEntity<T_PF_IMG_FILE>(imgFileId);
|
||
this.BantchDeleteEntity<T_PF_FILE>(fileId);
|
||
this.BantchDeleteEntity<T_BD_PICTURE>(pictureIds);
|
||
return true;
|
||
});
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 批量删除数据
|
||
/// </summary>
|
||
/// <param name="ids">id字符串(id用逗号分隔)</param>
|
||
/// <returns></returns>
|
||
[HttpGet, Route("FullDelete")]
|
||
public JsonActionResult<bool> FullDelete(string id)
|
||
{
|
||
return this.FullBatchDelete(id);
|
||
}
|
||
|
||
|
||
|
||
|
||
}
|
||
}
|