mh_jy_safe/APT.MicroApi/APT.BD.WebApi/Controllers/Api/PictureController.cs
2025-08-25 09:56:57 +08:00

176 lines
7.0 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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);
}
}
}