86 lines
2.8 KiB
C#
86 lines
2.8 KiB
C#
using APT.Infrastructure.Core;
|
|
using APT.MS.Domain.Entities.OG;
|
|
using APT.Utility;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using NPOI.SS.Formula.Functions;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
|
|
namespace APT.SC.WebApi.Controllers.Api.OG
|
|
{
|
|
[Route("api/OG/OGRelatedEstimate")]
|
|
public class OGRelatedEstimateController : AuthorizeApiController<T_OG_RELATED_ESTIMATE>
|
|
{
|
|
/// <summary>
|
|
/// 更新
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
[HttpPost, Route("FullUpdate")]
|
|
public JsonActionResult<bool> FullUpdate([FromBody]T_OG_RELATED_ESTIMATE entity)
|
|
{
|
|
return SafeExecute<bool>(() =>
|
|
{
|
|
var Nav_Details = entity.Nav_Details;
|
|
entity.Nav_Details = null;
|
|
foreach(var item in Nav_Details)
|
|
{
|
|
item.Nav_Item = null;
|
|
}
|
|
UnifiedCommit(() =>
|
|
{
|
|
UpdateEntityNoCommit(entity);
|
|
if (Nav_Details != null&&Nav_Details.Any())
|
|
BantchSaveEntityNoCommit(Nav_Details);
|
|
|
|
});
|
|
|
|
|
|
return true;
|
|
});
|
|
}
|
|
/// <summary>
|
|
/// 获得单条实体数据
|
|
/// </summary>
|
|
/// <param name="filter"></param>
|
|
/// <returns></returns>
|
|
[HttpPost, Route("FullGet")]
|
|
public JsonActionResult<T_OG_RELATED_ESTIMATE> Get([FromBody] KeywordFilter filter)
|
|
{
|
|
if (filter.FilterGroup.Rules.Count > 0)
|
|
{
|
|
return WitEntity(null, filter);
|
|
}
|
|
return SafeExecute(() =>
|
|
{
|
|
var ret = new T_OG_RELATED_ESTIMATE {
|
|
ID = Guid.NewGuid(),
|
|
ORG_ID = filter.GetOrgId(),
|
|
Nav_Details = new List<T_OG_RELATED_ESTIMATE_DETAIL>(),
|
|
};
|
|
BaseFilter baseFilter = new BaseFilter(filter.GetOrgId());
|
|
baseFilter.Sort = "NAME";
|
|
baseFilter.Order = DbOrder.ASC;
|
|
var details = GetEntities<T_OG_RELATED_ESTIMATE_ITEM>(t=>t.IS_DELETED==false, baseFilter);
|
|
var count = 1;
|
|
details.ForEach(it =>
|
|
{
|
|
ret.Nav_Details.Add(new T_OG_RELATED_ESTIMATE_DETAIL
|
|
{
|
|
ID = Guid.NewGuid(),
|
|
ESTIMATE_ID = ret.ID,
|
|
ITEM_ID = it.ID,
|
|
ORG_ID = filter.GetOrgId(),
|
|
Nav_Item = it,
|
|
NUM= count,
|
|
});
|
|
count++;
|
|
});
|
|
return ret;
|
|
});
|
|
}
|
|
}
|
|
}
|