diff --git a/APT.MicroApi/APT.FO.WebApi/Controllers/TeamActivityController.cs b/APT.MicroApi/APT.FO.WebApi/Controllers/TeamActivityController.cs index 5de2f1a..5e97a26 100644 --- a/APT.MicroApi/APT.FO.WebApi/Controllers/TeamActivityController.cs +++ b/APT.MicroApi/APT.FO.WebApi/Controllers/TeamActivityController.cs @@ -6,6 +6,7 @@ using APT.BaseData.Domain.IServices.FM; using APT.BaseData.Services.Services.FM; using APT.Infrastructure.Core; using APT.MS.Domain.Entities.FO; +using APT.MS.Domain.Entities.SK; using APT.MS.Domain.Enums; using APT.Utility; using Microsoft.AspNetCore.Mvc; @@ -280,6 +281,45 @@ namespace APT.FO.WebApi.Controllers.Api.FO result.Data = null; } return result; + } + + /// + /// 根据主键删除数据 + /// + /// 主键ID + /// + [HttpGet, Route("FullDelete")] + public JsonActionResult FullDelete(string id) + { + return SafeExecute(() => + { + if (string.IsNullOrEmpty(id)) + this.ThrowError("060010"); + var approves = new List(); + var tasks = new List(); + var notices = new List(); + var notice = this.GetEntity(id); + if (notice != null) + { + notice.IS_DELETED = true; + notices.Add(notice); + approves = this.GetEntities(t => t.DATA_ID != null && t.DATA_ID == notice.ID, new BaseFilter(notice.ORG_ID)).ToList(); + approves.ForEach(t => t.IS_DELETED = true); + var approveIds = approves.Select(t => t.ID).ToList(); + tasks = this.GetEntities(t => t.SOURCE_DATA_ID != null && (t.SOURCE_DATA_ID == notice.ID || approveIds.Contains((Guid)t.SOURCE_DATA_ID)), new BaseFilter(notice.ORG_ID)).ToList(); + tasks.ForEach(t => t.IS_DELETED = true); + } + UnifiedCommit(() => + { + if (notices != null && notices.Any()) + this.BantchUpdateEntity_noneBase(notices); + if (approves != null && approves.Any()) + this.BantchUpdateEntity_noneBase(approves); + if (tasks != null && tasks.Any()) + this.BantchUpdateEntity_noneBase(tasks); + }); + return true; + }); } } }