using JNPF.Common.Core.Manager;
using JNPF.Common.Enums;
using JNPF.Common.Security;
using JNPF.DependencyInjection;
using JNPF.DynamicApiController;
using JNPF.FriendlyException;
using Microsoft.AspNetCore.Mvc;
using SqlSugar;
using Tnb.EquipMgr.Entities;
using Tnb.EquipMgr.Interfaces;
namespace Tnb.EquipMgr
{
///
/// 设备保养计划执行管理
///
[ApiDescriptionSettings(Tag = ModuleConsts.Tag, Area = ModuleConsts.Area, Order = 700)]
[Route("api/[area]/[controller]/[action]")]
public class EqpEquipScrapService : IEqpEquipScrapService, IDynamicApiController, ITransient
{
private readonly ISqlSugarRepository _repository;
private readonly IUserManager _userManager;
public EqpEquipScrapService(ISqlSugarRepository repository,
IUserManager userManager)
{
_repository = repository;
_userManager = userManager;
// OverideFuncs.UpdateAsync = ExecuteSpotIns;
}
[HttpPost]
public async Task Scrap(EqpEquipScrap eqpEquipScrap)
{
ISqlSugarClient db = _repository.AsSugarClient();
DbResult result = await db.Ado.UseTranAsync(async () =>
{
eqpEquipScrap.id = SnowflakeIdHelper.NextId();
eqpEquipScrap.create_id = _userManager.UserId;
eqpEquipScrap.create_time = DateTime.Now;
_ = await _repository.InsertAsync(eqpEquipScrap);
_ = await db.Updateable().SetColumns(x => x.life == EquipmentLife.SCRAP)
.Where(x => x.id == eqpEquipScrap.equip_id).ExecuteCommandAsync();
});
return !result.IsSuccess ? throw Oops.Oh(ErrorCode.COM1008) : result.IsSuccess ? "报废成功" : result.ErrorMessage;
}
}
}